factory logo

factory

A reference software factory for Claude Code and Codex

GitHub

What is it?

What it is

A reference software factory that installs a repeatable operating model into GitHub projects, using stock Claude Code or Codex to triage issues, implement bounded work, run deterministic gates, and open draft pull requests under human oversight.

Why it exists

To automate mechanical software delivery loops while keeping engineering judgment with humans, enabling version-controlled agent workflows without a custom orchestrator, and using GitHub Issues as a durable work queue.

Who should use it

Engineering leads building AI-assisted delivery pipelines on existing GitHub repositoriesTeams running Claude Code or Codex who want unattended agents to handle bounded, charter-permitted tasks under human reviewSolo developers or small teams who want a repeatable triage-to-PR loop with explicit human gatesOrganizations evaluating software-factory patterns who need a reference implementation that uses stock Claude Code and Codex rather than a custom orchestrator

Who should avoid it

Beginners who have never used Claude Code, Codex, or GitHub Actions and expect a turnkey one-click setupTeams unwilling to write or maintain a human-owned charter that defines tier, load-bearing paths, and stop conditionsProjects where every change is ambiguous, load-bearing, or requires deep product judgment with no scoped, automatable workAnyone who wants agents to autonomously merge pull requests or operate without GitHub branch protection as the final enforcement boundaryRepositories that cannot be installed into (no GitHub remote, no test/lint/build commands, or no willingness to add `.claude/` and `docs/factory/` directories)

How it works

A quick walkthrough in plain English

How factory works

Step 1 of 3

You interact with it

Open factory, send a request, or connect it to your stack.

Features

Inspect new GitHub issues and route them to implementation, specification, questions, or blockers
Pick up small, charter‑approved work automatically, claim via deterministic branch, and open draft PRs
Run deterministic type, lint, test, build, audit, and architecture checks with fail‑closed gates
Ask a fresh verifier to read diffs cold, revert fixes to prove tests fail, and reject uncertain changes
Verify PRs when they open, maintain a visible review queue, and stop when the queue reaches a limit
Monitor the default branch and factory health, feeding findings back as new GitHub issues
Live control room at /factory showing pending work, review queue, and run records
Human‑owned charter defining risk tiers, load‑bearing paths, automatable work, and stop conditions
Concurrency claim via deterministic `claude/fq-<n>` branches – first push wins
Optional GitHub Action for immediate triage when scheduled runs are too slow

Advantages

  • Automates repetitive mechanical steering while preserving engineering judgment
  • No custom orchestrator or queue service – uses stock Claude Code and GitHub native features
  • Deterministic, restartable loops with evidence stored in the repository
  • Clear handoff protocol (`factory-handoff:v1`) between independent runs
  • Human‑controlled merge gate – no automated merges, enforced by branch protection
  • Version‑controlled policies (CHARTER, CONTRACT, skills, gates) that drive terminal, Desktop, cloud, and routines
  • Back‑pressure control via `STOP_IF` limits review queue size, preventing overload
  • Separate verifier that grades evidence independently of the implementation run
  • Live visibility via `/factory` and `/factory-tune` for tuning and monitoring
  • Idempotent installer – safe to re‑run, never overwrites existing files

Disadvantages

  • No native GitHub `issues` trigger; relies on scheduled triage or optional Action
  • Requires a scheduled routine (or custom Action) to poll for new issues
  • Merge is never automated – must be done manually, adding a step to the workflow
  • Environment and cloud config cannot be committed; must be documented externally
  • A “green” run only means the session exited without infrastructure error, not that the work succeeded
  • The factory is a reference installer – you must adapt it to your own repo and charter
  • Human review remains the bottleneck; the system cannot scale past your decision capacity
  • Branch‑protection hooks guard against accidental merges but are not a complete security boundary

Installation

cloud

The factory integrates with cloud services (Claude Code cloud routines) for scheduling and compute. After running the native installer (`install.sh`), the cloud routines are automatically available for triage, implementation, verification, and monitoring. There is no separate cloud installation step—the cloud capability is bundled with the local installation via the `install.sh` script.

native

Clone the repository, then run the installer script:

```bash
git clone https://github.com/addyosmani/factory.git
cd /path/to/your/repo
/path/to/factory/install.sh --dry-run .
/path/to/factory/install.sh .
```
The installer never overwrites existing files, so re-running is safe.

Cloud routines (Claude Code cloud routines) provide the default clock and compute. All sessions start from a fresh clone of the repo; the cloud environment is established during the initial installation.

FAQ

What is the purpose of the Factory repository?

It provides a repeatable, version‑controlled operating model that turns GitHub Issues into a work queue and automates triage, implementation, verification, and PR creation using Claude Code or Codex, while keeping engineering judgment with a human.

How does a GitHub issue become a reviewed pull request?

The scheduled triage routine assigns a `factory:*` label, a later implementation run claims a deterministic branch, runs gates and a fresh verifier, opens a draft PR, and a verification routine checks the PR before the human decides to merge or revise.

What role does the human play in the Factory workflow?

The human defines the charter and tiered risk budget, approves product intent and design, reviews PRs, merges changes, and ensures that any work touching load‑bearing code or existing tests receives final approval; agents may not merge or approve their own work.

How do I install the Factory into my project?

Clone the repository, run `install.sh` against your target repo (e.g., `./install.sh .`), then follow the steps in GETTING_STARTED.md; the installer never overwrites existing files, so re‑running is safe.

What are the key limitations I should be aware of before using the Factory?

There is no native GitHub `issues` trigger (triage polls hourly or via an optional Action), green run status does not guarantee success, environment variables cannot be committed, and merge is never automated—GitHub branch protection remains the final enforcement.

Loading documentation…
View on GitHub

Featured in Videos

YouTube tutorials and walkthroughs for factory

Alternatives

Similar projects ranked by category, topics, and text overlap.

Compare
factory | MushyBook