Factory docs, home
Page navigation

A record from the Factory repository, docs/lifecycle-merge-receipt.json, shown as committed except that its local paths appear as placeholders in angle brackets, such as <local evidence archive>, standing for files that are not published. Every hash, date and count is as recorded. The build review says what the Factory's receipts support.

{
  "recordedAt": "2026-09-29",
  "component": "Merge of lifecycle increments 0-2 into main: Intelligence rendering (src/intelligence.ts), docs, generated site and website",
  "branch": "factory/lifecycle-merge",
  "parents": {
    "main": "66f66d317df549fe488a4b684d563ee3da548c3c",
    "factory/lifecycle-schedule": "469bc564a53a13cb4ba40cad8dd210a35bfd712a",
    "factory/lifecycle-sources": "978d6a2171b0d34c522ea274bdcfdf2d5dca812e"
  },
  "order": "factory/lifecycle-schedule merged into main first (resolved tree 621a2797437562fa7a7faf4e6f7e5453ec63ce72, never on a branch), then factory/lifecycle-sources into that; one merge commit with the three parents",
  "disposition": "merged and resolved by Opus 5.5; independent review of the resolution by Astra (gpt-6-astra, high), whose highest-numbered report under <local evidence archive> holds the current verdict; nothing is pushed and main is not moved here",
  "scope": "Joins accepted work only: main's step 1 increments 3 and 3b, the repository-collector declaration, the website, CI and intent r10; lifecycle increment 0 (Astra round 2 PASS), increment 1 (round 4 PASS) and increment 2 (round 5 PASS). No lifecycle module is composed, scheduled or run live; all 27 epics stay open.",
  "conflicts": {
    "resolvedByHand": "README.md, docs/agents/factory-model.md, docs/agents/intelligence.md, docs/build-review.md, docs/guide/index.md, docs/guide/intelligence.md, docs/lifecycle.md, src/intelligence.ts, test/intelligence-lifecycle.test.ts: each side's facts kept (combined diffs merge1-cc.diff and merge2-cc.diff)",
    "generated": "site/ and website/ regenerated (rm -rf site && npm run docs; rm -rf website && npm run website), never hand-merged; the README Intelligence table is the output of renderIntelligenceTable()",
    "semantic": "the two lifecycle subgraphs of the factory model's module graph shared one id and are joined into one; src/intelligence.ts's discoverySourcesDeclaration comment no longer names line 695"
  },
  "nonMechanical": [
    "README rows: 19 declarations have code and 3 are step-planned, 27 lines against the accepted 25; renderIntelligenceTable() now renders MODULE_INTELLIGENCE only (a 24-line section) and a new renderPlannedIntelligenceTable() renders PLANNED_INTELLIGENCE in docs/agents/intelligence.md beside the lifecycle table; test/intelligence.test.ts's README test names three tables instead of two, keeping the 25-line cap, exact rendered tables, one row per declaration and every declaration exactly once across the tables; discovery-sources keeps the README row its adversarial test requires",
    "anchor: the implicit-retries refusal moved to src/intelligence.ts:709 (main's repository-collector entry and increment 1's lifecycle-schedule entry each add seven lines above it); docs/lifecycle.md and test/intelligence-lifecycle-adversarial.test.ts follow it",
    "status: increment 0's 'awaits independent review' wording (committed before its round 2 PASS) and increment 1's in the factory model and Intelligence pages corrected to their recorded PASS; the Intelligence guide status becomes Accepted",
    "completeness: the Lifecycle schedule added where the lifecycle's undrawn, unplated and reference-review-less modules are listed (factory model, guide index)",
    "website: the discover capability and the Discover stage move from planned to in development (two parts built and reviewed, nothing joined or live), with a progress-log entry; test/website.test.ts's literal for the drawing's description follows the stage's state"
  ],
  "policyDigests": {
    "method": "taskPolicyDigest(taskId) for every task of each parent and of the merge (policy-digests-main.json, -schedule.json, -sources.json, -merged.json under the log directory)",
    "result": "the merge's eleven digests equal both lifecycle parents' byte for byte; main's six are unchanged (policy-digests-main-vs-merged.diff shows only the five lifecycle tasks added)"
  },
  "files": {
    "src/intelligence.ts": "380c1e9fa898acecc726b159d632f72c161b7c708adec48a186c0a4e915e9389",
    "test/intelligence.test.ts": "7a9e12b4d0005513c8c8ed8b102b8e647b75828820efcaa3bbdca609c61a977d",
    "test/intelligence-lifecycle.test.ts": "a16204a01992b9bdf531b17bb2121d253ff98cae34dd18b56fa44b33ada4edaf",
    "test/intelligence-lifecycle-adversarial.test.ts": "663bf9f68869cdca6073f89be66af28b139869c42735b0c0426f9686ce25916f",
    "test/website.test.ts": "547a0e19492d24e438cd89b6060d9489b888bd4489e49955ce117cea0723c83f",
    "apps/website/content.ts": "a8c27cd4a33da68c608e16c852b55434f6910022625ccb69797a1fdbe2d0a35e",
    "README.md": "cbc6fcba9120f70268d4e178310e4d908ec67764f87b77b3c547e3c54445022d",
    "docs/agents/intelligence.md": "d72ee60347360453dd935ae4db47858266b2ff69ebd65a9f276a7cae93edc676",
    "docs/agents/factory-model.md": "3b35d4f9b1dc39d7c319f0bbab5979a47b8708bb1fbdfb6e7d50151198518802",
    "docs/build-review.md": "f33de2e578738cf9121e9625be80df699673e540e56fe7edb462f0819cf019b2",
    "docs/guide/intelligence.md": "7f7c5634a891eb812c4609933272f05fa9d8580dd58dd0f9ea46b6d0d18919da",
    "docs/guide/index.md": "02ab9ed9a770e92febd39add4effca4531f051c81ccb2eb908ed36ba1b23626c",
    "docs/lifecycle.md": "79e52912b471a3db5289e2a4f79041b8daad03d863a178a8c626d0f7db6d6163",
    "site/build-manifest.json": "0f03b03b4624ffd5fe9fcff6c5f6f0f9a1f2a8c9907bfccd47d6617b5bca903d",
    "website/build-manifest.json": "65479727d43135c5d73874fe817a05effb78a6210a680643565a3b109a13eea0"
  },
  "producer": {
    "model": "claude-opus-5-5",
    "role": "merge and resolution; not the verifier"
  },
  "verification": {
    "logDirectory": "<local evidence archive>",
    "docs": {
      "command": "rm -rf site && npm run docs",
      "result": "Built 64 pages and copied 13 assets into site",
      "log": "01-docs-build.log",
      "logSha256": "10be698719908a61eac82b724a4150b45c890cc5f962c16c1d519cc460bfe82c"
    },
    "website": {
      "command": "rm -rf website && npm run website",
      "result": "Built 4 pages and 12 other files into website",
      "log": "02-website-build.log",
      "logSha256": "981c860b8b227ac9b71c4975a99bf36ba81e72e19c18eba1a58cc5486e93bcd1"
    },
    "typecheck": {
      "command": "npx tsc --project tsconfig.json",
      "exitCode": 0,
      "log": "03-tsc.log",
      "logSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
    },
    "focused": {
      "command": "node --test test/intelligence.test.ts test/intelligence-adversarial.test.ts test/intelligence-lifecycle.test.ts test/intelligence-lifecycle-adversarial.test.ts test/lifecycle-schedule.test.ts test/lifecycle-schedule-time.test.ts test/lifecycle-schedule-processes.test.ts test/lifecycle-schedule-adversarial.test.ts test/discovery-sources.test.ts test/discovery-text.test.ts test/discovery-sources-adversarial.test.ts test/docs-site.test.ts test/design-tokens.test.ts test/website.test.ts test/delivery-boundaries.test.ts",
      "passed": 264,
      "failed": 0,
      "skipped": 0,
      "log": "04-focused.log",
      "logSha256": "b19d28a448739b67fdc85b9ee2dc059fea54d094ea212509caa4ca953aa3befd"
    },
    "full": {
      "command": "npm run check",
      "passed": 1131,
      "failed": 0,
      "skipped": 0,
      "exitCode": 0,
      "log": "05-full-check.log",
      "logSha256": "12d69145b30ad457f381e586b4d3ff134f5f988757205bbf5b4c8e6327ee946e",
      "note": "run with this receipt at a placeholder; only this receipt changed afterwards"
    },
    "dashboard": {
      "command": "npm --prefix apps/dashboard run check",
      "passed": 10,
      "failed": 0,
      "skipped": 0,
      "exitCode": 0,
      "log": "06-dashboard-check.log",
      "logSha256": "424505d7a578b486a510f8afdadee6c992a805c32ea93fc3b0609dd00095a251"
    }
  },
  "notEstablished": [
    "Any composition of the lifecycle modules, a schedule that runs, a live page fetch or a model call",
    "That main has moved: the coordinator fast-forwards it after review",
    "A reference review (docs-astra) of the Lifecycle schedule or Discovery sources references",
    "Any release, Verdict on a real Slice or customer value; all 27 epics stay open"
  ]
}

Source: docs/lifecycle-merge-receipt.json