| name | shep-kit:new-feature-fast |
| description | 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 |
| metadata | {"version":"1.0.0","author":"Shep AI (https://shep.bot)","homepage":"https://shep.bot","repository":"https://github.com/shep-ai/shep"} |
Fast-Track Feature Specification
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
When to Use
- Feature scope is well-understood from the one-liner description
- You want to skip the multi-step interactive flow
- You want to get to implementation quickly
When NOT to Use
- Highly ambiguous features requiring extensive discovery
- Features with many open questions or unknowns
- When you specifically need deep library evaluation with benchmarks
Input
The user provides a feature description inline:
/shep-kit:new-feature-fast add unit tests to backend services
If no description is provided, ask for a one-liner description. That is the only mandatory question.
Workflow
Phase 1: Scaffold
1.1 Derive Feature Name
Extract a kebab-case feature name from the user's description. Do NOT ask — infer it.
Examples:
- "add unit tests to backend" →
backend-unit-tests
- "implement dark mode toggle" →
dark-mode-toggle
- "fix memory leak in agent runner" →
agent-runner-memory-fix
1.2 Create Branch & Directory
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)))
[ -z "$NEXT_NUM" ] && NEXT_NUM="001"
FEATURE_NAME="<derived-kebab-case>"
git checkout main && git pull
git checkout -b "feat/${NEXT_NUM}-${FEATURE_NAME}"
.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.
Phase 2: Deep Analysis (Silent)
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:
- Architecture: Read
CLAUDE.md, AGENTS.md, key source directories
- Existing specs: Read
specs/*/spec.yaml for dependencies and landscape
- Affected code: Identify files, modules, patterns relevant to the feature
- Testing patterns: Check existing test structure, frameworks, conventions
- Domain models: Check TypeSpec definitions if relevant (
tsp/)
Clarifying Questions (0-2 max)
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:
- Things you can infer from codebase analysis
- Style/naming preferences (follow existing conventions)
- Technology choices that are already decided by the stack
Examples of valid questions:
- "Should this cover only unit tests or also integration tests?" (scope ambiguity)
- "Should this target the agent system or the CLI layer?" (area ambiguity)
Phase 3: Write All YAMLs
Write all YAML files in sequence. Each file should be concise but complete — no placeholder values, no {{TEMPLATE}} markers, no TBD entries.
3.1 Write spec.yaml
Fill in ALL fields with real values:
name, number, branch, oneLiner, summary — from user input + analysis
phase: Requirements
sizeEstimate — inferred from scope (S/M/L/XL)
relatedFeatures — from scanning existing specs
technologies — from codebase analysis
openQuestions: [] — MUST be empty (resolve everything inline)
content section with:
- Problem Statement — concise, from user description
- Success Criteria — 3-6 measurable criteria
- Affected Areas — table with area, impact level, reasoning
- Dependencies — on other features or external systems
- Size Estimate — with reasoning
3.2 Write research.yaml
Fill in ALL fields:
summary — one-line research summary
decisions[] — each with title, chosen, rejected[], rationale
technologies — libraries/tools involved
openQuestions: [] — MUST be empty
content section with:
- Technology Decisions — each decision with options considered, chosen, rationale
- Library Analysis — table if new libraries are involved (skip if using existing stack only)
- Security Considerations — or "No security implications identified"
- Performance Implications — or "No performance implications identified"
Keep it focused: If the feature uses only existing stack/patterns, the research section can be brief. Don't fabricate decisions where none exist.
3.3 Write plan.yaml
Fill in ALL fields:
phases[] — each with id, name, parallel, taskIds
filesToCreate[] — new files with paths
filesToModify[] — existing files to change
openQuestions: [] — MUST be empty
content section with:
- Architecture Overview — ASCII diagram or description of how components connect
- Implementation Strategy — high-level walkthrough of phases and their ordering rationale
- Files to Create/Modify — tables
- Testing Strategy (TDD: Tests FIRST) — what tests at each layer
- Risk Mitigation — table of risks and mitigations
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.
3.4 Write tasks.yaml
Fill in ALL fields:
tasks[] — each task with:
id — task-1, task-2, etc.
title — clear, actionable title
description — what this task accomplishes
state: Todo
dependencies[] — task IDs this depends on
acceptanceCriteria[] — specific, verifiable criteria
tdd — for implementation tasks:
red[] — tests to write first
green[] — minimal implementation
refactor[] — cleanup steps
tdd: null — for foundational/config tasks without tests
estimatedEffort — S/M/L
totalEstimate — overall effort
openQuestions: []
content section — brief summary + acceptance checklist only
3.5 Update feature.yaml
Update 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>
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: []
Phase 4: Commit
git add specs/<NNN>-<FEATURE_NAME>/
git commit -m "feat(specs): add <NNN>-<FEATURE_NAME> fast-track specification"
Phase 5: Summary & Next Steps
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:implement to start autonomous implementation?
- If yes: invoke
/shep-kit:implement
- If no: stop here, user reviews first
Quality Requirements
Even though this is "fast", the output MUST meet these standards:
- No placeholders — every field has a real, inferred value
- No open questions — all
openQuestions arrays are empty []
- TDD cycles defined — every implementation task has
red/green/refactor
- Acceptance criteria — every task has specific, verifiable criteria
- Dependencies mapped — task dependencies and feature relationships identified
- Files identified —
filesToCreate and filesToModify are populated
- Consistent — task IDs in
tasks.yaml match taskIds in plan.yaml phases
What This Skill Does NOT Do
- Skip TDD requirements (still mandatory)
- Produce lower-quality specs (same schema, same required fields)
- Replace the full pipeline for complex/ambiguous features
- Run implementation (that's
/shep-kit:implement)
Key Differences from Full Pipeline
| 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 |
Template & Script Reuse
This skill reuses assets from shep-kit:new-feature:
- Init script:
.claude/skills/shep-kit-new-feature/scripts/init-feature.sh
- Templates:
.claude/skills/shep-kit-new-feature/templates/
No additional templates or scripts needed.