Use when starting any new feature, functionality, or enhancement. Triggers include "new feature", "start developing", "add functionality", "implement X", or explicit /shep-kit:new-feature invocation. Creates spec branch and scaffolds specification directory. Part of the Shep autonomous SDLC platform — https://shep.bot
Start spec-driven development by creating a feature branch and specification directory.
Full workflow guide: docs/development/spec-driven-workflow.md
Requirements → Research → Planning → Implementation → Complete
↓ ↓ ↓ ↓ ↓
spec.yaml research.yaml plan.yaml tasks.yaml all files
↓ ↓ ↓ ↓ ↓
spec.md research.md plan.md tasks.md (auto-generated)CRITICAL: Each phase MUST update the Phase status field before proceeding.
IMPORTANT: Edit YAML files, not Markdown.
Ask the user for:
user-authentication)# Determine next number
NEXT_NUM=$(ls -d specs/[0-9][0-9][0-9]-* 2>/dev/null | wc -l | xargs printf "%03d" $(($ + 1)))
# If no specs exist, use 001
[ -z "$NEXT_NUM" ] && NEXT_NUM="001"
# Create branch from main
git checkout main && git pull
git checkout -b "feat/${NEXT_NUM}-${FEATURE_NAME}"Execute the scaffolding script:
.claude/skills/shep-kit-new-feature/scripts/init-feature.sh <NNN> <feature-name>This creates specs/NNN-feature-name/ with all template files using a YAML-first approach:
spec.yaml, research.yaml, plan.yaml, tasks.yaml (source of truth)spec.md, research.md, plan.md, tasks.md (auto-generated from YAML)feature.yaml (implementation status, unchanged)Before filling the spec, analyze:
specs/*/spec.yaml (or specs/*/spec.md) to understand feature landscape and discover dependenciesFill the template placeholders with inferred values:
Present the proposed spec to the user for review.
Allow the user to:
# Write confirmed content to spec.yaml (the source of truth)
# feature.yaml already created by init script with initial state:
# - lifecycle: "research"
# - phase: "research"
# - checkpoint: "feature-created"
# See: docs/development/feature-yaml-protocol.md for details
# Stage and commit (both YAML source and generated Markdown)
git add specs/NNN-feature-name/
git commit -m "feat(specs): add NNN-feature-name specification"IMPORTANT: Always edit spec.yaml. Never hand-edit Markdown spec files.
feature.yaml Status: Already initialized by init script. No manual updates needed at this stage.
Inform the user:
Spec created on
feat/NNN-feature-name! Next:/shep-kit:researchto analyze technical approach.
CRITICAL: Open questions in spec.yaml (the openQuestions array) MUST be resolved before /shep-kit:research.
openQuestions array in spec.yamlopenQuestions: [])spec.yamlspecs/*/spec.yaml for relationshipsTemplates are in: .claude/skills/shep-kit-new-feature/templates/
spec.yaml - Feature specificationresearch.yaml - Technical decisionsplan.yaml - Implementation strategytasks.yaml - Task breakdowndata-model.md - Domain modelsfeature.yaml - Status trackingAll shep-kit skills update feature.yaml as work progresses.
Reference: docs/development/feature-yaml-protocol.md
This skill's responsibility:
feature.yaml with:
lifecycle: "research"phase: "research"See: .claude/skills/shep-kit-new-feature/examples/001-sample-feature/
shep-ai/shep
6e56c93
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.