Observation, not a live claim
This page was observed on 2026-09-08. Its state figures describe one historical export, not a promise that the protected cockpit or runtime ledger still has the same contents.
- Runtime ledger: revision 125 records its latest update at
2026-08-16T11:35:58.800Z. - Sanitized export: revision 125 was generated at
2026-08-16T11:36:21.577Z, 22.777 seconds later. - Freshness reading: the shared revision establishes revision consistency between the two records; it does not prove a live feed. Both dates are 23 calendar days before this page’s observation date, so neither proves current freshness on 2026-09-08.
The distinction is deliberate:
flowchart LR C["Planned set catalog"] -. "declares inventory; no per-set ledger" .-> L["Runtime ledger"] L -->|"trusted extension export"| S["Sanitized snapshot"] S -->|"read-only API"| V["Protected cockpit"]
- The planned catalog declares scope, manifests, and set-level intent. It identifies the root ledger as authoritative, says no per-set ledger is included, and assigns the application a snapshot read model:
sets/catalog.yaml:1-10. - The runtime ledger is the canonical operational record. The protected application is intentionally not a raw-ledger reader: its adapter reads only
artifacts/snapshots/foundry.jsonand rejects an unavailable or invalid export:src/adapters/iconloom-ledger.ts:5-29. - The snapshot is a bounded exported read model. It is validated for an exact schema before use, including timestamp, revision, icon summaries, run-state counts, and readiness fields:
src/adapters/iconloom-ledger.ts:32-66.
Catalog scope versus exported rows
The catalog declares two sets and 13 planned icon IDs. Its status strings are catalog metadata, not human approval, run state, or certification. At the exported revision, those 13 names are represented; one additional ledger row does not belong to either catalog set.
| Group | Declared inventory | Catalog status | Exported state at the recorded revision |
|---|---|---|---|
| Gamefun Core | 5 | showcase_decision_required | 5 mapped rows, all decision_required |
| Gridpulse Ops | 8 | awaiting_human_selection | 8 mapped rows, all decision_required |
| Unregistered ledger row | 0 | not cataloged | set: cancelled, with 0 submissions |
The two declared memberships and their 5/8 inventories are in sets/catalog.yaml:12-35. The cockpit registry separately preserves declared set order and places unmatched ledger rows in an unregistered group rather than silently assigning them: src/contracts/set-registry.ts:18-20,168-190. The unmatched set record therefore contributes to the runtime/export inventory of 14, but not to the planned catalog inventory of 13: artifacts/snapshots/foundry.json:8-9,184-193.
Run census and count boundaries
The export has 30 recorded runs: 13 decision_required and 17 cancelled. It has no generating, quarantined, or closed runs at that revision.
| Run state | Recorded runs |
|---|---|
generating | 0 |
decision_required | 13 |
quarantined | 0 |
closed | 0 |
cancelled | 17 |
cancelled is the only non-zero terminal outcome in this run census. It is not a selection, approval, release, or a substitute for a human decision. The run-state source is artifacts/snapshots/foundry.json:247-253; human-only decision and approval gates are recorded separately at artifacts/snapshots/foundry.json:763-768.
The exporter keeps current-run membership separate from complete history. The distinction is enforced by its contract test and by validation requiring each historical count to be at least its current-run counterpart: tests/adapters/iconloom-ledger.test.ts:33-37, src/adapters/iconloom-ledger.ts:62-66.
Per-icon snapshot counts and candidate lists are history aggregates too. A current slate must be reconstructed from run-level submitted hashes, lanes, and candidate-to-run membership rather than an icon summary: docs/index.md:200-207.
| Candidate accounting | Current runs | Complete history | Historical difference |
|---|---|---|---|
| Submissions | 48 | 55 | 7 |
| Passes | 37 | 43 | 6 |
| Failures | 11 | 12 | 1 |
| Quarantines | 2 | 3 | 1 |
These columns are not a quality score or a funnel. Quarantine is a separate candidate count rather than a third mutually exclusive pass/fail outcome: src/contracts/dashboard.ts:5-10, src/adapters/iconloom-ledger.ts:122-125. The dated values come directly from artifacts/snapshots/foundry.json:254-265.
Representative lineage and terminal record
Gamepad illustrates why the two count scopes must not be collapsed:
- Its ledger row orders four runs and remains pending a human decision:
.iconloom/state.json:43-64. - Three earlier runs are
cancelled: two ended without a submission, and one retained one submitted candidate. The later run has four submitted candidates and isdecision_required:.iconloom/state.json:2215-2237,2331-2353,2360-2385,2392-2423. - The exported icon summary consequently retains five submissions for gamepad across its record, while the current run itself supplies four. This is lineage and accounting evidence, not evidence that any candidate was selected or approved:
artifacts/snapshots/foundry.json:113-128.
The public page intentionally omits run IDs, candidate hashes, raw briefs, leases, and private operational fields. The cited source coordinates are audit pointers; they are not an invitation to treat the raw ledger as a public API.
No certification claim
Nothing in this export supports a certification, release, or approval claim:
- Rights are
unverified. - Release readiness is
not_ready. - The export records 0 approved of 14 required runtime icons, alongside 27 remaining deterministic blockers and 3 remaining candidate quarantines.
- A mechanically eligible candidate, a passing check, or a
decision_requiredrun remains below a human selection and approval.
Those are the export’s own fields and blockers, not a conclusion inferred from the aggregate counts: artifacts/snapshots/foundry.json:770-788. Authority remains human-only and a model may not select: artifacts/snapshots/foundry.json:763-768. See agents for the authority boundary and svg-and-evidence for the difference between measured evidence and a decision.
Reproduce this dated reading
Use field-level views rather than copying the raw state into a public report:
- Catalog scope and ledger policy: inspect
setId,status,inventoryCount,iconIds, andledgerinsets/catalog.yaml:1-35. - Operator-side lineage: inspect only
revision,updatedAt, a chosen icon’srunIds, and the matching runs’statusand submitted-candidate counts in.iconloom/state.json:2-7,43-64,2215-2237,2331-2353,2360-2385,2392-2423. - Export census for operator inspection: inspect
generatedAt,stateRevision,inventoryTotal,runsByState,currentRunCounts,historyCounts,rightsStatus, andreleaseReadinessinartifacts/snapshots/foundry.json:2-8,247-265,763-806. - Snapshot boundary and unavailable-export behavior: inspect
src/adapters/iconloom-ledger.ts:5-29andsrc/App.tsx:114-129.
For the wider system context, read architecture, commands, search-and-decisions, and private page (sign-in required).