
SPARC Specification Phase
FreeStreamline your requirements gathering process.
Free · Opens the source repo
What SPARC Specification Phase does
The SPARC Specification Phase skill is designed to help developers and designers systematically gather and document project requirements before any coding begins. By following a structured methodology, this skill ensures that all essential aspects of a feature are considered, including functional and non-functional requirements, acceptance criteria, and constraints. This foundational work is crucial for the success of subsequent phases in the project lifecycle, such as Pseudocode and Architecture.
When you initiate the SPARC Specification Phase, the skill begins by tracking the phase and checking for any prior work related to the feature in question. If previous specifications exist, it retrieves those artifacts to avoid redundancy. The skill then analyzes the feature description alongside the existing codebase to identify various requirements, ensuring that both user-facing behaviors and system constraints are well understood. This comprehensive approach helps prevent oversights that could lead to project delays or failures.
The skill also emphasizes the importance of defining clear acceptance criteria using the Given/When/Then format, which aids in aligning team expectations and facilitates testing. Additionally, it identifies potential edge cases and constraints that might impact development, such as performance limits or security requirements. By storing all gathered specifications in a structured format, the skill allows for easy access and reference throughout the development process.
Overall, the SPARC Specification Phase skill is ideal for teams looking to enhance their project planning and ensure that they have a solid foundation before moving forward with implementation. It is particularly useful when starting new features or projects that require a detailed and organized approach to requirements gathering.
When to use it
Use this skill at the beginning of a new project or feature development to establish clear requirements and success metrics.
When not to use it
This skill is not suitable for projects that are already in progress or for teams that prefer unstructured methods of requirements gathering.
What you can build with it
Starting a New Feature
When initiating a new feature, use this skill to define requirements and acceptance criteria before development.
Documenting Project Specifications
Utilize the skill to create a comprehensive specification document that can be referenced throughout the project lifecycle.
Aligning Team Expectations
Employ the skill to establish clear acceptance criteria that help synchronize team understanding and testing efforts.
How to install SPARC Specification Phase
View source1. Install with the skills CLI
npx skills add ruvnet/ruflo/sparc-spec --agent claude-code2. Or install it manually
Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.
Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs
Inside SKILL.md
Written by ruvnetSPARC 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
-
Initialize phase tracking — call
mcp__plugin_ruflo-core_ruflo__hooks_intelligence_trajectory-startwith metadata{ "phase": "specification", "feature": "$ARGUMENTS" } -
Check for prior work — call
mcp__plugin_ruflo-core_ruflo__memory_searchwith namespacesparc-stateand 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. -
Search for similar patterns — call
mcp__plugin_ruflo-core_ruflo__neural_predictwith the feature description to find relevant past specifications and learned patterns -
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
-
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] -
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)
-
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?
-
Store specification — call
mcp__plugin_ruflo-core_ruflo__memory_storewith:- Namespace:
sparc-phases - Key:
spec-{feature-slug} - Value: JSON with
{ status: "complete", requirements, acceptanceCriteria, constraints, edgeCases, integrationPoints }
- Namespace:
-
Update phase state — call
mcp__plugin_ruflo-core_ruflo__memory_storewith:- Namespace:
sparc-state - Key:
current-phase-{feature-slug} - Value: updated state with artifacts list including the spec key
- Namespace:
-
Record trajectory step — call
mcp__plugin_ruflo-core_ruflo__hooks_intelligence_trajectory-stepwith the specification summary -
Present specification — display the full specification document to the user with a summary table and suggest running
/sparc advanceto 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.
Frequently asked questions about SPARC Specification Phase
Similar skills
Spring Boot Testing
Master testing techniques for Spring Boot 4 applications.
GitHub Issues
Manage GitHub issues efficiently with MCP tools.
Geofeed Tuner
Optimize your IP geolocation feeds in CSV format.
Batch Files
Master Windows batch scripting for automation and task management.
Adobe Illustrator Scripting
Automate your Illustrator workflows with ExtendScript.
Plugin Structure
Create and organize Claude Code plugins effectively.
