Factory is a local software factory. It aims to turn business objectives and customer problems into customer value that is independently checked, one small Slice at a time. Today it is a set of small modules, each accepted in a local review on one Mac: they record work, run bounded checks, show sourced progress and can ask an AI model for proposed edits, although neither AI connection can run live yet. Nothing is released, and all 27 customer-value epics remain open.
Meet Plumb, a small blue plumb bob. Plumb swings to explore and settles true: every claim hangs from evidence. It is an editorial character, never an operational name.

How work flows
Need → Slice → Candidate → Verdict → Receipt → Assessment
Exists locally, as separately tested parts not yet joined into one flow: a sealed Candidate and a Receipt for a local branch move (Repository); Verdicts for built-in test fixtures (Evidence / Assurance); a Product gate that freezes Slices and admits work, with delivery records that can work out an Assessment (Product gate); a judge for repository Candidates (Repository Assurance); and a collector that runs a Candidate's checks in the sandbox and stores what it saw (Repository collector). Planned: the delivery flow that joins these parts. Not established: any release or customer benefit.
Module map
An arrow means "imports directly", read from src/*.ts. Each module page says what it takes and what it gives. Producers is not drawn: it imports only the Command journal's canonical JSON and Repository's types, and nothing imports it yet. The Product gate, Repository Assurance and the Repository collector are not drawn yet either: Repository Assurance imports the Command journal's canonical JSON, the Confined executor's snapshot format, Evidence / Assurance and Repository; the Product gate imports the Command journal, the Attempt fence, Repository Assurance and Repository's types; the Repository collector imports the Confined executor, Evidence / Assurance, Repository Assurance, the Attempt fence and canonical JSON, and Repository's and the delivery records' types; and nothing outside these three imports them. Nor is Intelligence, which imports only that canonical JSON and is imported by nothing, or the Lifecycle schedule and Discovery sources, which each import only the Command journal and are imported by nothing, or Service access, which imports the Command journal and the Portfolio's counting types and is imported by nothing.
Modules
-
Plate 1, position 1. Records each Command once, with its result and Events.
Accepted
-
Plate 1, position 2. Keeps what was observed and gives a Verdict.
Accepted
-
Plate 1, position 3. Records who owns each Run and Attempt, and how each ended.
Accepted
-
Plate 1, position 4. Runs a built-in test fixture and records what happened.
Accepted
-
Plate 1, position 5. Gives each Attempt one gate and a private workspace.
Accepted
-
Guarded verification / recovery
Plate 1, position 6. Checks a fixture under one owner and settles crashed Attempts.
Accepted
-
Plate 2, position 1. Runs one small program in a macOS sandbox and reports what it saw.
Accepted
-
Repository sealing / export and integration
Plate 2, positions 2 and 3. Seals a Candidate and moves a local branch at most once.
Accepted
-
Plate 2, position 4. Registers local projects and shows what sources report.
Accepted
-
Plate 2, position 5. A browser page on this computer for progress, usage, actions and values.
Accepted
-
No study yet. Up to six core values per project, kept as revisions.
Accepted
-
No study yet. One list of what sources report needs attention.
Accepted
-
No study yet. Asks an AI model once for proposed edits; neither Claude Code nor OpenAI can run live yet.
Accepted
-
No study yet. Judges a repository Candidate from stored Evidence; nothing calls it yet.
Accepted
-
Product gate and delivery records
No study yet. Decides what delivery work a Product may start, and keeps each delivery record once.
Accepted
-
No study yet. Runs a Candidate's checks in the sandbox and stores what it saw; nothing calls it yet.
Accepted
-
No study yet. Says which modules may use an AI model, which one and why; most never do. Accepted, with its changes for the proposed discovery and post-development design; no model is qualified yet.
Accepted
-
No study yet. Keeps the timetable of the proposed nightly checks, one named check at a time; nothing runs on a schedule yet.
In progress
-
No study yet. Reads the public pages you commission and keeps checkable quotes; tried only on this computer; accepted on independent review, and nothing uses it yet.
Accepted
-
No study yet. Maps the outside services a Product uses and where their credentials live, by name only; increment 1, on test files.
In progress
Planned next
Planned, not finished. In order:
- Useful local delivery. Built so far: the Product gate and Repository Assurance, as separate parts, the collector that runs a Candidate's checks, and a last check the Repository can run just before a move. Still to build: the delivery flow and its command line, then one evidenced, useful change delivered end to end.
- Providers. Qualify each accepted producer live: Claude Code needs a person to check its built-in agents and plugins, then a fresh check under the current rules. OpenAI is to be reached through the Codex command line on your ChatGPT sign-in, never a Platform key: a proposed default of the discovery and post-development design, checked in its own later step.
- Guidance-pinned briefs. Planning briefs that pin an exact Project guidance revision.
- Evolution. Evidence collectors a real Slice needs, then bounded research and simplification.
- Discovery and post-development. A proposed design, independently reviewed and built only in its first steps: nightly and weekly checks of public sources for customer problems and competitor moves, at most five proposals per Product a week that rules admit or not, then release drafts, outcome checks and deliberate retirement. So far only its planned entries in Intelligence, its schedule and its first part, Discovery sources, which reads commissioned pages, exist; both have passed independent review, nothing runs on the schedule, and the reader has been tried only against a test server on this computer.
Go deeper
- Why and how: one page · brief · values · design · architecture
- Building it: implementation · local development · dashboard · portfolio
- Brand: Plumb and the Factory brand · design language
- For agents: the Factory model, one combined reference for every module.
