Skip to content

Commit 038f4ff

Browse files
author
DavidQ
committed
PR_10_6V
1 parent e9dcddd commit 038f4ff

13 files changed

Lines changed: 484 additions & 39 deletions

File tree

docs/dev/PROJECT_INSTRUCTIONS.md

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,53 @@ ZIP STANDARD (ENFORCED)
108108
Commit Comment:
109109
<description> - <PR info>
110110

111+
---
112+
113+
## 🔧 ZIP DELIVERY VALIDATION (MANDATORY)
114+
115+
Before returning any ZIP, ChatGPT MUST:
116+
117+
1. Physically create the ZIP file
118+
2. Verify the file exists on disk
119+
3. Verify file size > 0
120+
4. List contents to confirm correct repo structure
121+
5. Use a NEW filename for every attempt (no reuse)
122+
6. Place ZIP at root path: /mnt/data/
123+
7. Never reuse a previous file handle or path
124+
125+
---
126+
127+
## 📦 ZIP NAMING PATTERN (ENFORCED)
128+
129+
All ZIP files MUST follow:
130+
131+
PR_<major>_<minor>_<timestamp>.zip
132+
133+
Example:
134+
PR_10_6X_20260427_01.zip
135+
136+
---
137+
138+
## 🚫 DELIVERY CONSTRAINTS
139+
140+
- Use shortest possible valid filename
141+
- Avoid nested paths
142+
- Avoid large payloads when possible
143+
- Exactly one ZIP per response
144+
145+
---
146+
147+
## 🛑 FAILURE HANDLING (MANDATORY)
148+
149+
If ZIP delivery fails more than once:
150+
151+
- Do NOT retry with same name
152+
- Generate a new filename with timestamp
153+
- Rebuild ZIP from scratch
154+
- If still failing, STOP and provide inline content for manual application
155+
156+
---
157+
111158
## 🔒 EXECUTION DEFAULTS (MANDATORY)
112159

113160
### ALWAYS CONTINUE
@@ -131,10 +178,14 @@ Commit Comment:
131178
- Continue automatically
132179
- Do not stop unless blocked
133180

181+
---
182+
134183
## Productization Rules
135184
- Do not create standalone showcase tracks in future roadmaps
136185
- Fold showcase importance into the main feature or sample title when needed
137186

187+
---
188+
138189
## Roadmap Instruction Move Guards
139190
- If roadmap content is moved to `PROJECT_INSTRUCTIONS.md`, move it and do not delete it without relocation.
140191
- Ensure destination text exists before removing the source text.
@@ -144,9 +195,12 @@ Commit Comment:
144195
- Do not modify roadmap content during cleanup work.
145196
- Only update status [ ] [.] [x] in roadmap content during cleanup work.
146197

198+
---
199+
147200
## EXECUTION EFFICIENCY
148201

149202
- Bundle PRs whenever it is safe and testable to reduce overall timeline and churn.
203+
- Prefer fewer, higher-quality PR bundles over many small retries
150204
- Codex must always return a ZIP artifact at:
151205
<project folder>/tmp/<PR_NAME>.zip
152206
- Never ask whether to create the next ZIP for Codex; always assume it is required.
@@ -158,6 +212,8 @@ Commit Comment:
158212
- Update Roadmap stutus every PR.
159213
- Every PRs must improve roadmap and be testable.
160214

215+
---
216+
161217
# BUILD_PR_LEVEL_19_20_TOOLCHAIN_ROADMAP_GUARD_ENFORCEMENT
162218

163219
## Purpose
@@ -192,6 +248,8 @@ Enforce the master roadmap guard for future Codex executions during the Phase 19
192248
- any roadmap update is status-only unless explicit additive content is required by the PR
193249
- bundle remains docs-only
194250

251+
---
252+
195253
## Codex Anti-Pattern Guard
196254

197255
These rules are mandatory for every Codex BUILD execution:
@@ -206,6 +264,8 @@ These rules are mandatory for every Codex BUILD execution:
206264
- Do not change unrelated files.
207265
- Before finishing, review the diff and remove unused, redundant, pass-through, or alias variables.
208266

267+
---
268+
209269
## Current Recovery Lane
210270

211271
The active UAT lane is opening Workspace Manager from a `games/index.html` game tile.
Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
# PR 10.6V Final DoD Validation
2+
3+
Date: 2026-04-27
4+
PR: 10.6V
5+
Build Doc: `docs/pr/PR_10_6V_FINAL_DOD.md`
6+
7+
## Scope Executed
8+
- Kept scope to Tool UI readiness enforcement only.
9+
- No fallback/demo data added.
10+
- No hardcoded sample paths introduced.
11+
- Manifest-driven loading contracts preserved.
12+
13+
## Minimal Implementation Deltas
14+
- Updated diagnostics taxonomy support in [tools/shared/toolLoadDiagnostics.js](/c:/Users/davidq/Documents/GitHub/HTML-JavaScript-Gaming/tools/shared/toolLoadDiagnostics.js) to include required classes:
15+
- `success`, `missing`, `wrong-path`, `wrong-shape`, `empty`, `defaulted`, `disabled`, `unselected`, `lifecycle-reset`
16+
- Enforced first valid default selection in Asset Browser when approved assets exist:
17+
- [tools/Asset Browser/main.js](/c:/Users/davidq/Documents/GitHub/HTML-JavaScript-Gaming/tools/Asset%20Browser/main.js)
18+
- Tightened readiness classifications in required tools:
19+
- [tools/Asset Browser/main.js](/c:/Users/davidq/Documents/GitHub/HTML-JavaScript-Gaming/tools/Asset%20Browser/main.js)
20+
- [tools/Vector Asset Studio/main.js](/c:/Users/davidq/Documents/GitHub/HTML-JavaScript-Gaming/tools/Vector%20Asset%20Studio/main.js)
21+
- [tools/Vector Map Editor/editor/VectorMapEditorApp.js](/c:/Users/davidq/Documents/GitHub/HTML-JavaScript-Gaming/tools/Vector%20Map%20Editor/editor/VectorMapEditorApp.js)
22+
- [tools/Sprite Editor/modules/spriteEditorApp.js](/c:/Users/davidq/Documents/GitHub/HTML-JavaScript-Gaming/tools/Sprite%20Editor/modules/spriteEditorApp.js)
23+
24+
## Required Validation Commands
25+
1. `npm run test:launch-smoke:games`
26+
- Result: PASS
27+
- Evidence: `PASS=12 FAIL=0 TOTAL=12`
28+
29+
2. `npm run test:sample-standalone:data-flow`
30+
- Result: PASS
31+
- Evidence:
32+
- `totalSampleToolPayloadFiles: 64`
33+
- `totalRoundtripRows: 64`
34+
- `schemaFailures: []`
35+
- `contractFailures: []`
36+
- `roundtripPathFailures: []`
37+
- `genericFailures: []`
38+
39+
## DoD Rule Validation
40+
1. Global selectable-control rule: PASS
41+
- Asset Browser now auto-selects first valid approved asset when no prior/shared selection exists.
42+
- Vector Map Editor retains default first object selection behavior and diagnostics.
43+
- Vector Asset Studio and Sprite Editor readiness diagnostics now explicitly classify unselected states.
44+
45+
2. Global control enablement rule: PASS
46+
- Sprite Editor control diagnostics now differentiate `disabled` from missing/unselected when data is valid but controls remain disabled.
47+
- Vector Map Editor selected-object readiness differentiates disabled controls from unselected state.
48+
49+
3. Global lifecycle/timer rule: PASS
50+
- Lifecycle instability now reported as `lifecycle-reset` across in-scope tool readiness/final readiness diagnostics.
51+
- No timer/fallback lifecycle reset behavior was introduced in this PR.
52+
53+
4. Empty-state rule: PASS
54+
- Asset Browser preserves explicit empty-state messaging for loaded-empty/source-missing/source-wrong-shape conditions.
55+
- No fabricated approved assets were introduced.
56+
57+
## Tool-specific Acceptance
58+
1. Vector Asset Studio: PASS
59+
- Palette/paint/stroke readiness remains bound to loaded inputs.
60+
- Missing selection states now classify as `unselected`; lifecycle instability classifies as `lifecycle-reset`.
61+
62+
2. Vector Map Editor: PASS
63+
- Default object selection remains enforced when objects exist.
64+
- Selected-object diagnostics now distinguish `unselected` vs `disabled`.
65+
66+
3. Asset Browser / Import Hub: PASS
67+
- Default first approved-asset selection added.
68+
- Selected preview/import readiness now report `unselected` when data exists but selection is absent.
69+
- Empty-state/source-state behavior retained and explicit.
70+
71+
4. State Inspector: PASS (no 10.6V code change required)
72+
- Existing 10.6U behavior remains in place: clear manual JSON guidance, no misleading initial blank-input failure state.
73+
74+
5. Sprite Editor sample 0219: PASS (no 10.6V code change required)
75+
- Static expectation clarification from 10.6U remains intact.
76+
77+
## UAT Gate Summary
78+
- Missing required controls: 0 known (execution-backed checks show no contract/schema/path failures)
79+
- Disabled controls with valid data: 0 known unresolved in scoped tools after readiness classification hardening
80+
- Missing default selections with selectable data: 0 in scoped tool paths addressed by this PR
81+
- Lifecycle/timer reset findings: 0 known unresolved in scoped diagnostics after `lifecycle-reset` alignment
82+
- Unclear empty states: 0 known unresolved in scoped Asset Browser flows
83+
84+
Gate Decision: UAT READY (for PR 10.6V scope)
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
# PR 10.6V Remaining UAT Gate
2+
3+
Date: 2026-04-27
4+
PR: 10.6V
5+
6+
## UAT Ready Decision
7+
UAT ready: YES
8+
9+
## Gate Checklist
10+
1. Missing required controls
11+
- Status: PASS
12+
- Count: 0 known unresolved in 10.6V scope
13+
14+
2. Disabled controls when valid data exists
15+
- Status: PASS
16+
- Count: 0 known unresolved in 10.6V scope
17+
18+
3. Missing default selections when selectable data exists
19+
- Status: PASS
20+
- Count: 0 known unresolved in 10.6V scope
21+
22+
4. Lifecycle/timer reset side effects
23+
- Status: PASS
24+
- Count: 0 known unresolved in 10.6V scope
25+
26+
5. Unclear empty states
27+
- Status: PASS
28+
- Count: 0 known unresolved in 10.6V scope
29+
30+
## Execution Evidence
31+
- `npm run test:launch-smoke:games` => PASS (12/12)
32+
- `npm run test:sample-standalone:data-flow` => PASS
33+
- `schemaFailures: []`
34+
- `contractFailures: []`
35+
- `roundtripPathFailures: []`
36+
- `genericFailures: []`
37+
38+
## Remaining Items
39+
- None identified within PR 10.6V scope.
Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,20 @@
11
# Launch Smoke Report
22

3-
Generated: 2026-04-27T22:24:41.934Z
3+
Generated: 2026-04-27T22:54:28.975Z
44

5-
Filters: games=false, samples=true, tools=false, sampleRange=0219-0227
5+
Filters: games=true, samples=false, tools=false, sampleRange=all
66

77
| Status | Type | Label | Path | Notes | Steps |
88
| --- | --- | --- | --- | --- | --- |
9-
| PASS | sample | 0219 | samples\phase-02\0219\index.html | | npm install --prefix ./tmp ws → npm run test:launch-smoke |
10-
| PASS | sample | 0220 | samples\phase-02\0220\index.html | | npm install --prefix ./tmp ws → npm run test:launch-smoke |
11-
| PASS | sample | 0221 | samples\phase-02\0221\index.html | | npm install --prefix ./tmp ws → npm run test:launch-smoke |
12-
| PASS | sample | 0222 | samples\phase-02\0222\index.html | | npm install --prefix ./tmp ws → npm run test:launch-smoke |
13-
| PASS | sample | 0223 | samples\phase-02\0223\index.html | | npm install --prefix ./tmp ws → npm run test:launch-smoke |
14-
| PASS | sample | 0224 | samples\phase-02\0224\index.html | | npm install --prefix ./tmp ws → npm run test:launch-smoke |
15-
| PASS | sample | 0225 | samples\phase-02\0225\index.html | | npm install --prefix ./tmp ws → npm run test:launch-smoke |
16-
| PASS | sample | 0226 | samples\phase-02\0226\index.html | | npm install --prefix ./tmp ws → npm run test:launch-smoke |
17-
| PASS | sample | 0227 | samples\phase-02\0227\index.html | | npm install --prefix ./tmp ws → npm run test:launch-smoke |
9+
| PASS | game | _template | games\_template\index.html | | npm install --prefix ./tmp ws → npm run test:launch-smoke |
10+
| PASS | game | AITargetDummy | games\AITargetDummy\index.html | | npm install --prefix ./tmp ws → npm run test:launch-smoke |
11+
| PASS | game | Asteroids | games\Asteroids\index.html | | npm install --prefix ./tmp ws → npm run test:launch-smoke |
12+
| PASS | game | Bouncing-ball | games\Bouncing-ball\index.html | | npm install --prefix ./tmp ws → npm run test:launch-smoke |
13+
| PASS | game | Breakout | games\Breakout\index.html | | npm install --prefix ./tmp ws → npm run test:launch-smoke |
14+
| PASS | game | GravityWell | games\GravityWell\index.html | | npm install --prefix ./tmp ws → npm run test:launch-smoke |
15+
| PASS | game | Pacman | games\Pacman\index.html | | npm install --prefix ./tmp ws → npm run test:launch-smoke |
16+
| PASS | game | Pong | games\Pong\index.html | | npm install --prefix ./tmp ws → npm run test:launch-smoke |
17+
| PASS | game | SolarSystem | games\SolarSystem\index.html | | npm install --prefix ./tmp ws → npm run test:launch-smoke |
18+
| PASS | game | SpaceDuel | games\SpaceDuel\index.html | | npm install --prefix ./tmp ws → npm run test:launch-smoke |
19+
| PASS | game | SpaceInvaders | games\SpaceInvaders\index.html | | npm install --prefix ./tmp ws → npm run test:launch-smoke |
20+
| PASS | game | vector-arcade-sample | games\vector-arcade-sample\index.html | | npm install --prefix ./tmp ws → npm run test:launch-smoke |
1.24 KB
Binary file not shown.

0 commit comments

Comments
 (0)