setup-speckit
Setup Spec-Kit
Install Spec-Kit into a target repository, enabling the full Specification-Driven Development (SDD) pipeline: specify → clarify → plan → tasks → implement → analyze → checklist → constitution.
When to Use
- Bootstrapping a new repo for speckit workflows
- Adding SDD to an existing project
Source Forks
| Fork | Repo | Notes |
|---|---|---|
| fellowship-dev (default) | fellowship-dev/spec-kit | Leaner, fewer tokens, opinionated defaults |
| upstream | github/spec-kit | Original, more verbose, higher token cost |
Default to the fellowship-dev fork. If the user explicitly requests the upstream version, warn that it uses significantly more tokens per invocation due to longer templates and prompts.
Prerequisites
- Git available in the target repo
- Target repo has a
.claude/directory (runsetup-harnessfirst if not)
What Gets Installed
target-repo/
├── .specify/
│ ├── scripts/bash/ # create-new-feature.sh, setup-plan.sh, common.sh, etc.
│ ├── templates/ # spec, plan, tasks, checklist, constitution templates
│ └── memory/
│ └── constitution.md # Project principles (customized or default)
├── .claude/commands/
│ ├── speckit.specify.md # /speckit.specify <issue-number>
│ ├── speckit.plan.md # /speckit.plan
│ ├── speckit.tasks.md # /speckit.tasks
│ ├── speckit.implement.md # /speckit.implement
│ ├── speckit.clarify.md # /speckit.clarify
│ ├── speckit.checklist.md # /speckit.checklist
│ ├── speckit.analyze.md # /speckit.analyze
│ └── speckit.constitution.md
└── specs/ # Created per-feature by /speckit.specify
Installation Steps
1. Clone Spec-Kit to a temp directory
# Default: fellowship-dev fork (leaner, recommended)
SPECKIT_SRC=$(mktemp -d)
git clone --depth 1 https://github.com/fellowship-dev/spec-kit.git "$SPECKIT_SRC"
# Alternative: upstream (more verbose, higher token cost)
# git clone --depth 1 https://github.com/github/spec-kit.git "$SPECKIT_SRC"
2. Create target directories
mkdir -p .specify/scripts/bash .specify/templates .specify/memory
mkdir -p .claude/commands
mkdir -p specs
3. Copy scripts
cp "$SPECKIT_SRC"/scripts/bash/*.sh .specify/scripts/bash/
chmod +x .specify/scripts/bash/*.sh
4. Copy templates
cp "$SPECKIT_SRC"/templates/spec-template.md .specify/templates/
cp "$SPECKIT_SRC"/templates/plan-template.md .specify/templates/
cp "$SPECKIT_SRC"/templates/tasks-template.md .specify/templates/
cp "$SPECKIT_SRC"/templates/checklist-template.md .specify/templates/
cp "$SPECKIT_SRC"/templates/constitution-template.md .specify/templates/
5. Copy Claude Code slash commands
cp "$SPECKIT_SRC"/templates/commands/specify.md .claude/commands/speckit.specify.md
cp "$SPECKIT_SRC"/templates/commands/plan.md .claude/commands/speckit.plan.md
cp "$SPECKIT_SRC"/templates/commands/tasks.md .claude/commands/speckit.tasks.md
cp "$SPECKIT_SRC"/templates/commands/implement.md .claude/commands/speckit.implement.md
cp "$SPECKIT_SRC"/templates/commands/clarify.md .claude/commands/speckit.clarify.md
cp "$SPECKIT_SRC"/templates/commands/checklist.md .claude/commands/speckit.checklist.md
cp "$SPECKIT_SRC"/templates/commands/analyze.md .claude/commands/speckit.analyze.md
cp "$SPECKIT_SRC"/templates/commands/constitution.md .claude/commands/speckit.constitution.md
6. Initialize constitution
If the project doesn't have a constitution yet:
cp .specify/templates/constitution-template.md .specify/memory/constitution.md
Ask the user if they want to customize it now or use the default. Key decisions:
- Test-first vs test-after
- Library-first preference
- Max complexity per feature
- Framework-specific principles
7. Clean up
rm -rf "$SPECKIT_SRC"
8. Ensure required GitHub labels exist
REPO=$(gh repo view --json nameWithOwner -q '.nameWithOwner')
gh label create "in-progress" --repo "$REPO" --color "97f157" --description "Issue is actively being worked on" 2>/dev/null || true
gh label create "ready-to-work" --repo "$REPO" --color "f6a80a" --description "PRD complete, ready for implementation" 2>/dev/null || true
9. Verify installation
ls .specify/scripts/bash/*.sh # Scripts present and executable
ls .specify/templates/*.md # Templates present
ls .claude/commands/speckit.*.md # Slash commands present
cat .specify/memory/constitution.md # Constitution initialized
gh label list --repo "$REPO" | grep -E "in-progress|ready-to-work"
Post-Install
- Run
/speckit.constitutionto customize principles for this project - The repo is now ready for
/speckit.specify <issue-number>workflows
SDD Philosophy (Terse)
- Specs ≤50 lines, bullets only
- Plans ≤50 lines, table-driven decisions
- Tasks ≤40 lines, checkboxes, no prose
- Constitution enforces principles (test-first, library-first, simplicity)
- Branch naming:
<issue-number>-<short-name>
More from fellowship-dev/dogfooded-skills
entropy-check
Sensor — checks doc freshness and computes domain quality grades. Never fixes. Detects staleness, missing coverage, and FlowChad gaps. Updates QUALITY_SCORE.md. Skips inapplicable signals per repo.
16distill
Post-mission audit and distillation — capture mode classifies a completed mission using an 8-code failure taxonomy and writes an audit JSON; analyze mode aggregates audit JSONs into a findings report and creates GitHub issues with recommendations.
14migrate-skill
Move a skill from claude-toolkit plugin (or local .claude/skills) into the dogfooded-skills library, then import it back. Use when consolidating skills into the shared repo.
14skill-builder
Write a high-quality agent skill — covers frontmatter spec, section structure, quality criteria, and common antipatterns.
13popsicle
Agent-native onboarding doc generator — builds coverage maps, health baselines, generated docs, and agent adapters so any AI tool can autonomously navigate your repo.
8setup-harness
Scaffold the knowledge layer for a repo — ARCHITECTURE.md, QUALITY_SCORE.md, enhanced docs/code-structure.md, docs/code-guidelines.md, and FlowChad flow stubs. Gives agents a map, not a 1,000-page manual.
8