From 87742e76d866fdb1100b842147ac40695ba21294 Mon Sep 17 00:00:00 2001 From: MerlinH Date: Wed, 17 Jun 2026 20:19:36 +0000 Subject: [PATCH] feat: expand Open Game Studio Codex depth Add OpenSpec-backed catch-up passes for role coverage, workflow catalog, engine references, production templates, role prompt depth, behavioral validation, and project-local customization. Ship expanded Codex-native scaffolding, role/workflow/template registries, engine reference assets, deterministic validation scenarios, customization pack support, routed Truthmark docs, OpenSpec artifacts, and regression coverage. --- .codex/skills/openspec-apply-change/SKILL.md | 156 +++++++ .../skills/openspec-archive-change/SKILL.md | 114 +++++ .codex/skills/openspec-explore/SKILL.md | 288 ++++++++++++ .codex/skills/openspec-propose/SKILL.md | 110 +++++ docs/system-verification.md | 1 + .../engineering/codex/roles-and-workflows.md | 48 +- .../engineering/codex/runtime-and-tasks.md | 11 +- .../contracts/cli-and-validation.md | 29 +- .../projects/project-scaffolding.md | 4 +- .../engineering/repository/overview.md | 2 +- .../truthmark/product/open-game-studio-cli.md | 6 +- docs/truthmark/routes/areas/repository.md | 12 +- docs/workflow-validation.md | 8 +- engine_reference/godot/VERSION.md | 44 +- engine_reference/godot/breaking-changes.md | 26 ++ .../godot/current-best-practices.md | 27 ++ engine_reference/godot/deprecated-apis.md | 26 ++ engine_reference/godot/gameplay.md | 46 +- engine_reference/godot/modules/animation.md | 26 ++ engine_reference/godot/modules/audio.md | 26 ++ engine_reference/godot/modules/input.md | 26 ++ engine_reference/godot/modules/navigation.md | 26 ++ engine_reference/godot/modules/networking.md | 26 ++ engine_reference/godot/modules/physics.md | 26 ++ engine_reference/godot/modules/rendering.md | 26 ++ engine_reference/godot/modules/ui.md | 26 ++ engine_reference/godot/plugins.md | 45 +- engine_reference/godot/specialist.md | 41 +- engine_reference/unity/VERSION.md | 41 +- engine_reference/unity/breaking-changes.md | 26 ++ .../unity/current-best-practices.md | 27 ++ engine_reference/unity/deprecated-apis.md | 26 ++ engine_reference/unity/gameplay.md | 46 +- engine_reference/unity/modules/animation.md | 26 ++ engine_reference/unity/modules/audio.md | 26 ++ engine_reference/unity/modules/input.md | 26 ++ engine_reference/unity/modules/navigation.md | 26 ++ engine_reference/unity/modules/networking.md | 26 ++ engine_reference/unity/modules/physics.md | 26 ++ engine_reference/unity/modules/rendering.md | 26 ++ engine_reference/unity/modules/ui.md | 26 ++ engine_reference/unity/plugins.md | 44 +- .../unity/plugins/addressables.md | 26 ++ engine_reference/unity/plugins/cinemachine.md | 26 ++ engine_reference/unity/plugins/dots.md | 26 ++ engine_reference/unity/specialist.md | 41 +- engine_reference/unreal/VERSION.md | 43 +- engine_reference/unreal/breaking-changes.md | 26 ++ .../unreal/current-best-practices.md | 27 ++ engine_reference/unreal/deprecated-apis.md | 26 ++ engine_reference/unreal/gameplay.md | 46 +- engine_reference/unreal/modules/animation.md | 26 ++ engine_reference/unreal/modules/audio.md | 26 ++ engine_reference/unreal/modules/input.md | 26 ++ engine_reference/unreal/modules/navigation.md | 26 ++ engine_reference/unreal/modules/networking.md | 26 ++ engine_reference/unreal/modules/physics.md | 26 ++ engine_reference/unreal/modules/rendering.md | 26 ++ engine_reference/unreal/modules/ui.md | 26 ++ engine_reference/unreal/plugins.md | 44 +- engine_reference/unreal/plugins/common-ui.md | 26 ++ engine_reference/unreal/plugins/gas.md | 26 ++ engine_reference/unreal/plugins/pcg.md | 26 ++ engine_reference/unreal/specialist.md | 43 +- .../.openspec.yaml | 2 + .../catch-up-behavioral-evaluation/README.md | 3 + .../catch-up-behavioral-evaluation/design.md | 32 ++ .../proposal.md | 30 ++ .../spec.md | 30 ++ .../catch-up-behavioral-evaluation/tasks.md | 29 ++ .../.openspec.yaml | 2 + .../README.md | 3 + .../design.md | 35 ++ .../proposal.md | 30 ++ .../spec.md | 30 ++ .../tasks.md | 29 ++ .../.openspec.yaml | 2 + .../catch-up-domain-role-coverage/README.md | 3 + .../catch-up-domain-role-coverage/design.md | 33 ++ .../catch-up-domain-role-coverage/proposal.md | 29 ++ .../codex-studio-domain-role-coverage/spec.md | 30 ++ .../catch-up-domain-role-coverage/tasks.md | 28 ++ .../.openspec.yaml | 2 + .../catch-up-engine-reference-depth/README.md | 3 + .../catch-up-engine-reference-depth/design.md | 33 ++ .../proposal.md | 30 ++ .../spec.md | 30 ++ .../catch-up-engine-reference-depth/tasks.md | 29 ++ .../.openspec.yaml | 2 + .../catch-up-production-templates/README.md | 3 + .../catch-up-production-templates/design.md | 33 ++ .../catch-up-production-templates/proposal.md | 29 ++ .../spec.md | 30 ++ .../catch-up-production-templates/tasks.md | 28 ++ .../catch-up-role-prompt-depth/.openspec.yaml | 2 + .../catch-up-role-prompt-depth/README.md | 3 + .../catch-up-role-prompt-depth/design.md | 33 ++ .../catch-up-role-prompt-depth/proposal.md | 29 ++ .../codex-studio-role-prompt-depth/spec.md | 30 ++ .../catch-up-role-prompt-depth/tasks.md | 28 ++ .../.openspec.yaml | 2 + .../catch-up-workflow-skill-catalog/README.md | 3 + .../catch-up-workflow-skill-catalog/design.md | 34 ++ .../proposal.md | 29 ++ .../codex-studio-workflow-catalog/spec.md | 30 ++ .../catch-up-workflow-skill-catalog/tasks.md | 28 ++ openspec/config.yaml | 20 + ...-17-catch-up-behavioral-evaluation-plan.md | 64 +++ ...-catch-up-customization-ergonomics-plan.md | 64 +++ ...6-17-catch-up-domain-role-coverage-plan.md | 63 +++ ...17-catch-up-engine-reference-depth-plan.md | 64 +++ ...6-17-catch-up-production-templates-plan.md | 63 +++ ...6-06-17-catch-up-role-prompt-depth-plan.md | 63 +++ ...17-catch-up-workflow-skill-catalog-plan.md | 63 +++ src/agents.ts | 25 +- src/behavioral-evaluation.ts | 213 +++++++++ src/cli.ts | 41 +- src/codex-prompts.ts | 5 +- src/config.ts | 39 +- src/customization.ts | 278 +++++++++++ src/engine-reference.ts | 121 ++++- src/projects.ts | 20 +- src/roles.ts | 276 ++++++++++- src/runner.ts | 87 +++- src/templates.ts | 311 +++++++++++-- src/validation.ts | 18 +- src/workflows.ts | 432 +++++++++++++++--- .../accessibility_requirements_template.md | 15 + templates/adr_template.md | 15 + .../architecture_traceability_template.md | 15 + templates/art_bible_template.md | 15 + templates/difficulty_curve_template.md | 15 + templates/economy_model_template.md | 15 + templates/pitch_document_template.md | 15 + templates/player_journey_template.md | 15 + templates/postmortem_template.md | 15 + templates/release_notes_template.md | 15 + templates/risk_register_template.md | 15 + templates/sound_bible_template.md | 15 + templates/sprint_plan_template.md | 15 + templates/technical_design_template.md | 15 + templates/test_evidence_template.md | 15 + templates/test_plan_template.md | 15 + templates/ux_spec_template.md | 15 + templates/vertical_slice_report_template.md | 15 + tests/agents-templates.test.ts | 62 ++- tests/behavioral-evaluation.test.ts | 66 +++ tests/codex-context-files.test.ts | 17 + tests/codex-prompts.test.ts | 31 ++ tests/customization.test.ts | 134 ++++++ tests/engine-system.test.ts | 29 +- tests/functionality-gap-pass.test.ts | 169 ++++++- tests/roles.test.ts | 64 +++ tests/validation.test.ts | 13 +- 154 files changed, 5882 insertions(+), 516 deletions(-) create mode 100644 .codex/skills/openspec-apply-change/SKILL.md create mode 100644 .codex/skills/openspec-archive-change/SKILL.md create mode 100644 .codex/skills/openspec-explore/SKILL.md create mode 100644 .codex/skills/openspec-propose/SKILL.md create mode 100644 engine_reference/godot/breaking-changes.md create mode 100644 engine_reference/godot/current-best-practices.md create mode 100644 engine_reference/godot/deprecated-apis.md create mode 100644 engine_reference/godot/modules/animation.md create mode 100644 engine_reference/godot/modules/audio.md create mode 100644 engine_reference/godot/modules/input.md create mode 100644 engine_reference/godot/modules/navigation.md create mode 100644 engine_reference/godot/modules/networking.md create mode 100644 engine_reference/godot/modules/physics.md create mode 100644 engine_reference/godot/modules/rendering.md create mode 100644 engine_reference/godot/modules/ui.md create mode 100644 engine_reference/unity/breaking-changes.md create mode 100644 engine_reference/unity/current-best-practices.md create mode 100644 engine_reference/unity/deprecated-apis.md create mode 100644 engine_reference/unity/modules/animation.md create mode 100644 engine_reference/unity/modules/audio.md create mode 100644 engine_reference/unity/modules/input.md create mode 100644 engine_reference/unity/modules/navigation.md create mode 100644 engine_reference/unity/modules/networking.md create mode 100644 engine_reference/unity/modules/physics.md create mode 100644 engine_reference/unity/modules/rendering.md create mode 100644 engine_reference/unity/modules/ui.md create mode 100644 engine_reference/unity/plugins/addressables.md create mode 100644 engine_reference/unity/plugins/cinemachine.md create mode 100644 engine_reference/unity/plugins/dots.md create mode 100644 engine_reference/unreal/breaking-changes.md create mode 100644 engine_reference/unreal/current-best-practices.md create mode 100644 engine_reference/unreal/deprecated-apis.md create mode 100644 engine_reference/unreal/modules/animation.md create mode 100644 engine_reference/unreal/modules/audio.md create mode 100644 engine_reference/unreal/modules/input.md create mode 100644 engine_reference/unreal/modules/navigation.md create mode 100644 engine_reference/unreal/modules/networking.md create mode 100644 engine_reference/unreal/modules/physics.md create mode 100644 engine_reference/unreal/modules/rendering.md create mode 100644 engine_reference/unreal/modules/ui.md create mode 100644 engine_reference/unreal/plugins/common-ui.md create mode 100644 engine_reference/unreal/plugins/gas.md create mode 100644 engine_reference/unreal/plugins/pcg.md create mode 100644 openspec/changes/catch-up-behavioral-evaluation/.openspec.yaml create mode 100644 openspec/changes/catch-up-behavioral-evaluation/README.md create mode 100644 openspec/changes/catch-up-behavioral-evaluation/design.md create mode 100644 openspec/changes/catch-up-behavioral-evaluation/proposal.md create mode 100644 openspec/changes/catch-up-behavioral-evaluation/specs/codex-studio-behavioral-evaluation/spec.md create mode 100644 openspec/changes/catch-up-behavioral-evaluation/tasks.md create mode 100644 openspec/changes/catch-up-customization-ergonomics/.openspec.yaml create mode 100644 openspec/changes/catch-up-customization-ergonomics/README.md create mode 100644 openspec/changes/catch-up-customization-ergonomics/design.md create mode 100644 openspec/changes/catch-up-customization-ergonomics/proposal.md create mode 100644 openspec/changes/catch-up-customization-ergonomics/specs/codex-studio-customization-ergonomics/spec.md create mode 100644 openspec/changes/catch-up-customization-ergonomics/tasks.md create mode 100644 openspec/changes/catch-up-domain-role-coverage/.openspec.yaml create mode 100644 openspec/changes/catch-up-domain-role-coverage/README.md create mode 100644 openspec/changes/catch-up-domain-role-coverage/design.md create mode 100644 openspec/changes/catch-up-domain-role-coverage/proposal.md create mode 100644 openspec/changes/catch-up-domain-role-coverage/specs/codex-studio-domain-role-coverage/spec.md create mode 100644 openspec/changes/catch-up-domain-role-coverage/tasks.md create mode 100644 openspec/changes/catch-up-engine-reference-depth/.openspec.yaml create mode 100644 openspec/changes/catch-up-engine-reference-depth/README.md create mode 100644 openspec/changes/catch-up-engine-reference-depth/design.md create mode 100644 openspec/changes/catch-up-engine-reference-depth/proposal.md create mode 100644 openspec/changes/catch-up-engine-reference-depth/specs/codex-studio-engine-reference-depth/spec.md create mode 100644 openspec/changes/catch-up-engine-reference-depth/tasks.md create mode 100644 openspec/changes/catch-up-production-templates/.openspec.yaml create mode 100644 openspec/changes/catch-up-production-templates/README.md create mode 100644 openspec/changes/catch-up-production-templates/design.md create mode 100644 openspec/changes/catch-up-production-templates/proposal.md create mode 100644 openspec/changes/catch-up-production-templates/specs/codex-studio-production-template-pack/spec.md create mode 100644 openspec/changes/catch-up-production-templates/tasks.md create mode 100644 openspec/changes/catch-up-role-prompt-depth/.openspec.yaml create mode 100644 openspec/changes/catch-up-role-prompt-depth/README.md create mode 100644 openspec/changes/catch-up-role-prompt-depth/design.md create mode 100644 openspec/changes/catch-up-role-prompt-depth/proposal.md create mode 100644 openspec/changes/catch-up-role-prompt-depth/specs/codex-studio-role-prompt-depth/spec.md create mode 100644 openspec/changes/catch-up-role-prompt-depth/tasks.md create mode 100644 openspec/changes/catch-up-workflow-skill-catalog/.openspec.yaml create mode 100644 openspec/changes/catch-up-workflow-skill-catalog/README.md create mode 100644 openspec/changes/catch-up-workflow-skill-catalog/design.md create mode 100644 openspec/changes/catch-up-workflow-skill-catalog/proposal.md create mode 100644 openspec/changes/catch-up-workflow-skill-catalog/specs/codex-studio-workflow-catalog/spec.md create mode 100644 openspec/changes/catch-up-workflow-skill-catalog/tasks.md create mode 100644 openspec/config.yaml create mode 100644 research/2026-06-17-catch-up-behavioral-evaluation-plan.md create mode 100644 research/2026-06-17-catch-up-customization-ergonomics-plan.md create mode 100644 research/2026-06-17-catch-up-domain-role-coverage-plan.md create mode 100644 research/2026-06-17-catch-up-engine-reference-depth-plan.md create mode 100644 research/2026-06-17-catch-up-production-templates-plan.md create mode 100644 research/2026-06-17-catch-up-role-prompt-depth-plan.md create mode 100644 research/2026-06-17-catch-up-workflow-skill-catalog-plan.md create mode 100644 src/behavioral-evaluation.ts create mode 100644 src/customization.ts create mode 100644 templates/accessibility_requirements_template.md create mode 100644 templates/adr_template.md create mode 100644 templates/architecture_traceability_template.md create mode 100644 templates/art_bible_template.md create mode 100644 templates/difficulty_curve_template.md create mode 100644 templates/economy_model_template.md create mode 100644 templates/pitch_document_template.md create mode 100644 templates/player_journey_template.md create mode 100644 templates/postmortem_template.md create mode 100644 templates/release_notes_template.md create mode 100644 templates/risk_register_template.md create mode 100644 templates/sound_bible_template.md create mode 100644 templates/sprint_plan_template.md create mode 100644 templates/technical_design_template.md create mode 100644 templates/test_evidence_template.md create mode 100644 templates/test_plan_template.md create mode 100644 templates/ux_spec_template.md create mode 100644 templates/vertical_slice_report_template.md create mode 100644 tests/behavioral-evaluation.test.ts create mode 100644 tests/customization.test.ts diff --git a/.codex/skills/openspec-apply-change/SKILL.md b/.codex/skills/openspec-apply-change/SKILL.md new file mode 100644 index 0000000..70fbdb8 --- /dev/null +++ b/.codex/skills/openspec-apply-change/SKILL.md @@ -0,0 +1,156 @@ +--- +name: openspec-apply-change +description: Implement tasks from an OpenSpec change. Use when the user wants to start implementing, continue implementation, or work through tasks. +license: MIT +compatibility: Requires openspec CLI. +metadata: + author: openspec + version: "1.0" + generatedBy: "1.3.1" +--- + +Implement tasks from an OpenSpec change. + +**Input**: Optionally specify a change name. If omitted, check if it can be inferred from conversation context. If vague or ambiguous you MUST prompt for available changes. + +**Steps** + +1. **Select the change** + + If a name is provided, use it. Otherwise: + - Infer from conversation context if the user mentioned a change + - Auto-select if only one active change exists + - If ambiguous, run `openspec list --json` to get available changes and use the **AskUserQuestion tool** to let the user select + + Always announce: "Using change: " and how to override (e.g., `/opsx:apply `). + +2. **Check status to understand the schema** + ```bash + openspec status --change "" --json + ``` + Parse the JSON to understand: + - `schemaName`: The workflow being used (e.g., "spec-driven") + - Which artifact contains the tasks (typically "tasks" for spec-driven, check status for others) + +3. **Get apply instructions** + + ```bash + openspec instructions apply --change "" --json + ``` + + This returns: + - `contextFiles`: artifact ID -> array of concrete file paths (varies by schema - could be proposal/specs/design/tasks or spec/tests/implementation/docs) + - Progress (total, complete, remaining) + - Task list with status + - Dynamic instruction based on current state + + **Handle states:** + - If `state: "blocked"` (missing artifacts): show message, suggest using openspec-continue-change + - If `state: "all_done"`: congratulate, suggest archive + - Otherwise: proceed to implementation + +4. **Read context files** + + Read every file path listed under `contextFiles` from the apply instructions output. + The files depend on the schema being used: + - **spec-driven**: proposal, specs, design, tasks + - Other schemas: follow the contextFiles from CLI output + +5. **Show current progress** + + Display: + - Schema being used + - Progress: "N/M tasks complete" + - Remaining tasks overview + - Dynamic instruction from CLI + +6. **Implement tasks (loop until done or blocked)** + + For each pending task: + - Show which task is being worked on + - Make the code changes required + - Keep changes minimal and focused + - Mark task complete in the tasks file: `- [ ]` → `- [x]` + - Continue to next task + + **Pause if:** + - Task is unclear → ask for clarification + - Implementation reveals a design issue → suggest updating artifacts + - Error or blocker encountered → report and wait for guidance + - User interrupts + +7. **On completion or pause, show status** + + Display: + - Tasks completed this session + - Overall progress: "N/M tasks complete" + - If all done: suggest archive + - If paused: explain why and wait for guidance + +**Output During Implementation** + +``` +## Implementing: (schema: ) + +Working on task 3/7: +[...implementation happening...] +✓ Task complete + +Working on task 4/7: +[...implementation happening...] +✓ Task complete +``` + +**Output On Completion** + +``` +## Implementation Complete + +**Change:** +**Schema:** +**Progress:** 7/7 tasks complete ✓ + +### Completed This Session +- [x] Task 1 +- [x] Task 2 +... + +All tasks complete! Ready to archive this change. +``` + +**Output On Pause (Issue Encountered)** + +``` +## Implementation Paused + +**Change:** +**Schema:** +**Progress:** 4/7 tasks complete + +### Issue Encountered + + +**Options:** +1.