Factory docs, home

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

Module map. Records and runs: Guarded verification / recovery imports Execution, Local fixture worker, Attempt fence / workspace and Evidence / Assurance; Local fixture worker imports Attempt fence / workspace and Evidence / Assurance. Visibility: Dashboard imports Required actions and blockers, Project guidance and Portfolio; Required actions and blockers imports Portfolio and the Dashboard contract; Project guidance imports Portfolio. Isolation and delivery: Repository imports Confined executor. Command journal is the shared store underneath.

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

  • Command journal

    Plate 1, position 1. Records each Command once, with its result and Events.

    Accepted

  • Evidence / Assurance

    Plate 1, position 2. Keeps what was observed and gives a Verdict.

    Accepted

  • Execution

    Plate 1, position 3. Records who owns each Run and Attempt, and how each ended.

    Accepted

  • Local fixture worker

    Plate 1, position 4. Runs a built-in test fixture and records what happened.

    Accepted

  • Attempt fence / workspace

    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

  • Confined executor

    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

  • Portfolio

    Plate 2, position 4. Registers local projects and shows what sources report.

    Accepted

  • Dashboard

    Plate 2, position 5. A browser page on this computer for progress, usage, actions and values.

    Accepted

  • Project guidance

    No study yet. Up to six core values per project, kept as revisions.

    Accepted

  • Required actions and blockers

    No study yet. One list of what sources report needs attention.

    Accepted

  • Producers (Claude and OpenAI)

    No study yet. Asks an AI model once for proposed edits; neither Claude Code nor OpenAI can run live yet.

    Accepted

  • Repository Assurance

    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

  • Repository collector

    No study yet. Runs a Candidate's checks in the sandbox and stores what it saw; nothing calls it yet.

    Accepted

  • Intelligence

    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

  • Lifecycle schedule

    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

  • Discovery sources

    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

  • Service access

    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:

  1. 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.
  2. 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.
  3. Guidance-pinned briefs. Planning briefs that pin an exact Project guidance revision.
  4. Evolution. Evidence collectors a real Slice needs, then bounded research and simplification.
  5. 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

Source: docs/guide/index.md