# Wave 7 — The creator **Items:** `B7`, `A1`, `CR-015`, `A2`, `A6`, `CR-014`, `CR-007`, `B6`, `S1` (creator), `F6`, and from August 18: `D1`, `D2`, `D3`, `D4`, `D5`, `D8`, `D9`, `D10` **Depends on:** wave 6 merged, and `T4.2` (URL state) merged **Why last among the build waves:** most of it depends on the iframe decision, and `CR-014` depends on `X1`. `T7.1` is the largest engineering item in the plan. Decided and approved: the iframe gets dissolved. Do it first - everything after it is cheaper on the far side. **Read `docs/waves/decisions-2026-08-18.md` before starting.** Eight of its ten items land in this wave, four of them as changes to done-when lists written below. Where a task carries an `Amended` block, that block wins over the text above it. **Read `docs/reference/creator-frame.md` before `T7.1`.** It is the measurement of the boundary: 21 colliding stylesheet selectors, 9 colliding script globals, 0 colliding markup ids, 28 cross-frame call sites, and the three questions no count can answer. --- ### T7.1 — B7: Dissolve the creator iframe - **Items:** `B7`, `D1` - **Depends on:** T6.5 - **Blocks:** T7.2 through T7.10 - **Surface:** `html/` - **Files:** parent page hosting the creator, the creator itself, cross-frame messaging **Problem:** The tab row lives in the parent and the toolbar lives in the iframe child, so folding one into the other is impossible while the boundary exists. The boundary is also implicated in `F4` and possibly in `CR-006` toggle propagation (`X4`). **Do:** Remove the iframe boundary so the creator renders in the parent document. Expect to untangle: cross-frame messaging, duplicated styling, focus and scroll management, and anything relying on separate document contexts. Do this as its own PR with no feature work attached. It will be large and it needs to be reviewable as a structural change. **Do not:** bundle any other item into this task, and do not leave a dormant iframe path behind a flag. **Amended August 18 (`D1`, `D5`).** `creator-frame.md` section 4 lists three questions this task has to settle. Two are now answered: - **Does the creator get the app bar back?** Yes. It is the only page in `html/` that loads neither `wp-chrome.css` nor `wp-chrome.js`, and a page without the app bar is not a page. Expect to redo the wizard's layout arithmetic - `chromeHeight()`, `--wp-chrome-h`, the `embed-full` sizing. - **What happens to `body.embedded`?** It goes, and with it `.embed-hide`. The three controls it was hiding: the creator's own header stays hidden because the app bar replaces it; the **sample-data control becomes visible** (`D1`); the analytics button stays visible here and **moves to the admin console at `T7.10`** (`D5`). Do not delete it in this task - a task that both dissolves the frame and deletes a feature is two diffs. - **One sequence component or two?** Still open, and still this task's call. Nine of the 21 colliding selectors are the sequence editor. The wizard authors the sequence and the creator renders it; confirmed August 18 that those stay two adjustable things, which argues for scoping rather than merging. If you scope, say so and leave `BL-015` open for wave 9. **Do not** fold `BL-001`, `BL-006`, `BL-007` or `BL-013` into this diff. They are logged against this file and they are cheaper now than ever, and they are still separate items. What this task owes them is a **measurement**: record whether each still reproduces after the rebuild, so `T7.2` and `T9.5` inherit a fact rather than an assumption. **Done when:** - [ ] no iframe remains in the creator; grep confirms - [ ] every creator feature works as it did before: verify against the wave 0 baseline screenshots and a functional pass - [ ] `F4` no longer reproduces - [ ] `CR-006` section toggles propagate into the creator with no special-casing - [ ] browser back and forward still behave with the `T4.2` URL state - [ ] no cross-frame messaging code remains - [ ] the creator renders the standard app bar, and the wizard's chrome arithmetic still holds at 390px and 1440px - [ ] `body.embedded` and `.embed-hide` are gone; grep confirms - [ ] the sample-data control is visible and reachable on the creator (`D1`) - [ ] `BL-001`, `BL-006`, `BL-007` and `BL-013` are each re-measured after the rebuild and their entries updated with the result --- ### T7.2 — F6 + D3: Side navigation and collapsible sections replace the 4,700px form - **Items:** `F6`, `D3` - **Depends on:** T7.1, T5.5, T3.5 - **Blocks:** T7.9 - **Surface:** `html/` - **Files:** creator layout, jump links **Problem:** The creator is one form roughly 4,700px tall with 11 cards rendered at once and jump links standing in for structure. **Do:** Give the form real structure — section tabs or an equivalent that shows one coherent group at a time. Respect the `CR-006` toggles: a section toggled off has no tab. Retire the jump links. Section identity belongs in the URL (`T4.2`) so a section is linkable. **Amended August 18 (`D3`) - the answer is not tabs.** Asked to choose, the decision was one page with navigation down the side; asked about the height conflict that creates, the call was delegated. Adopted: **one page, persistent side navigation, sections collapsible, only the current one open by default, plus an `Expand all`.** Tabs were rejected because they hide sections a first-time author does not know exist. An uncollapsed long form was rejected because it is the 4,700px page `F6` exists to fix. The done-when list below is the amended one; it replaces four of the six entries as written. `BL-013` is folded in here and only here: the creator's inputs have `outline: none` with a 1.05:1 glow as their only focus cue, which is a standing `CLAUDE.md` violation on the page with the most form controls in the app. A rebuilt form ships the `T3.4` ring or it is not done. **Done when:** - [ ] no single view exceeds roughly two screen heights at 1440px **at rest** - that is, in the default collapse state the page loads in - [ ] toggled-off sections have no entry in the side navigation - [ ] each section is addressable by URL and survives refresh - [ ] jump links are gone - [ ] the side navigation is keyboard operable and marks the current section with `aria-current` - [ ] each section header is a real `