/spec turns an idea into an issue that a build can start from. You say what you want built. /spec searches for duplicates, drafts a spec with acceptance criteria, and files the issue after you approve it.
/spec files nothing before you approve, and it never creates a branch or edits code. It is the starter spec skill that outerlayer init installs. See Starter skills and the build.
Before you start
- Run
outerlayer initin the repository, so thespecskill is installed. - Sign in with
outerlayer login. - Run
outerlayer spec target. It printscan file: yeswhen the factory can file an issue in your tracker. See Spec commands.
Run /spec
In Claude Code, in your repository, type/spec and what you want built:
/spec #42 or a Linear or Jira key. /spec then edits that issue in place and does not search for duplicates.
What /spec asks you
/spec stops for you at these points:
- Duplicates.
/specsearches open and recently closed issues. It shows you a near-duplicate before it drafts anything. - Size. A spec with more than 24 criteria is not one story.
/specshows the work split into slices that each stand alone. You can redraw the split. - Approval.
/specshows the title, the body, the criteria with their proof forms, and the docs verdict. Ask for changes until the spec is right, then approve it. A spec you reject leaves no issue behind. - Where to file. When the factory has more than one tracker, team or repository,
/specasks which to use. It files the issue and prints the issue key and URL. It files only the slices that you name. - Build.
/specasks whether to build on a host, build in a new session, or not yet.
What the spec holds
/spec writes the spec as the writing-specs skill describes: the problem before the solution, the non-goals, and the criteria. The criteria are under an ## Acceptance criteria heading. Each criterion has an id and a Given, When, Then form.
Each criterion whose outcome a person can see gets a proof form, which the build must record:
Prove the work shows how a build records the criteria and attaches the proofs.
Before
/spec shows you the spec, it rewrites the text for a reader who was not in your session. The criteria keep their exact words.
The docs verdict
Every spec declares a docs verdict with a one-line reason. The verdict isdocs-required when the change alters what a user sees or does. A new capability with no page yet is docs-required too, and a criterion names the page to add. /spec judges the change against your README, your docs/ folder and your docs site.
The writing-specs skill says to decide the verdict again from the finished change, before the pull request opens. A verdict that changes then is not a fault. State the difference, because it shows what the spec missed.
Start the build
The answer you give to the last question decides what/spec does:
- Build on a host.
/specrunsouterlayer work build --issue <reference>. A runner takes the item when it has a free slot. The factory needs a runner first. See Set up a host. - Build in a new session.
/specrunsouterlayer work build --issue <reference> --localand prints the line that starts your session. See Debug a build in your own session. - Not yet.
/specshows both commands for later and stops.
Change how /spec works
The steps are inouterlayer-spec, a skill that follows your CLI version. To set a value, such as the most criteria in one spec, or to add to a step, edit your repository’s own spec skill. See The spec skill.