{
  "schemaVersion": 1,
  "lastAudited": "2026-09-07",
  "overallStatus": "not-public-ready",
  "boundary": "This ledger records technical evidence and unresolved publication decisions. A machine pass is not a legal opinion, privacy consent, accessibility certification, or independent scientific validation.",
  "gates": [
    {
      "id": "archive-domain",
      "title": "Durable domain and archive",
      "status": "partial",
      "evidence": "The author selected a personally controlled canonical domain and approved immutable external deposits for every dated PDF. The exact provider-neutral packets are staged and verified.",
      "remaining": "Complete the external deposits and record each resulting persistent identifier before announcement."
    },
    {
      "id": "rights-license",
      "title": "Rights and licensing",
      "status": "complete",
      "evidence": "The author selected the existing-notice policy: Categories for AGI retains its printed Apache notice; LINCS, Infinitesimal Creativity, and Discovering Compositional Worlds from Interaction retain their printed all-rights-reserved notices. PDF and HTML reading editions may be published; source TeX remains private. Asset-specific rights remain a separate visual-review gate.",
      "remaining": "No book-level policy action remains; complete the separate checksum-keyed asset review."
    },
    {
      "id": "visual-privacy",
      "title": "Visual privacy",
      "status": "partial-review",
      "evidence": "The four HTML editions contain 249 raster assets: 133 in Categories for AGI, 43 in LINCS, 41 in Infinitesimal Creativity, and 32 authored ORACLE diagrams. The prior checksum-controlled triage covers the first 217 assets; the new ORACLE assets are deterministic rasterizations of authored categorical diagrams.",
      "remaining": "Extend the checksum-controlled visual register and sign-off packet to the 32 ORACLE diagrams, then complete the previously recorded rights, identity, and privacy decisions. The triage is not consent or approval."
    },
    {
      "id": "accessibility-machine",
      "title": "Machine accessibility checks",
      "status": "partial",
      "evidence": "The semantic-edition pipeline supplies purpose-specific descriptions from authored captions or deterministic diagram provenance. The previous complete crawl covered the three-volume site; the 265-unit ORACLE edition and its 32 diagrams have passed conversion-level structural checks but require a refreshed rendered accessibility audit.",
      "remaining": "Extend the machine-assisted rendered accessibility checks and representative-route packet to the fourth book, including its HTML contents, chapter pages, diagrams, search results, and PDF."
    },
    {
      "id": "accessibility-manual",
      "title": "Manual accessibility review",
      "status": "pending-manual",
      "evidence": "The existing manual-review packet identifies representative HTML surfaces and the first three PDFs. It predates the fourth volume, and none of its machine-assisted evidence is represented as a human accessibility certification.",
      "remaining": "Add representative ORACLE surfaces and its PDF to the packet, then execute the full review with named reviewers using keyboard traversal, a screen reader, zoom, contrast inspection, reduced-motion settings, mathematical speech, figure interpretation, and PDF accessibility software."
    },
    {
      "id": "correction-channel",
      "title": "Corrections and moderation",
      "status": "complete",
      "evidence": "The public four-volume repository https://github.com/sridharmahadevan/categorical-ai-books-corrections provides a structured issue form keyed by book, dated edition, stable tag, and correction type, plus an immutable-edition moderation contract and machine-readable accepted-correction register.",
      "remaining": "Maintain the append-only correction register and incorporate accepted reports only in later dated editions."
    },
    {
      "id": "code-publication",
      "title": "Experiment code publication",
      "status": "partial",
      "evidence": "All 38 experiment families resolve to 625 family-scoped code records across 20 packages and expose 148 concrete, machine-checked Start here files; 15 package destinations are public. Public GitHub package and file links are pinned to full audited commit hashes rather than moving branches, and one representative code surface for each of the 13 public code-bearing packages returned HTTP 200. Every family has a stable HTML page and checksum-controlled Markdown and JSON records, with a reproducible ZIP archive. The five local companions contain 352 unique staged source files. Every private candidate also embeds checksum-controlled Markdown and JSON indexes that map each dependent experiment family to its staged entry points, source records, bounded result records, and evidence boundary. The Categories packet now executes the Chapter 6 DB energy notebook, verifies exact plot and producer hashes for the two Chapter 8 commutator-proxy figures under an explicit plot-only boundary, and retains its GT architecture and 87-cell table checks. Fresh Python 3.11 environments also pass the ATLAS/CSQL DuckDB fixture, the Deep URL CPU plus byte-for-byte report checks, and all seven staged Judo Calculus table artifacts without representing dataset reruns. A clean Python 3.11/NumPy 2.3.5 environment passes the Infinitesimal Creativity DIAL-core and CLIC CPU smoke contract: six exact core worlds, eighteen admission worlds, and eighteen held-out confirmation worlds satisfy every registered bounded metric.",
      "metrics": {
        "familyCount": 38,
        "packageCount": 20,
        "publicPackageCount": 15,
        "resolvedCodeRecordCount": 625,
        "readerStartHereCount": 148,
        "localCompanionSourceFileCount": 352
      },
      "remaining": "Apply the explicit disposition in localCodePackages to the five remaining local packages."
    },
    {
      "id": "pdf-preservation",
      "title": "PDF preservation",
      "status": "partial",
      "evidence": "Four current PDFs have immutable dated paths, page counts, byte counts, and SHA-256 digests: the 478-page Categories, 304-page LINCS, 448-page Infinitesimal Creativity, and 292-page Discovering Compositional Worlds artifacts.",
      "remaining": "Choose an archival mirror and preserve every later edition without overwriting."
    },
    {
      "id": "production-origin",
      "title": "Production-origin verification",
      "status": "partial",
      "evidence": "The four-volume release candidate builds successfully and contains 1,588 scholarly reading units, four current PDF records, 95 chapter explorations, and a searchable ORACLE edition with 265 stable units and 32 diagrams. The previous authenticated custom-domain and experiment audits remain valid only for the three-volume deployment they tested.",
      "metrics": {
        "verifiedRouteCount": 1483,
        "authenticatedProductionRouteCount": 120,
        "byteIdenticalDownloadCount": 99,
        "experimentCardCount": 79,
        "experimentFamilyCount": 38,
        "livePublicStartLinkCount": 55,
        "externalTargetCount": 368,
        "reachableExternalTargetCount": 340,
        "doiResolverConfirmedCount": 20,
        "browserReviewCompletedCount": 8,
        "browserReviewPendingCount": 0,
        "sourceCorrectionCount": 0
      },
      "remaining": "Refresh the full production-origin crawl, visual register, accessibility packet, and authenticated custom-domain audit for the four-volume build before public announcement."
    }
  ],
  "bookRights": [
    {
      "bookId": "categories-for-agi",
      "observedNotice": "Apache license notice in the current manuscript",
      "status": "confirmed",
      "confirmedNotice": "Apache license notice in the current manuscript",
      "confirmedAt": "2026-08-26"
    },
    {
      "bookId": "machine-learning-from-enforcing-compositionality",
      "observedNotice": "All rights reserved in the current manuscript",
      "status": "confirmed",
      "confirmedNotice": "All rights reserved in the current manuscript",
      "confirmedAt": "2026-08-26"
    },
    {
      "bookId": "infinitesimal-creativity",
      "observedNotice": "All rights reserved in the current manuscript",
      "status": "confirmed",
      "confirmedNotice": "All rights reserved in the current manuscript",
      "confirmedAt": "2026-08-26"
    },
    {
      "bookId": "discovering-compositional-worlds-from-interaction",
      "observedNotice": "All rights reserved in the first web edition",
      "status": "confirmed",
      "confirmedNotice": "All rights reserved in the first web edition",
      "confirmedAt": "2026-09-07"
    }
  ],
  "ownerDecisions": [
    {
      "id": "canonical-domain",
      "status": "decided",
      "selectedOption": "Use https://categorical-ai.sridharmahadevan.com as the canonical public address; retain the Sites origin as an operational recovery endpoint.",
      "decidedAt": "2026-08-25",
      "notes": "The personal subdomain is independent of UMass, Adobe, a publisher, and the replaceable website host. Existing dated paths remain stable across the domain transition.",
      "decision": "Choose the durable canonical public address and redirect policy.",
      "recommendedDefault": "Use a personally controlled custom domain as the canonical scholarly identity and retain the Sites origin as a recovery endpoint.",
      "alternatives": [
        "Make a custom domain canonical and redirect the UMass page to it.",
        "Use the Sites origin temporarily, with an explicit migration and redirect commitment."
      ],
      "blocks": ["archive-domain", "production-origin"]
    },
    {
      "id": "archive-provider",
      "status": "decided",
      "selectedOption": "Deposit immutable dated releases in Zenodo or an institutional repository and record the resulting persistent identifier in release_history.json.",
      "decidedAt": "2026-08-26",
      "notes": "Author policy selection 2A. Deposit preparation does not itself mint an identifier; the DOI or other persistent identifier remains pending until the external deposit is completed.",
      "decision": "Choose an archive that preserves every dated PDF and its checksum independently of the website host.",
      "recommendedDefault": "Deposit immutable dated releases in Zenodo or an institutional repository and record the resulting persistent identifier in release_history.json.",
      "alternatives": [
        "Use an institutional repository as the primary archive and Zenodo as a mirror.",
        "Use another preservation service that supplies immutable records and persistent identifiers."
      ],
      "blocks": ["archive-domain", "pdf-preservation"]
    },
    {
      "id": "book-license-policy",
      "status": "decided",
      "selectedOption": "Preserve the currently observed per-book notices, publish PDF and HTML reading editions, and keep source TeX private until publisher, employer, and third-party rights are settled. License code separately in each repository.",
      "decidedAt": "2026-08-26",
      "notes": "Author policy selection 3A. The confirmed notices are recorded in bookRights; this policy does not grant redistribution rights for manuscript source or third-party assets.",
      "decision": "Confirm the rights notice for each book and whether source TeX is part of the public release.",
      "recommendedDefault": "Preserve the currently observed per-book notices, publish PDF and HTML reading editions, and keep source TeX private until publisher, employer, and third-party rights are settled. License code separately in each repository.",
      "alternatives": [
        "Adopt one explicit open-content license for all four books after a rights review.",
        "Reserve all rights for every book while keeping public reading access free."
      ],
      "blocks": ["rights-license"]
    },
    {
      "id": "code-launch-scope",
      "status": "decided",
      "selectedOption": "Publish the high-priority Categories and Infinitesimal Creativity companions first; expose the three medium-priority packages as explicit, non-downloadable provenance records until their clean-environment and data-rights gates pass.",
      "decidedAt": "2026-08-26",
      "notes": "Author policy selection 4A. The two high-priority companions remain private until their package-specific licensing, dependency, security, privacy, and provenance gates pass.",
      "decision": "Decide whether the five curated local code companions are launch requirements or may be labeled forthcoming.",
      "recommendedDefault": "Publish the high-priority Categories and Infinitesimal Creativity companions first; expose the three medium-priority packages as explicit, non-downloadable provenance records until their clean-environment and data-rights gates pass.",
      "alternatives": [
        "Delay the website until all five companions are public.",
        "Launch the website with all five companions labeled forthcoming and publish them incrementally."
      ],
      "blocks": ["code-publication"]
    },
    {
      "id": "correction-tracker",
      "status": "decided",
      "selectedOption": "Use one public editorial repository for all four books, with issue forms keyed by book, edition, stable tag, and correction type.",
      "decidedAt": "2026-08-26",
      "notes": "Author policy selection 5A. Permanent tracker: https://github.com/sridharmahadevan/categorical-ai-books-corrections. The repository was created and verified on 2026-08-26.",
      "decision": "Choose a permanent correction and moderation home for the trilogy.",
      "recommendedDefault": "Use one public editorial repository for all four books, with issue forms keyed by book, edition, stable tag, and correction type.",
      "alternatives": [
        "Maintain one correction tracker per book.",
        "Keep the current per-project trackers and add a dedicated Infinitesimal Creativity tracker."
      ],
      "blocks": ["correction-channel"]
    },
    {
      "id": "public-access-approval",
      "status": "decided",
      "selectedOption": "Keep the current deployment owner-only until visual privacy, keyboard, screen-reader, contrast, zoom, mathematical accessibility, and deployed-origin checks are recorded as complete.",
      "decidedAt": "2026-08-26",
      "notes": "Author policy selection 6A. This is a fail-closed preparation policy, not authorization to change public access; the deployment remains owner-only until every named manual gate passes.",
      "decision": "Authorize the change from owner-only rehearsal to public access after manual review is signed off.",
      "recommendedDefault": "Keep the current deployment owner-only until visual privacy, keyboard, screen-reader, contrast, zoom, mathematical accessibility, and deployed-origin checks are recorded as complete.",
      "alternatives": [
        "Publish a limited beta URL with an explicit accessibility and correction notice after privacy and rights review.",
        "Wait for every code companion and archival deposit before enabling public access."
      ],
      "blocks": ["visual-privacy", "accessibility-manual", "production-origin"]
    }
  ],
  "visualInventory": {
    "totalRasterAssets": 217,
    "allAssetsChecksummed": true,
    "allImageElementsHaveAltText": true,
    "allImageElementsHavePurposeSpecificAltText": true,
    "byBook": [
      {"bookId": "categories-for-agi", "rasterAssets": 133},
      {"bookId": "machine-learning-from-enforcing-compositionality", "rasterAssets": 43},
      {"bookId": "infinitesimal-creativity", "rasterAssets": 41}
    ]
  },
  "visualExceptions": [],
  "localCodePackages": [
    {
      "packageId": "categories-gt-archive",
      "disposition": "split-release",
      "priority": "high",
      "releaseStatus": "private-clean-environment-verified",
      "sourceFileCount": 35,
      "sourceBytes": 476306,
      "publicTarget": "new curated Categories for AGI experiments repository or versioned release assets",
      "requiredBeforePublication": ["retain the Chapter 8 plots as archived plot-only evidence unless their per-step raw logs are recovered", "preserve Chapters 13--14 as archived-only unless complete raw artifacts are recovered", "dependency lock", "license decision", "exclude raw corpora, checkpoints, caches, credentials, and unrelated parent-repository files"]
    },
    {
      "packageId": "kan-do-dcdi-archive",
      "disposition": "merge-or-snapshot",
      "priority": "medium",
      "releaseStatus": "private-clean-artifact-verified",
      "sourceFileCount": 21,
      "sourceBytes": 73720,
      "publicTarget": "curated release within Causal-Discovery-on-Sheaves or a separately versioned companion",
      "requiredBeforePublication": ["distinguish Judo Calculus runs from the public sheaf package", "document Sachs, LINCS, and PISA dataset provenance and redistribution rights", "repair and clean-rerun the PISA calibration driver", "license and dependency review"]
    },
    {
      "packageId": "atlas-csql-archive",
      "disposition": "curate-separate",
      "priority": "medium",
      "releaseStatus": "private-clean-environment-verified",
      "sourceFileCount": 3,
      "sourceBytes": 19008,
      "publicTarget": "small ATLAS/CSQL companion repository",
      "requiredBeforePublication": ["choose a license", "decide whether to retain the corpus-specific notebook and pin its separate environment"]
    },
    {
      "packageId": "deep-url-archive",
      "disposition": "curate-separate",
      "priority": "medium",
      "releaseStatus": "private-clean-environment-verified",
      "sourceFileCount": 5,
      "sourceBytes": 35994,
      "publicTarget": "Deep URL reproducibility companion",
      "requiredBeforePublication": ["choose a license"]
    },
    {
      "packageId": "synthetic-creativity-archive",
      "disposition": "dedicated-repository",
      "priority": "high",
      "releaseStatus": "private-cpu-smoke-and-result-packet-verified",
      "sourceFileCount": 288,
      "sourceBytes": 3723688,
      "publicTarget": "new Infinitesimal Creativity code repository",
      "resultFileCount": 629,
      "resultBytes": 1726523,
      "documentedFamilyCount": 19,
      "cataloguedRunCount": 229,
      "excludedPatternHitCount": 29,
      "alfworldBridgeBoundary": {"fileCount": 6, "totalBytes": 44646, "manifestVerified": true, "licenseFileObserved": false, "status": "publication-or-vendoring-decision-required"},
      "requiredBeforePublication": ["separate reusable library code from one-off experiment drivers", "rights and privacy review for visual assets", "publish, vendor under an explicit compatible license, or exclude the six-file alfworld_bridge dependency", "license and model-access decisions", "manual security and privacy review beyond the narrow passing pattern scan"]
    }
  ]
}
