3.2 KiB
Skill Test Spec: /[skill-name]
Skill Summary
[One paragraph: what this skill does, when to use it, what it produces. Include the primary output artifact, the verdict format it uses, and which pipeline stage it belongs to.]
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 (## Phase N or numbered ## sections)
- Contains verdict keywords: [list the ones expected, e.g., PASS, FAIL, CONCERNS]
- Contains "May I write" collaborative protocol language (if skill writes files)
- Has a next-step handoff at the end
Test Cases
Case 1: Happy Path — [short description]
Fixture: [Describe the assumed project state. Which files exist? What do they contain? E.g., "game-concept.md exists with all 8 required sections complete. systems-index.md exists. All MVP GDDs are present and individually reviewed."]
Input: /[skill-name] [args]
Expected behavior:
- [Phase 1 action — what the skill should read or check]
- [Phase 2 action — what the skill should evaluate]
- [Phase N action — what the skill should output]
Assertions:
- Skill reads [specific file] before producing output
- Output includes verdict keyword [PASS/FAIL/etc.]
- Output lists [specific content] from the fixture
- Skill asks for approval before writing any file
Case 2: Failure Path — [short description, e.g., "Missing required artifact"]
Fixture: [Describe the failure state. E.g., "game-concept.md is missing. No files exist in design/gdd/."]
Input: /[skill-name] [args]
Expected behavior:
- [Phase 1: skill detects missing file]
- [Phase 2: skill surfaces the gap rather than assuming OK]
- [Output: FAIL or BLOCKED verdict with specific blocker named]
Assertions:
- Skill does NOT output PASS when the fixture is incomplete
- Skill names the specific missing artifact
- Skill suggests a remediation action (e.g., "Run /[other-skill]")
- Skill does not create files to fill in the gap without asking
Case 3: Edge Case — [short description, e.g., "No argument provided"]
Fixture: [State of project files for this case]
Input: /[skill-name] (no argument)
Expected behavior:
- [What the skill should do when invoked without arguments]
Assertions:
- [assertion]
Protocol Compliance
- Uses "May I write" before all file writes
- Presents findings or report before asking for write approval
- Ends with a recommended next step or follow-up skill
- Never auto-creates files without explicit user approval
- Does not skip phases or jump straight to a verdict without checking
Coverage Notes
[Document what is intentionally NOT tested in this spec and why. Examples:
- "Case 3 (all-mode) is not covered because it runs too many checks to evaluate in a single spec — test each sub-mode individually."
- "The database integration path is not covered as it requires a live environment."
- "Edge cases involving corrupted YAML files are deferred to a future spec."]