diff --git a/.github/workflows/opencode-review.yml b/.github/workflows/opencode-review.yml index aac11f6..e7641e1 100644 --- a/.github/workflows/opencode-review.yml +++ b/.github/workflows/opencode-review.yml @@ -9,14 +9,15 @@ jobs: runs-on: ubuntu-latest permissions: id-token: write - contents: read + contents: write pull-requests: write issues: read if: github.actor != 'dependabot[bot]' # Skip dependabot steps: - uses: actions/checkout@v6 with: - persist-credentials: false + persist-credentials: true + token: ${{ secrets.GITHUB_TOKEN }} - name: Configure git identity run: | diff --git a/.github/workflows/opencode.yml b/.github/workflows/opencode.yml index 7a948e2..c3c798a 100644 --- a/.github/workflows/opencode.yml +++ b/.github/workflows/opencode.yml @@ -23,7 +23,8 @@ jobs: - name: Checkout repository uses: actions/checkout@v6 with: - persist-credentials: false + persist-credentials: true + token: ${{ secrets.GITHUB_TOKEN }} - name: Run opencode uses: anomalyco/opencode/github@latest diff --git a/.opencode/docs/CLAUDE-local-template.md b/.opencode/docs/CLAUDE-local-template.md index b3bebc2..5c858f3 100644 --- a/.opencode/docs/CLAUDE-local-template.md +++ b/.opencode/docs/CLAUDE-local-template.md @@ -32,6 +32,6 @@ This file is gitignored and will not be committed. ## Setup -1. Copy this template to your project root: `cp .claude/docs/CLAUDE-local-template.md CLAUDE.local.md` +1. Copy this template to your project root: `cp .opencode/docs/CLAUDE-local-template.md CLAUDE.local.md` 2. Edit to match your preferences 3. Verify `CLAUDE.local.md` is in `.gitignore` (Claude Code reads it from the project root) diff --git a/.opencode/docs/agent-roster.md b/.opencode/docs/agent-roster.md index cd52533..89609f1 100644 --- a/.opencode/docs/agent-roster.md +++ b/.opencode/docs/agent-roster.md @@ -1,7 +1,7 @@ # Agent Roster The following agents are available. Each has a dedicated definition file in -`.claude/agents/`. Use the agent best suited to the task at hand. When a task +`.opencode/agents/`. Use the agent best suited to the task at hand. When a task spans multiple domains, the coordinating agent (usually `producer` or the domain lead) should delegate to specialists. diff --git a/.opencode/docs/director-gates.md b/.opencode/docs/director-gates.md index 3f8cbe4..21e04eb 100644 --- a/.opencode/docs/director-gates.md +++ b/.opencode/docs/director-gates.md @@ -15,7 +15,7 @@ In any skill, replace an inline director prompt with a reference: ``` Spawn `creative-director` via Task using gate **CD-PILLARS** from -`.claude/docs/director-gates.md`. +`.opencode/docs/director-gates.md`. ``` Pass the context listed under that gate's **Context to pass** field, then handle @@ -79,7 +79,7 @@ Apply the resolved mode: ``` # Apply mode check, then: Spawn `[agent-name]` via Task: -- Gate: [GATE-ID] (see .claude/docs/director-gates.md) +- Gate: [GATE-ID] (see .opencode/docs/director-gates.md) - Context: [fields listed under that gate] - Await the verdict before proceeding. ``` @@ -573,7 +573,7 @@ Agent: `art-director` | Model tier: Sonnet | Domain: Visual identity, art bible, **Context to pass**: - Art bible path (`design/art/art-bible.md`) - Game pillars and core fantasy -- Platform and performance constraints (from `.claude/docs/technical-preferences.md` if configured) +- Platform and performance constraints (from `.opencode/docs/technical-preferences.md` if configured) - Visual identity anchor chosen during brainstorm (from `design/gdd/game-concept.md`) **Prompt**: diff --git a/.opencode/docs/directory-structure.md b/.opencode/docs/directory-structure.md index 7e859f2..273b8b2 100644 --- a/.opencode/docs/directory-structure.md +++ b/.opencode/docs/directory-structure.md @@ -3,7 +3,7 @@ ```text / ├── CLAUDE.md # Master configuration -├── .claude/ # Agent definitions, skills, hooks, rules, docs +├── .opencode/ # Agent definitions, skills, hooks, rules, docs ├── src/ # Game source code (core, gameplay, ai, networking, ui, tools) ├── assets/ # Game assets (art, audio, vfx, shaders, data) ├── design/ # Game design documents (gdd, narrative, levels, balance) diff --git a/.opencode/docs/hooks-reference.md b/.opencode/docs/hooks-reference.md index d3d15b3..fd169d5 100644 --- a/.opencode/docs/hooks-reference.md +++ b/.opencode/docs/hooks-reference.md @@ -1,6 +1,6 @@ # Active Hooks -Hooks are configured in `.claude/settings.json` and fire automatically: +Hooks are configured in `.opencode/settings.json` and fire automatically: | Hook | Event | Trigger | Action | | ---- | ----- | ------- | ------ | @@ -15,7 +15,7 @@ Hooks are configured in `.claude/settings.json` and fire automatically: | `session-stop.sh` | Stop | Session ends | Summarizes accomplishments and updates session log | | `log-agent.sh` | SubagentStart | Agent spawned | Audit trail start — logs subagent invocation with timestamp | | `log-agent-stop.sh` | SubagentStop | Agent stops | Audit trail stop — completes subagent record | -| `validate-skill-change.sh` | PostToolUse (Write/Edit) | Skill file changes | Advises running `/skill-test` after any `.claude/skills/` file is written or edited | +| `validate-skill-change.sh` | PostToolUse (Write/Edit) | Skill file changes | Advises running `/skill-test` after any `.opencode/skills/` file is written or edited | -Hook reference documentation: `.claude/docs/hooks-reference/` -Hook input schema documentation: `.claude/docs/hooks-reference/hook-input-schemas.md` +Hook reference documentation: `.opencode/docs/hooks-reference/` +Hook input schema documentation: `.opencode/docs/hooks-reference/hook-input-schemas.md` diff --git a/.opencode/docs/quick-start.md b/.opencode/docs/quick-start.md index e79eb9f..a0e999f 100644 --- a/.opencode/docs/quick-start.md +++ b/.opencode/docs/quick-start.md @@ -145,7 +145,7 @@ Ask yourself: "What department would handle this in a real studio?" ### 4. Use Templates for New Documents -Templates are in `.claude/docs/templates/`: +Templates are in `.opencode/docs/templates/`: - `game-design-document.md` -- for new mechanics and systems - `architecture-decision-record.md` -- for technical decisions @@ -182,7 +182,7 @@ Templates are in `.claude/docs/templates/`: - `difficulty-curve.md` -- for difficulty axes, onboarding ramp, and cross-system interactions - `test-evidence.md` -- template for recording manual test evidence (screenshots, walkthrough notes) -Also in `.claude/docs/templates/collaborative-protocols/` (used by agents, not typically edited directly): +Also in `.opencode/docs/templates/collaborative-protocols/` (used by agents, not typically edited directly): - `design-agent-protocol.md` -- question-options-draft-approval cycle for design agents - `implementation-agent-protocol.md` -- story pickup through /story-done cycle for programming agents @@ -211,7 +211,7 @@ If you already know what you need, jump directly to the relevant path: - Produces a game concept document and recommends an engine 2. **Set up the engine** — Run `/setup-engine` (uses the brainstorm recommendation) - Configures CLAUDE.md, detects knowledge gaps, populates reference docs - - Creates `.claude/docs/technical-preferences.md` with naming conventions, + - Creates `.opencode/docs/technical-preferences.md` with naming conventions, performance budgets, and engine-specific defaults - If the engine version is newer than the LLM's training data, it fetches current docs from the web so agents suggest correct APIs @@ -282,3 +282,4 @@ CLAUDE.md -- Master config (read this first, ~60 lines) settings-local-template.md -- Personal settings.local.json guide templates/ -- 37 document templates ``` + diff --git a/.opencode/docs/rules-reference.md b/.opencode/docs/rules-reference.md index 7fb7863..ee09b7d 100644 --- a/.opencode/docs/rules-reference.md +++ b/.opencode/docs/rules-reference.md @@ -1,6 +1,6 @@ # Path-Specific Rules -Rules in `.claude/rules/` are automatically enforced when editing files in matching paths: +Rules in `.opencode/rules/` are automatically enforced when editing files in matching paths: | Rule File | Path Pattern | Enforces | | ---- | ---- | ---- | diff --git a/.opencode/docs/settings-local-template.md b/.opencode/docs/settings-local-template.md index 487be2c..05f9f89 100644 --- a/.opencode/docs/settings-local-template.md +++ b/.opencode/docs/settings-local-template.md @@ -1,6 +1,6 @@ # settings.local.json Template -Create `.claude/settings.local.json` for personal overrides that should NOT +Create `.opencode/settings.local.json` for personal overrides that should NOT be committed to version control. Add it to `.gitignore`. ## Example settings.local.json diff --git a/.opencode/docs/setup-requirements.md b/.opencode/docs/setup-requirements.md index 19cba92..0f9559a 100644 --- a/.opencode/docs/setup-requirements.md +++ b/.opencode/docs/setup-requirements.md @@ -46,7 +46,7 @@ sudo pacman -S jq # Arch - Git for Windows includes **Git Bash**, which provides the `bash` command used by all hooks in `settings.json` - Ensure Git Bash is on your PATH (default if installed via the Git installer) -- Hooks use `bash .claude/hooks/[name].sh` — this works on Windows because +- Hooks use `bash .opencode/hooks/[name].sh` — this works on Windows because Claude Code invokes commands through a shell that can find `bash.exe` ### macOS / Linux diff --git a/.opencode/skills/adopt/SKILL.md b/.opencode/skills/adopt/SKILL.md index dca3fe0..2b7f04b 100644 --- a/.opencode/skills/adopt/SKILL.md +++ b/.opencode/skills/adopt/SKILL.md @@ -48,7 +48,7 @@ Then read silently before presenting anything else. - Count GDD files: `design/gdd/*.md` (excluding game-concept.md and systems-index.md) - Count ADR files: `docs/architecture/adr-*.md` - Count story files: `production/epics/**/*.md` (excluding EPIC.md) -- `.claude/docs/technical-preferences.md` — engine configured? +- `.opencode/docs/technical-preferences.md` — engine configured? - `docs/engine-reference/` — engine reference docs present? - Glob `docs/adoption-plan-*.md` — note the filename of the most recent prior plan if any exist @@ -159,7 +159,7 @@ For each story file found: ### 2f: Technical Preferences Audit -Read `.claude/docs/technical-preferences.md`. Check each field for `[TO BE CONFIGURED]`: +Read `.opencode/docs/technical-preferences.md`. Check each field for `[TO BE CONFIGURED]`: - Engine, Language, Rendering, Physics → HIGH if unconfigured (ADR skills fail) - Naming conventions → MEDIUM - Performance budgets → MEDIUM diff --git a/.opencode/skills/architecture-decision/SKILL.md b/.opencode/skills/architecture-decision/SKILL.md index 92b6f59..0abbdc9 100644 --- a/.opencode/skills/architecture-decision/SKILL.md +++ b/.opencode/skills/architecture-decision/SKILL.md @@ -15,7 +15,7 @@ Resolve the review mode (once, store for all gate spawns this run): 2. Else read `production/review-mode.txt` → use that value 3. Else → default to `lean` -See `.claude/docs/director-gates.md` for the full check pattern. +See `.opencode/docs/director-gates.md` for the full check pattern. **If the argument starts with `retrofit` followed by a file path** (e.g., `/architecture-decision retrofit docs/architecture/adr-0001-event-system.md`): @@ -335,7 +335,7 @@ to implement it.] ``` 4.5. **Engine Specialist Validation** — Before saving, spawn the **primary engine specialist** via Task to validate the drafted ADR: - - Read `.claude/docs/technical-preferences.md` `Engine Specialists` section to get the primary specialist + - Read `.opencode/docs/technical-preferences.md` `Engine Specialists` section to get the primary specialist - If no engine is configured (`[TO BE CONFIGURED]`), skip this step - Spawn `subagent_type: [primary specialist]` with: the ADR's Engine Compatibility section, Decision section, Key Interfaces, and the engine reference docs path. Ask them to: 1. Confirm the proposed approach is idiomatic for the pinned engine version @@ -349,7 +349,7 @@ to implement it.] - `lean` → skip (not a PHASE-GATE). Note: "TD-ADR skipped — Lean mode." Proceed to Step 4.7 (GDD sync check). - `full` → spawn as normal. -4.6. **Technical Director Strategic Review** — After the engine specialist validation, spawn `technical-director` via Task using gate **TD-ADR** (`.claude/docs/director-gates.md`): +4.6. **Technical Director Strategic Review** — After the engine specialist validation, spawn `technical-director` via Task using gate **TD-ADR** (`.opencode/docs/director-gates.md`): - Pass: the ADR file path (or draft content), engine version, domain, any existing ADRs in the same domain - The TD validates architectural coherence (is this decision consistent with the whole system?) — distinct from the engine specialist's API-level check - If CONCERNS or REJECT: revise the Decision or Alternatives sections accordingly before proceeding diff --git a/.opencode/skills/architecture-review/SKILL.md b/.opencode/skills/architecture-review/SKILL.md index 381cacd..cea9bad 100644 --- a/.opencode/skills/architecture-review/SKILL.md +++ b/.opencode/skills/architecture-review/SKILL.md @@ -68,7 +68,7 @@ Read all inputs appropriate to the mode: - All files in `docs/engine-reference/[engine]/modules/` ### Project Standards -- `.claude/docs/technical-preferences.md` +- `.opencode/docs/technical-preferences.md` Report a count: "Loaded [N] GDDs, [M] ADRs, engine: [name + version]." @@ -324,7 +324,7 @@ Post-Cutoff API Conflicts: ### Engine Specialist Consultation After completing the engine audit above, spawn the **primary engine specialist** via Task for a domain-expert second opinion: -- Read `.claude/docs/technical-preferences.md` `Engine Specialists` section to get the primary specialist +- Read `.opencode/docs/technical-preferences.md` `Engine Specialists` section to get the primary specialist - If no engine is configured, skip this consultation - Spawn `subagent_type: [primary specialist]` with: all ADRs that contain engine-specific decisions or `Post-Cutoff APIs Used` fields, the engine reference docs, and the Phase 5 audit findings. Ask them to: 1. Confirm or challenge each audit finding — specialists may know of engine nuances not captured in the reference docs diff --git a/.opencode/skills/art-bible/SKILL.md b/.opencode/skills/art-bible/SKILL.md index 8a3c740..2538a4f 100644 --- a/.opencode/skills/art-bible/SKILL.md +++ b/.opencode/skills/art-bible/SKILL.md @@ -13,7 +13,7 @@ Resolve the review mode (once, store for all gate spawns this run): 2. Else read `production/review-mode.txt` → use that value 3. Else → default to `lean` -See `.claude/docs/director-gates.md` for the full check pattern. +See `.opencode/docs/director-gates.md` for the full check pattern. Read `design/gdd/game-concept.md`. If it does not exist, fail with: > "No game concept found. Run `/brainstorm` first — the art bible is authored after the game concept is approved." @@ -50,7 +50,7 @@ Section | Status If the file does not exist, this is a fresh authoring session — proceed normally. -Read `.claude/docs/technical-preferences.md` if it exists — extract performance budgets and engine for asset standard constraints. +Read `.opencode/docs/technical-preferences.md` if it exists — extract performance budgets and engine for asset standard constraints. --- @@ -166,7 +166,7 @@ Write the approved section to file. **Agent delegation**: Spawn in parallel: - **`art-director`**: File format preferences, naming convention direction, texture resolution tiers, LOD level expectations, export settings philosophy -- **`technical-artist`**: Engine-specific hard constraints — poly count budgets per asset category, texture memory limits, material slot counts, importer constraints, anything from the performance budgets in `.claude/docs/technical-preferences.md` +- **`technical-artist`**: Engine-specific hard constraints — poly count budgets per asset category, texture memory limits, material slot counts, importer constraints, anything from the performance budgets in `.opencode/docs/technical-preferences.md` If any art preference conflicts with a technical constraint (e.g., art-director wants 4K textures but performance budget requires 2K for mobile), resolve the conflict explicitly — note both the ideal and the constrained standard, and explain the tradeoff. Ambiguity in asset standards is where production costs are born. @@ -191,7 +191,7 @@ Write the approved section to file. - `lean` → skip (not a PHASE-GATE). Note: "AD-ART-BIBLE skipped — Lean mode." Proceed to Phase 6. - `full` → spawn as normal. -After all sections are complete (or the scoped set from Phase 1 is complete), spawn `creative-director` via Task using gate **AD-ART-BIBLE** (`.claude/docs/director-gates.md`). +After all sections are complete (or the scoped set from Phase 1 is complete), spawn `creative-director` via Task using gate **AD-ART-BIBLE** (`.opencode/docs/director-gates.md`). Pass: art bible file path, game pillars, visual identity anchor. @@ -204,7 +204,7 @@ Handle verdict per standard rules in `director-gates.md`. Record the verdict in Before presenting next steps, check project state: - Does `design/gdd/systems-index.md` exist? → map-systems is done, skip that option -- Does `.claude/docs/technical-preferences.md` contain a configured engine (not `[TO BE CONFIGURED]`)? → setup-engine is done, skip that option +- Does `.opencode/docs/technical-preferences.md` contain a configured engine (not `[TO BE CONFIGURED]`)? → setup-engine is done, skip that option - Does `design/gdd/` contain any `*.md` files? → design-system has been run, skip that option - Does `design/gdd/gdd-cross-review-*.md` exist? → review-all-gdds is done - Do GDDs exist (check above)? → include /consistency-check option diff --git a/.opencode/skills/asset-spec/SKILL.md b/.opencode/skills/asset-spec/SKILL.md index 337fc4b..d165dfb 100644 --- a/.opencode/skills/asset-spec/SKILL.md +++ b/.opencode/skills/asset-spec/SKILL.md @@ -40,7 +40,7 @@ Read all source material **before** asking the user anything. > "No art bible found. Run `/art-bible` first — asset specs are anchored to the art bible's visual rules and asset standards." Extract: Visual Identity Statement, Color System (semantic colors), Shape Language, Asset Standards (Section 8 — dimensions, formats, polycount budgets, texture resolution tiers). -- **Technical preferences**: Read `.claude/docs/technical-preferences.md` — extract performance budgets and naming conventions. +- **Technical preferences**: Read `.opencode/docs/technical-preferences.md` — extract performance budgets and naming conventions. ### Source doc reads (by target type): - **system**: Read `design/gdd/[target-name].md`. Extract the **Visual/Audio Requirements** section. If it doesn't exist or reads `[To be designed]`: diff --git a/.opencode/skills/brainstorm/SKILL.md b/.opencode/skills/brainstorm/SKILL.md index 48d0e6b..2da8f6b 100644 --- a/.opencode/skills/brainstorm/SKILL.md +++ b/.opencode/skills/brainstorm/SKILL.md @@ -15,7 +15,7 @@ When this skill is invoked: 2. Else read `production/review-mode.txt` → use that value 3. Else → default to `lean` - See `.claude/docs/director-gates.md` for the full check pattern. + See `.opencode/docs/director-gates.md` for the full check pattern. 2. **Check for existing concept work**: - Read `design/gdd/game-concept.md` if it exists (resume, don't restart) @@ -203,10 +203,10 @@ Repeat until the user selects [A] Lock these in. **After pillars and anti-pillars are agreed, spawn BOTH `creative-director` AND `art-director` via Task in parallel before moving to Phase 5. Issue both Task calls simultaneously — do not wait for one before starting the other.** -- **`creative-director`** — gate **CD-PILLARS** (`.claude/docs/director-gates.md`) +- **`creative-director`** — gate **CD-PILLARS** (`.opencode/docs/director-gates.md`) Pass: full pillar set with design tests, anti-pillars, core fantasy, unique hook. -- **`art-director`** — gate **AD-CONCEPT-VISUAL** (`.claude/docs/director-gates.md`) +- **`art-director`** — gate **AD-CONCEPT-VISUAL** (`.opencode/docs/director-gates.md`) Pass: game concept elevator pitch, full pillar set with design tests, target platform (if known), any reference games or visual touchstones the user mentioned. Collect both verdicts, then present them together using a two-tab `AskUserQuestion`: @@ -259,7 +259,7 @@ Ground the concept in reality: - `lean` → skip (not a PHASE-GATE). Note: "TD-FEASIBILITY skipped — Lean mode." Proceed directly to scope tier definition. - `full` → spawn as normal. -**After identifying biggest technical risks, spawn `technical-director` via Task using gate TD-FEASIBILITY (`.claude/docs/director-gates.md`) before scope tiers are defined.** +**After identifying biggest technical risks, spawn `technical-director` via Task using gate TD-FEASIBILITY (`.opencode/docs/director-gates.md`) before scope tiers are defined.** Pass: core loop description, platform target, engine choice (or "undecided"), list of identified technical risks. @@ -270,7 +270,7 @@ Present the assessment to the user. If HIGH RISK, offer to revisit scope before - `lean` → skip (not a PHASE-GATE). Note: "PR-SCOPE skipped — Lean mode." Proceed to document generation. - `full` → spawn as normal. -**After scope tiers are defined, spawn `producer` via Task using gate PR-SCOPE (`.claude/docs/director-gates.md`).** +**After scope tiers are defined, spawn `producer` via Task using gate PR-SCOPE (`.opencode/docs/director-gates.md`).** Pass: full vision scope, MVP definition, timeline estimate, team size. @@ -279,7 +279,7 @@ Present the assessment to the user. If UNREALISTIC, offer to adjust the MVP defi --- 4. **Generate the game concept document** using the template at - `.claude/docs/templates/game-concept.md`. Fill in ALL sections from the + `.opencode/docs/templates/game-concept.md`. Fill in ALL sections from the brainstorm conversation, including the MDA analysis, player motivation profile, and flow state design sections. @@ -302,7 +302,7 @@ After revising, show the updated section as a diff or clear before/after, then u Options: `[A] Yes — write it` / `[B] Revise another section` Repeat until the user selects [A]. -If yes, generate the document using the template at `.claude/docs/templates/game-concept.md`, fill in ALL sections from the brainstorm conversation, and write the file, creating directories as needed. +If yes, generate the document using the template at `.opencode/docs/templates/game-concept.md`, fill in ALL sections from the brainstorm conversation, and write the file, creating directories as needed. **Scope consistency rule**: The "Estimated Scope" field in the Core Identity table must match the full-vision timeline from the Scope Tiers section — not just say "Large (9+ months)". Write it as "Large (X–Y months, solo)" or "Large (X–Y months, team of N)" so the summary table is accurate. diff --git a/.opencode/skills/bug-triage/SKILL.md b/.opencode/skills/bug-triage/SKILL.md index cbed2b4..194ee3b 100644 --- a/.opencode/skills/bug-triage/SKILL.md +++ b/.opencode/skills/bug-triage/SKILL.md @@ -60,7 +60,7 @@ If no sprint file exists: note "No sprint plan found — assigning to backlog on ### Step 2c — Load severity reference -Read `.claude/docs/coding-standards.md` for severity/priority definitions if they +Read `.opencode/docs/coding-standards.md` for severity/priority definitions if they exist. If they do not exist, use the standard definitions in Step 3. --- diff --git a/.opencode/skills/code-review/SKILL.md b/.opencode/skills/code-review/SKILL.md index e1f8733..1e90f55 100644 --- a/.opencode/skills/code-review/SKILL.md +++ b/.opencode/skills/code-review/SKILL.md @@ -15,7 +15,7 @@ Read the target file(s) in full. Read CLAUDE.md for project coding standards. ## Phase 2: Identify Engine Specialists -Read `.claude/docs/technical-preferences.md`, section `## Engine Specialists`. Note: +Read `.opencode/docs/technical-preferences.md`, section `## Engine Specialists`. Note: - The **Primary** specialist (used for architecture and broad engine concerns) - The **Language/Code Specialist** (used when reviewing the project's primary language files) diff --git a/.opencode/skills/create-architecture/SKILL.md b/.opencode/skills/create-architecture/SKILL.md index d33c581..cf2e0ac 100644 --- a/.opencode/skills/create-architecture/SKILL.md +++ b/.opencode/skills/create-architecture/SKILL.md @@ -21,7 +21,7 @@ Resolve the review mode (once, store for all gate spawns this run): 2. Else read `production/review-mode.txt` → use that value 3. Else → default to `lean` -See `.claude/docs/director-gates.md` for the full check pattern. +See `.opencode/docs/director-gates.md` for the full check pattern. **Argument modes:** - **No argument / `full`**: Full guided walkthrough — all sections, start to finish @@ -61,7 +61,7 @@ Read all approved design documents and extract technical requirements from each: 1. `design/gdd/game-concept.md` — game pillars, genre, core loop 2. `design/gdd/systems-index.md` — all systems, dependencies, priority tiers -3. `.claude/docs/technical-preferences.md` — naming conventions, performance budgets, +3. `.opencode/docs/technical-preferences.md` — naming conventions, performance budgets, allowed libraries, forbidden patterns 4. **Every GDD in `design/gdd/`** — for each, extract technical requirements: - Data structures implied by the game rules @@ -337,14 +337,14 @@ After writing the master architecture document, perform an explicit sign-off bef **Step 1 — Technical Director self-review** (this skill runs as technical-director): -Apply gate **TD-ARCHITECTURE** (`.claude/docs/director-gates.md`) as a self-review. Check all four criteria from that gate definition against the completed document. +Apply gate **TD-ARCHITECTURE** (`.opencode/docs/director-gates.md`) as a self-review. Check all four criteria from that gate definition against the completed document. **Review mode check** — apply before spawning LP-FEASIBILITY: - `solo` → skip. Note: "LP-FEASIBILITY skipped — Solo mode." Proceed to Phase 8 handoff. - `lean` → skip (not a PHASE-GATE). Note: "LP-FEASIBILITY skipped — Lean mode." Proceed to Phase 8 handoff. - `full` → spawn as normal. -**Step 2 — Spawn `lead-programmer` via Task using gate LP-FEASIBILITY (`.claude/docs/director-gates.md`):** +**Step 2 — Spawn `lead-programmer` via Task using gate LP-FEASIBILITY (`.opencode/docs/director-gates.md`):** Pass: architecture document path, technical requirements baseline summary, ADR list. diff --git a/.opencode/skills/create-control-manifest/SKILL.md b/.opencode/skills/create-control-manifest/SKILL.md index a3c7881..ec067af 100644 --- a/.opencode/skills/create-control-manifest/SKILL.md +++ b/.opencode/skills/create-control-manifest/SKILL.md @@ -30,7 +30,7 @@ status. Re-run whenever new ADRs are accepted or existing ADRs are revised. - Note the ADR number and title for every rule sourced ### Technical Preferences -- Read `.claude/docs/technical-preferences.md` +- Read `.opencode/docs/technical-preferences.md` - Extract: naming conventions, performance budgets, approved libraries/addons, forbidden patterns @@ -123,7 +123,7 @@ Ask: "Does this look complete? Any rules to add or remove before I write the man - `lean` → skip. Note: "TD-MANIFEST skipped — Lean mode." Proceed to Phase 5. - `full` → spawn as normal. -Spawn `technical-director` via Task using gate **TD-MANIFEST** (`.claude/docs/director-gates.md`). +Spawn `technical-director` via Task using gate **TD-MANIFEST** (`.opencode/docs/director-gates.md`). Pass: the Control Manifest Preview from Phase 4 (rule counts per layer, full extracted rule list), the list of ADRs covered, engine version, and any rules sourced from technical-preferences.md or engine reference docs. diff --git a/.opencode/skills/create-epics/SKILL.md b/.opencode/skills/create-epics/SKILL.md index 662a04a..45b902f 100644 --- a/.opencode/skills/create-epics/SKILL.md +++ b/.opencode/skills/create-epics/SKILL.md @@ -32,7 +32,7 @@ Resolve the review mode (once, store for all gate spawns this run): 2. Else read `production/review-mode.txt` → use that value 3. Else → default to `lean` -See `.claude/docs/director-gates.md` for the full check pattern. +See `.opencode/docs/director-gates.md` for the full check pattern. **Modes:** - `/create-epics all` — process all systems in layer order @@ -127,7 +127,7 @@ Options: "Yes, create it", "Skip", "Pause — I need to write ADRs first" - `lean` → skip (not a PHASE-GATE). Note: "PR-EPIC skipped — Lean mode." Proceed to Step 5 (write epic files). - `full` → spawn as normal. -After all epics for the current layer are defined (Step 4 completed for all in-scope systems), and before writing any files, spawn `producer` via Task using gate **PR-EPIC** (`.claude/docs/director-gates.md`). +After all epics for the current layer are defined (Step 4 completed for all in-scope systems), and before writing any files, spawn `producer` via Task using gate **PR-EPIC** (`.opencode/docs/director-gates.md`). Pass: the full epic structure summary (all epics, their scope summaries, governing ADR counts), the layer being processed, milestone timeline and team capacity. diff --git a/.opencode/skills/create-stories/SKILL.md b/.opencode/skills/create-stories/SKILL.md index ba39446..d8d36d3 100644 --- a/.opencode/skills/create-stories/SKILL.md +++ b/.opencode/skills/create-stories/SKILL.md @@ -29,7 +29,7 @@ then Core, and so on — matching the dependency order. Extract `--review [full|lean|solo]` if present and store as the review mode override for this run. If not provided, read `production/review-mode.txt` (default `full` if missing). This resolved mode applies to all gate spawns -in this skill — apply the check pattern from `.claude/docs/director-gates.md` +in this skill — apply the check pattern from `.opencode/docs/director-gates.md` before every gate invocation. - `/create-stories [epic-slug]` — e.g. `/create-stories combat` @@ -107,7 +107,7 @@ For each story, determine: - `lean` → skip (not a PHASE-GATE). Note: "QL-STORY-READY skipped — Lean mode." Proceed to Step 5 (present stories for review). - `full` → spawn as normal. -After decomposing all stories (Step 4 complete) but before presenting them for write approval, spawn `qa-lead` via Task using gate **QL-STORY-READY** (`.claude/docs/director-gates.md`). +After decomposing all stories (Step 4 complete) but before presenting them for write approval, spawn `qa-lead` via Task using gate **QL-STORY-READY** (`.opencode/docs/director-gates.md`). Pass: the full story list with acceptance criteria, story types, and TR-IDs; the epic's GDD acceptance criteria for reference. diff --git a/.opencode/skills/design-review/SKILL.md b/.opencode/skills/design-review/SKILL.md index e12bbe9..cd54d29 100644 --- a/.opencode/skills/design-review/SKILL.md +++ b/.opencode/skills/design-review/SKILL.md @@ -90,7 +90,7 @@ Read the GDD and identify every domain present. A GDD can touch multiple domains | Multiplayer, sync, replication | `network-programmer` | | Audio cues, music triggers | `audio-director` | | Performance, draw calls, memory | `performance-analyst` | -| Engine-specific patterns or APIs | Primary engine specialist (from `.claude/docs/technical-preferences.md`) | +| Engine-specific patterns or APIs | Primary engine specialist (from `.opencode/docs/technical-preferences.md`) | | Acceptance criteria, test coverage | `qa-lead` | | Data schema, resource structure | `systems-designer` | | Any gameplay system | `game-designer` (always) | diff --git a/.opencode/skills/design-system/SKILL.md b/.opencode/skills/design-system/SKILL.md index 9cda7c6..3eafd93 100644 --- a/.opencode/skills/design-system/SKILL.md +++ b/.opencode/skills/design-system/SKILL.md @@ -15,7 +15,7 @@ Resolve the review mode (once, store for all gate spawns this run): 2. Else read `production/review-mode.txt` → use that value 3. Else → default to `lean` -See `.claude/docs/director-gates.md` for the full check pattern. +See `.opencode/docs/director-gates.md` for the full check pattern. A system name or retrofit path is **required**. If missing: @@ -160,7 +160,7 @@ Map the system's category (from systems-index.md) to an engine domain: | Dialogue, quests, narrative | Scripting | **Step 2 — Read engine context (if available):** -- Read `.claude/docs/technical-preferences.md` to identify the engine and version +- Read `.opencode/docs/technical-preferences.md` to identify the engine and version - If engine is configured, read `docs/engine-reference/[engine]/VERSION.md` - Read `docs/engine-reference/[engine]/modules/[domain].md` if it exists - Read `docs/engine-reference/[engine]/breaking-changes.md` for domain-relevant entries @@ -214,7 +214,7 @@ Use `AskUserQuestion`: Once the user confirms, **immediately** create the GDD file with empty section headers. This ensures incremental writes have a target. -Use the template structure from `.claude/docs/templates/game-design-document.md`: +Use the template structure from `.opencode/docs/templates/game-design-document.md`: ```markdown # [System Name] @@ -659,7 +659,7 @@ the source of truth). Verify: - `lean` → skip (not a PHASE-GATE). Note: "CD-GDD-ALIGN skipped — Lean mode." Proceed to Step 5b. - `full` → spawn as normal. -Before finalizing the GDD, spawn `creative-director` via Task using gate **CD-GDD-ALIGN** (`.claude/docs/director-gates.md`). +Before finalizing the GDD, spawn `creative-director` via Task using gate **CD-GDD-ALIGN** (`.opencode/docs/director-gates.md`). Pass: completed GDD file path, game pillars (from `design/gdd/game-concept.md` or `design/gdd/game-pillars.md`), MDA aesthetics target. diff --git a/.opencode/skills/dev-story/SKILL.md b/.opencode/skills/dev-story/SKILL.md index cbf4fbe..f90fa31 100644 --- a/.opencode/skills/dev-story/SKILL.md +++ b/.opencode/skills/dev-story/SKILL.md @@ -116,7 +116,7 @@ If a dependency file cannot be found: warn "Dependency story not found: [path]. --- ### Engine reference -Read `.claude/docs/technical-preferences.md`: +Read `.opencode/docs/technical-preferences.md`: - `Engine:` value — determines which programmer agents to use - Naming conventions (class names, file names, signal/event names) - Performance budgets (frame budget, memory ceiling) @@ -146,7 +146,7 @@ If the story's Type is `Config/Data`, no programmer agent or engine specialist i ### Engine specialist — always spawn as secondary for code stories -Read the `Engine Specialists` section of `.claude/docs/technical-preferences.md` +Read the `Engine Specialists` section of `.opencode/docs/technical-preferences.md` to get the configured primary specialist. Spawn them alongside the primary agent when the story involves engine-specific APIs, patterns, or the ADR has HIGH engine risk. diff --git a/.opencode/skills/gate-check/SKILL.md b/.opencode/skills/gate-check/SKILL.md index 9625dbb..6d1aa0e 100644 --- a/.opencode/skills/gate-check/SKILL.md +++ b/.opencode/skills/gate-check/SKILL.md @@ -95,7 +95,7 @@ Note: in `solo` mode, director spawns (CD-PHASE-GATE, TD-PHASE-GATE, PR-PHASE-GA **Required Artifacts:** - [ ] Engine chosen (CLAUDE.md Technology Stack is not `[CHOOSE]`) -- [ ] Technical preferences configured (`.claude/docs/technical-preferences.md` populated) +- [ ] Technical preferences configured (`.opencode/docs/technical-preferences.md` populated) - [ ] Art bible exists at `design/art/art-bible.md` with at least Sections 1–4 (Visual Identity Foundation) - [ ] At least 3 Architecture Decision Records in `docs/architecture/` covering Foundation-layer systems (scene management, event architecture, save/load) @@ -295,14 +295,14 @@ For items that can't be automatically verified, **ask the user**: ## 4b. Director Panel Assessment -Before generating the final verdict, spawn all four directors as **parallel subagents** via Task using the parallel gate protocol from `.claude/docs/director-gates.md`. Issue all four Task calls simultaneously — do not wait for one before starting the next. +Before generating the final verdict, spawn all four directors as **parallel subagents** via Task using the parallel gate protocol from `.opencode/docs/director-gates.md`. Issue all four Task calls simultaneously — do not wait for one before starting the next. **Spawn in parallel:** -1. **`creative-director`** — gate **CD-PHASE-GATE** (`.claude/docs/director-gates.md`) -2. **`technical-director`** — gate **TD-PHASE-GATE** (`.claude/docs/director-gates.md`) -3. **`producer`** — gate **PR-PHASE-GATE** (`.claude/docs/director-gates.md`) -4. **`art-director`** — gate **AD-PHASE-GATE** (`.claude/docs/director-gates.md`) +1. **`creative-director`** — gate **CD-PHASE-GATE** (`.opencode/docs/director-gates.md`) +2. **`technical-director`** — gate **TD-PHASE-GATE** (`.opencode/docs/director-gates.md`) +3. **`producer`** — gate **PR-PHASE-GATE** (`.opencode/docs/director-gates.md`) +4. **`art-director`** — gate **AD-PHASE-GATE** (`.opencode/docs/director-gates.md`) Pass to each: target phase name, list of artifacts present, and the context fields listed in that gate's definition. @@ -468,7 +468,7 @@ Based on the verdict, suggest specific next steps: - If "Create it now": use a second `AskUserQuestion` to ask for the tier: - Prompt: "Which accessibility tier fits this project?" - Options: `Basic — remapping + subtitles only (lowest effort)`, `Standard — Basic + colorblind modes + scalable UI`, `Comprehensive — Standard + motor accessibility + full settings menu`, `Exemplary — Comprehensive + external audit + full customization` - - Then write `design/accessibility-requirements.md` using the template at `.claude/docs/templates/accessibility-requirements.md`, filling in the chosen tier. Confirm: "May I write `design/accessibility-requirements.md`?" + - Then write `design/accessibility-requirements.md` using the template at `.opencode/docs/templates/accessibility-requirements.md`, filling in the chosen tier. Confirm: "May I write `design/accessibility-requirements.md`?" - **No interaction pattern library?** → `/ux-design patterns` to initialize it - **GDDs not cross-reviewed?** → `/review-all-gdds` (run after all MVP GDDs are individually approved) - **Cross-GDD consistency issues?** → fix flagged GDDs, then re-run `/review-all-gdds` diff --git a/.opencode/skills/help/SKILL.md b/.opencode/skills/help/SKILL.md index 12757c8..2d3c97d 100644 --- a/.opencode/skills/help/SKILL.md +++ b/.opencode/skills/help/SKILL.md @@ -21,7 +21,7 @@ gap analysis, use `/project-stage-detect`. ## Step 1: Read the Catalog -Read `.claude/docs/workflow-catalog.yaml`. This is the authoritative list of all +Read `.opencode/docs/workflow-catalog.yaml`. This is the authoritative list of all phases, their steps (in order), whether each step is required or optional, and the artifact globs that indicate completion. @@ -29,7 +29,7 @@ the artifact globs that indicate completion. ## Step 1b: Find Skills Not in the Catalog -After reading the catalog, Glob `.claude/skills/*/SKILL.md` to get the full list +After reading the catalog, Glob `.opencode/skills/*/SKILL.md` to get the full list of installed skills. For each file, extract the `name:` field from its frontmatter. Compare against the `command:` values in the catalog. Any skill whose name does diff --git a/.opencode/skills/localize/SKILL.md b/.opencode/skills/localize/SKILL.md index 8b241bf..e43be2e 100644 --- a/.opencode/skills/localize/SKILL.md +++ b/.opencode/skills/localize/SKILL.md @@ -276,7 +276,7 @@ Grep `src/` for VO audio references. Verify each referenced path exists in `asse Right-to-left languages (Arabic, Hebrew, Persian, Urdu) require layout mirroring beyond just translating text. This mode validates the implementation. -Read `.claude/docs/technical-preferences.md` to determine the engine. Then check: +Read `.opencode/docs/technical-preferences.md` to determine the engine. Then check: **Layout mirroring** - Is RTL layout enabled in the engine? (Godot: `Control.layout_direction`, Unity: `RTL Support` package, Unreal: text direction flags) diff --git a/.opencode/skills/map-systems/SKILL.md b/.opencode/skills/map-systems/SKILL.md index bcbefc1..b139d18 100644 --- a/.opencode/skills/map-systems/SKILL.md +++ b/.opencode/skills/map-systems/SKILL.md @@ -22,7 +22,7 @@ Also resolve the review mode (once, store for all gate spawns this run): 2. Else read `production/review-mode.txt` → use that value 3. Else → default to `lean` -See `.claude/docs/director-gates.md` for the full check pattern. +See `.opencode/docs/director-gates.md` for the full check pattern. --- @@ -149,7 +149,7 @@ dependencies I'm missing or that should be removed?" - `lean` → skip (not a PHASE-GATE). Note: "TD-SYSTEM-BOUNDARY skipped — Lean mode." Proceed to priority assignment. - `full` → spawn as normal. -**After dependency mapping is approved, spawn `technical-director` via Task using gate TD-SYSTEM-BOUNDARY (`.claude/docs/director-gates.md`) before proceeding to priority assignment.** +**After dependency mapping is approved, spawn `technical-director` via Task using gate TD-SYSTEM-BOUNDARY (`.opencode/docs/director-gates.md`) before proceeding to priority assignment.** Pass: the dependency map summary, layer assignments, bottleneck systems list, any circular dependency resolutions. @@ -193,7 +193,7 @@ Pure technical necessity ("X depends on Y") is insufficient alone when the syste - `lean` → skip (not a PHASE-GATE). Note: "PR-SCOPE skipped — Lean mode." Proceed to writing the systems index. - `full` → spawn as normal. -**After priorities are approved, spawn `producer` via Task using gate PR-SCOPE (`.claude/docs/director-gates.md`) before writing the index.** +**After priorities are approved, spawn `producer` via Task using gate PR-SCOPE (`.opencode/docs/director-gates.md`) before writing the index.** Pass: total system count per milestone tier, estimated implementation volume per tier (system count × average complexity), team size, stated project timeline. @@ -216,7 +216,7 @@ This is the order the team should write GDDs in. ### Step 5a: Draft the Document -Using the template at `.claude/docs/templates/systems-index.md`, populate the +Using the template at `.opencode/docs/templates/systems-index.md`, populate the systems index with all data from Phases 2-4: - Fill the enumeration table - Fill the dependency map @@ -241,7 +241,7 @@ Wait for approval. Write the file only after "yes." - `lean` → skip (not a PHASE-GATE). Note: "CD-SYSTEMS skipped — Lean mode." Proceed to Phase 7 next steps. - `full` → spawn as normal. -**After the systems index is written, spawn `creative-director` via Task using gate CD-SYSTEMS (`.claude/docs/director-gates.md`).** +**After the systems index is written, spawn `creative-director` via Task using gate CD-SYSTEMS (`.opencode/docs/director-gates.md`).** Pass: systems index path, game pillars and core fantasy (from `design/gdd/game-concept.md`), MVP priority tier system list. diff --git a/.opencode/skills/milestone-review/SKILL.md b/.opencode/skills/milestone-review/SKILL.md index 06a9191..161987e 100644 --- a/.opencode/skills/milestone-review/SKILL.md +++ b/.opencode/skills/milestone-review/SKILL.md @@ -13,7 +13,7 @@ Extract the milestone name (`current` or a specific name) and resolve the review 2. Else read `production/review-mode.txt` → use that value 3. Else → default to `lean` -See `.claude/docs/director-gates.md` for the full check pattern. +See `.opencode/docs/director-gates.md` for the full check pattern. --- @@ -113,7 +113,7 @@ Read all sprint reports for sprints within this milestone from `production/sprin - `lean` → skip (not a PHASE-GATE). Note: "PR-MILESTONE skipped — Lean mode." Present the Go/No-Go section without a producer verdict. - `full` → spawn as normal. -Before generating the Go/No-Go recommendation, spawn `producer` via Task using gate **PR-MILESTONE** (`.claude/docs/director-gates.md`). +Before generating the Go/No-Go recommendation, spawn `producer` via Task using gate **PR-MILESTONE** (`.opencode/docs/director-gates.md`). Pass: milestone name and target date, current completion percentage, blocked story count, velocity data from sprint reports (if available), list of cut candidates. diff --git a/.opencode/skills/onboard/SKILL.md b/.opencode/skills/onboard/SKILL.md index 19b58aa..ea3d081 100644 --- a/.opencode/skills/onboard/SKILL.md +++ b/.opencode/skills/onboard/SKILL.md @@ -11,7 +11,7 @@ model: haiku Read CLAUDE.md for project overview and standards. -Read the relevant agent definition from `.claude/agents/` if a specific role is specified. +Read the relevant agent definition from `.opencode/agents/` if a specific role is specified. --- diff --git a/.opencode/skills/patch-notes/SKILL.md b/.opencode/skills/patch-notes/SKILL.md index c16fda8..c53df70 100644 --- a/.opencode/skills/patch-notes/SKILL.md +++ b/.opencode/skills/patch-notes/SKILL.md @@ -40,7 +40,7 @@ Verdict: **BLOCKED** — stop here without generating notes. **Tone guide detection** — before drafting notes, check for writing style guidance: -1. Check `.claude/docs/technical-preferences.md` for any "tone", "voice", or "style" +1. Check `.opencode/docs/technical-preferences.md` for any "tone", "voice", or "style" fields or sections. 2. Check `docs/PATCH-NOTES-STYLE.md` if it exists. 3. Check `design/community/tone-guide.md` if it exists. @@ -52,7 +52,7 @@ Verdict: **BLOCKED** — stop here without generating notes. **Template detection** — check whether a patch notes template exists: -1. Glob for `docs/patch-notes-template.md` and `.claude/docs/templates/patch-notes-template.md`. +1. Glob for `docs/patch-notes-template.md` and `.opencode/docs/templates/patch-notes-template.md`. 2. If found at either location, read it and use it as the output structure for Phase 4 instead of the built-in style templates (Brief / Detailed / Full). Fill in the template's sections with the categorized data. diff --git a/.opencode/skills/playtest-report/SKILL.md b/.opencode/skills/playtest-report/SKILL.md index 33f981a..3afbb64 100644 --- a/.opencode/skills/playtest-report/SKILL.md +++ b/.opencode/skills/playtest-report/SKILL.md @@ -13,7 +13,7 @@ Resolve the review mode (once, store for all gate spawns this run): 2. Else read `production/review-mode.txt` → use that value 3. Else → default to `lean` -See `.claude/docs/director-gates.md` for the full check pattern. +See `.opencode/docs/director-gates.md` for the full check pattern. Determine the mode: @@ -121,7 +121,7 @@ Present the categorized list, then route: - `lean` → skip (not a PHASE-GATE). Note: "CD-PLAYTEST skipped — Lean mode." Proceed to Phase 4 (save the report). - `full` → spawn as normal. -After categorising findings, spawn `creative-director` via Task using gate **CD-PLAYTEST** (`.claude/docs/director-gates.md`). +After categorising findings, spawn `creative-director` via Task using gate **CD-PLAYTEST** (`.opencode/docs/director-gates.md`). Pass: the structured report content, game pillars and core fantasy (from `design/gdd/game-concept.md`), the specific hypothesis being tested. diff --git a/.opencode/skills/project-stage-detect/SKILL.md b/.opencode/skills/project-stage-detect/SKILL.md index 148abaa..e4c2dfe 100644 --- a/.opencode/skills/project-stage-detect/SKILL.md +++ b/.opencode/skills/project-stage-detect/SKILL.md @@ -85,7 +85,7 @@ auto-detect using these heuristics (check from most-advanced backward): ### 4. Generate Stage Report -Use template: `.claude/docs/templates/project-stage-report.md` +Use template: `.opencode/docs/templates/project-stage-report.md` **Report structure**: ```markdown diff --git a/.opencode/skills/propagate-design-change/SKILL.md b/.opencode/skills/propagate-design-change/SKILL.md index 801e931..8bc9da2 100644 --- a/.opencode/skills/propagate-design-change/SKILL.md +++ b/.opencode/skills/propagate-design-change/SKILL.md @@ -152,7 +152,7 @@ ADRs referencing this GDD: [M] - `lean` → skip. Note: "TD-CHANGE-IMPACT skipped — Lean mode." Proceed to Phase 7. - `full` → spawn as normal. -Spawn `technical-director` via Task using gate **TD-CHANGE-IMPACT** (`.claude/docs/director-gates.md`). +Spawn `technical-director` via Task using gate **TD-CHANGE-IMPACT** (`.opencode/docs/director-gates.md`). Pass: the full Design Change Impact Report from Phase 6 (change summary, all affected ADRs with their Still Valid / Needs Review / Likely Superseded classifications, and recommended actions). diff --git a/.opencode/skills/prototype/SKILL.md b/.opencode/skills/prototype/SKILL.md index 12f8c8e..893bd56 100644 --- a/.opencode/skills/prototype/SKILL.md +++ b/.opencode/skills/prototype/SKILL.md @@ -15,7 +15,7 @@ Resolve the review mode (once, store for all gate spawns this run): 2. Else read `production/review-mode.txt` → use that value 3. Else → default to `lean` -See `.claude/docs/director-gates.md` for the full check pattern. +See `.opencode/docs/director-gates.md` for the full check pattern. Read the concept description from the argument. Identify the core question this prototype must answer. If the concept is vague, state the question explicitly before proceeding — a prototype without a clear question wastes time. @@ -121,7 +121,7 @@ If yes, write the file. - `lean` → skip (not a PHASE-GATE). Note: "CD-PLAYTEST skipped — Lean mode." Proceed to Phase 7 summary with the prototyper's recommendation as the final verdict. - `full` → spawn as normal. -Spawn `creative-director` via Task using gate **CD-PLAYTEST** (`.claude/docs/director-gates.md`). +Spawn `creative-director` via Task using gate **CD-PLAYTEST** (`.opencode/docs/director-gates.md`). Pass: the full REPORT.md content, the original design question, game pillars and core fantasy from `design/gdd/game-concept.md` (if it exists). diff --git a/.opencode/skills/qa-plan/SKILL.md b/.opencode/skills/qa-plan/SKILL.md index 054edf3..25be681 100644 --- a/.opencode/skills/qa-plan/SKILL.md +++ b/.opencode/skills/qa-plan/SKILL.md @@ -113,7 +113,7 @@ Assemble the full QA plan document. Use this structure: **Date**: [date] **Generated by**: /qa-plan **Scope**: [N stories across [N systems]] -**Engine**: [engine name from .claude/docs/technical-preferences.md, or "Not configured"] +**Engine**: [engine name from .opencode/docs/technical-preferences.md, or "Not configured"] **Sprint File**: [path to sprint plan if applicable] --- diff --git a/.opencode/skills/security-audit/SKILL.md b/.opencode/skills/security-audit/SKILL.md index 9e363fe..c8a4354 100644 --- a/.opencode/skills/security-audit/SKILL.md +++ b/.opencode/skills/security-audit/SKILL.md @@ -35,7 +35,7 @@ remediation plan. - `quick` — high-severity checks only (fastest, for iterative use) - No argument — run `full` -Read `.claude/docs/technical-preferences.md` to determine: +Read `.opencode/docs/technical-preferences.md` to determine: - Engine and language (affects which patterns to search for) - Target platforms (affects which attack surfaces apply) - Whether multiplayer/networking is in scope diff --git a/.opencode/skills/setup-engine/SKILL.md b/.opencode/skills/setup-engine/SKILL.md index d39b81e..14cb12b 100644 --- a/.opencode/skills/setup-engine/SKILL.md +++ b/.opencode/skills/setup-engine/SKILL.md @@ -171,7 +171,7 @@ Update the Technology Stack section, replacing the `[CHOOSE]` placeholders with ## 5. Populate Technical Preferences -After updating CLAUDE.md, create or update `.claude/docs/technical-preferences.md` with +After updating CLAUDE.md, create or update `.opencode/docs/technical-preferences.md` with engine-appropriate defaults. Read the existing template first, then fill in: ### Engine & Language Section diff --git a/.opencode/skills/skill-improve/SKILL.md b/.opencode/skills/skill-improve/SKILL.md index 340aee4..13661d1 100644 --- a/.opencode/skills/skill-improve/SKILL.md +++ b/.opencode/skills/skill-improve/SKILL.md @@ -22,7 +22,7 @@ Usage: /skill-improve [skill-name] Example: /skill-improve tech-debt ``` -Verify `.claude/skills/[name]/SKILL.md` exists. If not, stop with: +Verify `.opencode/skills/[name]/SKILL.md` exists. If not, stop with: "Skill '[name]' not found." --- @@ -67,7 +67,7 @@ If BOTH static and category baselines are 0 FAILs and 0 WARNs, stop: ## Phase 3: Diagnose -Read the full skill file at `.claude/skills/[name]/SKILL.md`. +Read the full skill file at `.opencode/skills/[name]/SKILL.md`. For each failing or warning **static** check, identify the exact gap: @@ -97,7 +97,7 @@ Write a targeted fix for each failure and warning. Show the proposed changes as clearly marked before/after blocks. Only change what is failing — do not rewrite sections that are passing. -Ask: "May I write this improved version to `.claude/skills/[name]/SKILL.md`?" +Ask: "May I write this improved version to `.opencode/skills/[name]/SKILL.md`?" If the user says no, stop here. @@ -107,7 +107,7 @@ If the user says no, stop here. Record the current content of the skill file (for revert if needed). -Write the improved skill to `.claude/skills/[name]/SKILL.md`. +Write the improved skill to `.opencode/skills/[name]/SKILL.md`. Re-run `/skill-test static [name]` and record the new static score. If a category was assigned, also re-run `/skill-test category [name]` and record the new category score. @@ -132,8 +132,8 @@ Show a summary of what was fixed in each dimension. **If combined score is the same or worse:** Report: "Combined score did not improve." Show what changed and why it may not have helped. -Ask: "May I revert `.claude/skills/[name]/SKILL.md` using git checkout?" -If yes: run `git checkout -- .claude/skills/[name]/SKILL.md` +Ask: "May I revert `.opencode/skills/[name]/SKILL.md` using git checkout?" +If yes: run `git checkout -- .opencode/skills/[name]/SKILL.md` --- diff --git a/.opencode/skills/skill-test/SKILL.md b/.opencode/skills/skill-test/SKILL.md index 07ba49d..9b2ba59 100644 --- a/.opencode/skills/skill-test/SKILL.md +++ b/.opencode/skills/skill-test/SKILL.md @@ -8,7 +8,7 @@ allowed-tools: Read, Glob, Grep, Write # Skill Test -Validates `.claude/skills/*/SKILL.md` files for structural compliance and +Validates `.opencode/skills/*/SKILL.md` files for structural compliance and behavioral correctness. No external dependencies — runs entirely within the existing skill/hook/template architecture. @@ -28,7 +28,7 @@ existing skill/hook/template architecture. Determine mode from the first argument: - `static [name]` → run 7 structural checks on one skill -- `static all` → run 7 structural checks on all skills (Glob `.claude/skills/*/SKILL.md`) +- `static all` → run 7 structural checks on all skills (Glob `.opencode/skills/*/SKILL.md`) - `spec [name]` → read skill + test spec, evaluate assertions - `category [name]` → run category-specific rubric from `CCGS Skill Testing Framework/quality-rubric.md` - `category all` → run category rubric for every skill that has a `category:` in catalog @@ -138,12 +138,12 @@ Aggregate Verdict: N WARNINGS / N FAILURES ### Step 1 — Locate Files -Find skill at `.claude/skills/[name]/SKILL.md`. +Find skill at `.opencode/skills/[name]/SKILL.md`. Look up the spec path from `CCGS Skill Testing Framework/catalog.yaml` — use the `spec:` field for the matching skill entry. If either is missing: -- Missing skill: "Skill '[name]' not found in `.claude/skills/`." +- Missing skill: "Skill '[name]' not found in `.opencode/skills/`." - Missing spec path in catalog: "No spec path set for '[name]' in catalog.yaml." - Spec file not found at path: "Spec file missing at [path]. Run `/skill-test audit` to see coverage gaps." @@ -219,7 +219,7 @@ If yes: ### Step 1 — Locate Skill and Category -Find skill at `.claude/skills/[name]/SKILL.md`. +Find skill at `.opencode/skills/[name]/SKILL.md`. Look up `category:` field in `CCGS Skill Testing Framework/catalog.yaml`. If skill not found: "Skill '[name]' not found." @@ -280,7 +280,7 @@ yet (first-run state). ### Step 2 — Enumerate All Skills and Agents -Glob `.claude/skills/*/SKILL.md` to get the complete list of skills. +Glob `.opencode/skills/*/SKILL.md` to get the complete list of skills. Extract skill name from each path (directory name). Also read the `agents:` section from `CCGS Skill Testing Framework/catalog.yaml` to get the diff --git a/.opencode/skills/smoke-check/SKILL.md b/.opencode/skills/smoke-check/SKILL.md index 6cb1932..9392015 100644 --- a/.opencode/skills/smoke-check/SKILL.md +++ b/.opencode/skills/smoke-check/SKILL.md @@ -53,7 +53,7 @@ Before running anything, understand the environment: 2. **CI check**: check whether `.github/workflows/` contains a workflow file referencing tests. Note in the report whether CI is configured. -3. **Engine detection**: read `.claude/docs/technical-preferences.md` and +3. **Engine detection**: read `.opencode/docs/technical-preferences.md` and extract the `Engine:` value. Store this for test command selection in Phase 2. @@ -106,7 +106,7 @@ If no matching log found: "UE automation tests must be run via the Session Frontend or CI pipeline. Please confirm test status manually." **Unknown engine / not configured:** -"Engine not configured in `.claude/docs/technical-preferences.md`. Run +"Engine not configured in `.opencode/docs/technical-preferences.md`. Run `/setup-engine` to specify the engine, then re-run `/smoke-check`." **If the test runner is not available in this environment** (engine binary not diff --git a/.opencode/skills/soak-test/SKILL.md b/.opencode/skills/soak-test/SKILL.md index 389f402..0a0e3bf 100644 --- a/.opencode/skills/soak-test/SKILL.md +++ b/.opencode/skills/soak-test/SKILL.md @@ -52,7 +52,7 @@ human does the actual playing.** ## 2. Load Context Read: -- `.claude/docs/technical-preferences.md` — engine (for engine-specific memory +- `.opencode/docs/technical-preferences.md` — engine (for engine-specific memory monitoring guidance), performance budgets (memory ceiling, target FPS) - `design/gdd/game-concept.md` — intended session length (for comparison against soak duration), core loop description diff --git a/.opencode/skills/sprint-plan/SKILL.md b/.opencode/skills/sprint-plan/SKILL.md index 4cdff74..8d335f1 100644 --- a/.opencode/skills/sprint-plan/SKILL.md +++ b/.opencode/skills/sprint-plan/SKILL.md @@ -15,7 +15,7 @@ Extract the mode argument (`new`, `update`, or `status`) and resolve the review 2. Else read `production/review-mode.txt` → use that value 3. Else → default to `lean` -See `.claude/docs/director-gates.md` for the full check pattern. +See `.opencode/docs/director-gates.md` for the full check pattern. --- @@ -172,7 +172,7 @@ stories that haven't changed, add new stories, remove dropped ones. - `lean` → skip (not a PHASE-GATE). Note: "PR-SPRINT skipped — Lean mode." Proceed to Phase 5 (QA plan gate). - `full` → spawn as normal. -Before finalising the sprint plan, spawn `producer` via Task using gate **PR-SPRINT** (`.claude/docs/director-gates.md`). +Before finalising the sprint plan, spawn `producer` via Task using gate **PR-SPRINT** (`.opencode/docs/director-gates.md`). Pass: proposed story list (titles, estimates, dependencies), total team capacity in hours/days, any carryover from the previous sprint, milestone constraints and deadline. diff --git a/.opencode/skills/start/SKILL.md b/.opencode/skills/start/SKILL.md index 9e4ce7e..9094e79 100644 --- a/.opencode/skills/start/SKILL.md +++ b/.opencode/skills/start/SKILL.md @@ -19,7 +19,7 @@ This skill is the entry point for new users. It does NOT assume you have a game Before asking anything, silently gather context so you can tailor your guidance. Do NOT show these results unprompted — they inform your recommendations, not the conversation opener. Check: -- **Engine configured?** Read `.claude/docs/technical-preferences.md`. If the Engine field contains `[TO BE CONFIGURED]`, the engine is not set. +- **Engine configured?** Read `.opencode/docs/technical-preferences.md`. If the Engine field contains `[TO BE CONFIGURED]`, the engine is not set. - **Game concept exists?** Check for `design/gdd/game-concept.md`. - **Source code exists?** Glob for source files in `src/` (`*.gd`, `*.cs`, `*.cpp`, `*.h`, `*.rs`, `*.py`, `*.js`, `*.ts`). - **Prototypes exist?** Check for subdirectories in `prototypes/`. diff --git a/.opencode/skills/story-done/SKILL.md b/.opencode/skills/story-done/SKILL.md index b067f1d..59d9e06 100644 --- a/.opencode/skills/story-done/SKILL.md +++ b/.opencode/skills/story-done/SKILL.md @@ -25,7 +25,7 @@ Resolve the review mode (once, store for all gate spawns this run): 2. Else read `production/review-mode.txt` → use that value 3. Else → default to `lean` -See `.claude/docs/director-gates.md` for the full check pattern. +See `.opencode/docs/director-gates.md` for the full check pattern. **If a file path is provided** (e.g., `/story-done production/epics/core/story-damage-calculator.md`): read that file directly. @@ -232,7 +232,7 @@ For each deviation found, categorize: - `lean` → skip (not a PHASE-GATE). Note: "QL-TEST-COVERAGE skipped — Lean mode." Proceed to Phase 5. - `full` → spawn as normal. -After completing the deviation checks in Phase 4, spawn `qa-lead` via Task using gate **QL-TEST-COVERAGE** (`.claude/docs/director-gates.md`). +After completing the deviation checks in Phase 4, spawn `qa-lead` via Task using gate **QL-TEST-COVERAGE** (`.opencode/docs/director-gates.md`). Pass: - The story file path and story type @@ -258,7 +258,7 @@ Skip this phase for Config/Data stories (no code tests required). - `lean` → skip (not a PHASE-GATE). Note: "LP-CODE-REVIEW skipped — Lean mode." Proceed to Phase 6 (completion report). - `full` → spawn as normal. -Spawn `lead-programmer` via Task using gate **LP-CODE-REVIEW** (`.claude/docs/director-gates.md`). +Spawn `lead-programmer` via Task using gate **LP-CODE-REVIEW** (`.opencode/docs/director-gates.md`). Pass: implementation file paths, story file path, relevant GDD section, governing ADR. diff --git a/.opencode/skills/story-readiness/SKILL.md b/.opencode/skills/story-readiness/SKILL.md index 5390f68..92279cc 100644 --- a/.opencode/skills/story-readiness/SKILL.md +++ b/.opencode/skills/story-readiness/SKILL.md @@ -29,7 +29,7 @@ Resolve the review mode once at startup (store for all gate spawns this run): 2. Else read `production/review-mode.txt` → use that value 3. Else → default to `lean` -See `.claude/docs/director-gates.md` for the full check pattern and mode definitions. +See `.opencode/docs/director-gates.md` for the full check pattern and mode definitions. --- @@ -325,7 +325,7 @@ Apply the review mode resolved in Phase 0 before spawning QL-STORY-READY: - `lean` → skip. Note: "QL-STORY-READY skipped — Lean mode." Proceed to close. - `full` → spawn as normal. -Spawn `qa-lead` via Task using gate **QL-STORY-READY** (`.claude/docs/director-gates.md`). +Spawn `qa-lead` via Task using gate **QL-STORY-READY** (`.opencode/docs/director-gates.md`). Pass the following context: - Story title diff --git a/.opencode/skills/team-audio/SKILL.md b/.opencode/skills/team-audio/SKILL.md index f719864..553f4c8 100644 --- a/.opencode/skills/team-audio/SKILL.md +++ b/.opencode/skills/team-audio/SKILL.md @@ -69,7 +69,7 @@ Spawn the `technical-artist` agent to: - Plan streaming vs preloaded asset strategy - Design any audio-reactive visual effects -Spawn the **primary engine specialist** in parallel (from `.claude/docs/technical-preferences.md` Engine Specialists) to validate the integration approach: +Spawn the **primary engine specialist** in parallel (from `.opencode/docs/technical-preferences.md` Engine Specialists) to validate the integration approach: - Is the proposed audio middleware integration idiomatic for the engine? (e.g., Godot's built-in AudioStreamPlayer vs FMOD, Unity's Audio Mixer vs Wwise, Unreal's MetaSounds vs FMOD) - Any engine-specific audio node/component patterns that should be used? - Known audio system changes in the pinned engine version that affect the integration plan? diff --git a/.opencode/skills/team-combat/SKILL.md b/.opencode/skills/team-combat/SKILL.md index f08bcb6..1781108 100644 --- a/.opencode/skills/team-combat/SKILL.md +++ b/.opencode/skills/team-combat/SKILL.md @@ -22,7 +22,7 @@ The user must approve before moving to the next phase. - **ai-programmer** — Implement NPC/enemy AI behavior for the feature - **technical-artist** — Create VFX, shader effects, and visual feedback - **sound-designer** — Define audio events, impact sounds, and ambient combat audio -- **engine specialist** (primary) — Validate architecture and implementation patterns are idiomatic for the engine (read from `.claude/docs/technical-preferences.md` Engine Specialists section) +- **engine specialist** (primary) — Validate architecture and implementation patterns are idiomatic for the engine (read from `.opencode/docs/technical-preferences.md` Engine Specialists section) - **qa-tester** — Write test cases and validate the implementation ## How to Delegate diff --git a/.opencode/skills/team-ui/SKILL.md b/.opencode/skills/team-ui/SKILL.md index 7f68b0f..ba791b2 100644 --- a/.opencode/skills/team-ui/SKILL.md +++ b/.opencode/skills/team-ui/SKILL.md @@ -16,7 +16,7 @@ The user must approve before moving to the next phase. - **ux-designer** — User flows, wireframes, accessibility, input handling - **ui-programmer** — UI framework, screens, widgets, data binding, implementation - **art-director** — Visual style, layout polish, consistency with art bible -- **engine UI specialist** — Validates UI implementation patterns against engine-specific best practices (read from `.claude/docs/technical-preferences.md` Engine Specialists → UI Specialist) +- **engine UI specialist** — Validates UI implementation patterns against engine-specific best practices (read from `.opencode/docs/technical-preferences.md` Engine Specialists → UI Specialist) - **accessibility-specialist** — Audits accessibility compliance at Phase 4 **Templates used by this pipeline:** @@ -88,7 +88,7 @@ Delegate to **art-director**: ### Phase 3: Implementation -Before implementation begins, spawn the **engine UI specialist** (from `.claude/docs/technical-preferences.md` Engine Specialists → UI Specialist) to review the UX spec and visual design spec for engine-specific implementation guidance: +Before implementation begins, spawn the **engine UI specialist** (from `.opencode/docs/technical-preferences.md` Engine Specialists → UI Specialist) to review the UX spec and visual design spec for engine-specific implementation guidance: - Which engine UI framework should be used for this screen? (e.g., UI Toolkit vs UGUI in Unity, Control nodes vs CanvasLayer in Godot, UMG vs CommonUI in Unreal) - Any engine-specific gotchas for the proposed layout or interaction patterns? - Recommended widget/node structure for the engine? diff --git a/.opencode/skills/test-helpers/SKILL.md b/.opencode/skills/test-helpers/SKILL.md index a7e10b1..64af931 100644 --- a/.opencode/skills/test-helpers/SKILL.md +++ b/.opencode/skills/test-helpers/SKILL.md @@ -36,7 +36,7 @@ and systems — so every developer writes less boilerplate and more assertions. ## 2. Detect Engine and Language -Read `.claude/docs/technical-preferences.md` and extract: +Read `.opencode/docs/technical-preferences.md` and extract: - `Engine:` value - `Language:` value - `Framework:` from the Testing section diff --git a/.opencode/skills/test-setup/SKILL.md b/.opencode/skills/test-setup/SKILL.md index a1b193d..1cb3176 100644 --- a/.opencode/skills/test-setup/SKILL.md +++ b/.opencode/skills/test-setup/SKILL.md @@ -24,7 +24,7 @@ A test framework installed at sprint four costs 3 sprints. ## Phase 1: Detect Engine and Existing State 1. **Read engine config**: - - Read `.claude/docs/technical-preferences.md` and extract the `Engine:` value. + - Read `.opencode/docs/technical-preferences.md` and extract the `Engine:` value. - If engine is not configured (`[TO BE CONFIGURED]`), stop: "Engine not configured. Run `/setup-engine` first, then re-run `/test-setup`." diff --git a/.opencode/skills/ux-design/SKILL.md b/.opencode/skills/ux-design/SKILL.md index 31ab8e2..a747595 100644 --- a/.opencode/skills/ux-design/SKILL.md +++ b/.opencode/skills/ux-design/SKILL.md @@ -90,7 +90,7 @@ must satisfy the accessibility tier committed to there. ### 2h: Input Method (from Project Config) -Read `.claude/docs/technical-preferences.md` and extract the `## Input & Platform` +Read `.opencode/docs/technical-preferences.md` and extract the `## Input & Platform` section. Store these values for use throughout the skill — they drive the Interaction Map and inform accessibility requirements: diff --git a/.opencode/skills/ux-review/SKILL.md b/.opencode/skills/ux-review/SKILL.md index 609bf69..6e320cf 100644 --- a/.opencode/skills/ux-review/SKILL.md +++ b/.opencode/skills/ux-review/SKILL.md @@ -46,7 +46,7 @@ full detail for each. Before validating any spec, load: -1. **Input & Platform config**: Read `.claude/docs/technical-preferences.md` and +1. **Input & Platform config**: Read `.opencode/docs/technical-preferences.md` and extract `## Input & Platform`. This is the authoritative source for which input methods the game supports — use it to drive the Input Method Coverage checks in Phase 3A, not the spec's own header. If unconfigured, fall back to the spec header.