project-brainstorm
Load when a user has a vague idea, problem, or inspiration but isn't sure what to build. Use before /project-specify when the project concept needs crystallizing from loose thoughts into something concrete.
story-specify
Load when starting a new story — either detailing a placeholder from epic-breakdown, or creating a story from scratch. Use when user says 'let's work on story X', 'specify [feature detail]', or picks up a story from the breakdown. Produces spec.md — required before all other story commands. FIRST...
Full skill instructions
The user input to you can be provided directly by the agent or as a command argument - you MUST consider it before proceeding with the prompt (if not empty).
User input:
$ARGUMENTS
The text the user typed after /story-specify in the triggering message is the story description. Assume you always have it available in this conversation even if $ARGUMENTS appears literally below. Do not ask the user to repeat it unless they provided an empty command.
Before any other action — read this template now using the Read tool:
.speck/templates/story/story-template.md
The template defines required sections and formatting for spec.md. Reading it first shapes your Q&A — you'll know exactly what information you need to gather. Generating spec.md from memory without reading this template produces structurally incorrect output.
Checkpoint: After reading, note the top-level sections from the template. Then continue to Step 1.
Read .speck/project.json (if it exists) for play_level.
/project-promote to move to Build level."Since commands can't rely on directory context, establish hierarchy:
Parse arguments for context:
If context missing, ask progressively:
List available options:
# List projects
find specs/projects -name "project.md" -exec dirname {} \; | xargs -I {} basename {}
# List epics for selected project
ls specs/projects/[PROJECT_ID]/epics/
Check if a spec.md already exists for this story (created as a placeholder by /epic-breakdown):
SPEC=$(ls -1 specs/projects/[PROJECT_ID]/epics/[EPIC_ID]/stories/[STORY_ID]-*/spec.md 2>/dev/null | head -1 || true)
If spec.md exists, check its lifecycle state:
**Current State** line in the fileDraft (Placeholder) or Draft:
/epic-breakdown placeholder — proceed with the enhance flow belowdepends_on and blocks)spec.mdSpecifiedSpecified:
/story-specify appears to have already run. Do you want to re-specify or refine?"CRITICAL: The depends_on field in the YAML frontmatter is read by the orchestrator to determine story blocking. Always preserve it.
If no spec.md exists: Continue with normal interactive specification flow (create from scratch).
Before creating the story, check:
Duplication Check (Docs/Specs Only):
Check if similar story already exists in this epic
stories/ directoryCheck if this belongs at story level
Review epic scope alignment
Clarify if Ambiguous:
Note: Only check specs/docs for duplication, not implementation code.
Load project-level documents for consistency:
LOAD (if exists):
- specs/projects/[PROJECT_ID]/domain-model.md → Domain terminology and rules
- specs/projects/[PROJECT_ID]/ux-strategy.md → UX principles and voice
- specs/projects/[PROJECT_ID]/design-system.md → UI components and tokens
Domain Model Usage:
Validate story fits epic scope:
specs/projects/[PROJECT_ID]/epics/[EPIC_ID]/epic.mdIf mismatch: "This story seems outside the epic scope. Would you like to:
If minimal description (or upgrading from draft), gather/validate details:
If upgrading from a Draft placeholder spec.md:
If starting fresh, gather details:
Story Essentials:
Acceptance Criteria: 4. "What are the must-have requirements?" 5. "Any specific constraints?" 6. "How will we test this?"
Technical Considerations: 7. "Frontend, backend, or both?" 8. "Any API changes needed?" 9. "Database impacts?"
Create directly in the current hierarchical structure (if not already created by epic-breakdown):
# Generate story ID and create directory (skip if already exists from epic-breakdown)
mkdir -p specs/projects/[PROJECT_ID]/epics/[EPIC_ID]/stories/[STORY_ID]-[story-name]
Note: Speck stories live in the hierarchical structure under:
specs/projects/[PROJECT_ID]/epics/[EPIC_ID]/stories/[STORY_ID]-[story-name]/
CRITICAL: Load and follow the template exactly:
.speck/templates/story/story-template.md
The template is self-documenting - follow all sections and guidelines within it.
Output: Save as spec.md with lifecycle state updated to Specified.
Lifecycle state — always set in the saved spec.md:
**Current State**: Specified- [x] **Draft** - Placeholder spec.md created by `/epic-breakdown` (check if was a draft)
- [x] **Specified** - spec.md completed by `/story-specify`
(If the spec was previously a Draft placeholder, check both boxes to show full progression.
If created fresh from scratch, only the Specified box is checked.)Before finalizing, validate story scope:
5-Minute Test: Can you explain this story to a new teammate in <5 minutes?
If NO → Story is too complex, split it!
Check for "AND": Does the story description need "AND"?
Complexity Indicators:
If story seems too complex, suggest splitting and ask user approval.
Add story to epic's story list with status "specified"
After saving spec.md, scan its content and evaluate each optional step. Output a recommendation table with specific text or observations from spec.md that drove each decision — not generic advice.
Evaluation criteria:
| Step | 🔴 Required when | ⚠️ Recommended when | ⬜ Skip when |
|---|---|---|---|
/story-clarify | Acceptance criteria vague or missing; scope boundary unclear; edge cases unaddressed; [NEEDS CLARIFICATION] markers | Some scenarios lack explicit success criteria | All criteria are specific and testable; scope is unambiguous |
/story-outline | Technology not used elsewhere in project; TBD/unknown sections; multiple competing implementation approaches mentioned | One or two minor unknowns; would benefit from a quick research pass | Implementation path clear; follows well-established project patterns |
/story-scan | Story extends, modifies, or refactors existing code modules; brownfield context | Story touches code that exists but isn't deeply modified | Fully greenfield story with no existing code to understand |
/story-ui-spec | Any mention of: UI, screen, form, modal, component, button, layout, page, design, front-end, UX | Story has minor UI concerns alongside backend work | Pure backend, API-only, or CLI-only story |
Output format (fill from actual spec content — no placeholders):
## Optional Step Evaluation
| Step | Recommendation | Evidence from spec.md |
|------|---------------|----------------------|
| /story-clarify | ⬜ / ⚠️ / 🔴 | "[specific quote or observation]" |
| /story-outline | ⬜ / ⚠️ / 🔴 | "[specific quote or observation]" |
| /story-scan | ⬜ / ⚠️ / 🔴 | "[specific quote or observation]" |
| /story-ui-spec | ⬜ / 🔴 | "[specific quote or observation]" |
Recommended path to /story-plan:
→ [only Required/Recommended steps in flow order] → /story-plan → [/story-ui-spec if needed] → /story-tasks → /story-analyze → /story-implement
Continuation (do NOT treat this menu as a stop):
/story or a conductor): this table is informational — immediately proceed to the first recommended step. Do NOT end your turn here; the lifecycle is incomplete until validate. Ending after the menu silently leaves the story half-built./story-specify directly): end with "Shall I proceed with [first recommended step]?" and wait.Flow order: /story-clarify → /story-outline → /story-scan → /story-plan → /story-ui-spec → /story-tasks → /story-analyze → /story-implement
If /story-ui-spec is 🔴 Required, note it clearly after /story-plan:
"This story has UI components — run
/story-ui-specafter/story-planand before/story-tasks. Skipping it means the implementation will guess at layout, states, and design token usage."
Note: If your team uses a branch-based workflow, create a branch for this story (e.g. [STORY_ID]-[story-name]) before implementation.
Load when a user has a vague idea, problem, or inspiration but isn't sure what to build. Use before /project-specify when the project concept needs crystallizing from loose thoughts into something concrete.
Load when using Docker for containerizing applications. Applies when creating Dockerfiles, docker-compose setups, multi-stage builds, or optimizing container images.
Enforce visual design quality in every UI file. Fires for .tsx, .jsx, .vue, .svelte, and similar component files. Ensures implementations express the project's design personality rather than producing generic/boilerplate UI.
Load after project.md exists to fill gaps through targeted Q&A. Use when project goals, target users, or scope feel underspecified. Run before project-context or project-architecture to prevent rework downstream.
DEPRECATED in Speck v7. Use /speck-skeptical-review + /speck-decision-log instead — they replace outline-style research mapping with structured alternative enumeration and decision locking. /story-plan now performs just-in-time research inline. This skill remains for v6 compatibility but redirect...
Load when building offline-first applications that work without network connectivity. Applies when implementing local storage, sync queues, conflict resolution, or background sync.
Load (Platform play level only) to define technical principles and architectural guardrails for the project. Produces constitution.md — optional but valuable when a team needs explicit coding standards, governance rules, or non-negotiable constraints. FIRST ACTION after loading: read template at ...
Load when integrating PostHog for product analytics and feature flags. Applies when implementing event tracking, A/B testing, session replay, or funnel analysis.
Load when all epics are validated and /audit has run for the project. Verifies the project meets its original vision and product-contract.md paid promise. Runs end-to-end JTBD smoke test via /larp across all personas. Declares a project-level readiness state. Produces project-validation-report.md...
Load for brownfield stories where existing code must be understood before planning. Use when a story extends, modifies, or integrates with significant existing functionality. Produces codebase-scan.md — skip for fully greenfield stories. FIRST ACTION after loading: read template at .speck/templat...
Load when building serverless applications with AWS Lambda, Vercel Functions, or Cloudflare Workers. Applies when implementing FaaS patterns, managing cold starts, or optimizing serverless costs.
Load after epic-tech-spec.md and epic-breakdown.md exist — quality check for consistency and completeness before any story work begins. Catches spec drift and missing coverage between the tech spec and story breakdown. FIRST ACTION after loading: read template at .speck/templates/epic/epic-analys...
Generate, edit, and beat-sync AI video with leading models in one workspace.
The world's fastest calendar for remote work
Transform Your Design with AI Designer by ImgCreator.ai
Revolutionizing Video Production with AI-Powered Creativity
Extend an image past the frame and let AI fill the new aspect ratio.
Discover your celebrity doppelgänger with StarByFace!
ChainClarity explains 700+ crypto whitepapers in plain English, with layered summaries, comparisons, research tools, alerts, and a $4.99 Pro plan.
Opus.ai: Revolutionize Your Web Experience