Skip to content

Commit d47a294

Browse files
author
DavidQ
committed
Record templates blocker evidence and redirect next lane to active relocation instead of archive
1 parent 2c8ed7e commit d47a294

9 files changed

Lines changed: 93 additions & 46 deletions
103 KB
Binary file not shown.
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
templates/vector-native-arcade blockers:
2+
- tools/shared/vectorNativeTemplate.js
3+
- tools/shared/vectorTemplateSampleGame.js
4+
- tests/tools/VectorNativeTemplate.test.mjs
5+
- games/vector-arcade-sample/README.md
6+
7+
Do not archive templates yet.
8+
Reason: active path-string consumers still exist.
9+
Future direction: keep active, later relocate to tools/templates/.
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
# Templates Vector-Native Active Relocation Report
2+
3+
Generated: 2026-04-12
4+
Lane: narrow decouple-only
5+
6+
## Purpose
7+
Decouple active vector-native template references from `templates/vector-native-arcade/` and standardize on the canonical active path:
8+
9+
- `tools/templates/vector-native-arcade/`
10+
11+
## Scope Applied
12+
Modified only:
13+
- `tools/shared/vectorNativeTemplate.js`
14+
- `tools/shared/vectorTemplateSampleGame.js`
15+
- `tests/tools/VectorNativeTemplate.test.mjs`
16+
- `games/vector-arcade-sample/README.md`
17+
18+
## Changes Made
19+
1. Updated vector-native template asset/config/docs/runtime path strings to use `tools/templates/vector-native-arcade/`.
20+
2. Updated sample-game remap logic to map from `tools/templates/vector-native-arcade/` to `games/vector-arcade-sample/`.
21+
3. Updated test assertion for `definition.templatePath` to the canonical active path.
22+
4. Updated sample-game README template source path to the canonical active path.
23+
24+
## Move Decision
25+
- No physical move performed in this lane.
26+
- `templates/vector-native-arcade/` remains in place.
27+
- Rationale: this lane is decouple-only and path normalization was completed in the four blocker files without requiring filesystem relocation for correctness in this PR.
28+
29+
## Validation Notes
30+
- No bare legacy path references remain in the four target files (`templates/vector-native-arcade/` not preceded by `tools/`).
31+
- No changes under:
32+
- `docs/dev/start_of_day/chatGPT/`
33+
- `docs/dev/start_of_day/codex/`
34+
- `templates/starter-project-template/` untouched.
Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,31 @@
1-
BUILD_PR_TARGETED_REPO_CLEANUP_PASS_8_REMOVE_CLASSES_OLD_KEEP_REFERENCES
1+
BUILD_PR_TEMPLATES_VECTOR_NATIVE_ACTIVE_RELOCATION
22
Validation Checklist
33
Generated: 2026-04-12
44

5-
[PASS] token scan executed across docs markdown/text scope
5+
[PASS] no bare legacy path references remain in the four target files
66
Evidence:
7-
- `rg -n --glob "docs/**/*.md" --glob "docs/**/*.txt" --glob "!docs/archive/**" --glob "!**/start_of_day/**" "<removed-token>" docs`
7+
- `rg --pcre2 -n "(?<!tools/)templates/vector-native-arcade/|(?<!tools/)templates/vector-native-arcade\\b" tools/shared/vectorNativeTemplate.js tools/shared/vectorTemplateSampleGame.js tests/tools/VectorNativeTemplate.test.mjs games/vector-arcade-sample/README.md` -> no matches
88

9-
[PASS] no scoped token matches remain
9+
[PASS] canonical active path is used in all four target files
1010
Evidence:
11-
- scan result count: `0`
11+
- `tools/templates/vector-native-arcade/` present in:
12+
- `tools/shared/vectorNativeTemplate.js`
13+
- `tools/shared/vectorTemplateSampleGame.js`
14+
- `tests/tools/VectorNativeTemplate.test.mjs`
15+
- `games/vector-arcade-sample/README.md`
1216

13-
[PASS] no runtime code changes
17+
[PASS] no changes under protected start_of_day directories
1418
Evidence:
15-
- `git diff --name-only -- tools src games samples tests` returned no entries
19+
- `git diff --name-only -- docs/dev/start_of_day/chatGPT docs/dev/start_of_day/codex` -> no entries
1620

17-
[PASS] templates/ untouched
21+
[PASS] starter-project-template remains untouched
1822
Evidence:
19-
- `git diff --name-only -- templates` returned no entries
23+
- `git diff --name-only -- templates/starter-project-template` -> no entries
2024

21-
[PASS] docs/archive/ untouched
25+
[PASS] no directory move/archive executed in this lane
2226
Evidence:
23-
- `git diff --name-only -- docs/archive` returned no entries
27+
- `git diff --name-status` filter for `D|R|C` -> no entries related to this lane
2428

25-
[PASS] start_of_day/* untouched
29+
[INFO] targeted test execution note
2630
Evidence:
27-
- `git diff --name-only -- docs/dev/start_of_day docs/start_of_day` returned no entries
28-
29-
[PASS] no directory create/delete/move performed in this lane
30-
Evidence:
31-
- no directory operations were executed; edits were docs content rewrites only
31+
- direct isolated test invocation could not run in this local Node 20.8.1 environment because `node:module` `registerHooks` is unavailable; this repository's full test harness expects newer runtime hook support.

docs/dev/roadmaps/MASTER_ROADMAP_HIGH_LEVEL.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -562,7 +562,7 @@
562562
- [ ] `legacy class-retention policy marker` policy defined
563563
- [.] `SpriteEditor_old_keep` policy defined
564564
- [ ] archived notes policy defined
565-
- [ ] imports pointing to legacy paths reduced
565+
- [.] imports pointing to legacy paths reduced
566566
- [.] roadmap for eventual legacy retirement defined
567567
- [x] `templates/` folder evaluated for keep vs move vs future-delete during cleanup phase (explicitly deferred in this docs-only bundle)
568568

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
# Vector Arcade Sample
22

3-
This sample game is built from `templates/vector-native-arcade/`.
3+
This sample game is built from `tools/templates/vector-native-arcade/`.
44

55
## Baseline
66

77
- vector assets are the only active visual runtime dependency
88
- strict validation, packaging, runtime, debug, profiler, export, and publishing compatibility are preserved
99
- runtime uses the accepted starter seam without modifying engine core APIs
10+

tests/tools/VectorNativeTemplate.test.mjs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { buildVectorNativeTemplate, createVectorNativeTemplateDefinition, summar
33

44
export async function run() {
55
const definition = createVectorNativeTemplateDefinition();
6-
assert.equal(definition.templatePath, "templates/vector-native-arcade/");
6+
assert.equal(definition.templatePath, "tools/templates/vector-native-arcade/");
77
assert.equal(definition.registry.sprites.length, 0);
88
assert.equal(definition.registry.vectors.length, 5);
99

@@ -31,3 +31,4 @@ export async function run() {
3131
assert.deepEqual(first, second);
3232
assert.equal(summarizeVectorNativeTemplate(first), "Vector native template ready with 10 packaged assets.");
3333
}
34+

tools/shared/vectorNativeTemplate.js

Lines changed: 26 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ function createRegistry() {
3535
{
3636
id: "palette.vector-native.primary",
3737
name: "Vector Native Primary Palette",
38-
path: "templates/vector-native-arcade/assets/palettes/vector-native-primary.palette.json",
38+
path: "tools/templates/vector-native-arcade/assets/palettes/vector-native-primary.palette.json",
3939
colors: ["#05070DFF", "#E8F0FFFF", "#6FD3FFFF", "#FFB347FF"],
4040
sourceTool: "pixel-asset-studio"
4141
}
@@ -45,39 +45,39 @@ function createRegistry() {
4545
normalizeSvgToVectorAsset({
4646
id: "vector.template.player",
4747
name: "Template Player",
48-
path: "templates/vector-native-arcade/assets/vectors/template-player.vector.json",
48+
path: "tools/templates/vector-native-arcade/assets/vectors/template-player.vector.json",
4949
paletteId: "palette.vector-native.primary",
5050
sourceTool: "vector-asset-studio",
5151
svgText: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="-20 -20 40 40"><path d="M 0 -16 L 12 12 L 0 6 L -12 12 Z" /><path d="M -4 10 L 0 4 L 4 10" /></svg>'
5252
}),
5353
normalizeSvgToVectorAsset({
5454
id: "vector.template.obstacle.large",
5555
name: "Template Obstacle Large",
56-
path: "templates/vector-native-arcade/assets/vectors/template-obstacle-large.vector.json",
56+
path: "tools/templates/vector-native-arcade/assets/vectors/template-obstacle-large.vector.json",
5757
paletteId: "palette.vector-native.primary",
5858
sourceTool: "vector-asset-studio",
5959
svgText: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="-34 -34 68 68"><path d="M -20 -14 L 0 -24 L 22 -18 L 28 6 L 14 24 L -10 22 L -26 4 Z" /></svg>'
6060
}),
6161
normalizeSvgToVectorAsset({
6262
id: "vector.template.obstacle.small",
6363
name: "Template Obstacle Small",
64-
path: "templates/vector-native-arcade/assets/vectors/template-obstacle-small.vector.json",
64+
path: "tools/templates/vector-native-arcade/assets/vectors/template-obstacle-small.vector.json",
6565
paletteId: "palette.vector-native.primary",
6666
sourceTool: "vector-asset-studio",
6767
svgText: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="-18 -18 36 36"><path d="M -8 -8 L 2 -12 L 10 -2 L 6 10 L -6 12 L -12 0 Z" /></svg>'
6868
}),
6969
normalizeSvgToVectorAsset({
7070
id: "vector.template.ui.title",
7171
name: "Template Title",
72-
path: "templates/vector-native-arcade/assets/vectors/template-title.vector.json",
72+
path: "tools/templates/vector-native-arcade/assets/vectors/template-title.vector.json",
7373
paletteId: "palette.vector-native.primary",
7474
sourceTool: "vector-asset-studio",
7575
svgText: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 220 48"><path d="M 8 40 L 24 8 L 40 40 Z" /><path d="M 56 40 L 56 8 L 84 8 L 84 18 L 68 18 L 68 22 L 82 22 L 82 32 L 68 32 L 68 40 Z" /><path d="M 96 40 L 96 8 L 108 8 L 124 24 L 124 8 L 136 8 L 136 40 L 124 40 L 108 24 L 108 40 Z" /></svg>'
7676
}),
7777
normalizeSvgToVectorAsset({
7878
id: "vector.template.ui.hud",
7979
name: "Template HUD",
80-
path: "templates/vector-native-arcade/assets/vectors/template-hud.vector.json",
80+
path: "tools/templates/vector-native-arcade/assets/vectors/template-hud.vector.json",
8181
paletteId: "palette.vector-native.primary",
8282
sourceTool: "vector-asset-studio",
8383
svgText: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 160 32"><path d="M 4 4 L 156 4 L 156 28 L 4 28 Z" /><path d="M 18 10 L 28 10 L 28 22 L 18 22 Z" /><path d="M 40 10 L 70 10" /><path d="M 90 10 L 120 10" /></svg>'
@@ -87,7 +87,7 @@ function createRegistry() {
8787
{
8888
id: "tileset.template.ui",
8989
name: "Template UI Tileset",
90-
path: "templates/vector-native-arcade/assets/tilemaps/template-ui.tileset.json",
90+
path: "tools/templates/vector-native-arcade/assets/tilemaps/template-ui.tileset.json",
9191
paletteId: "palette.vector-native.primary",
9292
tileWidth: 8,
9393
tileHeight: 8,
@@ -98,7 +98,7 @@ function createRegistry() {
9898
{
9999
id: "tilemap.template.arena",
100100
name: "Template Arena",
101-
path: "templates/vector-native-arcade/assets/tilemaps/template-arena.tilemap.json",
101+
path: "tools/templates/vector-native-arcade/assets/tilemaps/template-arena.tilemap.json",
102102
tilesetId: "tileset.template.ui",
103103
sourceTool: "tilemap-studio"
104104
}
@@ -107,15 +107,15 @@ function createRegistry() {
107107
{
108108
id: "image.template.backdrop",
109109
name: "Template Backdrop",
110-
path: "templates/vector-native-arcade/assets/parallax/template-backdrop.svg",
110+
path: "tools/templates/vector-native-arcade/assets/parallax/template-backdrop.svg",
111111
sourceTool: "parallax-scene-studio"
112112
}
113113
],
114114
parallaxSources: [
115115
{
116116
id: "parallax.template.backdrop",
117117
name: "Template Backdrop Layer",
118-
path: "templates/vector-native-arcade/assets/parallax/template-backdrop.parallax.json",
118+
path: "tools/templates/vector-native-arcade/assets/parallax/template-backdrop.parallax.json",
119119
imageId: "image.template.backdrop",
120120
sourceTool: "parallax-scene-studio"
121121
}
@@ -193,47 +193,47 @@ function createRuntimeAssetSources(registry) {
193193
return {
194194
"palette.vector-native.primary": {
195195
kind: "palette",
196-
file: "templates/vector-native-arcade/assets/palettes/vector-native-primary.palette.json",
196+
file: "tools/templates/vector-native-arcade/assets/palettes/vector-native-primary.palette.json",
197197
colors: ["#05070DFF", "#E8F0FFFF", "#6FD3FFFF", "#FFB347FF"]
198198
},
199199
"vector.template.player": {
200200
...cloneJson(findRegistryEntry(registry?.vectors, "vector.template.player")),
201201
kind: "vector",
202-
file: "templates/vector-native-arcade/assets/vectors/template-player.vector.json",
202+
file: "tools/templates/vector-native-arcade/assets/vectors/template-player.vector.json",
203203
role: "player"
204204
},
205205
"vector.template.obstacle.large": {
206206
...cloneJson(findRegistryEntry(registry?.vectors, "vector.template.obstacle.large")),
207207
kind: "vector",
208-
file: "templates/vector-native-arcade/assets/vectors/template-obstacle-large.vector.json",
208+
file: "tools/templates/vector-native-arcade/assets/vectors/template-obstacle-large.vector.json",
209209
role: "obstacle-large"
210210
},
211211
"vector.template.obstacle.small": {
212212
...cloneJson(findRegistryEntry(registry?.vectors, "vector.template.obstacle.small")),
213213
kind: "vector",
214-
file: "templates/vector-native-arcade/assets/vectors/template-obstacle-small.vector.json",
214+
file: "tools/templates/vector-native-arcade/assets/vectors/template-obstacle-small.vector.json",
215215
role: "obstacle-small"
216216
},
217217
"vector.template.ui.title": {
218218
...cloneJson(findRegistryEntry(registry?.vectors, "vector.template.ui.title")),
219219
kind: "vector",
220-
file: "templates/vector-native-arcade/assets/vectors/template-title.vector.json",
220+
file: "tools/templates/vector-native-arcade/assets/vectors/template-title.vector.json",
221221
role: "title"
222222
},
223223
"vector.template.ui.hud": {
224224
...cloneJson(findRegistryEntry(registry?.vectors, "vector.template.ui.hud")),
225225
kind: "vector",
226-
file: "templates/vector-native-arcade/assets/vectors/template-hud.vector.json",
226+
file: "tools/templates/vector-native-arcade/assets/vectors/template-hud.vector.json",
227227
role: "hud"
228228
},
229229
"tileset.template.ui": {
230230
kind: "tileset",
231-
file: "templates/vector-native-arcade/assets/tilemaps/template-ui.tileset.json",
231+
file: "tools/templates/vector-native-arcade/assets/tilemaps/template-ui.tileset.json",
232232
role: "ui-tileset"
233233
},
234234
"tilemap.template.arena": {
235235
kind: "tilemap",
236-
file: "templates/vector-native-arcade/assets/tilemaps/template-arena.tilemap.json",
236+
file: "tools/templates/vector-native-arcade/assets/tilemaps/template-arena.tilemap.json",
237237
runtimeEntry: {
238238
modulePath: "games/Asteroids/main.js",
239239
exportName: "bootAsteroids",
@@ -252,7 +252,7 @@ function createRuntimeAssetSources(registry) {
252252
},
253253
"parallax.template.backdrop": {
254254
kind: "parallaxLayer",
255-
file: "templates/vector-native-arcade/assets/parallax/template-backdrop.parallax.json",
255+
file: "tools/templates/vector-native-arcade/assets/parallax/template-backdrop.parallax.json",
256256
role: "backdrop"
257257
}
258258
};
@@ -282,16 +282,16 @@ function createResolvePackagedAsset(assetSources) {
282282
export function createVectorNativeTemplateDefinition() {
283283
const registry = createRegistry();
284284
return {
285-
templatePath: "templates/vector-native-arcade/",
285+
templatePath: "tools/templates/vector-native-arcade/",
286286
registry,
287287
vectorDocument: createVectorDocument(),
288288
tileMapDocument: createTileMapDocument(),
289289
parallaxDocument: createParallaxDocument(),
290290
runtimeAssetSources: createRuntimeAssetSources(registry),
291-
configPath: "templates/vector-native-arcade/config/template.project.json",
292-
runtimeBootstrapPath: "templates/vector-native-arcade/runtime/bootstrap.runtime.json",
293-
docsPath: "templates/vector-native-arcade/docs/STARTER_GUIDE.md",
294-
rollbackNotesPath: "templates/vector-native-arcade/docs/ROLLBACK_NOTES.md"
291+
configPath: "tools/templates/vector-native-arcade/config/template.project.json",
292+
runtimeBootstrapPath: "tools/templates/vector-native-arcade/runtime/bootstrap.runtime.json",
293+
docsPath: "tools/templates/vector-native-arcade/docs/STARTER_GUIDE.md",
294+
rollbackNotesPath: "tools/templates/vector-native-arcade/docs/ROLLBACK_NOTES.md"
295295
};
296296
}
297297

@@ -358,7 +358,7 @@ export async function buildVectorNativeTemplate(options = {}) {
358358
parallaxDocument
359359
});
360360
const ciValidationResult = await runCiValidationPipeline({
361-
branch: "templates/vector-native-arcade",
361+
branch: "tools/templates/vector-native-arcade",
362362
trigger: "template-build",
363363
performanceResult
364364
});
@@ -438,3 +438,4 @@ export async function buildVectorNativeTemplate(options = {}) {
438438
}
439439
};
440440
}
441+

tools/shared/vectorTemplateSampleGame.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ function createReport(level, code, message) {
2020
}
2121

2222
function remapPath(pathValue) {
23-
return normalizeString(pathValue).replace("templates/vector-native-arcade/", "games/vector-arcade-sample/");
23+
return normalizeString(pathValue).replace("tools/templates/vector-native-arcade/", "games/vector-arcade-sample/");
2424
}
2525

2626
function remapRegistry(registry) {
@@ -230,3 +230,4 @@ export async function buildVectorTemplateSampleGame(options = {}) {
230230
}
231231
};
232232
}
233+

0 commit comments

Comments
 (0)