mcpField
S
setup-speckit

setup-speckit

github.com/fellowship-devAgent workflows3174 installsUpdated 2w ago
Repository

About setup-speckit

setup-speckit is an Agent skill for installing Spec-Kit in a repository to enable specification-driven development. It copies scripts, templates, and Claude Code commands, then initializes the project constitution.

Key features

  1. 01Install Spec-Kit scripts and templates
  2. 02Set up Claude Code slash commands
  3. 03Initialize the project constitution
  4. 04Create required GitHub labels
  5. 05Verify installed files

Use cases

  1. 01Enable an SDD workflow in a new repository
  2. 02Add Spec-Kit to an existing project

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/fellowship-dev/dogfooded-skills --skill setup-speckit

After installing, type/setup-speckitin Claude Code to confirm it loaded.

Details

From the project README

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

ForkRepoNotes
fellowship-dev (default)fellowship-dev/spec-kitLeaner, fewer tokens, opinionated defaults
upstreamgithub/spec-kitOriginal, 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 (run setup-harness first 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.constitution to 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>

Comments

Markdown supported