specd is designed to be driven by coding assistants — tools like Claude Code, GitHub Copilot, OpenAI Codex, or any AI-powered coding tool that supports slash commands or custom instructions.
You do not typically run specd by typing CLI commands one by one. Instead, you interact through skills — slash commands installed into your coding assistant that orchestrate the full lifecycle for you.
When you set up specd in a project, you install skills for your coding assistant of choice:
specd project init --plugin @specd/plugin-agent-claude # Install skills for Claude Code
specd project init --plugin @specd/plugin-agent-copilot # Install skills for GitHub Copilot
specd project init --plugin @specd/plugin-agent-codex # Install skills for OpenAI Codex
specd project init --plugin @specd/plugin-agent-opencode # Install skills for Open CodeThis installs slash commands that the coding assistant can invoke. The main one is /specd.
/specd is the primary skill. When you invoke it, it:
- Shows the current project status — active changes, their states, available specs
- Detects where you left off and suggests what to do next
- Routes you to the appropriate phase skill
You can invoke it with a change name to jump straight to that change, or without arguments to see an overview and decide what to work on.
> /specd
# specd
**Schema:** @specd/schema-std
**Workspaces:** default (12 specs), core (45 specs)
**Active changes:** 1 — add-auth-flow (designing)
**Drafts:** none
> The change "add-auth-flow" is in the designing state.
> Specs and verify are complete. Design is next.
> Suggest: /specd-design add-auth-flow
Each lifecycle phase has its own skill that knows how to guide the coding assistant through that phase:
| Skill | Phase | What it does |
|---|---|---|
/specd-new |
Creation | Explores what you want to do, creates a change when ready |
/specd-design |
Designing | Drives the agent through proposal → specs → verify → design → tasks |
/specd-implement |
Implementing | Works through tasks one by one, runs hooks, transitions to verifying |
/specd-verify |
Verifying | Checks the implementation against verification scenarios |
/specd-archive |
Archiving | Handles signoff gates, archives the change, applies deltas |
You rarely need to invoke phase skills directly — /specd suggests the right one based on the current state. But you can jump to any phase if you know where you are.
A real session looks like this:
- You type
/specdin your coding assistant - specd shows the project status and asks what you want to do
- You describe the change you want to make (or pick an existing one)
/specd-newexplores what you want through a conversation, creates the change, and saves the full discovery context tospecd-exploration.mdin the change directory — so nothing is lost between sessions/specd-designreads the exploration context, verifies it's still current, and guides the agent through writing the artifacts defined by the schema — in@specd/schema-stdthat means proposal, specs, verification scenarios, design, and tasks. Other schemas may define a different set of artifacts.- You review the artifacts. If approval gates are enabled, you approve the spec.
/specd-implementworks through the task list, writing code that satisfies the specs/specd-verifyruns through each verification scenario to confirm correctness/specd-archivearchives the completed change, applying spec deltas to the permanent spec repository
At every step, the coding assistant has access to the compiled context — the right specs, the right instructions, the right constraints — assembled automatically by specd.
The skills call the specd CLI under the hood. Every operation is ultimately a CLI command:
specd changes create add-auth --spec auth/login
specd changes status add-auth
specd changes transition add-auth implementing
specd changes context add-auth designing
specd changes archive add-authYou can use the CLI directly when you need to — for scripting, CI pipelines, or when you want fine-grained control. But for day-to-day development, the skills provide the guided experience that makes spec-driven development practical.
See the CLI Reference for the full command reference.