Software Factory
Software Factory turns a request — a bug, a review comment, an email, an incident, an ask in chat — into a release, with a person deciding at the two points that matter: the product owner approves the build, the engineering owner merges.
Turn it on with plugins: [software-factory] (add production-watch for incidents), or Add app → Software Factory.
Pages
| Page | The question it answers |
|---|---|
| Products | How is each product doing: stage, health, last release, open work |
| Work | What is running, proposed, just landed — and what waits on me |
| Releases | What reached people, what the post-deploy check said, who was told |
Opening a row on Work opens the work item: the ask in the asker's words, the decision, the plan, the mockup, the contract, every run with its checks and cost, the pull request, QA's verdict and the release.
The loop
asked → decided → planned → building → QA → released (or answered: it won't be built, and the asker is told why).
| Seat | Agent | Owns | Never |
|---|---|---|---|
| PM (lead) | product-manager | triage, the plan, the task contract, telling the asker | merges, writes code |
| Design | designer | the mockup before a decision, the after-shot at close | builds, decides |
| Eng | task-engineer (runsOn: external-worker) | the change, its checks, the pull request | merges, deploys |
| QA | change-reviewer | the verdict against the contract and the evidence | merges; never sees Eng's conversation |
| Release | release-engineer | why CI or a deploy is red and the move that fixes it | writes product code |
What it needs
- A code host connection (GitHub today), plus
productandreporecords. The PM'sset-up-the-factoryskill walks you through it. - Optional: an issue tracker (Jira) and chat (Slack). Seats read and write through families (
repo,tracker,chat), not vendors. - A runner for the Eng seat's builds:
VOCION_EXTERNAL_WORKERS=1and the engineering runner. Builds run Claude Code, so the repository is sent to Anthropic. See Runners.
Every write (opening a PR, commenting, re-running checks) is an action with Undo at the rung trust.yaml gives it. See Trust and learning.
Production Watch
The production-watch plugin turns Sentry errors into incidents: opened when an issue is new and busy or spiking, each with its likely cause (a deploy, the code, or unknown). An on-call engineer agent reads the stack and says what to do; a person hears once per incident. With the factory on, a deploy-caused incident wakes the Release engineer, and a code bug can be filed as a factory request.