Software Factory

Software Factory — PRs you review in two minutes

Three agents (@plan, @build, @check) work your repo from Ghosty Teams chat; you sign the plan and the PR. How to install it, how to ask and what every PR brings.

Updated 2026-09-28

Ask your coding agent

Read https://www.ghosty.studio/en/docs/factory.md and tell me how to install the Ghosty Software Factory in my Teams workspace and how to ask for my first change.

Paste it in Claude Code, Cursor or Codex with the ghosty-agent skill installed.

The Software Factory is a team of three agents that works your GitHub repository from a room. You write what you need the way you'd tell a person and sign twice: the plan and the PR. They do the rest.

Writing code is cheap now; reviewing it isn't. So the factory isn't measured by how many PRs it opens but by how many you approve on the first pass: every PR arrives with its risk, what to read first and how it looks.

The roles

RoleWhat it doesWhat it doesn't
@planReads the repo and writes the plan: story with acceptance criteria, technical brief, risks and what won't be done.Doesn't edit or create branches.
@buildBuilds the signed plan: new branch, code, tests, draft PR.Doesn't improvise another design.
@checkReviews the PR against the plan with another model: writes its own acceptance tests, tries the preview and checks the code stays easy to change.Never edits or pushes: if something is missing it goes back to @build (up to 3 rounds).
@evalOptional. Judge of the .Doesn't take part in requests.

Each role is a Studio agent you choose (engine, model and keys are changed in /app/agents). The same agent can be @ghosty in another room and @build here: the role reaches it per turn. A @check on a different engine than @build reviews better, because it doesn't share its blind spots.

Install

  1. Teams → Settings → Apps → Software Factory (workspace owner only).
  2. Pick the repo and which Studio agent plays each role. Connect your GitHub to sign.
  3. The factory room and its Tasks board are created. Every room with repos is a factory: you can bind more repos to other rooms.
  4. In /factory, "Ready for agents" grades the repo and "Prepare repo" opens a single PR with what's missing: CI, AGENTS.md, CODEOWNERS and Dependabot. With GitHub Pro or Team (or a public repo), "Protect main" turns on the rule that nothing gets in without approval.

Ask for a change

text
@plan add exporting appointments to CSV from the calendar
  1. @plan posts the plan card. Sign it with the button, with "✅" in the thread, or ask for changes with "cambios: …".
  2. Once signed, @build builds with your GitHub and opens a draft PR.
  3. @check reviews it. If it passes, the platform takes the PR out of draft and posts the verdict card.
  4. You review and merge (from the card or on GitHub). The request closes by itself when merged.

Other ways in: assign a task to @plan in Tasks, "What do you want to achieve?" in /factory (it splits it into a sprint of 3 to 8 tickets), "Suggest requests" and scheduled reviews in "Automatic".

The verdict card

What you need to review in two minutes, without rebuilding the change in your head:

  • Risk. The platform marks it from what the PR touches, not from the agent's word: authentication, migrations, dependencies, public API, .github/ or more than 400 lines → high. @check can raise it for delicate logic, never lower it.
  • Read first. Up to five file:lines with the why, most delicate first.
  • Screenshots. If the repo has previews, the screen that changed on desktop and mobile.
  • Changes, CI and review: files and lines, CI status (verified on GitHub) and how many rounds it took with @check.
  • Details: what @check said, folded.

What's measured

In /factory, per room:

NumberWhat it is
Pass first reviewOf the PRs a person already reviewed, how many were approved without changes (or merged straight away). The metric that matters.
Review timeMedian from "PR ready" to the first human review.
Get mergedMerged among closed requests.
@check correctionsAverage rounds before approval.
Request to PRMedian from request to PR ready.

Next

  • : .ghosty/factory.md and "@build con opus".
  • : what agents must know about your repo, in your repo.
  • : compare agents and models on your own requests.