Fast-track feature creation that collapses new-feature, research, and planning into a single autonomous pass. Produces all spec YAMLs (spec, research, plan, tasks, feature) in one go with minimal user interaction. Triggers include "quick feature", "fast feature", "rapid spec", or explicit /shep-kit:new-feature-fast invocation. Part of the Shep autonomous SDLC platform — https://shep.bot
Collapse the full new-feature → research → plan pipeline into a single autonomous pass. Produces all the same YAML artifacts as the full pipeline but with minimal user interaction (0-2 clarifying questions max).
Full workflow guide: docs/development/spec-driven-workflow.md
The user provides a feature description inline:
/shep-kit:new-feature-fast add unit tests to backend servicesIf no description is provided, ask for a one-liner description. That is the only mandatory question.
Extract a kebab-case feature name from the user's description. Do NOT ask — infer it.
Examples:
backend-unit-testsdark-mode-toggleagent-runner-memory-fix# Determine next spec number
NEXT_NUM=$(ls -d specs/[0-9][0-9][0-9]-* 2>/dev/null | sort | tail -1 | grep -oP '^\d{3}' | xargs -I{} printf "%03d" $(({} + 1)))
# If no specs exist, use 001
[ -z "$NEXT_NUM" ] && NEXT_NUM="001"
FEATURE_NAME="<derived-kebab-case>"
# Create branch from main
git checkout main && git pull
git checkout -b "feat/${NEXT_NUM}-${FEATURE_NAME}"
# Run scaffolding (creates all template files)
.claude/skills/shep-kit-new-feature/scripts/init-feature.sh "$NEXT_NUM" "$FEATURE_NAME"This reuses the existing init script — same templates, same directory structure.
Before writing any YAML, perform thorough codebase analysis. This is the foundation for ALL subsequent YAML files. Do NOT show analysis to user — go straight to writing.
Analyze:
CLAUDE.md, AGENTS.md, key source directoriesspecs/*/spec.yaml for dependencies and landscapetsp/)After analysis, if something is genuinely ambiguous and would lead to a fundamentally different spec, ask at most 1-2 quick questions. Use AskUserQuestion with concrete options inferred from the codebase.
Do NOT ask about:
Examples of valid questions:
Write all YAML files in sequence. Each file should be concise but complete — no placeholder values, no {{TEMPLATE}} markers, no TBD entries.
spec.yamlFill in ALL fields with real values:
name, number, branch, oneLiner, summary — from user input + analysisphase: RequirementssizeEstimate — inferred from scope (S/M/L/XL)relatedFeatures — from scanning existing specstechnologies — from codebase analysisopenQuestions: [] — MUST be empty (resolve everything inline)content section with:
research.yamlFill in ALL fields:
summary — one-line research summarydecisions[] — each with title, chosen, rejected[], rationaletechnologies — libraries/tools involvedopenQuestions: [] — MUST be emptycontent section with:
Keep it focused: If the feature uses only existing stack/patterns, the research section can be brief. Don't fabricate decisions where none exist.
plan.yamlFill in ALL fields:
phases[] — each with id, name, parallel, taskIdsfilesToCreate[] — new files with pathsfilesToModify[] — existing files to changeopenQuestions: [] — MUST be emptycontent section with:
MANDATORY TDD: Every implementation phase with executable code MUST define RED-GREEN-REFACTOR cycles.
NO duplication with tasks.yaml: plan.yaml covers architecture and strategy. Task-level detail lives only in tasks.yaml.
tasks.yamlFill in ALL fields:
tasks[] — each task with:
id — task-1, task-2, etc.title — clear, actionable titledescription — what this task accomplishesstate: Tododependencies[] — task IDs this depends onacceptanceCriteria[] — specific, verifiable criteriatdd — for implementation tasks:
red[] — tests to write firstgreen[] — minimal implementationrefactor[] — cleanup stepstdd: null — for foundational/config tasks without testsestimatedEffort — S/M/LtotalEstimate — overall effortopenQuestions: []content section — brief summary + acceptance checklist onlyfeature.yamlUpdate to reflect planning-complete state:
feature:
id: '<FEATURE_ID>'
name: '<FEATURE_NAME>'
number: <NUMBER>
branch: 'feat/<NNN>-<FEATURE_NAME>'
lifecycle: 'implementation'
createdAt: '<TIMESTAMP>'
status:
phase: 'ready-to-implement'
progress:
completed: 0
total: <task_count> # count from tasks.yaml tasks[] array
percentage: 0
currentTask: null
lastUpdated: '<TIMESTAMP>'
lastUpdatedBy: 'shep-kit:new-feature-fast'
validation:
lastRun: null
gatesPassed: []
autoFixesApplied: []
tasks:
current: null
blocked: []
failed: []
checkpoints:
- phase: 'feature-created'
completedAt: '<TIMESTAMP>'
completedBy: 'shep-kit:new-feature-fast'
- phase: 'research-complete'
completedAt: '<TIMESTAMP>'
completedBy: 'shep-kit:new-feature-fast'
- phase: 'plan-complete'
completedAt: '<TIMESTAMP>'
completedBy: 'shep-kit:new-feature-fast'
errors:
current: null
history: []# Stage and commit everything
git add specs/<NNN>-<FEATURE_NAME>/
git commit -m "feat(specs): add <NNN>-<FEATURE_NAME> fast-track specification"Display a concise summary:
Fast-track spec complete for <NNN>-<FEATURE_NAME>!
Artifacts created:
- spec.yaml — requirements & success criteria
- research.yaml — technical decisions
- plan.yaml — architecture & TDD phases
- tasks.yaml — <N> tasks across <M> phases
- feature.yaml — ready-to-implement
Branch: feat/<NNN>-<FEATURE_NAME>Then ask the user:
Continue to
/shep-kit:implementto start autonomous implementation?
/shep-kit:implementEven though this is "fast", the output MUST meet these standards:
openQuestions arrays are empty []red/green/refactorfilesToCreate and filesToModify are populatedtasks.yaml match taskIds in plan.yaml phases/shep-kit:implement)| Aspect | Full Pipeline | Fast |
|---|---|---|
| User interaction | Multi-step Q&A per phase | 0-2 questions total |
| Gate checks between phases | Explicit stop + user resumes | No stops, continuous |
| Commits | One per phase (3-4 commits) | Single commit |
| Open questions | Can leave unresolved between phases | Must resolve inline |
| Depth | Deep library eval, benchmarks | Focused on key decisions |
| Speed | 4 separate skill invocations | 1 skill invocation |
| Artifacts produced | Identical | Identical |
| TDD requirement | Mandatory | Mandatory |
| feature.yaml protocol | Followed | Followed |
This skill reuses assets from shep-kit:new-feature:
.claude/skills/shep-kit-new-feature/scripts/init-feature.sh.claude/skills/shep-kit-new-feature/templates/
No additional templates or scripts needed.e86d11c
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.