dist/pi/skills/spec/SKILL.md
Spec-driven development for AI coding agents — captures requirements, builds epics with vertical-slice tasks, runs implementation one task at a time with user approval, and tracks evidence-based completion. Use when the user wants to start a structured project, capture requirements for a feature, plan an epic, work on the next task, mark a task done, check progress, or otherwise drive a project through REQ → EPIC → TASK artifacts under `.spec/`.
npx skillsauth add alexei-led/claude-code-config specInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
This skill manages a project's .spec/ directory: requirements, epics, vertical-slice tasks, and progress. A bundled CLI (scripts/specctl) wraps the file conventions; the agent reads/writes the underlying markdown for everything else.
Match the user's request to one of the workflows below and load the matching reference file:
.spec/, or has a doc/spec they want turned into requirements. See references/init.md.references/interview.md.REQ-x (or just an idea) and wants an epic with vertical-slice tasks, dependencies, and acceptance criteria. See references/plan.md.TASK- or REQ- file (no full planning). See references/new.md.references/work.md.references/done.md.references/status.md.references/help.md.Pick the workflow by intent, not by literal keywords. "Let's plan REQ-auth", "create an epic for auth", and "spec plan REQ-auth" all map to the planning workflow.
Every workflow reads/writes under .spec/:
.spec/reqs/REQ-<slug>.md — requirements (WHAT / WHY).spec/epics/EPIC-<slug>.md — epic grouping related tasks.spec/tasks/TASK-<slug>.md — vertical-slice task with acceptance criteria.spec/memory/ — pitfalls, conventions, decisions discovered during work.spec/SESSION.yaml — current session state (task in progress, step, base commit).spec/PROGRESS.md — append-only activity logspecctlThe bundled CLI at $SKILL_DIR/scripts/specctl (resolve $SKILL_DIR to where this SKILL.md was loaded from) wraps the file operations. Run specctl help for the full command list. Key calls used across workflows:
specctl init — initialize .spec/ (idempotent)specctl show REQ-x | EPIC-x | TASK-x — render an artifactspecctl start TASK-x — mark in-progress + record base commitspecctl done TASK-x --summary ... --files ... --commits ... --tests ... — close with evidencespecctl ready [--epic EPIC-x] — list tasks unblocked by dependencies, priority-orderedspecctl dep add A B [--type X] / specctl dep rm A B — manage dependencies with cycle checkspecctl session show | resume | step <name> — current session state and recoveryspecctl validate — check for orphans, cycles, missing fieldsspecctl status — global counts and progressThe CLI exists so workflow instructions stay short. If specctl is missing, fall back to direct file reads/writes following the file structure above.
CONTEXT.md, decisions in docs/adr/, rejected scope in .out-of-scope/. Reference these before naming architectural findings.The workflows form a deterministic pipeline:
init → interview → plan → work → done
↑___| (loop until epic complete)
status reads state at any point. new and help are utility entry points.
.spec/ directory yet — only the init workflow is safe to start. Others should tell the user to set up the project first..spec/SESSION.yaml present) — the work workflow prompts to resume or clear before selecting a new task.specctl missing — degrade to direct file operations; warn the user once.When a workflow says:
Each reference keeps these phrasings generic; the model maps them to native tooling.
tools
Idiomatic shell development for POSIX sh, Bash, Zsh, Fish, hooks, CI shell steps, and scriptable CLI glue. Use when writing or changing `.sh`, `.bash`, `.zsh`, `.fish`, `.bats`, shell functions, shell pipelines, or command-runner recipes. Emphasizes portability, quoting, safe filesystem/process handling, non-TUI CLI tools, ShellCheck, shfmt, Bats, and ShellSpec. NOT for Python, TypeScript, Go, web code, or infrastructure operations.
tools
Use when planning, executing, checkpointing, finishing, or inspecting lightweight spec-driven work. Runs one task at a time using `.spec/` markdown files and the bundled `specctl` helper. NOT for broad product discovery beyond a short requirement interview.
testing
Author, inspect, troubleshoot, and review infrastructure across IaC, Kubernetes, cloud resources, containers, CI/CD, and Linux hosts. Use when changing Terraform/OpenTofu, Kubernetes, Helm, Kustomize, Dockerfiles, GitHub Actions, AWS, GCP, Cloud Run, BigQuery, IAM, logs, instances, or service health. NOT for deploy/apply/rollback workflows (see deploying-infra). NOT for shell scripts or generic command pipelines (see writing-shell).
development
Configure safe git workflow hygiene: pre-commit/pre-push hooks, Gitleaks secret scanning, .gitignore rules, local git config, and guardrails. Use when setting up git hooks, gitleaks/git leaks, staged pre-commit checks, pre-push validation, core.hooksPath, .gitignore, or git config best practices. NOT for creating commits (use committing-code), cleaning branches/worktrees (use cleanup-git), or creating worktrees (use using-git-worktrees).