> ## Documentation Index
> Fetch the complete documentation index at: https://obversa.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# What Is a Software Factory?

> What people search for. What runs is a writer, a reviewer, tests as commands, and a person at the merge.

Run a workflow, and you have what the phrase promises. People who say
software factory mean a ticket that ends in a merge a person still has to
approve, with agents doing the work between. What runs is a process: one
agent writes, another reviews, the writer runs again when the review fails,
tests run as commands, and a person decides at the end. The smallest version of that shape is the
neighbour term, [an agent pipeline with a review and a person](/docs/glossary/agent-pipeline).

## In Obversa

The process is one file. Named roles, one engine each, from more than one
provider, and a person for the last word:

```ts examples/teams/feature-delivery.ts (excerpt) theme={null}
const builder = claude('claude-sonnet-4-5');
const goalSeat = codex('gpt-5.6-luna');
const reviewers: Record<string, TeamSeat> = {
  claude: claude('claude-sonnet-4-5'),
  codex: codex('gpt-5.6-luna'),
  gemini: openCode('google/gemini-2.5-pro'),
};
```

Seven steps follow, from a ticket to a change that lands. One seat builds
it, and a red test goes back to the builder with its output. A seat from
another model family checks that every requirement was met. Three
reviewers review at the same time, and their reviews become one list. A
judge decides each finding, and a person approves the exact bytes. The
whole file is on [Feature delivery](/docs/workflows/feature-team), and
[Shipping through GitHub](/docs/workflows/forge-helper) is the step after the
person says yes: push, one pull request, a strict gate, a squash merge.

## What people want

| What you want | What you write |
| - | - |
| A ticket that ends in a merge. | A workflow whose first stage reads the issue and whose last stage is a person at the merge. |
| Many agents on one change. | Named roles, one engine each, from more than one provider. |
| Quality without a human reading every diff. | A review role that fails a stage with findings, and commands for the tests. |
| Runs that don't lose work. | A record of every step as it happens. A workflow started again with `resume: true` carries on from that record, and the [supervised runner](/docs/driving/runner) restarts a killed run from its own record. |
| A place to watch it. | Every run can [serve its own page](/docs/driving/monitor). |

A review that can fail a stage is what makes the review count. A pipeline
that never runs a step again is a queue. A product factory is the same
picture with a larger scope, and the file has the same shape.

## Next steps

* [Feature delivery](/docs/workflows/feature-team): the flagship team, from a
  ticket to a change a person is asked to ship.
* [Shipping through GitHub](/docs/workflows/forge-helper): the merge step after
  the person's yes.
* [What is an agent pipeline with a review and a person?](/docs/glossary/agent-pipeline):
  the smallest version of the shape.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.