Manages the specification-driven development workflow. Use this skill when the user runs /orbit, requests to "define feature", "create plan", "implement", or needs workflow guidance. It detects the current phase from artifacts and executes the appropriate action.
Automates specification-driven development workflow. Triggers on `/orbit`, "define feature", "create plan", or "implement" commands. Detects current phase from spec.md frontmatter and executes appropriate actions.
/plugin marketplace add BrendanShields/spec-flow/plugin install spec@spec-marketplaceThis skill inherits all available tools. When active, it can use any tool Claude has access to.
scripts/archive-feature.jsscripts/context-loader.jsscripts/log-activity.jsscripts/update-status.jsscripts/validate-phase.jstemplates/quick-plan.mdtemplates/quick-tasks.mdSingle skill for specification-driven development. Artifacts are the source of truth.
node plugins/spec/skills/managing-workflow/scripts/context-loader.js
This returns JSON with:
suggestion: Recommended next actioncurrent: Active feature state and artifactsfeatures.active: All features with frontmatter statefeatures.in_progress: Features needing attentionarchitecture_files: Available architecture docsUse this context for all decisions. Avoid additional Read calls for state detection. </context-loading>
Phase is stored in spec.md frontmatter status field:
| Status | Artifacts | Next Action |
|---|---|---|
initialize | None | Create spec.md |
specification | spec.md (no [CLARIFY]) | Create plan.md |
clarification | spec.md with [CLARIFY] | Resolve questions |
planning | spec.md + plan.md | Create tasks.md |
implementation | tasks.md has - [ ] | Execute tasks |
complete | All tasks - [x] | Archive or new feature |
---
id: 001-feature-name
title: Human Readable Title
status: specification # initialize|specification|clarification|planning|implementation|complete
priority: P1 # P1|P2|P3
created: 2025-11-27
updated: 2025-11-27
progress:
tasks_total: 0
tasks_done: 0
owner: team-name
tags:
- api
- auth
---
On every phase transition, use the skill's built-in scripts:
# Update status and timestamp
node plugins/spec/skills/managing-workflow/scripts/update-status.js \
".spec/features/{feature}/spec.md" "planning"
# Log activity with ISO timestamp
node plugins/spec/skills/managing-workflow/scripts/log-activity.js \
".spec/features/{feature}/metrics.md" "Plan created"
Or with Edit tool - update the status line in frontmatter.
You MUST validate before ANY phase transition. This is NOT optional.
# REQUIRED before every phase change
RESULT=$(node plugins/spec/skills/managing-workflow/scripts/validate-phase.js \
".spec/features/{feature}" "{target-phase}")
# Check result - DO NOT PROCEED if invalid
if [[ $(echo "$RESULT" | jq -r '.valid') != "true" ]]; then
echo "BLOCKED: $(echo "$RESULT" | jq -r '.suggestion')"
# Create the missing artifact before continuing
fi
| Target Phase | Required Artifacts | If Missing |
|---|---|---|
| specification | None | - |
| clarification | spec.md | Create spec first |
| planning | spec.md (no [CLARIFY]) | Resolve clarifications |
| implementation | spec.md, plan.md, tasks.md | Create missing artifacts |
| complete | All tasks [x] | Complete remaining tasks |
[ ] must be [x]For simple features (bug fixes, < 3 files), use streamlined templates:
plugins/spec/skills/managing-workflow/templates/quick-plan.md - Combined plan with inline tasksplugins/spec/skills/managing-workflow/templates/quick-tasks.md - Minimal task listThis ensures artifacts exist while reducing overhead for small changes.
{NNN}-{kebab-name}mkdir -p .spec/features/{id}
Create these files simultaneously:
spec.md with frontmattermetrics.md with tracking templateset_feature "{id}"---
id: {id}
title: {title}
status: specification
priority: P2
created: {date}
updated: {date}
progress:
tasks_total: 0
tasks_done: 0
---
# Feature: {title}
## Overview
{description}
## User Stories
### US1: {story title}
As a {role}, I want {goal} so that {benefit}.
**Acceptance Criteria:**
- [ ] AC1.1: {criterion}
- [ ] AC1.2: {criterion}
## Technical Constraints
- {constraint}
## Out of Scope
- {exclusion}
# Metrics: {title}
## Progress
| Phase | Status | Updated |
|-------|--------|---------|
| Specification | pending | |
| Clarification | pending | |
| Planning | pending | |
| Implementation | 0/0 | |
## Activity
| Timestamp | Event |
|-----------|-------|
Note: All timestamps use ISO 8601 format: 2025-11-27T10:30:00Z
[CLARIFY]spec.mdstatus: specification (or clarification if tags exist)[CLARIFY] tags in spec.md[CLARIFY] tagsstatus: specificationplan.mdstatus: planning# Technical Plan: {title}
## Architecture
{architecture decisions and rationale}
## Components
| Component | Purpose | Dependencies |
|-----------|---------|--------------|
| {name} | {purpose} | {deps} |
## Data Models
{model definitions}
## API Design
{endpoints if applicable}
## Implementation Phases
1. **Phase 1**: {description}
2. **Phase 2**: {description}
## Risks
| Risk | Impact | Mitigation |
|------|--------|------------|
| {risk} | {impact} | {mitigation} |
## Parallel Group A
- [ ] T001: {task} [P1]
- [ ] T002: {task} [P1]
## Parallel Group B [depends:A]
- [ ] T003: {task} [P1] [depends:T001,T002]
[critical:schema], [critical:api], [critical:types]tasks.mdstatus: implementationtasks_total: {count}# Tasks: {title}
## Parallel Group A
- [ ] T001: {description} [P1]
- [ ] T002: {description} [P1]
## Parallel Group B [depends:A]
- [ ] T003: {description} [P1] [depends:T001,T002]
- [ ] T004: {description} [P2] [depends:T001]
## Sequential
- [ ] T005: {description} [P1] [critical:api] [depends:T003,T004]
---
## Legend
- `[P1/P2/P3]` - Priority level
- `[depends:X,Y]` - Task dependencies
- `[critical:type]` - Requires extra review (schema, api, types, auth)
- `[estimate:S/M/L]` - Size estimate
GATE CHECK REQUIRED - Before implementing, MUST validate:
# MANDATORY: Run this before any implementation
RESULT=$(node plugins/spec/skills/managing-workflow/scripts/validate-phase.js \
".spec/features/{feature}" "implementation")
# If not valid, STOP and create missing artifacts
if [[ $(echo "$RESULT" | jq -r '.valid') != "true" ]]; then
MISSING=$(echo "$RESULT" | jq -r '.missing')
echo "Cannot implement: missing $MISSING"
# Go back and create: plan.md or tasks.md
fi
Only after validation passes, delegate to task-implementer agent:
Task: task-implementer agent
Feature: {feature-path}
Tasks file: .spec/features/{feature}/tasks.md
Execute tasks in parallel groups where possible.
Update task checkboxes as completed.
Report any blockers.
After implementation:
tasks_done: {count}status: completeDelegate to artifact-validator agent:
Task: artifact-validator agent
Feature: {feature-path}
Validate:
1. Spec completeness (all AC have tasks)
2. Plan coverage (all US have implementation)
3. Task consistency (dependencies valid)
When feature is complete:
node plugins/spec/skills/managing-workflow/scripts/archive-feature.js "{feature-id}"
claude --continue to resume after restartBefore archiving, analyze the completed feature for automation opportunities:
Pattern Detection (only for repeatable tasks):
- Created 3+ similar files? → Suggest generator skill
- Wrote 3+ test files? → Suggest testing-code skill
- Added 3+ API endpoints? → Suggest api-testing agent
- Similar task structure repeated? → Suggest workflow skill
Skip tooling suggestions if:
If tooling is created:
## New Tooling Created
| Type | Name | Location |
|------|------|----------|
| Skill | {name} | .claude/skills/{name}/ |
| Agent | {name} | .claude/agents/{name}.md |
**Restart Required**: Run `claude --continue` to use new tooling.
Use AskUserQuestion strategically:
questions:
- header: "Project Type"
question: "What type of project is this?"
options:
- label: "Greenfield"
description: "New project from scratch"
- label: "Brownfield"
description: "Existing codebase"
questions:
- header: "Feature"
question: "Which feature to work on?"
options:
- label: "{feature-1}"
description: "{status} - {progress}"
- label: "{feature-2}"
description: "{status}"
- label: "New Feature"
description: "Start fresh"
questions:
- header: "Execution"
question: "How to execute tasks?"
options:
- label: "Guided"
description: "Confirm each task"
- label: "Autonomous"
description: "Execute all, report at end"
Execute in parallel when independent:
Execute sequentially when dependent:
This skill should be used when the user asks to "create an agent", "add an agent", "write a subagent", "agent frontmatter", "when to use description", "agent examples", "agent tools", "agent colors", "autonomous agent", or needs guidance on agent structure, system prompts, triggering conditions, or agent development best practices for Claude Code plugins.
This skill should be used when the user asks to "create a slash command", "add a command", "write a custom command", "define command arguments", "use command frontmatter", "organize commands", "create command with file references", "interactive command", "use AskUserQuestion in command", or needs guidance on slash command structure, YAML frontmatter fields, dynamic arguments, bash execution in commands, user interaction patterns, or command development best practices for Claude Code.
This skill should be used when the user asks to "create a hook", "add a PreToolUse/PostToolUse/Stop hook", "validate tool use", "implement prompt-based hooks", "use ${CLAUDE_PLUGIN_ROOT}", "set up event-driven automation", "block dangerous commands", or mentions hook events (PreToolUse, PostToolUse, Stop, SubagentStop, SessionStart, SessionEnd, UserPromptSubmit, PreCompact, Notification). Provides comprehensive guidance for creating and implementing Claude Code plugin hooks with focus on advanced prompt-based hooks API.