# Session 0007.0 — Transcript

> App: human-experience-filter-art
> Date: 2026-06-06 (PST) · 14:12 → 17:57
> Type: coding
> Goal: continue the roadmap; reframed by the operator to **simulator-first** —
> bring the slice-1 alteration engine into the simulator so the experience can be
> tuned before any hardware.
> Outcome: **design spec written, committed, and pushed** on branch
> `feature/simulator-alteration-preview`. No code changes. Implementation deferred
> to the next session (design + implementation to ship as one PR).

## Plan

Bring the alteration engine into the simulator (scope: tune the look), per
`docs/superpowers/specs/2026-06-06-simulator-alteration-preview-design.md`:
- Python-canonical engine, thin browser renderer.
- Dark/Light = live runtime color grade; Left/Right = 5×5 grid of pre-baked
  authored variant clips selected by coordinate (24 videos/base clip).
- Revises design §4.3/§10: HUD baked into variant videos (authorial precision)
  rather than runtime overlay — trades away near-free i18n.
- Engine reconciliation: parameterize `Calibration`, add `VariantRef`, slim
  `RenderPlan` (drop runtime `AnalyticalOverlay`/`Restyle`); `state.py` crossfade
  on variant change.
- Simulator: retire selection X-ray + `/api/select`; add `/api/alteration` +
  `/api/clips` + variant manifest; placeholder-variant generator.

## Pre-session state

- `main` at `5290785`, clean and pushed. Sub-projects 1 & 2 done; sub-project 3
  (Player Runtime) in progress — slice 1 (pure-logic `player/` core) merged via
  PR #5 (session 0006).
- A **stale nested worktree** (`.worktrees/feature-BuildSimulator11`, branch
  `feature/player-alteration-core`, already merged) was present and breaking the
  session resolver ("ambiguous app.json"), exactly as the session-0006 memory
  gotcha predicted.

## Turn-by-turn arc

1. **Session gate.** Opened with "What's next?" → classified as a coding session;
   ran `wgl-session-coding-init`.
2. **Baseline cleanup.** Claim dry-run failed on the resolver ambiguity. Verified
   the stale worktree's branch was fully merged + clean, removed the worktree and
   branch, and deleted the empty `.worktrees/` dir. Tree back to clean `main`.
3. **Claimed session 0007** (no other sessions in flight).
4. **Operator steer:** "only design things that will run in the simulator; get
   everything working the way we like in the simulator before hardware." Saved as
   a `feedback` memory ([[simulator-first-before-hardware]]).
5. **Discovered** the simulator (`simulator/`, built session 0004) is fully
   decoupled from `player/` — it exercises the OLD *selection* model and has no
   alteration surface. That gap became the work.
6. **Brainstorming** (with the visual companion). Decisions, one at a time:
   scope = tune the alteration look; medium = short looping video; Right restyle =
   labeled stand-in shader (swappable for real variants); calibration =
   live-adjustable curves; architecture = **A, Python-canonical**; integration =
   new view, **retire the selection X-ray**.
7. **Interactive look mockup** (browser): a real nature image with the 4 knobs as
   live sliders. Operator confirmed Dark/Light read well, but said for Left/Right
   they'll **author videos with the overlay baked in** for precise HUD control.
8. **Surfaced the tradeoff:** baking the HUD reverses design §4.3/§10's near-free
   i18n. Operator chose **precision wins**. Confirmed the variant grid as **full
   5×5 = 24 authored clips per base** (shown as a grid mockup).
9. **Revised model** presented and approved: base clip + variant manifest;
   `RenderPlan = {grade, variant}`; runtime overlay/restyle layers retired;
   placeholder-variant bootstrapping via ffmpeg.
10. **Wrote the spec**, self-reviewed, committed on a feature branch.
11. Operator: "do [implementation] next session. finalize this one." →
    `wgl-session-finalize`.

## Cut state (end of session)

| Repo | Branch | Commit | State |
|---|---|---|---|
| human-experience-filter-art | `feature/simulator-alteration-preview` | `3ef21fb` | pushed to origin, **not merged** |

- `docs/superpowers/specs/2026-06-06-simulator-alteration-preview-design.md` —
  new, committed.
- `main` unchanged at `5290785`.
- Working tree clean. Visual-companion server stopped; `.superpowers/` gitignored.
- No tests run (no code changed).

## What lands on the operator's plate

- **Author the 24 variant videos** per base clip (the Left×Right grid), with HUD
  baked in. The simulator will consume them via the manifest; placeholder variants
  cover the gap until then.
- **Deferred decisions** (also surfaced in chat):
  - *knob→strength calibration* — unresolved since session 0006; will be settled
    by eye in the simulator's calibration panel next session, then baked into
    `DEFAULT_CALIBRATION`.
  - *grade tints baked HUD* — accepted under "precision wins"; revisit only if it
    reads badly once real authored clips exist.

## Prompt the operator can paste into the next session

```
/goal Implement the simulator alteration preview on branch feature/simulator-alteration-preview, per docs/superpowers/specs/2026-06-06-simulator-alteration-preview-design.md — begin with the writing-plans skill, then build: parameterize Calibration + add VariantRef and slim RenderPlan in player/, add /api/alteration + /api/clips + simulator/clips.py variant manifest, rewrite the simulator UI as the player preview, retire the selection X-ray + /api/select, add the placeholder-variant generator, and update tests + USER_GUIDE + ROADMAP §3 + the parent design §4.3/§10 pointer.
```

(Or resume with `/goal next` — the `Next /goal:` field is stored in memory
`sub-project-3-player-progress.md`.)
