Requirements-First Spec Workflow
also known as Kiro spec workflow, EARS-based spec workflow, requirements-design-tasks
Drive the build from a structured requirements document, then a design, then tasks. Write requirements as user stories with EARS acceptance criteria of the form 'when X, the system shall Y'. Generate a design with architecture and data models from those requirements. Break the design into tasks the agent runs, independent ones first. A design-first variant flips the order when the architecture is the hard part.
Methodology process overview
Intent. Formalise a feature as testable requirements, then a validated design, then dependency-ordered tasks an agent can execute.
When to apply. Use this when a feature is complex enough that jumping to code loses requirements, and when you want acceptance criteria you can check implementation against. It suits regulated or interface-heavy work where 'the system shall' statements matter. Don't apply the requirements-first order when the architecture is the genuinely hard part; use the design-first variant then.
Inputs
- Feature or bug to formalise — The change to make, ready to be turned into user stories and acceptance criteria.
- Existing codebase context — The current architecture and code the design must fit into.
- Spec-driven IDE or agent — Tooling such as Kiro that generates requirements, design, and a runnable task list.
Outputs
- Requirements document — User stories with EARS acceptance criteria that state, testably, what the system shall do.
- Design document — Architecture, component interfaces, and data models, with diagrams, that satisfy the requirements.
- Dependency-ordered task list — The design broken into tasks with their dependencies, ready to run independent ones in parallel.
Steps (5)
Gather requirements in EARS
Write user stories with acceptance criteria in the form 'when X, the system shall Y'. The constraint forces each criterion to be checkable.
Generate the design
Turn approved requirements into a design document: architecture, interfaces, and data models, with diagrams, fitted to the existing code.
Break into a dependency-ordered task list
Decompose the design into tasks and record which depend on which, so independent work can run in parallel.
usesPlan-and-Execute
Run tasks in waves
Execute tasks by dependency wave: all tasks with no unmet dependencies run together, then the next wave once theirs are satisfied.
usesSpec-Driven Loop
Check against acceptance criteria
Verify each finished task against its EARS criteria. Every 'shall' is either demonstrably met or it is not done.
Framework-specific instructions
Pick a framework and generate a framework-targeted rewrite of this methodology's steps.
Choose framework
AI-generated for GitHub Spec Kit (GitHub) — verify against official docs.
Principles
- EARS phrasing earns its keep only if every 'shall' is actually checkable.
- Requirements before design, unless the architecture is the hard part.
- Make task dependencies explicit so independent work can run in parallel.
- Acceptance criteria are the contract; check finished work against them.
Known failure modes (2)
Related patterns (4)
- ★Spec-Driven Loop
Run the same prompt against a fixed spec in a deterministic outer loop until the spec is satisfied.
- ★Spec-First Agent
Drive the agent loop from a human-authored specification document rather than free-form prompts.
- ★Pre-Flight Spec Authoring
Before any code is generated, author a multi-pillar spec and have the agent critique it for ambiguity and edge cases, so that the loop executes against a reviewed target rather than a fresh prompt.
- ★★Plan-and-Execute
Plan all the steps once with a strong model, then execute each step with a cheaper model under the plan.
Related compositions (2)
- full-code · framework
GitHub Spec Kit
Spec-Driven Development toolkit from GitHub: a CLI plus template suite that forces an explicit Specify / Plan / Tasks authoring phase before any agent implementation step runs.
- recipe · abstract shapeModern Coding Agent
An agent that reads, writes, and runs code in a sandbox, calling tools and (optionally) sub-agents while a human approves the destructive parts. The shape that powers Cursor, Claude Code, OpenHands, Aider, Codex CLI.
Related methodologies (1)
Sources (2)
Provenance
- Added to catalog:
- Last updated:
- Verification status: partial