docs(plan): ground L3 readiness against landed Phase S surfaces
Both VST draw shells still draw flat off a local pre-L1 palette — L3 restyle confirmed live, not a born-in-kit no-op. Name the concrete gate files, add the palette-reconcile point, enumerate the landed editor set.
This commit is contained in:
@@ -584,26 +584,63 @@ not a forecast of them. If L2 starts before M11 lands, it designs against a movi
|
||||
|
||||
### 5.3 `L3` — VST editor + embed-strip restyle (GATED on Phase S landing on dev)
|
||||
|
||||
The ReaSampler 9000 VST editor (`IPlugView` LICE surface) and the S6 embed strip get the
|
||||
full kit treatment: kit cached-font text (§3.1 — the kit's current face, no bundled font),
|
||||
kit component draws, the **B palette with the three-accent pastel system**
|
||||
(primary lime / secondary teal / tertiary purple), the **pastel spectral keyboard strip**
|
||||
as the signature surface, hover/pressed/drag states everywhere.
|
||||
The ReaSampler 9000 VST editor (`IPlugView` LICE surface, `reasampler_editor.cpp`) and the
|
||||
S6 embed strip (`reasampler_embed.cpp`) get the full kit treatment: kit cached-font text
|
||||
(§3.1 — the kit's current face, no bundled font), kit component draws, the **B palette with
|
||||
the three-accent pastel system** (primary lime / secondary teal / tertiary purple), the
|
||||
**pastel spectral keyboard strip** as the signature surface, hover/pressed/drag states
|
||||
everywhere. The editor's landed component set (verified on the phase-s worktree) is broader
|
||||
than an early "editor + keyboard strip" sketch: a **capture-first browser** (search box +
|
||||
tabs + sample thumbnails, S10), **channel mono/stereo toggles** (S7), a **waveform pane with
|
||||
start + loop markers** (S11), the **keyboard strip + zone bars** (S10/S10-Z), and **ADSR +
|
||||
pitch sliders + Trigger/Gate & Varispeed/Preserve mode toggles** (S12/S15/S16) — every one of
|
||||
these is on the restyle surface.
|
||||
|
||||
**L3 is explicitly GATED: these surfaces do not exist on dev yet.** The VST editor, the
|
||||
embed strip, and the keyboard strip live in Phase S, which has landed on the phase-s
|
||||
worktree but **not on dev**. L3 cannot be built on dev until Phase S (at least the editor
|
||||
+ embed surfaces, S1/S6/S10) lands on dev. **The Phase L team must not chase these files
|
||||
on dev** — the gate is stated so they don't. Until Phase S merges to dev, L3 is a planned,
|
||||
blocked point; L1 and L2 are the live Phase L work.
|
||||
worktree but **not on dev**. L3 cannot be built on dev until the two Phase S drawing shells
|
||||
(`src/vst/reasampler_editor.cpp` + `reasampler_embed.cpp`) land on dev. **The Phase L team
|
||||
must not chase these files on dev** — the gate is stated so they don't. Until Phase S merges
|
||||
to dev, L3 is a planned, blocked point; L1 and L2 are the live Phase L work.
|
||||
|
||||
**Coordination contract (stated once, load-bearing):** Phase S's S10–S13 build their
|
||||
interaction UX with the *current* drawing and **adopt the L1 kit when it is available —
|
||||
they are not gated on Phase L.** Whichever lands first (L1 kit or S10–S13 UX), the kit is
|
||||
**Landed-reality check (product-designer, 2026-07-27 — read-only against the phase-s
|
||||
worktree).** Verified against the actual landed Phase S surfaces so L3's scope is grounded,
|
||||
not forecast:
|
||||
|
||||
- **All Phase S UI draw is in exactly two shells** — `reasampler_editor.cpp` (the
|
||||
`IPlugView` editor) and `reasampler_embed.cpp` (the S6 embed strip). Every other
|
||||
`src/vst/` UI file (`editor_geometry`, `keyboard_strip`, `waveform_view`,
|
||||
`capture_browser`, `param_slider`, `browser_scroll`, `embed_strip`) is a **pure
|
||||
geometry/hit-test module with zero LICE and zero draw** — the house pure/shell discipline
|
||||
held on the branch. L3 is therefore a **shell-side restyle of two files**; no geometry
|
||||
rework, and the pure hit-test coverage is already there to lean on.
|
||||
- **Both shells still draw at the floor.** They fill flat `LICE_FillRect` rectangles and
|
||||
pipe text through raw GDI `DrawTextA` — the exact "temple os" path §0/§1.1 describe. They
|
||||
do **not** include `theme.h` / `draw_kit.h`, do **not** call any kit `draw*`/`text()`, and
|
||||
use **no** `LICE_CachedFont`. So the coordination contract's "born in the kit" branch did
|
||||
**not** happen for the VST surfaces — L3 lands as a **full restyle**, and all three build
|
||||
points below are confirmed live (none is a no-op).
|
||||
- **There is a second palette to reconcile.** The editor shell carries its own local
|
||||
constants block — `kColBackground = RGB(28,28,30)`, accent `kColThumb/kColWaveform =
|
||||
RGB(120,200,160)`, `kColTitleBg = RGB(20,20,22)`, etc. — the **pre-L1 forest-green-on-near-
|
||||
black palette** this doc's §2 set out to replace, mirrored (partially) in the embed shell.
|
||||
That is a live divergence from the landed `theme` roles. Collapsing these two palettes into
|
||||
the one `theme` kit is the concrete "one kit, one look" reconcile L3 performs (§5.3 build
|
||||
point 2, PLAN.md §L3).
|
||||
- **The Phase S branch carries an *older* L1 kit.** The kit modules (`theme`, `draw_kit`,
|
||||
`component_geometry`) are present on the branch, but its `theme` predates dev's L4–L7
|
||||
palette revisions (the branch has only L1+L2). After Phase S merges to dev, L3 draws
|
||||
against **dev's** current `theme`/`draw_kit`, so the restyle consumes dev's pastel-on-grey
|
||||
roles, not the branch's stale copy — a merge-hygiene note, not a scope change.
|
||||
|
||||
**Coordination contract (stated once, load-bearing).** Phase S's editor/embed UX build
|
||||
their interaction UX with the *current* drawing and **adopt the L1 kit when it is available —
|
||||
they are not gated on Phase L.** Whichever lands first (L1 kit or the Phase S UX), the kit is
|
||||
the **one source of drawing**; when both exist, the Phase S surfaces draw through it, and
|
||||
L3 is the point that completes that adoption + applies the settled B+spectral look. If
|
||||
S10–S13 land on dev before L1, they draw in the current language and L3 restyles them; if
|
||||
L1 lands first, S10–S13 are born in the kit. Either way there is one kit, one look.
|
||||
L3 is the point that completes that adoption + applies the settled B+spectral look. **In the
|
||||
event that actually occurred, the Phase S surfaces reached the worktree with the current
|
||||
(flat, local-palette) drawing and did not adopt the kit — so L3 restyles them.** Either way
|
||||
there is one kit, one look.
|
||||
|
||||
### 5.4 Sequencing summary
|
||||
|
||||
|
||||
Reference in New Issue
Block a user