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