Factory docs, home

A record from the Factory repository, docs/receipt-tools-followup-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-30",
  "component": "Receipt tools follow-up: ancestor links and accurate usage guidance",
  "base": "62dc922",
  "supersedes": "receipt-tools-receipt.json",
  "disposition": "historical-follow-up; current integration acceptance is in continuation-tools-acceptance-receipt.json",
  "files": {
    "docs/how-to/check-receipts.md": "41ad6282118575c1c7f1c3222f367f6387fefef3d00d910b6e30f31a4bd39aa4",
    "scripts/readability.ts": "f0c785e030c3c8065d991c86cfbfb3432154e738ede3a7cf33876c9676dc5211",
    "scripts/receipt-check.ts": "42e78a506a85f210a07a76af66324a5f6887d8ba54dd7e487d1ef4b4a77e3a02",
    "test/fixtures/readability-sparse/CLAUDE.md": "bff7d808827368313036cd37a14cb7dd31f7ae1b6711887d48f97c833e8deffd",
    "test/fixtures/readability-sparse/README.md": "d4cfa364e163594eed3eebc84006e84ec3a6400eb888d9f2a07c9ca25df4b975",
    "test/fixtures/readability-sparse/handover.md": "c3ba721afd1458e303f93244bd957d03c56745dcd07824ad065a43ac41c43cf9",
    "test/fixtures/readability/AGENTS.md": "797ad8d26aa669fadebedd1c0cd52042053a04581ba1f20574d00f25ea6ef6b5",
    "test/fixtures/readability/CLAUDE.md": "1fa49246e3b78a9bf17cf2a5e314b171e08740317bfb15804996e300ad42c52e",
    "test/fixtures/readability/README.md": "ca8a85fab7a35a1c7aa4b00e48f62ec1ede778eef36ae57ab1517c7e224710ac",
    "test/fixtures/readability/docs/agents/a.md": "17344bc54846a4ed92c1b6afc663611e74b864521ac135a691eeacd8bda0b2a1",
    "test/fixtures/readability/docs/brand/b.md": "917039ac7e209e99bab50ef7cc1ffefb2cbc1fbe24974a6eff9646b3a3ade11e",
    "test/fixtures/readability/docs/explanation/e.md": "89095b033d8c1cc749c56b47dc10f0a11eb69955ae630a8b190920c1468cdc43",
    "test/fixtures/readability/docs/guide/g.md": "9a532f8c9128a06e2ca0cca3c97b60c250dedc0d29ae8dc51546bb51cb4abc4e",
    "test/fixtures/readability/docs/how-to/h.md": "af4add03af0aa8cad57e56f45e787148bafd5ea94a49dfb107cc1913b5c41dd4",
    "test/fixtures/readability/docs/one.md": "d0e64c3832d8ad39f2c7a3b275cd7dbdbb3ffd452edb3d2723905e88d386b00a",
    "test/fixtures/readability/docs/reference/r.md": "bc894cbd30b240810c6e70de96abfbe3080a4780b724a3c412c146f9d819959d",
    "test/fixtures/readability/docs/tutorials/t.md": "cc845dd0061d885409e13cf2141b3d0cac4ac22fea4ad215a6796e1bf3d727ca",
    "test/fixtures/readability/docs/ui/design-system.md": "a13ff60a2b464ee7d7f98a7bb117cf610f3b3564c55fed587bca065366c12112",
    "test/fixtures/readability/handover.md": "91a3965e09e23898c687944eca8618d086102eaf9b2e40776509e20565ee40ba",
    "test/readability.test.ts": "c3ef54f2838cddafb12698836dde86783a264045014c55a8426e4373a0b9e108",
    "test/receipt-check.test.ts": "9a930629b10c5c35cc55623cc147de2787b86b1342f4641896dfb3a003761905"
  },
  "changes": [
    "Do not hash through ancestor symlinks, including links whose targets remain inside the repository.",
    "Apply the same ancestor-link refusal when creating receipts.",
    "Correct invalid-JSON exit code, coverage unreadable semantics, label keys, style and readability fixture provenance."
  ],
  "verification": {
    "focused": {
      "passed": 45,
      "failed": 0,
      "cancelled": 0
    },
    "typecheck": "passed",
    "regression": "Ancestor-link regression failed as matches before repair; refuses as not-checked after repair. Existing receipts unchanged.",
    "fullCheck": {
      "passed": 1281,
      "failed": 0,
      "cancelled": 0,
      "log": "<local evidence archive>"
    }
  },
  "review": [
    {
      "reviewer": "Independent Codex reviewer",
      "verdict": "PASS",
      "report": "<local evidence archive>",
      "scope": "69 focused checks and independent symlink/coverage/exit probes."
    }
  ],
  "limits": [
    "Fresh Fable review remains unavailable under the Claude weekly limit.",
    "Read-only checks assume trusted local storage; no concurrent filesystem mutation boundary is claimed.",
    "Not integrated, pushed or deployed."
  ],
  "prototypeFix": {
    "change": "Object.fromEntries preserves all filename keys including __proto__, constructor and toString.",
    "verification": "41/41 receipt tests passed, including new receipt JSON roundtrip and all three entries checked as matches.",
    "fullCheck": "Prior 1281/1281 establishes the preceding source only; fresh full suite pending."
  },
  "supersededBy": "continuation-tools-acceptance-receipt.json"
}

Source: docs/receipt-tools-followup-receipt.json