Skip to content

Commit 089a3bf

Browse files
author
DavidQ
committed
Add MASTER_ROADMAP_SAMPLES2TOOLS with phased sample-to-tool integration plan, shared sample-xxxx.json contract, validation gates, and a parity-based Phase 20 decommission step.
1 parent 0d4c63d commit 089a3bf

1 file changed

Lines changed: 121 additions & 0 deletions

File tree

Lines changed: 121 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,121 @@
1+
# MASTER ROADMAP - SAMPLES TO TOOLS
2+
3+
## Status Key
4+
- [x] complete
5+
- [.] in progress
6+
- [ ] planned
7+
8+
## Goal
9+
- Establish a single source of truth sample-data lane where sample JSON is reused by both:
10+
- sample execution (`samples/phase-xx/xxxx/index.html`)
11+
- tool preload flows (`tools/<tool>/index.html?...`)
12+
- Exclude `Phase 20 - Tool Preset Integration` from this roadmap lane.
13+
14+
## Source Inputs
15+
- `tmp/tools_used.txt` (tool sample coverage and candidate sample list)
16+
- `samples/metadata/samples.index.metadata.json` (sample catalog metadata)
17+
- `tools/toolRegistry.js` (active tool registry and ids)
18+
19+
## Canonical Data Contract
20+
- [ ] File naming standard: `samples/phase-xx/xxxx/sample-xxxx.json`
21+
- [ ] Required fields:
22+
- `sampleId` (string)
23+
- `phase` (string)
24+
- `title` (string)
25+
- `description` (string)
26+
- `toolHints` (array of tool ids)
27+
- `payload` (object, tool-consumable source data)
28+
- [ ] Optional fields:
29+
- `runtime` (sample-only materialization hints)
30+
- `toolState` (tool-specific hydration hints)
31+
- `provenance` (path, createdAt, version)
32+
33+
## Launch Contract (Shared)
34+
- [ ] Standard query parameters for tool launch:
35+
- `sampleId=<id>`
36+
- `samplePresetPath=/samples/phase-xx/xxxx/sample-xxxx.json`
37+
- [ ] Tool boot behavior:
38+
- detect contract params
39+
- fetch JSON from `samplePresetPath`
40+
- validate minimal schema
41+
- map to tool state via tool-specific adapter
42+
- render status indicating source sample
43+
44+
## Rollout Plan
45+
46+
### Phase 1 - Foundation + One Vertical Slice
47+
- [ ] Add shared adapter guidance document for sample-to-tool loading.
48+
- [ ] Implement one full reference flow:
49+
- sample page loads `sample-xxxx.json`
50+
- same file is passed to tool launch
51+
- tool hydrates from same file
52+
- [ ] Suggested first slice: `Parallax Scene Studio` (clear, low candidate count).
53+
- [ ] Validate:
54+
- sample runs using file
55+
- tool opens from sample and loads matching content
56+
- no Phase 20 coupling
57+
58+
### Phase 2 - Highest Value Tools (from tools_used.txt)
59+
- [ ] Parallax Scene Studio (4 candidate samples)
60+
- [ ] Performance Profiler (2 candidate samples)
61+
- [ ] Physics Sandbox (2 candidate samples)
62+
- [ ] Replay Visualizer (3 candidate samples)
63+
- [ ] Vector Asset Studio (1 candidate sample)
64+
- [ ] Vector Map Editor (1 candidate sample)
65+
- [ ] For each:
66+
- create/link `sample-xxxx.json` in selected sample folders
67+
- add/open tool link with shared launch contract
68+
- verify tool state visibly matches sample payload intent
69+
70+
### Phase 3 - Core Editor/Workflow Tools
71+
- [ ] Sprite Editor (9 candidates)
72+
- [ ] Tilemap Studio (15 candidates)
73+
- [ ] Tile Model Converter (18 candidates)
74+
- [ ] Asset Browser / Import Hub (8 candidates)
75+
- [ ] Asset Pipeline Tool (10 candidates)
76+
- [ ] Palette Browser / Manager (6 candidates)
77+
- [ ] State Inspector (26 candidates)
78+
- [ ] For each tool:
79+
- select top 3-5 high-signal non-Phase-20 samples first
80+
- wire shared JSON loading
81+
- confirm deterministic load behavior
82+
83+
### Phase 4 - 3D Utility Surfaces
84+
- [ ] 3D JSON Payload Normalizer (41 candidates; prioritize strict map/payload samples)
85+
- [ ] 3D Asset Viewer (31 candidates; prioritize asset-centric samples)
86+
- [ ] 3D Camera Path Editor (47 candidates; prioritize camera/path-centric samples)
87+
- [ ] Select precise, semantically aligned samples only (avoid broad keyword-only linkage).
88+
89+
### Phase 5 - Phase 20 Decommission (After Parity)
90+
- [ ] Keep `Phase 20 - Tool Preset Integration` active until Samples2Tools parity is execution-validated.
91+
- [ ] Define parity gate:
92+
- sample-to-tool launch coverage equals or exceeds current Phase 20 matrix intent.
93+
- preset/state preload behavior is validated in replacement lane.
94+
- replacement reports exist and are repeatable.
95+
- [ ] Mark Phase 20 as `deprecated` in docs once parity gate passes.
96+
- [ ] Remove Phase 20 links from primary launch surfaces after deprecation window.
97+
- [ ] Remove Phase 20 artifacts only after final signoff (no dangling references in docs/tests/reports).
98+
99+
## Prioritization Rules
100+
- [ ] Prefer semantically exact sample-tool matches over high volume.
101+
- [ ] Limit initial additions per tool card to 2-5 links.
102+
- [ ] Use non-Phase-20 samples only in this lane.
103+
- [ ] Maintain stable sample identity (`sample-xxxx.json`) for reproducibility.
104+
105+
## Validation Checklist
106+
- [ ] Every linked sample has `sample-xxxx.json`.
107+
- [ ] Sample page consumes same JSON it passes to tool.
108+
- [ ] Tool launch with `samplePresetPath` succeeds without manual edits.
109+
- [ ] Tool status includes loaded sample id/path.
110+
- [ ] Metadata and tool card links resolve correctly.
111+
- [ ] No regressions to direct tool launch without sample params.
112+
113+
## Reporting Outputs (per execution batch)
114+
- [ ] `docs/dev/reports/samples2tools_batch_<n>_summary.txt`
115+
- [ ] `docs/dev/reports/samples2tools_batch_<n>_validation.txt`
116+
- [ ] `docs/dev/reports/samples2tools_link_map_<n>.json`
117+
118+
## Current Snapshot (from tools_used.txt)
119+
- [x] Current tagged samples across active tools: `0` (excluding Phase 20)
120+
- [x] Candidate coverage inventory exists for all active tools
121+
- [ ] Convert candidates into curated, validated sample-to-tool links

0 commit comments

Comments
 (0)