Free SKILL.md scraped from GitHub. Clone the repo or copy the file directly into your Claude Code skills directory.
npx versuz@latest install ruvnet-claude-flow-plugins-ruflo-sparc-skills-sparc-specgit clone https://github.com/ruvnet/claude-flow.gitcp claude-flow/SKILL.MD ~/.claude/skills/ruvnet-claude-flow-plugins-ruflo-sparc-skills-sparc-spec/SKILL.md---
name: sparc-spec
description: Run the SPARC Specification phase — gather requirements, define acceptance criteria, identify constraints, and store the spec in memory
argument-hint: "<feature-description>"
allowed-tools: mcp__claude-flow__memory_store mcp__claude-flow__memory_search mcp__claude-flow__memory_retrieve mcp__claude-flow__task_create mcp__claude-flow__task_update mcp__claude-flow__task_complete mcp__claude-flow__hooks_intelligence_trajectory-start mcp__claude-flow__hooks_intelligence_trajectory-step mcp__claude-flow__neural_predict Bash Read Edit
---
# SPARC Specification Phase
Run Phase 1 of the SPARC methodology: define what must be built and how success is measured.
## When to use
When starting a new feature or project that needs structured requirements gathering before any code is written. This phase produces the foundational specification that all subsequent phases (Pseudocode, Architecture, Refinement, Completion) build upon.
## Steps
1. **Initialize phase tracking** — call `mcp__claude-flow__hooks_intelligence_trajectory-start` with metadata `{ "phase": "specification", "feature": "$ARGUMENTS" }`
2. **Check for prior work** — call `mcp__claude-flow__memory_search` with namespace `sparc-state` and query for the feature to see if a SPARC workflow already exists. If it does, retrieve existing artifacts. If not, initialize state with phase 1.
3. **Search for similar patterns** — call `mcp__claude-flow__neural_predict` with the feature description to find relevant past specifications and learned patterns
4. **Gather requirements** — analyze the feature description and the codebase to identify:
- **Functional requirements**: what the feature must do (user-facing behaviors)
- **Non-functional requirements**: performance targets, security constraints, scalability needs
- **Integration points**: what existing systems or APIs are affected
- **Data requirements**: what data is created, read, updated, or deleted
5. **Define acceptance criteria** — write at least 3 concrete, testable acceptance criteria in Given/When/Then format:
```
AC-1: Given [precondition], when [action], then [expected result]
AC-2: Given [precondition], when [action], then [expected result]
AC-3: Given [precondition], when [action], then [expected result]
```
6. **Identify constraints** — document:
- Performance constraints (latency, throughput, resource limits)
- Security constraints (authentication, authorization, data sensitivity)
- Compatibility constraints (browser support, API versions, backward compatibility)
- Infrastructure constraints (deployment environment, dependencies)
7. **Map edge cases** — list at least 3 edge cases or failure scenarios:
- What happens with invalid input?
- What happens under concurrent access?
- What happens when external dependencies fail?
8. **Store specification** — call `mcp__claude-flow__memory_store` with:
- Namespace: `sparc-phases`
- Key: `spec-{feature-slug}`
- Value: JSON with `{ status: "complete", requirements, acceptanceCriteria, constraints, edgeCases, integrationPoints }`
9. **Update phase state** — call `mcp__claude-flow__memory_store` with:
- Namespace: `sparc-state`
- Key: `current-phase-{feature-slug}`
- Value: updated state with artifacts list including the spec key
10. **Record trajectory step** — call `mcp__claude-flow__hooks_intelligence_trajectory-step` with the specification summary
11. **Present specification** — display the full specification document to the user with a summary table and suggest running `/sparc advance` to pass the gate and move to the Pseudocode phase
## Output format
```
# Specification: {Feature Name}
## Requirements
### Functional
- FR-1: ...
- FR-2: ...
### Non-Functional
- NFR-1: ...
## Acceptance Criteria
- AC-1: Given ..., when ..., then ...
- AC-2: Given ..., when ..., then ...
- AC-3: Given ..., when ..., then ...
## Constraints
- Performance: ...
- Security: ...
- Compatibility: ...
## Edge Cases
- EC-1: ...
- EC-2: ...
- EC-3: ...
## Integration Points
- IP-1: ...
---
Phase 1 complete. Run `/sparc advance` to pass the gate check.
```