Skip to content

Commit cdba46d

Browse files
committed
Close out root migration structure and stale path cleanup - PR_26154_017-root-migration-closeout-bundle
1 parent 252019e commit cdba46d

12 files changed

Lines changed: 163 additions & 54 deletions

docs_build/dev/codex_commands.md

Lines changed: 27 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -2,22 +2,25 @@
22

33
Task:
44

5-
- `PR_26154_016-final-theme-engine-removal-and-active-structure-cleanup`
5+
- `PR_26154_017-root-migration-closeout-bundle`
66

77
Commands run:
88

99
- `Get-Content .codex/skills/repo-build/SKILL.md`
1010
- `Get-Content docs_build/dev/PROJECT_INSTRUCTIONS.md`
1111
- `git status --short --untracked-files=all`
12-
- Targeted `Get-ChildItem` and `Get-Content` inspection for:
12+
- Targeted `Get-ChildItem`, `Get-Content`, and `Test-Path` inspection for:
13+
- `GameFoundryStudio/`
1314
- `assets/theme/v1/`
14-
- `assets/theme/v2/images/`
15-
- `assets/theme/v2/css/theme/v2/`
1615
- `src/engine/theme/`
17-
- `src/engine/ui/toolboxaid-header.html`
18-
- `tools/shared/tooling/CapturePreviewRuntime.js`
19-
- `tools/dev/checkStyleSystemGuard.mjs`
20-
- `tools/dev/checkSharedExtractionGuard.baseline.json`
16+
- `samples/`
17+
- `favicon.ico`
18+
- `favicon.svg`
19+
- `LICENSE`
20+
- `docs/`
21+
- `docs_build/`
22+
- `games/index.html`
23+
- `tools/tools-page-accordions.js`
2124
- Targeted ownership inventory for:
2225
- `tools/`
2326
- `old-tools/`
@@ -31,32 +34,28 @@ Commands run:
3134
- `src/engine/theme/`
3235
- `assets/theme/v1/`
3336
- `favicon.ico`
34-
- Moved `assets/theme/v1/images/toolboxaid-header.png` to `assets/theme/v2/images/toolboxaid-header.png`.
35-
- Updated `src/engine/ui/toolboxaid-header.html`.
36-
- Updated `tools/shared/tooling/CapturePreviewRuntime.js`.
37-
- Updated `tools/dev/checkStyleSystemGuard.mjs`.
38-
- Updated `tools/dev/checkSharedExtractionGuard.baseline.json`.
39-
- Deleted `assets/theme/v1/`.
40-
- Deleted `src/engine/theme/`.
41-
- `node tools/dev/checkStyleSystemGuard.mjs`
42-
- `node --check tools/shared/tooling/CapturePreviewRuntime.js`
43-
- `node --check tools/dev/checkStyleSystemGuard.mjs`
44-
- Node static validation for changed HTML, JS, CSS, JSON, and Markdown files.
37+
- deprecated root `samples/`
38+
- Updated active script references from root `samples/` to `old_samples/` where the intended path was clear.
39+
- Verified `games/index.html` game-type tile hrefs and images.
40+
- Verified `tools/index.html` group and tile alphabetical ordering through `tools/tools-page-accordions.js`.
41+
- Verified `/favicon.svg` canonical icon and proprietary/restrictive `LICENSE`.
42+
- Node static validation for changed HTML, JS, CSS, JSON, Markdown, PowerShell, and Python files.
4543
- `git diff --check`
4644
- `git status --short -- start_of_day old-tools old_games old_samples`
4745
- `npm run codex:review-artifacts`
48-
- ZIP packaging for `tmp/PR_26154_016-final-theme-engine-removal-and-active-structure-cleanup_delta.zip`
46+
- ZIP packaging for `tmp/PR_26154_017-root-migration-closeout-bundle_delta.zip`
4947

5048
Validation summary:
5149

52-
- PASS `assets/theme/v1/` removed.
53-
- PASS `src/engine/theme/` removed.
54-
- PASS active header image now resolves from `assets/theme/v2/images/toolboxaid-header.png`.
55-
- PASS no active stale references remain for `GameFoundryStudio/`, `src/engine/theme/`, `assets/theme/v1/`, or `favicon.ico`.
56-
- PASS active structure inventory completed for active and deprecated ownership areas.
57-
- PASS `node tools/dev/checkStyleSystemGuard.mjs`.
58-
- PASS syntax checks for changed JS files.
59-
- PASS static validation for changed HTML, JS, CSS, JSON, and Markdown files.
50+
- PASS no active stale references remain for `GameFoundryStudio/`, `src/engine/theme/`, `assets/theme/v1/`, `favicon.ico`, or root `samples/`.
51+
- PASS active/deprecated structure inventory completed.
52+
- PASS `/docs/` user-facing only and `/docs_build/` build/governance ownership confirmed.
53+
- PASS active game and tool structure confirmed.
54+
- PASS `/favicon.svg` is canonical and `favicon.ico` is absent.
55+
- PASS `LICENSE` is proprietary/restrictive.
56+
- PASS `games/index.html` tile links and images resolve.
57+
- PASS `tools/index.html` groups and group contents are alphabetically sorted.
58+
- PASS static validation for changed HTML, JS, CSS, JSON, Markdown, PowerShell, and Python files.
6059
- PASS `git diff --check`.
6160
- PASS no `start_of_day/`, `old-tools/`, `old_games/`, or `old_samples/` changes.
6261
- PASS review artifact generation.

docs_build/dev/commit_comment.txt

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
Final theme engine removal and active structure cleanup
1+
Root migration closeout bundle
22

3-
PR: PR_26154_016-final-theme-engine-removal-and-active-structure-cleanup
3+
PR: PR_26154_017-root-migration-closeout-bundle
44

5-
- Move the final V1 header image to `assets/theme/v2/images/toolboxaid-header.png`.
6-
- Delete `assets/theme/v1/` and `src/engine/theme/` after active reference removal.
7-
- Remove active `src/engine/theme` dependencies from capture tooling and dev guards.
8-
- Produce final active-vs-deprecated ownership inventory and cleanup candidate report.
9-
- Validate targeted active references, changed static files, diff whitespace, review artifacts, and repo-structured delta ZIP packaging.
5+
- Normalize remaining active root `samples/` references to `old_samples/` where the intended owner is clear.
6+
- Confirm active stale paths are gone for `GameFoundryStudio/`, `src/engine/theme/`, `assets/theme/v1/`, `favicon.ico`, and deprecated root `samples/`.
7+
- Confirm active/deprecated ownership for docs, docs_build, tools, games, old-tools, old_games, and old_samples.
8+
- Confirm `/favicon.svg`, proprietary LICENSE, games index tiles, and alphabetized tools index ordering.
9+
- Validate targeted active paths, changed static/script files, diff whitespace, review artifacts, and repo-structured delta ZIP packaging.
Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
# PR_26154_017 Root Migration Closeout Bundle Report
2+
3+
Task: `PR_26154_017-root-migration-closeout-bundle`
4+
5+
## Scope
6+
7+
- Read `docs_build/dev/PROJECT_INSTRUCTIONS.md`.
8+
- Closed out active path references for the root migration.
9+
- Verified current active/deprecated structure ownership.
10+
- Normalized remaining active references to deprecated root `samples/` paths where the intended path was clearly `old_samples/`.
11+
- Did not modify `old-tools/`, `old_games/`, `old_samples/`, or `start_of_day/`.
12+
- Did not rebuild tools or add feature work.
13+
14+
## Changes
15+
16+
| File | Change |
17+
| --- | --- |
18+
| `scripts/PS/audit-sample-json-js-references.ps1` | Default sample root and comment now use `old_samples`. |
19+
| `scripts/PS/audit-samples-only-palette-json.ps1` | Help text and default sample root now use `old_samples`. |
20+
| `scripts/audit-sample-json-ownership.mjs` | Sample root, metadata path, report path, regexes, and report text now use `old_samples` and `docs_build/dev/reports`. |
21+
| `scripts/engine_usage_audit.py` | Sample bucket detection now uses `old_samples`. |
22+
| `scripts/run-targeted-test-lanes.mjs` | Removed the obsolete active `samples/` lane check while keeping `old_samples/` and `tests/samples/`. |
23+
| `tools/dev/checkInternalBarrelGuard.mjs` | Sample entrypoint pattern now uses `old_samples`. |
24+
| `tools/shared/preview/generate-list-previews.html` | Preview input parser now recognizes `old_samples/phase...` paths. |
25+
| `tools/schemas/README.md` | Removed an ambiguous trailing slash from the schema `samples` layout label; the actual schema path is unchanged. |
26+
27+
## Active Path Closeout
28+
29+
Targeted active-path validation found no active references to:
30+
31+
- `GameFoundryStudio/`
32+
- `src/engine/theme/`
33+
- `assets/theme/v1/`
34+
- `favicon.ico`
35+
- deprecated root `samples/`
36+
37+
The scan excluded `docs_build/`, tests, reports, `old-tools/`, `old_games/`, `old_samples/`, `start_of_day/`, and `tmp/` so historical records and deprecated references remain preserved.
38+
39+
## Structure Confirmation
40+
41+
| Area | Status |
42+
| --- | --- |
43+
| `/docs/` | User-facing documentation only: `index.html`, `faq.html`, `reference.html`, `support.html`, and `README.md`. |
44+
| `/docs_build/` | Build, dev, PR, reports, schema docs, design/reference/release/tool docs, and workflow content. |
45+
| `/tools/` | Active tool surfaces use `tools/[toolname]/index.html`; support folders remain under `tools/dev`, `tools/shared`, and `tools/schemas`. |
46+
| `/old-tools/` | Deprecated tools live under `old-tools/`. |
47+
| `/games/` | Active game category pages live under `games/`; `games/index.html` exists and links to game-type tiles. |
48+
| `/old_games/` | Deprecated playable games live under `old_games/`. |
49+
| `/old_samples/` | Deprecated samples live under `old_samples/`. |
50+
| `/favicon.svg` | Canonical active site icon; `/favicon.ico` is absent. |
51+
| `LICENSE` | Proprietary/restrictive license notice is present. |
52+
53+
## Games And Tools
54+
55+
- PASS: `games/index.html` exists.
56+
- PASS: `games/index.html` exposes 7 game-type tiles and every tile href/image resolves.
57+
- PASS: `tools/index.html` loads the active accordion data source.
58+
- PASS: Tool groups are alphabetically sorted: AI, Assets, Audio, Colors, Input, Objects, Worlds.
59+
- PASS: Tool tiles inside every group are alphabetically sorted by visible tool name.
60+
- PASS: 19 active tool href/image references resolve.
61+
62+
## Cleanup
63+
64+
- `GameFoundryStudio/`, `samples/`, `assets/theme/v1/`, `src/engine/theme/`, and `favicon.ico` are absent.
65+
- No empty tracked legacy folders remained to delete.
66+
- Deprecated `old-tools/`, `old_games/`, and `old_samples/` were not modified.
67+
68+
## Validation
69+
70+
- PASS: Targeted active-path reference validation.
71+
- PASS: Canonical favicon validation.
72+
- PASS: LICENSE proprietary/restrictive validation.
73+
- PASS: Games index tile link/image validation.
74+
- PASS: Tools index alphabetical ordering validation.
75+
- PASS: Static validation for changed HTML, JS, CSS, JSON, Markdown, plus touched PowerShell/Python scripts.
76+
- PASS: `git diff --check`.
77+
- PASS: `git status --short -- start_of_day old-tools old_games old_samples` returned no output.
78+
- SKIPPED: `npm run test:workspace-v2`; active Workspace V2 launch/navigation behavior was not changed.
79+
- SKIPPED: old tools, old games, old samples, and full samples smoke tests per request.
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
# PR_26154_017 Root Migration Remaining Work Report
2+
3+
Task: `PR_26154_017-root-migration-closeout-bundle`
4+
5+
## Remaining Cleanup Candidates
6+
7+
These items were identified during closeout but intentionally not moved in this PR:
8+
9+
| Candidate | Reason Deferred |
10+
| --- | --- |
11+
| `tools/_templates-v2/` | Still present with an `index.html`; confirm whether it is an active template surface or should move to deprecated template ownership. |
12+
| `tools/dev/`, `tools/shared/`, `tools/schemas/` | Active support folders under `tools/`, not user-facing tool surfaces. Move only if a new support-code ownership target is approved. |
13+
| `tools/renderToolsIndex.js` and `tools/toolRegistry.js` | Active root-level tool support files. Consolidation would require a separate import/launcher audit. |
14+
| `games/assets/` | Active game support assets, not a game category page. No move recommended without a new assets ownership PR. |
15+
| `docs_build/` historical archives and reports | Historical records still mention old paths by design; not active runtime references. |
16+
| `old-tools/`, `old_games/`, `old_samples/` | Deprecated reference/playable areas preserved by request. |
17+
18+
## Confirmed Closed
19+
20+
- No active `GameFoundryStudio/` references.
21+
- No active `src/engine/theme/` references.
22+
- No active `assets/theme/v1/` references.
23+
- No active `favicon.ico` references.
24+
- No active deprecated root `samples/` references.
25+
- `/favicon.svg` is the canonical active site icon.
26+
- `LICENSE` is proprietary/restrictive.
27+
28+
## Notes
29+
30+
- `old_samples/` references remain where they preserve deprecated sample access or validation routing.
31+
- `tools/shared/samples/` and `tools/schemas/samples/` are active support/schema namespaces, not deprecated root sample paths.

scripts/PS/audit-sample-json-js-references.ps1

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
param(
2-
[string]$SamplesRoot = "$PSScriptRoot\..\..\samples",
2+
[string]$SamplesRoot = "$PSScriptRoot\..\..\old_samples",
33
[string]$OutputPath = "docs_build/dev/reports/sample_json_js_reference_audit.csv",
44
[switch]$FailOnMissing,
55
[switch]$Details,
@@ -40,7 +40,7 @@ function Get-SampleRootForFile {
4040
return $null
4141
}
4242

43-
# Handle JSON files directly under a first-level folder (for example samples/metadata/*.json).
43+
# Handle JSON files directly under a first-level folder (for example old_samples/metadata/*.json).
4444
if ($parts.Count -eq 2 -and [System.IO.Path]::GetExtension($parts[1]) -eq '.json') {
4545
return Join-Path $SamplesRootFull $parts[0]
4646
}

scripts/PS/audit-samples-only-palette-json.ps1

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
<#
22
.SYNOPSIS
3-
Recursively audits samples/** and reports sample folders where the only JSON files are palette JSON files.
3+
Recursively audits old_samples/** and reports sample folders where the only JSON files are palette JSON files.
44
55
.DESCRIPTION
6-
A palette-only sample folder is a leaf sample directory under samples/** that contains one or more *.json files,
6+
A palette-only sample folder is a leaf sample directory under old_samples/** that contains one or more *.json files,
77
and every JSON file in that folder matches *.palette.json.
88
99
Output:
@@ -12,14 +12,14 @@
1212
- total count at the end
1313
1414
.PARAMETER SamplesRoot
15-
Root samples directory. Defaults to "samples" relative to the current repo root.
15+
Root samples directory. Defaults to "old_samples" relative to the current repo root.
1616
1717
.PARAMETER CsvPath
1818
Optional CSV output path. Defaults to docs_build/dev/reports/samples_only_palette_json_audit.csv.
1919
#>
2020

2121
param(
22-
[string]$SamplesRoot = "samples",
22+
[string]$SamplesRoot = "old_samples",
2323
[string]$CsvPath = "docs_build/dev/reports/samples_only_palette_json_audit.csv"
2424
)
2525

scripts/audit-sample-json-ownership.mjs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,12 @@ const __filename = fileURLToPath(import.meta.url);
77
const __dirname = path.dirname(__filename);
88
const repoRoot = path.resolve(__dirname, "..");
99

10-
const SAMPLES_ROOT = path.join(repoRoot, "samples");
10+
const SAMPLES_ROOT = path.join(repoRoot, "old_samples");
1111
const METADATA_PATH = path.join(SAMPLES_ROOT, "metadata", "samples.index.metadata.json");
12-
const REPORT_PATH = path.join(repoRoot, "docs", "dev", "reports", "PR_11_41_sample_json_ownership_audit.md");
12+
const REPORT_PATH = path.join(repoRoot, "docs_build", "dev", "reports", "PR_11_41_sample_json_ownership_audit.md");
1313

1414
const SAMPLE_JSON_PATTERN = /^sample(?:\.|-)\d{4}[.-].+\.json$/i;
15-
const SAMPLE_PATH_PATTERN = /^samples\/phase-\d{2}\/\d{4}\//;
15+
const SAMPLE_PATH_PATTERN = /^old_samples\/phase-\d{2}\/\d{4}\//;
1616
const EXEMPT_WORKSPACE_SAMPLE_ID = "1902";
1717
const EXEMPT_WORKSPACE_FILE = "sample.1902.workspace-all-tools.json";
1818

@@ -224,7 +224,7 @@ async function main() {
224224

225225
const rows = [];
226226
for (const relPath of sampleJsonFiles) {
227-
const folderMatch = relPath.match(/^samples\/phase-\d{2}\/(\d{4})\//);
227+
const folderMatch = relPath.match(/^old_samples\/phase-\d{2}\/(\d{4})\//);
228228
const folderSampleId = folderMatch ? folderMatch[1] : "";
229229
const fileName = path.basename(relPath);
230230
const fileIdentity = parseSampleFileIdentity(fileName);
@@ -287,12 +287,12 @@ async function main() {
287287
"# PR 11.41 Sample JSON Ownership Audit",
288288
"",
289289
"## Scope",
290-
"- Audited sample-owned JSON files under `samples/phase-*/####/sample*.json`.",
291-
"- Cross-checked against `samples/metadata/samples.index.metadata.json` roundtrip tool preset mappings.",
290+
"- Audited sample-owned JSON files under `old_samples/phase-*/####/sample*.json`.",
291+
"- Cross-checked against `old_samples/metadata/samples.index.metadata.json` roundtrip tool preset mappings.",
292292
"- Cross-checked sample-local entrypoint/source references (`index.html`, `main.js`, sibling JSON/MD references).",
293293
"",
294294
"## Sample 1902 Exemption",
295-
"- `samples/phase-19/1902/sample.1902.workspace-all-tools.json` is marked **EXEMPT WORKSPACE SAMPLE**.",
295+
"- `old_samples/phase-19/1902/sample.1902.workspace-all-tools.json` is marked **EXEMPT WORKSPACE SAMPLE**.",
296296
"- Single-tool KEEP/MOVE/DELETE ownership rules were not applied to 1902.",
297297
"- 1902 was validated only as a workspace integration manifest source.",
298298
"",

scripts/engine_usage_audit.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,8 +62,8 @@ def main():
6262
if p.suffix.lower() in JS_EXT and p.is_file():
6363
rel = p.relative_to(root)
6464
parts = rel.parts
65-
if len(parts) >= 2 and parts[0] in ("samples", "old_games"):
66-
key = "/".join(parts[:2]) # samples/SampleXXX or old_games/<name>
65+
if len(parts) >= 2 and parts[0] in ("old_samples", "old_games"):
66+
key = "/".join(parts[:2]) # old_samples/<phase> or old_games/<name>
6767
buckets[key] |= scan_file(p)
6868

6969
# Print report

scripts/run-targeted-test-lanes.mjs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -656,7 +656,7 @@ function routeLanesForChangedFiles(changedFiles) {
656656
|| normalized.startsWith("tests/input/")
657657
|| normalized.startsWith("tests/render/")) {
658658
routed.add("engine-src");
659-
} else if (normalized.startsWith("samples/") || normalized.startsWith("old_samples/") || normalized.startsWith("tests/samples/")) {
659+
} else if (normalized.startsWith("old_samples/") || normalized.startsWith("tests/samples/")) {
660660
continue;
661661
}
662662
}

tools/dev/checkInternalBarrelGuard.mjs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ function isGameEntryIndex(relativePath) {
155155
}
156156

157157
function isSampleEntryIndex(relativePath) {
158-
return /^samples\/phase-\d{2}\/\d{4}\/index\.js$/.test(relativePath);
158+
return /^old_samples\/phase-\d{2}\/\d{4}\/index\.js$/.test(relativePath);
159159
}
160160

161161
function isToolEntryIndex(relativePath, fullPath) {

0 commit comments

Comments
 (0)