Skip to content

Commit 06cbce7

Browse files
committed
Update MVP tool build order - PR_26160_087-mvp-tool-build-order
1 parent a13d754 commit 06cbce7

7 files changed

Lines changed: 183 additions & 53 deletions

File tree

docs_build/dev/reports/coverage_changed_js_guardrail.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ Source: Playwright/Chromium built-in V8 coverage from the active Playwright run.
88
Changed runtime JS files considered:
99
(0%) src/dev-runtime/guest-seeds/tool-metadata-inventory.js - WARNING: changed runtime JS file was not collected by Playwright V8 coverage; advisory only
1010
(0%) toolbox/toolRegistry.js - WARNING: changed runtime JS file was not collected by Playwright V8 coverage; advisory only
11-
(78%) admin/tool-votes.js - executed lines 406/406; executed functions 43/55
12-
(84%) toolbox/tools-page-accordions.js - executed lines 960/960; executed functions 92/109
11+
(93%) admin/tool-votes.js - executed lines 406/406; executed functions 53/57
12+
(96%) toolbox/tools-page-accordions.js - executed lines 960/960; executed functions 110/114
1313

1414
Guardrail warnings:
1515
(0%) src/dev-runtime/guest-seeds/tool-metadata-inventory.js - WARNING: changed runtime JS file missing from coverage; advisory only
Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
# PR_26160_087 MVP Tool Build Order Report
2+
3+
## Branch Validation
4+
5+
| Check | Result | Evidence |
6+
| --- | --- | --- |
7+
| Current branch is `main` | PASS | `git branch --show-current` returned `main` before changes. |
8+
9+
## Requirement Checklist
10+
11+
| Requirement | Result | Evidence |
12+
| --- | --- | --- |
13+
| Update DB-backed tool order for the paddle + ball MVP path | PASS WITH BLOCKER | Existing DB-backed MVP rows were reordered in `src/dev-runtime/guest-seeds/tool-metadata-inventory.js`. `Vector Asset Studio` is not present in the current 43-tool inventory or `toolbox/` routes, so no DB-backed row was invented. |
14+
| Move Project Journey after Game Testing for MVP 2 guidance | PASS | `Project Journey` now sorts after `Game Testing` and `Publish` in the compact existing MVP order. |
15+
| Include Publish in the MVP path | PASS | `Publish` is now in the existing MVP order before `Project Journey`. |
16+
| Move Particles group from Audio to Design | PASS | `Particles` now uses `category: "Design"`, `colorGroup: "tool-group-design"`, and `toolboxGroup: "Content"`. |
17+
| Preserve MIDI and Music as separate tools | PASS | `MIDI` and `Music` remain separate rows with Audio grouping. |
18+
| Ensure every MVP-path tool is beta or complete only when functionally usable | PASS WITH BLOCKERS | Existing functional tools remain `beta` or `complete`. Planned/wireframe/static tools were not falsely promoted; blockers are listed below. |
19+
| Keep order/group/status changes DB-backed | PASS | Changes are limited to DB-backed seed metadata and tests. Toolbox/Admin pages still consume API/service-backed metadata. |
20+
| Do not hardcode order/group/status in pages | PASS | No active page order/group/status hardcoding was added. |
21+
| Do not use inline script/style/event handlers | PASS | No HTML/runtime inline handlers or styles were added. |
22+
23+
## MVP Path Readiness
24+
25+
| Requested Order | Tool | Current DB Status | Result | Notes |
26+
| --- | --- | --- | --- | --- |
27+
| 1 | Project Workspace | beta | PASS | Functionally usable current project workspace surface. |
28+
| 2 | Game Design | beta | PASS | Functionally usable current design repository/tool surface. |
29+
| 3 | Colors | complete | PASS | Complete Colors tool remains complete. |
30+
| 4 | Assets | beta | PASS | Functionally usable current asset repository/tool surface. |
31+
| 5 | Vector Asset Studio | missing | BLOCKER | No DB-backed tool metadata row and no `toolbox/vector-asset-studio/` page exists. Not invented in this PR. |
32+
| 6 | Game Configuration | beta | PASS | Functionally usable current configuration surface. |
33+
| 7 | Objects | planned | BLOCKER | Existing page is a static/wireframe planning surface, not functionally usable for the MVP. |
34+
| 8 | Controls | planned | BLOCKER | Existing page is a static/wireframe planning surface, not functionally usable for the MVP. |
35+
| 9 | Hitboxes | planned | BLOCKER | Existing page is a static/wireframe planning surface, not functionally usable for the MVP. |
36+
| 10 | Events | planned | BLOCKER | Existing page is a static/wireframe planning surface, not functionally usable for the MVP. |
37+
| 11 | Saved Data | wireframe | BLOCKER | Existing page is wireframe-only and not functionally usable for the MVP. |
38+
| 12 | Debug | planned | BLOCKER | Existing page is a static/wireframe planning surface, not functionally usable for the MVP. |
39+
| 13 | Game Testing | planned | BLOCKER | Existing page is a static/wireframe planning surface, not functionally usable for the MVP. |
40+
| 14 | Publish | planned | BLOCKER | Existing publish page is planned/static and not functionally usable for deploy/publish. |
41+
| 15 | Project Journey | beta | PASS | Beta guidance tool moved after Game Testing/Publish in the compact DB-backed order. |
42+
43+
## Effective Existing DB-Backed MVP Order
44+
45+
Because `Vector Asset Studio` has no current DB-backed row, the existing rows now sort as:
46+
47+
1. Project Workspace
48+
2. Game Design
49+
3. Colors
50+
4. Assets
51+
5. Game Configuration
52+
6. Objects
53+
7. Controls
54+
8. Hitboxes
55+
9. Events
56+
10. Saved Data
57+
11. Debug
58+
12. Game Testing
59+
13. Publish
60+
14. Project Journey
61+
62+
## Validation
63+
64+
| Lane | Result | Notes |
65+
| --- | --- | --- |
66+
| Branch guard | PASS | Current branch was `main`. |
67+
| Metadata contract probe | PASS | Node probe verified compact MVP order, missing `Vector Asset Studio`, `Particles` Design grouping, and separate MIDI/Music rows. |
68+
| Changed-file syntax | PASS | `node --check` passed for changed JS/test files. |
69+
| Diff hygiene | PASS | `git diff --check` completed with line-ending normalization warnings only. |
70+
| Toolbox/Admin metadata SSoT Playwright | PASS | `npx playwright test tests/playwright/tools/ToolboxAdminMetadataSsot.spec.mjs --reporter=line` passed 4/4. |
71+
| Toolbox Build Path Playwright | PASS | `npx playwright test tests/playwright/tools/BuildPathProgressSimplification.spec.mjs --reporter=line` passed 4/4. |
72+
| Toolbox route/status Playwright | PASS | `npx playwright test tests/playwright/tools/ToolboxRoutePages.spec.mjs --reporter=line` passed 8/8. |
73+
74+
## Impacted Lanes
75+
76+
- Impacted lane: Toolbox/Admin Tool Votes DB-backed metadata and Build Path ordering.
77+
- Playwright impacted: Yes.
78+
- Samples skipped: Safe to skip because no sample JSON, game runtime, or sample loader/framework changed.
79+
- Full samples validation: Not run per request.
80+
81+
## Manual Test Notes
82+
83+
- Open `/toolbox/index.html`, switch to Build Path, and confirm the beta/complete rows sort Project Workspace, Game Design, Colors, Assets, Game Configuration, Project Journey.
84+
- In Admin > Tool Votes, confirm order values are whole numbers and Particles appears as Design while MIDI and Music remain separate Audio tools.

docs_build/dev/reports/playwright_v8_coverage_report.txt

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -12,25 +12,31 @@ Note: entry percentages use function coverage when available, otherwise line cov
1212
Note: coverage entries are aggregated across every page/tool where coverageReporter.start(page) and coverageReporter.stop(page) ran.
1313

1414
Exercised tool entry points detected:
15-
(81%) Toolbox Index - exercised 3 runtime JS files
15+
(70%) Toolbox Index - exercised 9 runtime JS files
1616
(0%) Tool Template V2 - not exercised by this Playwright run
1717
(74%) Theme V2 Shared JS - exercised 2 runtime JS files
1818

1919
Changed runtime JS files covered:
2020
(0%) src/dev-runtime/guest-seeds/tool-metadata-inventory.js - WARNING: changed runtime JS file was not collected by Playwright V8 coverage; advisory only
2121
(0%) toolbox/toolRegistry.js - WARNING: changed runtime JS file was not collected by Playwright V8 coverage; advisory only
22-
(78%) admin/tool-votes.js - executed lines 406/406; executed functions 43/55
23-
(84%) toolbox/tools-page-accordions.js - executed lines 960/960; executed functions 92/109
22+
(93%) admin/tool-votes.js - executed lines 406/406; executed functions 53/57
23+
(96%) toolbox/tools-page-accordions.js - executed lines 960/960; executed functions 110/114
2424

2525
Files with executed line/function counts where available:
2626
(38%) src/engine/api/session-api-client.js - executed lines 34/34; executed functions 3/8
27-
(50%) src/engine/api/toolbox-votes-api-client.js - executed lines 46/46; executed functions 3/6
28-
(53%) src/engine/api/server-api-client.js - executed lines 159/159; executed functions 10/19
27+
(55%) toolbox/project-journey/project-journey.js - executed lines 1002/1002; executed functions 54/99
28+
(58%) src/engine/api/server-api-client.js - executed lines 159/159; executed functions 11/19
29+
(58%) toolbox/colors/colors.js - executed lines 1848/1848; executed functions 119/204
2930
(64%) assets/theme-v2/js/tool-display-mode.js - executed lines 209/209; executed functions 9/14
30-
(64%) toolbox/tool-registry-api-client.js - executed lines 152/152; executed functions 16/25
31+
(71%) toolbox/assets/assets.js - executed lines 519/519; executed functions 42/59
3132
(77%) assets/theme-v2/js/gamefoundry-partials.js - executed lines 603/603; executed functions 43/56
32-
(78%) admin/tool-votes.js - executed lines 406/406; executed functions 43/55
33-
(84%) toolbox/tools-page-accordions.js - executed lines 960/960; executed functions 92/109
33+
(83%) src/engine/api/toolbox-votes-api-client.js - executed lines 46/46; executed functions 5/6
34+
(89%) toolbox/tool-registry-api-client.js - executed lines 152/152; executed functions 25/28
35+
(93%) admin/tool-votes.js - executed lines 406/406; executed functions 53/57
36+
(96%) toolbox/tools-page-accordions.js - executed lines 960/960; executed functions 110/114
37+
(100%) toolbox/assets/assets-api-client.js - executed lines 17/17; executed functions 3/3
38+
(100%) toolbox/colors/palette-api-client.js - executed lines 28/28; executed functions 4/4
39+
(100%) toolbox/project-journey/project-journey-api-client.js - executed lines 13/13; executed functions 2/2
3440
(100%) toolbox/project-workspace/project-workspace-api-client.js - executed lines 12/12; executed functions 2/2
3541

3642
Uncovered or low-coverage changed JS files:
@@ -39,7 +45,9 @@ Uncovered or low-coverage changed JS files:
3945

4046
Changed JS files considered:
4147
(0%) src/dev-runtime/guest-seeds/tool-metadata-inventory.js - changed JS file not collected as browser runtime coverage
48+
(0%) tests/playwright/tools/BuildPathProgressSimplification.spec.mjs - changed JS file not collected as browser runtime coverage
4249
(0%) tests/playwright/tools/ToolboxAdminMetadataSsot.spec.mjs - changed JS file not collected as browser runtime coverage
50+
(0%) tests/playwright/tools/ToolboxRoutePages.spec.mjs - changed JS file not collected as browser runtime coverage
4351
(0%) toolbox/toolRegistry.js - changed JS file not collected as browser runtime coverage
44-
(78%) admin/tool-votes.js - changed JS file with browser V8 coverage
45-
(84%) toolbox/tools-page-accordions.js - changed JS file with browser V8 coverage
52+
(93%) admin/tool-votes.js - changed JS file with browser V8 coverage
53+
(96%) toolbox/tools-page-accordions.js - changed JS file with browser V8 coverage

src/dev-runtime/guest-seeds/tool-metadata-inventory.js

Lines changed: 28 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ export const TOOL_REGISTRY = Object.freeze([
7777
"category": "AI",
7878
"colorGroup": "tool-group-ai",
7979
"active": true,
80-
"order": 1,
80+
"order": 15,
8181
"requiredForPlayable": false,
8282
"requiredForTestable": false,
8383
"requiredForPublish": false,
@@ -108,7 +108,7 @@ export const TOOL_REGISTRY = Object.freeze([
108108
"category": "Build/Create",
109109
"colorGroup": "tool-group-build",
110110
"active": true,
111-
"order": 2,
111+
"order": 1,
112112
"requiredForPlayable": true,
113113
"requiredForTestable": true,
114114
"requiredForPublish": true,
@@ -140,7 +140,7 @@ export const TOOL_REGISTRY = Object.freeze([
140140
"category": "Build/Create",
141141
"colorGroup": "tool-group-build",
142142
"active": true,
143-
"order": 3,
143+
"order": 14,
144144
"requiredForPlayable": false,
145145
"requiredForTestable": true,
146146
"requiredForPublish": true,
@@ -175,7 +175,7 @@ export const TOOL_REGISTRY = Object.freeze([
175175
"category": "Design",
176176
"colorGroup": "tool-group-design",
177177
"active": true,
178-
"order": 4,
178+
"order": 2,
179179
"requiredForPlayable": true,
180180
"requiredForTestable": true,
181181
"requiredForPublish": true,
@@ -256,7 +256,7 @@ export const TOOL_REGISTRY = Object.freeze([
256256
"category": "Design",
257257
"colorGroup": "tool-group-design",
258258
"active": true,
259-
"order": 6,
259+
"order": 4,
260260
"requiredForPlayable": true,
261261
"requiredForTestable": true,
262262
"requiredForPublish": true,
@@ -291,7 +291,7 @@ export const TOOL_REGISTRY = Object.freeze([
291291
"category": "Design",
292292
"colorGroup": "tool-group-design",
293293
"active": true,
294-
"order": 7,
294+
"order": 3,
295295
"requiredForPlayable": true,
296296
"requiredForTestable": true,
297297
"requiredForPublish": true,
@@ -325,7 +325,7 @@ export const TOOL_REGISTRY = Object.freeze([
325325
"category": "Design",
326326
"colorGroup": "tool-group-design",
327327
"active": true,
328-
"order": 8,
328+
"order": 16,
329329
"requiredForPlayable": false,
330330
"requiredForTestable": false,
331331
"requiredForPublish": true,
@@ -356,7 +356,7 @@ export const TOOL_REGISTRY = Object.freeze([
356356
"category": "Design",
357357
"colorGroup": "tool-group-design",
358358
"active": true,
359-
"order": 9,
359+
"order": 17,
360360
"requiredForPlayable": true,
361361
"requiredForTestable": true,
362362
"requiredForPublish": true,
@@ -387,7 +387,7 @@ export const TOOL_REGISTRY = Object.freeze([
387387
"category": "Design",
388388
"colorGroup": "tool-group-design",
389389
"active": true,
390-
"order": 10,
390+
"order": 18,
391391
"requiredForPlayable": true,
392392
"requiredForTestable": true,
393393
"requiredForPublish": true,
@@ -418,7 +418,7 @@ export const TOOL_REGISTRY = Object.freeze([
418418
"category": "Design",
419419
"colorGroup": "tool-group-design",
420420
"active": true,
421-
"order": 11,
421+
"order": 6,
422422
"requiredForPlayable": true,
423423
"requiredForTestable": true,
424424
"requiredForPublish": true,
@@ -457,7 +457,7 @@ export const TOOL_REGISTRY = Object.freeze([
457457
"category": "Design",
458458
"colorGroup": "tool-group-design",
459459
"active": true,
460-
"order": 12,
460+
"order": 19,
461461
"requiredForPlayable": true,
462462
"requiredForTestable": true,
463463
"requiredForPublish": true,
@@ -495,7 +495,7 @@ export const TOOL_REGISTRY = Object.freeze([
495495
"category": "Design",
496496
"colorGroup": "tool-group-design",
497497
"active": true,
498-
"order": 13,
498+
"order": 20,
499499
"requiredForPlayable": true,
500500
"requiredForTestable": true,
501501
"requiredForPublish": false,
@@ -526,7 +526,7 @@ export const TOOL_REGISTRY = Object.freeze([
526526
"category": "Audio",
527527
"colorGroup": "tool-group-audio",
528528
"active": true,
529-
"order": 14,
529+
"order": 21,
530530
"requiredForPlayable": false,
531531
"requiredForTestable": false,
532532
"requiredForPublish": false,
@@ -557,7 +557,7 @@ export const TOOL_REGISTRY = Object.freeze([
557557
"category": "Audio",
558558
"colorGroup": "tool-group-audio",
559559
"active": true,
560-
"order": 15,
560+
"order": 22,
561561
"requiredForPlayable": false,
562562
"requiredForTestable": false,
563563
"requiredForPublish": false,
@@ -588,7 +588,7 @@ export const TOOL_REGISTRY = Object.freeze([
588588
"category": "Audio",
589589
"colorGroup": "tool-group-audio",
590590
"active": true,
591-
"order": 16,
591+
"order": 23,
592592
"requiredForPlayable": false,
593593
"requiredForTestable": false,
594594
"requiredForPublish": false,
@@ -619,7 +619,7 @@ export const TOOL_REGISTRY = Object.freeze([
619619
"category": "Audio",
620620
"colorGroup": "tool-group-audio",
621621
"active": true,
622-
"order": 17,
622+
"order": 24,
623623
"requiredForPlayable": false,
624624
"requiredForTestable": false,
625625
"requiredForPublish": false,
@@ -650,7 +650,7 @@ export const TOOL_REGISTRY = Object.freeze([
650650
"category": "Build/Create",
651651
"colorGroup": "tool-group-build",
652652
"active": true,
653-
"order": 18,
653+
"order": 25,
654654
"requiredForPlayable": true,
655655
"requiredForTestable": true,
656656
"requiredForPublish": true,
@@ -684,7 +684,7 @@ export const TOOL_REGISTRY = Object.freeze([
684684
"category": "Play",
685685
"colorGroup": "tool-group-play",
686686
"active": true,
687-
"order": 19,
687+
"order": 12,
688688
"requiredForPlayable": true,
689689
"requiredForTestable": true,
690690
"requiredForPublish": true,
@@ -717,7 +717,7 @@ export const TOOL_REGISTRY = Object.freeze([
717717
"category": "Platform",
718718
"colorGroup": "tool-group-platform",
719719
"active": true,
720-
"order": 20,
720+
"order": 7,
721721
"requiredForPlayable": true,
722722
"requiredForTestable": true,
723723
"requiredForPublish": true,
@@ -748,7 +748,7 @@ export const TOOL_REGISTRY = Object.freeze([
748748
"category": "Platform",
749749
"colorGroup": "tool-group-platform",
750750
"active": true,
751-
"order": 21,
751+
"order": 8,
752752
"requiredForPlayable": true,
753753
"requiredForTestable": true,
754754
"requiredForPublish": true,
@@ -779,7 +779,7 @@ export const TOOL_REGISTRY = Object.freeze([
779779
"category": "Platform",
780780
"colorGroup": "tool-group-platform",
781781
"active": true,
782-
"order": 22,
782+
"order": 10,
783783
"requiredForPlayable": false,
784784
"requiredForTestable": false,
785785
"requiredForPublish": false,
@@ -811,7 +811,7 @@ export const TOOL_REGISTRY = Object.freeze([
811811
"category": "Platform",
812812
"colorGroup": "tool-group-platform",
813813
"active": true,
814-
"order": 23,
814+
"order": 11,
815815
"requiredForPlayable": true,
816816
"requiredForTestable": true,
817817
"requiredForPublish": true,
@@ -842,7 +842,7 @@ export const TOOL_REGISTRY = Object.freeze([
842842
"category": "Platform",
843843
"colorGroup": "tool-group-platform",
844844
"active": true,
845-
"order": 24,
845+
"order": 26,
846846
"requiredForPlayable": true,
847847
"requiredForTestable": true,
848848
"requiredForPublish": true,
@@ -873,7 +873,7 @@ export const TOOL_REGISTRY = Object.freeze([
873873
"category": "Platform",
874874
"colorGroup": "tool-group-platform",
875875
"active": true,
876-
"order": 25,
876+
"order": 9,
877877
"requiredForPlayable": true,
878878
"requiredForTestable": true,
879879
"requiredForPublish": true,
@@ -904,7 +904,7 @@ export const TOOL_REGISTRY = Object.freeze([
904904
"category": "Marketplace",
905905
"colorGroup": "tool-group-marketplace",
906906
"active": true,
907-
"order": 26,
907+
"order": 13,
908908
"requiredForPlayable": false,
909909
"requiredForTestable": false,
910910
"requiredForPublish": true,
@@ -1195,8 +1195,8 @@ export const TOOL_REGISTRY = Object.freeze([
11951195
"badge": "/assets/theme-v2/images/badges/particles.png",
11961196
"tool": "/assets/theme-v2/images/tools/particles.png",
11971197
"description": "Hidden capability shell for visual effects and particle workflows.",
1198-
"category": "Audio",
1199-
"colorGroup": "tool-group-audio",
1198+
"category": "Design",
1199+
"colorGroup": "tool-group-design",
12001200
"active": true,
12011201
"order": 35,
12021202
"requiredForPlayable": false,
@@ -1212,7 +1212,7 @@ export const TOOL_REGISTRY = Object.freeze([
12121212
"hidden": true,
12131213
"adminOnly": false,
12141214
"visibleInToolsList": true,
1215-
"toolboxGroup": "Media",
1215+
"toolboxGroup": "Content",
12161216
"subgroup": "Hidden planned"
12171217
},
12181218
{

0 commit comments

Comments
 (0)