Layered verification for OpenSpec changes. Use when: running tests after implementation, validating specific test layers, or checking test status.
View on GitHubdstoic/skills/openspec-test/SKILL.md
February 3, 2026
Select agents to install to:
npx add-skill https://github.com/digital-stoic-org/agent-skills/blob/main/dstoic/skills/openspec-test/SKILL.md -a claude-code --skill openspec-testInstallation paths:
.claude/skills/openspec-test/# OpenSpec Test
Layered verification engine for OpenSpec changes. Runs tests in order: smoke → integration → manual → PBT.
## Workflow: Detect → Run Layers → Report
```mermaid
flowchart LR
A["Detect framework"] --> B["Smoke tests"]
B --> C{"Pass?"}
C -->|Yes| D["Integration tests"]
C -->|No| X["Report failure"]
D --> E{"Pass?"}
E -->|Yes| F["Manual instructions"]
E -->|No| X
F --> G["PBT (if applicable)"]
G --> H["Report summary"]
X --> H
classDef action fill:#C8E6C9,stroke:#388E3C,color:#000
classDef decision fill:#FFF9C4,stroke:#FBC02D,color:#000
classDef fail fill:#FFCDD2,stroke:#D32F2F,color:#000
class A,B,D,F,G,H action
class C,E decision
class X fail
```
**Critical**: Stop on layer failure. No point running integration if smoke fails.
## Exploration Strategy
Before testing, consult `openspec/project.md` → Exploration Strategy section:
1. **Context sources**: Read `primary` files (project.md, proposal.md, specs)
2. **Must-read files**: CLAUDE.md, settings.json (project constraints)
3. **Test config**: Detect test framework from package.json, pytest.ini, cargo.toml, etc.
4. **Existing tests**: Grep for test files to understand project test patterns
5. **Philosophy**: Read Execution Philosophy section for current mode
## Test Layers
```yaml
layers:
smoke:
purpose: Basic health checks
examples: ["app starts", "endpoints respond", "no crash on basic input"]
auto: true
integration:
purpose: Component interactions
examples: ["API contracts match", "DB state consistent", "error handling"]
auto: true
manual:
purpose: Human-verified critical paths
examples: ["UI flows", "user journeys", "edge cases needing judgment"]
auto: false # Generate instructions only
pbt:
purpose: Property-based edge case discovery
examples: ["invariants hold", "no unexpected states", "boundary conditions"]
auto: true
frameworks: [hypothesis, fast-check, propte