Skip to content
story-specify logo

List projects

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...

telum-ai/speck0installs2stars

SKILL.md

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.

⚠️ Step 0: Read Template First

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.

Play Level Check

Read .speck/​project.json (if it exists) for play_level.

  • Sprint: Sprint projects don't use stories — just ship it. Tell the user: "Sprint projects skip formal story specs. Just build what's in your PRD.md Build Plan. If the project is growing, run /​project-promote to move to Build level."
  • Build: Proceed with a lightweight spec (spec.md + plan.md only). Skip tasks.md, validation-report.md, and story-retro.md from next-step recommendations unless the user asks.
  • Platform: Full story workflow, proceed normally below.

Context-Aware Story Creation

Since commands can't rely on directory context, establish hierarchy:

Step 1: Context Discovery

Parse arguments for context:

  • "project:XXX epic:YYY [story description]"
  • "in epic YYY of project XXX"
  • "for [epic name] in [project name]"

If context missing, ask progressively:

  1. "Which project is this story for?"
  2. "Which epic does this story belong to?"
  3. "What's the story description?"

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/

Step 2: Detect Placeholder Spec (From Epic Breakdown)

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:

  • Read the **Current State** line in the file
  • If state is Draft (Placeholder) or Draft:
    • This is a /​epic-breakdown placeholder — proceed with the enhance flow below
    • Display to user: "Found a draft placeholder spec from epic breakdown. I'll fill it in."
    • Preserve the YAML frontmatter (especially depends_on and blocks)
    • Validate and enhance through interactive Q&A (Steps 4-8)
    • Save the completed version back to the same spec.md
    • Update lifecycle state to Specified
  • If state is already Specified:
    • Warn: "This story's spec.md already shows 'Specified' — /​story-specify appears to have already run. Do you want to re-specify or refine?"
    • Wait for user confirmation before overwriting

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).

Step 3: Pre-Validation Checklist (Prevent Duplication)

Before creating the story, check:

Duplication Check (Docs/​Specs Only):

  • Check if similar story already exists in this epic

    • Search epic-breakdown.md for similar story names/​descriptions
    • Review existing story specs in stories/ directory
    • If similar exists: Suggest updating existing vs creating new
  • Check if this belongs at story level

    • Is it small enough for a story? (5-minute explainability)
    • Or should it be an epic? (if >10 stories or major feature)
  • Review epic scope alignment

    • Load epic.md to understand epic goals
    • Validate story aligns with epic scope
    • If misaligned: Suggest different epic or epic scope expansion

Clarify if Ambiguous:

  • If request is ambiguous: Ask 1-2 clarifying questions before scaffolding
  • Verify user intent before creating spec

Note: Only check specs/​docs for duplication, not implementation code.

Step 4: Load Context Documents

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:

  • Use glossary terms from domain-model.md in story descriptions
  • Respect domain invariants in acceptance criteria
  • Reference domain entities for data requirements

Step 5: Story Validation

Validate story fits epic scope:

  • Load epic spec: specs/​projects/[PROJECT_ID]/​epics/[EPIC_ID]/​epic.md
  • Validate story aligns with epic goals
  • If duplication found: "Similar story exists: [name]. Should we update that instead?"

If mismatch: "This story seems outside the epic scope. Would you like to:

  1. Create it in a different epic?
  2. Expand the current epic scope?
  3. Create a new epic for this?"

Step 6: Interactive Story Development

If minimal description (or upgrading from draft), gather/​validate details:

If upgrading from a Draft placeholder spec.md:

  • Show draft content to user
  • Ask: "Does this draft capture your intent? What would you change?"
  • Focus on gaps and refinements rather than starting from scratch

If starting fresh, gather details:

Story Essentials:

  1. "As a [who], I want to [what], so that [why]"
  2. "What triggers this story?"
  3. "What indicates completion?"

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?"

Step 7: Create Story Structure

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]/

Step 8: Story Specification

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
  • Checkboxes:
    - [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.)

Step 9: Apply 10-Minute Understandability Rule

Before finalizing, validate story scope:

5-Minute Test: Can you explain this story to a new teammate in <5 minutes?

  • What it does
  • Why it's needed
  • How success is measured

If NO → Story is too complex, split it!

Check for "AND": Does the story description need "AND"?

  • Example: "Add login form AND registration flow"
  • Action: Split into separate stories

Complexity Indicators:

  • Needs >3 acceptance scenarios → Might be multiple stories
  • Touches >3 different components → Might be too broad
  • Requires extensive context to explain → Simplify or split

If story seems too complex, suggest splitting and ask user approval.

Step 10: Update Epic Tracking

Add story to epic's story list with status "specified"

Step 11: Optional Step Evaluation + Guide Next Steps

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-clarifyAcceptance criteria vague or missing; scope boundary unclear; edge cases unaddressed; [NEEDS CLARIFICATION] markersSome scenarios lack explicit success criteriaAll criteria are specific and testable; scope is unambiguous
/​story-outlineTechnology not used elsewhere in project; TBD/​unknown sections; multiple competing implementation approaches mentionedOne or two minor unknowns; would benefit from a quick research passImplementation path clear; follows well-established project patterns
/​story-scanStory extends, modifies, or refactors existing code modules; brownfield contextStory touches code that exists but isn't deeply modifiedFully greenfield story with no existing code to understand
/​story-ui-specAny mention of: UI, screen, form, modal, component, button, layout, page, design, front-end, UXStory has minor UI concerns alongside backend workPure 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):

  • Orchestrated / background / delegated run (invoked by /​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.
  • Interactive single-step run (a human invoked /​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-spec after /​story-plan and 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.

More skills from telum-ai

project-brainstorm logo
telum-ai/speck

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.

2 0
View

Load when using Docker for containerizing applications. Applies when creating Dockerfiles, docker-compose setups, multi-stage builds, or optimizing container images.

2 0
View
visual-quality logo
telum-ai/speck

visual-quality

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.

2 0
View
project-clarify logo
telum-ai/speck

project-clarify

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.

2 0
View
story-outline logo
telum-ai/speck

story-outline

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...

2 0
View

Load when building offline-first applications that work without network connectivity. Applies when implementing local storage, sync queues, conflict resolution, or background sync.

2 0
View
project-constitution logo
telum-ai/speck

project-constitution

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 ...

2 0
View
posthog-integration logo
telum-ai/speck

posthog-integration

Load when integrating PostHog for product analytics and feature flags. Applies when implementing event tracking, A/B testing, session replay, or funnel analysis.

2 0
View
project-validate logo
telum-ai/speck

project-validate

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...

2 0
View
story-scan logo
telum-ai/speck

story-scan

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...

2 0
View

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.

2 0
View
epic-analyze logo
telum-ai/speck

epic-analyze

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...

2 0
View

Popular AI tools

Kaiber logo
Video

Kaiber

Generate, edit, and beat-sync AI video with leading models in one workspace.

Paid
View
Vimcal logo
Productivity

Vimcal

The world's fastest calendar for remote work

Free
View

Transform Your Design with AI Designer by ImgCreator.ai

Freemium
View
Akool AI logo
Content & writing

Akool AI

Revolutionizing Video Production with AI-Powered Creativity

Paid
View

Extend an image past the frame and let AI fill the new aspect ratio.

Freemium
View
StarByFace logo
Security

StarByFace

Discover your celebrity doppelgänger with StarByFace!

Free
View
C

ChainClarity explains 700+ crypto whitepapers in plain English, with layered summaries, comparisons, research tools, alerts, and a $4.99 Pro plan.

Freemium
View
Opus Clip logo
Coding & apps

Opus Clip

Opus.ai: Revolutionize Your Web Experience

Free
View