A local-first software factory for planning, coding, dispatching agents, reviewing evidence, and shipping work from one operator app.
The Factory turns a vague build idea into a pre-production contract, routes the work through the right artist/cast lead, dispatches coding jobs through configured providers, and keeps review, CI spend, runners, remote control, and evidence in one place.
It is inspired by Andy Warhol's Factory as a production floor: cast leads set the lens, operators do the work, and every stage leaves proof.
git clone https://github.com/Pushing-Squares/the-factory.git
cd the-factory
./startOn macOS, ./start installs or refreshes:
~/Applications/The Factory.app
After first setup, open The Factory.app. You should not have to choose another app, clone another repository, or sign into a separate shell.
If startup fails:
./scripts/collaborator-doctor.shCurrent RC tag: factory-rc-2026-05-08.1.
Latest RC pilot hardening is merged into the org repo after the tag. The active source of truth is:
https://github.com/Pushing-Squares/the-factory
Pilot evidence:
- Full readiness gate: 91/91 PASS
- UI dogfood: Pre-production, Coding, Operators, Resources, and Remote clicked with zero console, page, or API errors
- Dispatch smoke: real worker completed through
openai-gpt-nano - Focused pilot suite: 65 passed, 26 subtests passed
- Evidence record:
docs/audits/FACTORY_RC_PILOT_EXECUTION_2026-05-08.md
| Area | What it does | Evidence |
|---|---|---|
| Pre-production | Routes the user's goal to the best cast lead and elicits outcome, audience, constraints, risks, and success evidence before coding starts. | docs/FACTORY_PREPRODUCTION_CONTRACT.md, tests/test_preproduction_contract.py |
| Coding | Starts bounded local or provider-backed coding jobs through Dispatch and reports status back to the app. | scripts/dispatch/cli.py, tests/test_factory_coding_jobs.py |
| Operators | Shows cast leads, operator roles, floor notes, distillations, and workbench evidence natively in the app. | /api/operator-workbench, tests/test_operator_workbench.py |
| Resources | Shows provider readiness, runner policy, inference placement, and CI spend governance before expensive automation runs. | dispatch_matrix.toml, config/worker-policy.json, tests/test_dispatch_key_readiness.py |
| Factory Remote | Gives a phone-friendly remote for status, paired command intents, and a Connect another device panel for phones and laptops that share one Factory host. The phone never receives repo credentials or provider secrets. | docs/FACTORY_REMOTE.md, tests/test_factory_remote.py |
| Readiness gate | Verifies runtime identity, operator APIs, mutation safety, UI dogfood, contract tests, full Python tests, typecheck, security, and a recent provider-backed proof. | docs/FACTORY_MAIN_TOOL_READINESS.md |
- Open The Factory.app.
- Start in Pre-production and describe what you want to build.
- Let the app produce a build contract.
- Move to Coding and dispatch one bounded job.
- Review the diff, validation output, errors, and PR state.
- Land or hand off only when evidence is visible.
Full pilot runbook: docs/FACTORY_RC_PILOT.md.
The Factory uses 16 cast leads across 14 departments. Each lead is a reusable operating lens for agents and operators, not a duplicate worker pool.
- Roster:
config/artists/roster.json - Departments:
config/artists/departments.json - Source-grounded lens packs:
docs/expert-lenses/ - Vocabulary:
docs/FACTORY_VOCABULARY.md
The point is practical: each cast lead changes how work is framed, reviewed, and communicated.
When GitHub Actions budget or branch protection is slowing you down, use local workstreams and push only when the batch is ready.
./scripts/localgit init
./scripts/localgit new my-work --no-edit
./scripts/localgit launch my-work
cd .localgit/worktrees/my-workGuide: docs/LOCAL_FIRST_WORKSTREAMS.md.
For normal app health:
./scripts/collaborator-doctor.shFor the full maintainer gate:
FACTORY_UI_MODE=browser FACTORY_SKIP_APP_INSTALL=1 FACTORY_UI_PORT=5174 \
FACTORY_UI_URL='http://localhost:5174/#/factory' ./start
python3 scripts/factory-main-tool-readiness.py \
--base-url http://localhost:8420 \
--ui-url http://localhost:5174/#/factory \
--expect-root "$PWD"The localhost URLs above are internal test plumbing. Collaborators should use the app launcher.
| Path | Purpose |
|---|---|
apps/factory-shell/ |
Desktop/operator app shell owned by this repo |
.omc/dashboard/ |
Compatibility API and static Factory Remote surface |
scripts/dispatch/ |
Dispatch CLI, wrappers, smoke tests, and provider readiness |
scripts/lib/ |
Shared deep modules: config loader, state models, registry resolver |
| config/artists/ | Cast lead roster and department map |
| config/*.json | Agent, worker, issue, coordination, and intake policy |
| docs/ | Runbooks, contracts, audits, and design decisions |
| tests/ | Operator-path, API, Dispatch, security, and regression tests |
Start with these:
docs/COLLABORATOR_START.mdfor non-technical setupdocs/FACTORY_RC_PILOT.mdfor the current pilot workflowdocs/FACTORY_MAIN_TOOL_READINESS.mdfor the acceptance gatedocs/OPERATIONS.mdfor maintainer operationsdocs/RESEARCH_TOOLING.mdfor scout/research agents
Use small branches, keep changes evidence-backed, and commit with the Lore Commit Protocol in AGENTS.md.
For Factory work, open PRs against:
Pushing-Squares/the-factory
The personal mirror is kept tree-synced, but org main is the active development source.
Factory-authored code is MIT, see LICENSE. Third-party notices for included or adapted projects are indexed in docs/THIRD_PARTY_NOTICES.md.
- Pushing Frames / Pushing Dispatch for the multi-model dispatch backbone.
- Nuwa Skill / Distillation skill for the expert-lens workflow used to build cast lead operating patterns.
- OpenSpec for the contract-first planning and verification discipline.
- Open-source app foundations listed in the package manifests, including Electron, React, Vite, CodeMirror, TipTap, TanStack, Radix UI, xterm.js, Hono, and tRPC.