feat(toolkit): add structured media authoring
ci/woodpecker/push/woodpecker Pipeline was successful
Lint and Build Checks / Lint, Test, and Build (push) Failing after 368h6m42s

This commit is contained in:
2026-06-24 11:29:32 -05:00
parent 52fb52a617
commit 47567589e4
56 changed files with 4222 additions and 686 deletions
+30 -13
View File
@@ -25,6 +25,8 @@
"Navigation is Zustand-based; do not add React Navigation unless explicitly requested.",
"Persistence is platform-split via persistStorage.ts for native and persistStorage.web.ts for web/Electron.",
"Toolkit is browser-only, requires Browser resolution, and requires an active Socket.IO connection for entry.",
"Update src/data/toolkit/changelog.json before committing or pushing meaningful deliverables; Husky only updates build metadata.",
"Import app data through src/data/index.ts and keep shared data interfaces in src/data/types/.",
"Commit as Jacob Mathison (jacob@mathisonprojects.com); never commit as an AI identity."
],
"guideFiles": [
@@ -88,7 +90,7 @@
{
"path": "src/data/AGENTS.md",
"type": "data-instructions",
"purpose": "Rules for editable JSON content and Toolkit placeholder resources."
"purpose": "Rules for editable JSON content, Toolkit seed data, and canonical Credits content."
}
],
"targets": [
@@ -268,26 +270,33 @@
},
"data": {
"changelog": {
"json": "src/data/changelog.json",
"typedExport": "src/data/changelog.ts",
"sortOrder": "newest-created-first"
"json": "src/data/toolkit/changelog.json",
"typedExport": "src/data/index.ts",
"sortOrder": "newest-created-first",
"discipline": "Update before committing or pushing meaningful product, gameplay, Toolkit, content, build, or process changes."
},
"credits": {
"json": "src/data/credits.json",
"typedExport": "src/data/credits.ts"
"json": "src/data/toolkit/credits.json",
"typedExport": "src/data/index.ts"
},
"legal": {
"json": "src/data/legal.json"
"json": "src/data/toolkit/legal.json",
"typedExport": "src/data/index.ts"
},
"toolkitPlaceholders": {
"types": "src/data/types/index.ts",
"toolkitSeedData": {
"directory": "src/data/toolkit/",
"shape": "empty arrays until schemas stabilize",
"typedExport": "src/data/toolkit/index.ts",
"shape": "wiki-derived starter content for Toolkit planning resources and app content.",
"files": [
"audio.json",
"changelog.json",
"credits.json",
"endings.json",
"factions.json",
"flags.json",
"images.json",
"legal.json",
"lore.json",
"map.json",
"opening.json",
@@ -327,6 +336,7 @@
"toolkitFlags",
"toolkitStory",
"toolkitLore",
"toolkitImages",
"toolkitAudio",
"toolkitCredits",
"toolkitEndings",
@@ -450,7 +460,10 @@
"policies": [
"Keep JSON valid and typed through src/data exports.",
"Add runtime validation for data imported by stores or socket helpers.",
"Use atomic writes for server-side JSON save behavior."
"Use atomic writes for server-side JSON save behavior.",
"Export app-importable data through src/data/index.ts.",
"Keep Changelog, Credits, and Legal JSON under src/data/toolkit/.",
"Update src/data/toolkit/changelog.json before committing or pushing meaningful deliverables unless explicitly skipped."
],
"verify": [
"npm run test -- --runInBand"
@@ -517,6 +530,9 @@
"package.json",
"src/navigation/routes.ts"
],
"policies": [
"Keep commit/push workflow guidance aligned across AGENTS.md, README.md, llm.txt, manifest.llm.json, and src/data/AGENTS.md when changelog discipline changes."
],
"verify": [
"node -e \"JSON.parse(require('fs').readFileSync('manifest.llm.json','utf8')); console.log('manifest ok')\"",
"npm run lint"
@@ -603,14 +619,15 @@
},
{
"command": "npm run version:bump-build",
"purpose": "Increment the package patch version, update public .env build metadata, and stage package/env metadata before a commit."
"purpose": "Increment the package patch version, update public .env build metadata, and stage package/env metadata before a commit. This does not author changelog content."
}
],
"knownGaps": [
"docs/ is still a placeholder README stub.",
"No JSON Schema validator exists yet for manifest.llm.json.",
"Toolkit content panels are read-only scaffolds except for socket/store save plumbing.",
"Toolkit placeholder JSON files are intentionally empty arrays until content schemas are requested.",
"Toolkit content panels use socket-backed structured authoring forms for current JSON fields.",
"Toolkit audio and image resources can upload local files through the Toolkit socket into src/assets uploads folders.",
"Toolkit JSON schemas are first-pass wiki-derived interfaces and should remain flexible while authoring forms stabilize.",
"Native android/ and ios/ folders are not currently present in this checkout.",
"No database exists yet; editable content is intentionally JSON-backed until schemas stabilize."
],