Files
Claude-Code-Game-Studios/.claude/skills/architecture-decision/SKILL.md
Donchitos 0bbf25ec31 Pipeline integrity + brownfield adoption system
Pipeline integrity (4 fixes for snapshot-vs-live-reference problem):
- NEW docs/architecture/tr-registry.yaml: persistent stable TR-IDs per GDD
  requirement; /architecture-review bootstraps and appends, never renumbers
- /create-control-manifest: added Manifest Version stamp to header
- /create-epics-stories: stories embed TR-ID reference (not quoted text),
  Manifest Version from manifest, ADR status gate (Proposed → Blocked)
- /story-done: TR-ID registry lookup at review time, manifest staleness check
- /story-readiness: ADR Accepted check, TR-ID validity, manifest version check
- /review-all-gdds + /architecture-review: fixed parenthetical status values
  ("Needs Revision" only, no parentheticals that break exact-match reads)

Workflow infrastructure:
- NEW /help skill: context-aware "what's next" using workflow-catalog.yaml
- NEW .claude/docs/workflow-catalog.yaml: YAML-driven phase/step sequence
- /sprint-plan + /sprint-status: sprint-status.yaml machine-written tracking

Brownfield adoption system (migrate, not replace):
- NEW /adopt skill: format compliance audit (not existence check); classifies
  gaps BLOCKING/HIGH/MEDIUM/LOW; produces docs/adoption-plan-[date].md with
  numbered migration plan; never regenerates existing artifacts
- /design-system retrofit [path]: fills only missing GDD sections, preserves
  all existing content
- /architecture-decision retrofit [path]: adds missing ADR sections (Status,
  ADR Dependencies, Engine Compatibility) without touching existing content
- /start option D: split into D1 (early-stage) and D2 (has GDDs/ADRs → adopt)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-11 18:46:07 +11:00

8.5 KiB

name, description, argument-hint, user-invocable, allowed-tools
name description argument-hint user-invocable allowed-tools
architecture-decision Creates an Architecture Decision Record (ADR) documenting a significant technical decision, its context, alternatives considered, and consequences. Every major technical choice should have an ADR. [title] true Read, Glob, Grep, Write

When this skill is invoked:

0. Parse Arguments — Detect Retrofit Mode

If the argument starts with retrofit followed by a file path (e.g., /architecture-decision retrofit docs/architecture/adr-0001-event-system.md):

Enter retrofit mode:

  1. Read the existing ADR file completely.
  2. Identify which template sections are present by scanning headings:
    • ## StatusBLOCKING if missing: /story-readiness cannot check ADR acceptance
    • ## ADR Dependencies — HIGH if missing: dependency ordering breaks
    • ## Engine Compatibility — HIGH if missing: post-cutoff risk unknown
    • ## GDD Requirements Addressed — MEDIUM if missing: traceability lost
  3. Present to the user:
    ## Retrofit: [ADR title]
    File: [path]
    
    Sections already present (will not be touched):
    ✓ Status: [current value, or "MISSING — will add"]
    ✓ [section]
    
    Missing sections to add:
    ✗ Status — BLOCKING (stories cannot validate ADR acceptance without this)
    ✗ ADR Dependencies — HIGH
    ✗ Engine Compatibility — HIGH
    
  4. Ask: "Shall I add the [N] missing sections? I will not modify any existing content."
  5. If yes:
    • For Status: ask the user — "What is the current status of this decision?" Options: "Proposed", "Accepted", "Deprecated", "Superseded by ADR-XXXX"
    • For ADR Dependencies: ask — "Does this decision depend on any other ADR? Does it enable or block any other ADR or epic?" Accept "None" for each field.
    • For Engine Compatibility: read the engine reference docs (same as Step 0 below) and ask the user to confirm the domain. Then generate the table with verified data.
    • For GDD Requirements Addressed: ask — "Which GDD systems motivated this decision? What specific requirement in each GDD does this ADR address?"
    • Append each missing section to the ADR file using the Edit tool.
    • Never modify any existing section. Only append or fill absent sections.
  6. After adding all missing sections, update the ADR's ## Date field if it is absent.
  7. Suggest: "Run /architecture-review to re-validate coverage now that this ADR has its Status and Dependencies fields."

If NOT in retrofit mode, proceed to Step 0 below (normal ADR authoring).


0. Load Engine Context (ALWAYS FIRST)

Before doing anything else, establish the engine environment:

  1. Read docs/engine-reference/[engine]/VERSION.md to get:

    • Engine name and version
    • LLM knowledge cutoff date
    • Post-cutoff version risk levels (LOW / MEDIUM / HIGH)
  2. Identify the domain of this architecture decision from the title or user description. Common domains: Physics, Rendering, UI, Audio, Navigation, Animation, Networking, Core, Input, Scripting.

  3. Read the corresponding module reference if it exists: docs/engine-reference/[engine]/modules/[domain].md

  4. Read docs/engine-reference/[engine]/breaking-changes.md — flag any changes in the relevant domain that post-date the LLM's training cutoff.

  5. Read docs/engine-reference/[engine]/deprecated-apis.md — flag any APIs in the relevant domain that should not be used.

  6. Display a knowledge gap warning before proceeding if the domain carries MEDIUM or HIGH risk:

    ⚠️  ENGINE KNOWLEDGE GAP WARNING
    Engine: [name + version]
    Domain: [domain]
    Risk Level: HIGH — This version is post-LLM-cutoff.
    
    Key changes verified from engine-reference docs:
    - [Change 1 relevant to this domain]
    - [Change 2]
    
    This ADR will be cross-referenced against the engine reference library.
    Proceed with verified information only — do NOT rely solely on training data.
    

    If no engine has been configured yet, prompt: "No engine is configured. Run /setup-engine first, or tell me which engine you are using."


1. Determine the next ADR number

Scan docs/architecture/ for existing ADRs to find the next number.


2. Gather context

Read related code, existing ADRs, and relevant GDDs from design/gdd/.


3. Guide the decision collaboratively

Ask clarifying questions if the title alone is not sufficient. For each major section, present 2-4 options with pros/cons before drafting. Do not generate the ADR until the key decision is confirmed by the user.

Key questions to ask:

  • What problem are we solving? What breaks if we don't decide this now?
  • What constraints apply (engine version, platform, performance budget)?
  • What alternatives have you already considered?
  • Which post-cutoff engine features (if any) does this decision depend on?
  • Which GDD systems motivated this decision? For each, what specific requirement (rule, formula, performance constraint, integration point) in that GDD cannot be satisfied without this architectural decision?

If the decision is foundational (no GDD drives it directly), ask:

  • Which GDD systems will this decision constrain or enable?

This GDD linkage becomes a mandatory "GDD Requirements Addressed" section in the ADR. Do not skip it.

Does this ADR have ordering constraints? Ask:

  • Does this decision depend on any other ADR that isn't yet Accepted? (If so, this ADR cannot be safely implemented until that one is resolved.)
  • Does accepting this ADR unlock or unblock any other pending decisions?
  • Does this ADR block any specific epic or story from starting?

Record the answers in the ADR Dependencies section. If no ordering constraints exist, write "None" in each field.


4. Generate the ADR

Following this format:

# ADR-[NNNN]: [Title]

## Status
[Proposed | Accepted | Deprecated | Superseded by ADR-XXXX]

## Date
[Date of decision]

## Engine Compatibility

| Field | Value |
|-------|-------|
| **Engine** | [e.g. Godot 4.6] |
| **Domain** | [Physics / Rendering / UI / Audio / Navigation / Animation / Networking / Core / Input] |
| **Knowledge Risk** | [LOW / MEDIUM / HIGH — from VERSION.md] |
| **References Consulted** | [List engine-reference docs read, e.g. `docs/engine-reference/godot/modules/physics.md`] |
| **Post-Cutoff APIs Used** | [Any APIs from post-LLM-cutoff versions this decision depends on, or "None"] |
| **Verification Required** | [Specific behaviours to test before shipping, or "None"] |

## ADR Dependencies

| Field | Value |
|-------|-------|
| **Depends On** | [ADR-NNNN (must be Accepted before this can be implemented), or "None"] |
| **Enables** | [ADR-NNNN (this ADR unlocks that decision), or "None"] |
| **Blocks** | [Epic/Story name — cannot start until this ADR is Accepted, or "None"] |
| **Ordering Note** | [Any sequencing constraint that isn't captured above] |

## Context

### Problem Statement
[What problem are we solving? Why does this decision need to be made now?]

### Constraints
- [Technical constraints]
- [Timeline constraints]
- [Resource constraints]
- [Compatibility requirements]

### Requirements
- [Must support X]
- [Must perform within Y budget]
- [Must integrate with Z]

## Decision

[The specific technical decision made, described in enough detail for someone
to implement it.]

### Architecture Diagram
[ASCII diagram or description of the system architecture this creates]

### Key Interfaces
[API contracts or interface definitions this decision creates]

## Alternatives Considered

### Alternative 1: [Name]
- **Description**: [How this would work]
- **Pros**: [Advantages]
- **Cons**: [Disadvantages]
- **Rejection Reason**: [Why this was not chosen]

### Alternative 2: [Name]
- **Description**: [How this would work]
- **Pros**: [Advantages]
- **Cons**: [Disadvantages]
- **Rejection Reason**: [Why this was not chosen]

## Consequences

### Positive
- [Good outcomes of this decision]

### Negative
- [Trade-offs and costs accepted]

### Risks
- [Things that could go wrong]
- [Mitigation for each risk]

## Performance Implications
- **CPU**: [Expected impact]
- **Memory**: [Expected impact]
- **Load Time**: [Expected impact]
- **Network**: [Expected impact, if applicable]

## Migration Plan
[If this changes existing code, how do we get from here to there?]

## Validation Criteria
[How will we know this decision was correct? What metrics or tests?]

## Related Decisions
- [Links to related ADRs]
- [Links to related design documents]
  1. Save the ADR to docs/architecture/adr-[NNNN]-[slug].md.