添加 claude code game studios 到项目
This commit is contained in:
@@ -0,0 +1,175 @@
|
||||
# Skill Test Spec: /propagate-design-change
|
||||
|
||||
## Skill Summary
|
||||
|
||||
`/propagate-design-change` handles GDD revision cascades. When a GDD is updated,
|
||||
the skill traces all downstream artifacts that reference it: ADRs, TR-registry
|
||||
entries, stories, and epics. It produces a structured impact report showing what
|
||||
needs to change and why. The skill does NOT automatically apply changes — it
|
||||
proposes edits for each affected artifact and asks "May I write" per artifact
|
||||
before making any modification.
|
||||
|
||||
The skill is read-only during analysis and write-gated per artifact during the
|
||||
update phase. It has no director gates — the analysis itself is mechanical
|
||||
tracing, not a creative review.
|
||||
|
||||
---
|
||||
|
||||
## Static Assertions (Structural)
|
||||
|
||||
Verified automatically by `/skill-test static` — no fixture needed.
|
||||
|
||||
- [ ] Has required frontmatter fields: `name`, `description`, `argument-hint`, `user-invocable`, `allowed-tools`
|
||||
- [ ] Has ≥2 phase headings
|
||||
- [ ] Contains verdict keywords: COMPLETE, BLOCKED, NO IMPACT
|
||||
- [ ] Contains "May I write" collaborative protocol language (per-artifact approval)
|
||||
- [ ] Has a next-step handoff at the end
|
||||
- [ ] Documents that changes are proposed, not applied automatically
|
||||
|
||||
---
|
||||
|
||||
## Director Gate Checks
|
||||
|
||||
No director gates — this skill spawns no director gate agents during analysis.
|
||||
The impact report is a mechanical tracing operation; no creative or technical
|
||||
director review is required at the analysis stage.
|
||||
|
||||
---
|
||||
|
||||
## Test Cases
|
||||
|
||||
### Case 1: Happy Path — GDD revision affects 2 stories and 1 epic
|
||||
|
||||
**Fixture:**
|
||||
- `design/gdd/[system].md` exists and has been recently revised (git diff shows changes)
|
||||
- `production/epics/[layer]/EPIC-[system].md` references this GDD
|
||||
- 2 story files reference TR-IDs from this GDD
|
||||
- The changed GDD section affects the acceptance criteria of both stories
|
||||
|
||||
**Input:** `/propagate-design-change design/gdd/[system].md`
|
||||
|
||||
**Expected behavior:**
|
||||
1. Skill reads the revised GDD and identifies what changed (git diff or content comparison)
|
||||
2. Skill scans ADRs, TR-registry, epics, and stories for references to this GDD
|
||||
3. Skill produces an impact report: 1 epic affected, 2 stories affected
|
||||
4. Skill shows the proposed change for each artifact
|
||||
5. For each artifact: asks "May I update [filepath]?" separately
|
||||
6. Applies changes only after per-artifact approval
|
||||
|
||||
**Assertions:**
|
||||
- [ ] Impact report identifies all 3 affected artifacts (1 epic + 2 stories)
|
||||
- [ ] Each affected artifact's proposed change is shown before asking to write
|
||||
- [ ] "May I write" is asked per artifact (not once for all artifacts)
|
||||
- [ ] Skill does NOT apply any changes without per-artifact approval
|
||||
- [ ] Verdict is COMPLETE after all approved changes are applied
|
||||
|
||||
---
|
||||
|
||||
### Case 2: No Impact — Changed GDD has no downstream references
|
||||
|
||||
**Fixture:**
|
||||
- `design/gdd/[system].md` exists and has been revised
|
||||
- No ADRs, stories, or epics reference this GDD's TR-IDs or GDD path
|
||||
|
||||
**Input:** `/propagate-design-change design/gdd/[system].md`
|
||||
|
||||
**Expected behavior:**
|
||||
1. Skill reads the revised GDD
|
||||
2. Skill scans all ADRs, stories, and epics for references
|
||||
3. No references found
|
||||
4. Skill outputs: "No downstream impact found for [system].md — no artifacts reference this GDD."
|
||||
5. No write operations are performed
|
||||
|
||||
**Assertions:**
|
||||
- [ ] Skill outputs the "No downstream impact found" message
|
||||
- [ ] Verdict is NO IMPACT
|
||||
- [ ] No "May I write" asks are issued (nothing to update)
|
||||
- [ ] Skill does NOT error or crash when no references are found
|
||||
|
||||
---
|
||||
|
||||
### Case 3: In-Progress Story Warning — Referenced story is currently being developed
|
||||
|
||||
**Fixture:**
|
||||
- A story referencing this GDD has `Status: In Progress`
|
||||
- The developer has already started implementing this story
|
||||
|
||||
**Input:** `/propagate-design-change design/gdd/[system].md`
|
||||
|
||||
**Expected behavior:**
|
||||
1. Skill identifies the In Progress story as an affected artifact
|
||||
2. Skill outputs an elevated warning: "CAUTION: [story-file] is currently In Progress — a developer may be working on this. Coordinate before updating."
|
||||
3. The warning appears in the impact report before the "May I write" ask for that story
|
||||
4. User can still approve or skip the update for that story
|
||||
|
||||
**Assertions:**
|
||||
- [ ] In Progress story is flagged with an elevated warning (distinct from regular affected-artifact entries)
|
||||
- [ ] Warning appears before the "May I write" ask for that story
|
||||
- [ ] Skill still offers to update the story — the warning does not block the option
|
||||
- [ ] Other (non-In-Progress) artifacts are not affected by this warning
|
||||
|
||||
---
|
||||
|
||||
### Case 4: Edge Case — No argument provided
|
||||
|
||||
**Fixture:**
|
||||
- Multiple GDDs exist in `design/gdd/`
|
||||
|
||||
**Input:** `/propagate-design-change` (no argument)
|
||||
|
||||
**Expected behavior:**
|
||||
1. Skill detects no argument is provided
|
||||
2. Skill outputs a usage error: "No GDD specified. Usage: /propagate-design-change design/gdd/[system].md"
|
||||
3. Skill lists recently modified GDDs as suggestions (git log)
|
||||
4. No analysis is performed
|
||||
|
||||
**Assertions:**
|
||||
- [ ] Skill outputs a usage error when no argument is given
|
||||
- [ ] Usage example is shown with the correct path format
|
||||
- [ ] No impact analysis is performed without a target GDD
|
||||
- [ ] Skill does NOT silently pick a GDD without user input
|
||||
|
||||
---
|
||||
|
||||
### Case 5: Director Gate — No gate spawned regardless of review mode
|
||||
|
||||
**Fixture:**
|
||||
- A GDD has been revised with downstream references
|
||||
- `production/session-state/review-mode.txt` exists with `full`
|
||||
|
||||
**Input:** `/propagate-design-change design/gdd/[system].md`
|
||||
|
||||
**Expected behavior:**
|
||||
1. Skill reads the GDD and traces downstream references
|
||||
2. Skill does NOT read `production/session-state/review-mode.txt`
|
||||
3. No director gate agents are spawned at any point
|
||||
4. Impact report is produced and per-artifact approval proceeds normally
|
||||
|
||||
**Assertions:**
|
||||
- [ ] No director gate agents are spawned (no CD-, TD-, PR-, AD- prefixed gates)
|
||||
- [ ] Skill does NOT read `production/session-state/review-mode.txt`
|
||||
- [ ] Output contains no "Gate: [GATE-ID]" or gate-skipped entries
|
||||
- [ ] Review mode has no effect on this skill's behavior
|
||||
|
||||
---
|
||||
|
||||
## Protocol Compliance
|
||||
|
||||
- [ ] Reads revised GDD and all potentially affected artifacts before producing impact report
|
||||
- [ ] Impact report shown in full before any "May I write" ask
|
||||
- [ ] "May I write" asked per artifact — never for the entire set at once
|
||||
- [ ] In Progress stories flagged with elevated warning before their approval ask
|
||||
- [ ] No director gates — no review-mode.txt read
|
||||
- [ ] Ends with next-step handoff appropriate to verdict (COMPLETE or NO IMPACT)
|
||||
|
||||
---
|
||||
|
||||
## Coverage Notes
|
||||
|
||||
- ADR impact (when a GDD change requires an ADR update or new ADR) follows the
|
||||
same per-artifact approval pattern as story/epic updates — not independently
|
||||
fixture-tested.
|
||||
- TR-registry impact (when changed GDD requires new or updated TR-IDs) is part
|
||||
of the analysis phase but not independently fixture-tested.
|
||||
- The git diff comparison method (detecting what changed in the GDD) is a runtime
|
||||
concern — fixtures use pre-arranged content differences.
|
||||
Reference in New Issue
Block a user