You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: .plans/stars-demo-editor-gaps-implementation-plan.md
+14-14Lines changed: 14 additions & 14 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -88,29 +88,29 @@ Mockups: `.plans/mockups/stars-bounds-event-no-code-actions.svg` and `.plans/moc
88
88
89
89
## Phase 7 — Assemble and Prove the Faithful Stars Workflow
90
90
91
-
-[] Create a documented test fixture/project with world `720 × 1280`, background `#000000`, one 3 × 3 white asset, and five 80-member Scatter formations named `Stars Blink 1` through `Stars Blink 5`.
92
-
-[] Add a `stars.py` parity integration spec that constructs that fixture via editor reducer actions or shared project-step builders, analogous to the Pattern Demo command-driven persistence/runtime tests:
91
+
-[x] Create a documented test fixture/project with world `720 × 1280`, background `#000000`, one 3 × 3 white asset, and five 80-member Scatter formations named `Stars Blink 1` through `Stars Blink 5`.
92
+
-[x] Add a `stars.py` parity integration spec that constructs that fixture via editor reducer actions or shared project-step builders, analogous to the Pattern Demo command-driven persistence/runtime tests:
93
93
- do not exercise manual GUI authoring with Playwright clicks for this parity test;
94
94
- call the same underlying editor commands used by the UI where possible (`update-scene-world`, asset import/create, begin/update/commit formation draft, create/update Event Blocks and attachments, set scene appearance);
95
95
- after each major build step, assert the persisted project shape matches the expected scene, group, member, attachment, and event-block state;
96
96
- compile/run the final project and verify the visible/timed `stars.py` behavior: 400 present members, five blink periods, velocity timeline checkpoints, wrap relocation, event-source X reroll, no vertical-column drift after repeated wraps, and black background;
97
97
- include save/reload and YAML export/import assertions for the finished fixture, using direct project load/snapshot helpers rather than GUI flows.
98
-
-[] Set each formation's scatter bounds to X `0..720`, Y `5..1285`, random RGB channel range `20..255`, and a distinct recorded seed so the five formations do not overlap deterministically.
99
-
-[] Apply `Blink Until` to the five formations at 200, 250, 300, 350, and 400 ms respectively, infinite.
100
-
-[] Apply the same permanent `Move Until` recipe/pattern to each formation's members with velocity `0,0`, bounds `(0,-5)..(720,1285)`, and Behavior `Wrap`.
101
-
-[] Add the same group-owned Event Block to each formation with Trigger `Bounds`, Event `Wrapped`, Axis `Y`, then add `Set Property` targeting `Event source`, Property `X`, Value `Random Range 0..720`; give each formation a distinct recorded wrap seed.
102
-
-[] In parallel on each formation, apply the same infinite Repeat velocity sequence:
98
+
-[x] Set each formation's scatter bounds to X `0..720`, Y `5..1285`, random RGB channel range `20..255`, and a distinct recorded seed so the five formations do not overlap deterministically.
99
+
-[x] Apply `Blink Until` to the five formations at 200, 250, 300, 350, and 400 ms respectively, infinite.
100
+
-[x] Apply the same permanent `Move Until` recipe/pattern to each formation's members with velocity `0,0`, bounds `(0,-5)..(720,1285)`, and Behavior `Wrap`.
101
+
-[x] Add the same group-owned Event Block to each formation with Trigger `Bounds`, Event `Wrapped`, Axis `Y`, then add `Set Property` targeting `Event source`, Property `X`, Value `Random Range 0..720`; give each formation a distinct recorded wrap seed.
102
+
-[x] In parallel on each formation, apply the same infinite Repeat velocity sequence:
103
103
- Wait 1000 ms at `vy=0`;
104
104
- Tween `vy` to `-240` over 2000 ms with ease-in;
105
105
- Wait 5000 ms;
106
106
- Tween `vy` to `+840` over 500 ms with ease-out;
107
107
- Wait 1500 ms;
108
108
- Tween `vy` to `0` over 2000 ms with ease-out;
109
109
- repeat.
110
-
-[] Verify the full cycle duration, velocity checkpoints, continuous movement, five independent blink rates, opposite-edge reentry, and X reroll against the reference behavior.
111
-
-[] Verify no obvious vertical columns emerge over repeated wraps and that all 400 members remain present.
112
-
-[] Verify save/reload, edit/play toggling, YAML export/import, undo/redo, and scene duplication retain all authored behavior.
113
-
-[] Measure draft editing with 80 members and total-scene play-mode frame rate, initial compile time, YAML size, and save latency with all 400 stars; record acceptable thresholds in tests or a short performance note rather than relying on subjective inspection.
110
+
-[x] Verify the full cycle duration, velocity checkpoints, continuous movement, five independent blink rates, opposite-edge reentry, and X reroll against the reference behavior.
111
+
-[x] Verify no obvious vertical columns emerge over repeated wraps and that all 400 members remain present.
112
+
-[x] Verify save/reload, edit/play toggling, YAML export/import, undo/redo, and scene duplication retain all authored behavior.
113
+
-[x] Measure draft editing with 80 members and total-scene play-mode frame rate, initial compile time, YAML size, and save latency with all 400 stars; record acceptable thresholds in tests or a short performance note rather than relying on subjective inspection.
114
114
115
115
## Phase 8 — Workflow Documentation and Required Verification
116
116
@@ -123,17 +123,17 @@ Mockups: `.plans/mockups/stars-bounds-event-no-code-actions.svg` and `.plans/moc
123
123
- extend `A43`/`A46` with event-source target binding and Set Property value sources.
124
124
-[x] Update `.repo-memory/product-memory.md` only if implementation establishes a durable rule not already covered (likely deterministic authored randomization and authored tint surviving selection styling).
125
125
-[x] Run focused unit/component/integration tests for every touched model, editor helper, compiler, runtime action, and Phaser scene.
126
-
-[] Run TypeScript/build validation and the repository's standard unit suite.
126
+
-[x] Run TypeScript/build validation and the repository's standard unit suite.
127
127
-[x] Run required GUI smoke: `npm run test:e2e -- --project=chromium --grep @smoke`.
128
-
-[] Run the new stars workflow E2E and any directly affected formation, attachment, serialization, play-mode, and persistence specs in Chromium.
128
+
-[x] Run the new stars workflow E2E and any directly affected formation, attachment, serialization, play-mode, and persistence specs in Chromium.
129
129
-[ ] Inspect each shipped UI state against the five SVG mockups at normal and narrow inspector widths, light and dark themes, and supported UI scales.
130
130
-[x] Confirm `playwright.config.ts` still uses the default worker count of 3.
131
131
-[x] Confirm no files under `/home/bcorfman/dev/arcadeactions/` changed.
132
132
133
133
## Definition of Done
134
134
135
135
-[ ] Every checkbox above is complete or explicitly moved into a separately approved follow-up plan with rationale.
136
-
-[ ] A user can author and persist the complete stars demo without hand-editing YAML or writing runtime code.
136
+
-[ ] A user can author and persist the complete stars demo using the editor UI without hand-editing YAML or writing runtime code.
137
137
-[ ] The primary workflows remain the existing formation draft, inspector, and action attachment paths.
138
138
-[ ] Old projects load without visual or behavioral drift.
139
139
-[ ] The five-formation, 400-star fixture meets recorded editor and runtime performance thresholds.
0 commit comments