From specpilot
Set up the specpilot plugin in the current project. Use this when the user runs /specpilot.setup or asks to install, configure, or set up specpilot.
How this skill is triggered — by the user, by Claude, or both
Slash command
/specpilot:specpilot.setupThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Set up specpilot in the current project. Collects your project configuration and makes `/specpilot.refine`, `/specpilot.specify`, and `/specpilot.implement` ready to use.
Set up specpilot in the current project. Collects your project configuration and makes /specpilot.refine, /specpilot.specify, and /specpilot.implement ready to use.
Run these checks silently before anything else:
gh CLI authenticated — run gh auth status. If not authenticated, stop:
"Please run
gh auth loginfirst, then re-run/specpilot.setup."
speckit commands available — check that the following slash commands are available in this session (listed in the system-reminder's available skills):
/speckit.constitution, /speckit.specify, /speckit.clarify, /speckit.plan, /speckit.tasks
If any are missing, stop:
"speckit commands are required but not available in this session. Make sure the speckit skills are installed as custom slash commands in your Claude Code configuration, then restart the session and re-run
/specpilot.setup."
Create .claude/commands/ if it doesn't exist.
Detect the current project state to decide which flow to run:
git remote get-url origin → infer GitHub owner and repo namepackage.json, pom.xml, go.mod, Cargo.toml, or similarspec-kit/constitution.md, ./spec/constitution.md, or any *constitution* file under common spec folders.specpilot.jsonRoute:
Tell the user which flow you're running before proceeding.
Detect silently:
GitHub:
git remote get-url origin.specpilot.json, CLAUDE.md, or README.md for hints. If not found, leave blank.gh api user --jq .login → use as defaultSpec location:
spec-kit/, spec/, or a sibling *-spec repo at ../member/, admin/ that themselves contain numbered spec folders like 001-*). If found, list them as detected app subfolders.workspaceDir to .; use .. if ../CLAUDE.md existsRepos:
../ siblings with recognizable project structurespackage.json scripts (test, test:ci), Makefile, pom.xmlpackage.json scripts (build).github/workflows/ → default waitForCI: true if foundColumns:
gh project field-list <projectNumber> --owner <owner> --format json if project number is knownTodo, Refinement, Ready, In Progress, DoneModels: default claude-opus-4-6 / claude-sonnet-4-6
Show a formatted summary of everything detected. Example:
I detected this is an existing project. Here's what I found — let me know if anything needs changing:
GitHub
brivioapp4eduardo-cauaSpec
./spec-kit (folder inside this project)member, admin (if detected; omit line if flat structure). (project root)Repos
brivio-spec → ../brivio-spec (spec role, no CI)finance-api → ./finance-api (feature, test: npm test, build: npm run build, CI: yes)finance-web → ./finance-web (feature, test: npm test, build: npm run build, CI: yes)Project columns
Models
/refine: claude-opus-4-6/implement: claude-sonnet-4-6Does this look right? Let me know anything you'd like to change or add.
Wait for the user's reply. Apply corrections if needed. Ask a single follow-up only if a correction is ambiguous.
After confirmation, check if constitution exists:
"No constitution found. I'll run
/speckit.constitutionnow to define your project's conventions — this helps/refinegenerate consistent, high-quality specs." Then invoke/speckit.constitutioninline before continuing.
Write .specpilot.json and update CLAUDE.md (see schema below), then print the Done summary.
Ask a single open question:
"Tell me about what you're building — what does it do, who is it for, and do you have any preferences on technology (language, framework, database)? If you're not sure about the tech, I'll suggest something."
Wait for the user's answer.
Based on the answer, suggest an architecture without using jargon. Frame it around what the user described, not technical terms. Example:
"Based on what you described, here's what I'd suggest:
- A web app your users open in the browser (React)
- An API that handles the business logic and data (Node.js + NestJS)
- A database to store everything (PostgreSQL)
These would live as two folders inside one project:
web/— the browser appapi/— the backendDoes this sound right? You can change anything — the technology, the names, or the structure."
Wait for confirmation or corrections. Apply changes if needed.
"How much do you want me to set up?
A) Just the config — I'll write
.specpilot.jsonand the project constitution. You handle the code setup yourself. B) Scaffold the project — I'll also create the folders and run the framework CLI tools to generate starter code. C) Everything — Scaffold + create GitHub repositories + set up CI pipelines for tests.Which sounds right? (A / B / C)"
Wait for the user's choice.
Ask:
"What's the name of your GitHub organization or username? And do you already have a GitHub Project board set up for this project, or should I create one?"
gh project create --owner <owner> --title "<project name>" and note the project number"Now let's define your project's conventions. I'll ask you a few questions about how you like to work — this guides everything that comes after."
Invoke /speckit.constitution inline. This captures the product vision, coding conventions, and tech stack in detail.
If B or C:
npx create-react-app <name> or npm create vite@latest <name>npx @nestjs/cli new <name>npx create-next-app <name>start.spring.io or use spring initIf C (also):
<repo-name> on GitHub? (public/private)" then run gh repo createnpm ci + npm test + npm run buildmvn testgo test ./...Write .specpilot.json and update CLAUDE.md (see schema below), then print the Done summary.
.specpilot.json:
{
"github": { "owner": "...", "projectNumber": N, "assignee": "..." },
"repos": [
{ "name": "my-spec", "path": "../my-spec", "role": "spec", "waitForCI": false },
{ "name": "my-api", "path": "./api", "role": "feature", "implement": true, "test": "npm test", "build": "npm run build", "waitForCI": true }
],
"speckit": { "specsDir": "./spec-kit", "workspaceDir": "." },
"statuses": { "todo": "Todo", "refinement": "Refinement", "ready": "Ready", "inProgress": "In Progress", "done": "Done" },
"models": { "refine": "claude-opus-4-6", "implement": "claude-sonnet-4-6" }
}
CLAUDE.md section to append (skip if ## specpilot already exists):
## specpilot
This project uses the [specpilot](https://github.com/eduardo-caua/cogloop) plugin.
### Commands
- `/specpilot.refine` — picks next To do ticket from the board, runs speckit, moves to Ready
- `/specpilot.specify` — start from a feature idea, runs speckit, creates ticket in Ready
- `/specpilot.implement` — picks next Ready ticket, implements→tests→ships, moves to Done
### Flags
`--once` (one ticket then stop), `--dry-run` (preview only)
### Config
See `.specpilot.json` in the project root.
Print:
.specpilot.json/specpilot.refine, /specpilot.specify, /specpilot.implement<specsDir><owner>/#<projectNumber>/specpilot.refine/specpilot.specify and describe what you want to buildnpx claudepluginhub eduardo-caua/cogloop --plugin specpilotProvides behavioral guidelines to reduce common LLM coding mistakes, focusing on simplicity, surgical changes, assumption surfacing, and verifiable success criteria.
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.