---
title: Skills
description: One page per skill. Each skill is a portable SKILL.md wrapper over vendored upstream method files, with factory's own rules on top.
---

## At a glance

| Skill | What it does | Writes |
|---|---|---|
| [`setup`](/factory/skills/setup) | Detects the stack and remote, asks what it cannot detect, writes `factory.toml`. | `factory.toml` |
| [`spec`](/factory/skills/spec) | Aligns human and agent on numbered requirements, test seams, and open questions. No tracker. | `docs/specs/<slug>/spec.md` |
| [`plan`](/factory/skills/plan) | Slices the spec into tracer bullets with blockers, stacked branch names, and parallel waves; publishes to GitHub, GitLab, Jira, or local files after approval. | `plan.md`, tracker items |
| [`implement`](/factory/skills/implement) | One slice with TDD, or the whole frontier with implementer agents in worktrees. Ends in verify. Never commits red. | commits on `<slug>/NN-<task>` |
| [`simplify`](/factory/skills/simplify) | Removes slop and needless complexity from the diff without changing behavior. Ends in verify. | edits |
| [`verify`](/factory/skills/verify) | Floor, typecheck, lint, format, lawbook, tests with coverage, poly-crap, in that order. Fix only what it names until exit 0. | `.verify/` |
| [`pr`](/factory/skills/pr) | Opens one PR per slice against its parent branch with real evidence. Never draft, never merge. | a PR |
| [`review`](/factory/skills/review) | Standards and spec axes in parallel read-only agents, plus CodeRabbit CLI when authenticated. | `review-NN.md`, findings |
| [`run`](/factory/skills/run) | Drives every stage a size needs, stops only at the human gates, resumes from disk. | `run.md` |
| [`steward`](/factory/skills/steward) | Works the lowest unmerged PR of a stack through conflicts, threads, and CI; restacks after a parent merges. Never merges. | pushes, thread replies |
| [`explain-diff`](/factory/skills/explain-diff) | Writes a rich, interactive HTML explanation of a change, diff, branch, or PR. Outside the loop. | `.temp/<date>-explanation-<slug>.html` |

## Who may start a skill

Four skills say in their description that only the user may start them: `setup`,
`plan` (for publishing), `pr`, and `run` (which reaches `pr`). The frontmatter
stays within the Agent Skills spec, so there is no `disable-model-invocation`
key; the description and the first step carry the rule. Every other skill fires
on its own when the request matches its description.

## How a skill page is organized

Each page follows the SKILL.md it documents:

- **What it does** and when it fires.
- **Reads**: the `factory.toml` keys and files the skill depends on.
- **Rules**: the hard constraints factory adds on top of the upstream
  method.
- **Done when**: the observable end state.
- **Upstream**: the vendored method files the skill loads and what its
  Translate section changes.
