Context
Follow-up to #12511 / PR #12512. Two learn/agentos publish-status judgment calls deferred from that PR because they're genuine decisions, not mechanical cleanup.
The Decisions
measurements/ (pr-review-baseline, heartbeat-token-economy, cognitive-load-baseline) — the first two are currently published in the portal nav, but they're internal MX/swarm baselines (dated lab measurements). Decide: de-publish (internal, default) vs keep as deliberate MX-transparency ("how the organism measures its own evolution"). If de-publish: remove their tree.json leaves (files stay on disk). If transparency: curate a guide page, not raw dated baseline dumps.
ConfigSubstrateEnvVarAudit.md — de-published from nav in #12512 + de-linked from cloud-deployment/Configuration.md, but kept on disk. Decide its final disposition: keep as a non-published reference (move to a subfolder), absorb the load-bearing bits into Configuration.md, or delete (content captured in the AiConfig epic #12456 census). If relocated/deleted, add Audit enforcement to the EXPLORATION_ARTIFACT guard's confirmed-clean set.
Contract Ledger
Classification: T3 (Explicit Matrix) per learn/agentos/contract-ledger.md. Backfilled in response to @neo-gpt's intake-block, built on gpt's skeleton. Rows are Surface-Anchor V-B-A'd on 2026-06-04 against origin/dev.
| Target Surface |
Source of Authority |
Proposed Behavior |
Fallback / Edge Case |
Docs |
Evidence |
learn/agentos/measurements/* publish status (2 published leaves: pr-review-baseline-2026-04, heartbeat-token-economy-2026-05 @ tree.json AgentOS/Measurements group, lines 66–68) |
#12514 + #12511/#12512 public-learn boundary |
Decide de-publish (remove the 2 published leaves; files stay on disk) vs curated MX-transparency (author a guide page, not raw dated baseline dumps) |
cognitive-load-baseline-2026-05 is already non-public BUT referenced by ADR 0008 + skill-authoring-guide.md (V-B-A'd 2 live refs) → do NOT delete/relocate it without updating both refs |
tree.json + regen llms.txt/sitemap.xml if de-publish |
tree.json diff + ai:lint-tree-json + SEO output sync (#12523 guard) |
learn/agentos/ConfigSubstrateEnvVarAudit.md disposition |
#12514 + AiConfig census #12456/#12461 |
Keep as non-public subfolder reference, absorb load-bearing bits into cloud-deployment/Configuration.md, or delete only if ticket-captured |
Live refs (excl. frozen resources/content archive) are ONLY the EXPLORATION_ARTIFACT lint+spec examples (ai/scripts/lint/lint-tree-json.mjs, lintTreeJson.spec.mjs) → if deleted/moved, keep the guard's neg/pos examples coherent + add Audit to its confirmed-clean set |
Update examples/tests/docs if path/name changes |
grep ConfigSubstrateEnvVarAudit (excl. archive) = 0 stray; lint+spec green |
SEO surfaces after any tree.json decision |
#12523 SEO_SYNC guard |
Checked-in apps/portal/{llms.txt,sitemap.xml} must match the generated URL set after the publish decision is applied |
Sequencing dep: WAIT for #12523 to land first — else this stacks on the same tree.json/SEO surface as the guard itself |
PR body evidence |
npm run ai:lint-tree-json after scoped SEO regen |
| Public-vs-internal boundary rationale (per retained surface) |
#12511/#12512 operator concern |
Document why each retained measurement/audit surface ends up public, curated, or internal |
Raw dated baselines must not remain public by accident (the bug #12511 fixed) |
Short rationale in PR body |
Contract Ledger + final diff review |
Acceptance Criteria
Related
Parent: #12511 / PR #12512. AiConfig census: #12456 / #12461. Sequencing gate: #12523 (SEO_SYNC).
Origin Session ID: c2800781-b204-4883-a52f-2979a560718b
Context
Follow-up to #12511 / PR #12512. Two learn/agentos publish-status judgment calls deferred from that PR because they're genuine decisions, not mechanical cleanup.
The Decisions
measurements/(pr-review-baseline,heartbeat-token-economy,cognitive-load-baseline) — the first two are currently published in the portal nav, but they're internal MX/swarm baselines (dated lab measurements). Decide: de-publish (internal, default) vs keep as deliberate MX-transparency ("how the organism measures its own evolution"). If de-publish: remove theirtree.jsonleaves (files stay on disk). If transparency: curate a guide page, not raw dated baseline dumps.ConfigSubstrateEnvVarAudit.md— de-published from nav in #12512 + de-linked fromcloud-deployment/Configuration.md, but kept on disk. Decide its final disposition: keep as a non-published reference (move to a subfolder), absorb the load-bearing bits intoConfiguration.md, or delete (content captured in the AiConfig epic #12456 census). If relocated/deleted, addAuditenforcement to theEXPLORATION_ARTIFACTguard's confirmed-clean set.Contract Ledger
Classification: T3 (Explicit Matrix) per
learn/agentos/contract-ledger.md. Backfilled in response to @neo-gpt's intake-block, built on gpt's skeleton. Rows are Surface-Anchor V-B-A'd on 2026-06-04 againstorigin/dev.learn/agentos/measurements/*publish status (2 published leaves:pr-review-baseline-2026-04,heartbeat-token-economy-2026-05@tree.jsonAgentOS/Measurementsgroup, lines 66–68)cognitive-load-baseline-2026-05is already non-public BUT referenced by ADR 0008 +skill-authoring-guide.md(V-B-A'd 2 live refs) → do NOT delete/relocate it without updating both refstree.json+ regenllms.txt/sitemap.xmlif de-publishtree.jsondiff +ai:lint-tree-json+ SEO output sync (#12523 guard)learn/agentos/ConfigSubstrateEnvVarAudit.mddispositioncloud-deployment/Configuration.md, or delete only if ticket-capturedresources/contentarchive) are ONLY theEXPLORATION_ARTIFACTlint+spec examples (ai/scripts/lint/lint-tree-json.mjs,lintTreeJson.spec.mjs) → if deleted/moved, keep the guard's neg/pos examples coherent + addAuditto its confirmed-clean setgrep ConfigSubstrateEnvVarAudit(excl. archive) = 0 stray; lint+spec greentree.jsondecisionSEO_SYNCguardapps/portal/{llms.txt,sitemap.xml}must match the generated URL set after the publish decision is appliedtree.json/SEO surface as the guard itselfnpm run ai:lint-tree-jsonafter scoped SEO regenAcceptance Criteria
measurements/publish-status decided + applied (de-publish the 2 leaves, or curated-guide);cognitive-load-baselineleft intact unless ADR 0008 +skill-authoring-guide.mdrefs are updated in lockstep.ConfigSubstrateEnvVarAuditdisposition decided + applied; no broken live refs;EXPLORATION_ARTIFACTexample-set stays coherent.tree.jsonleaf changes,llms.txt/sitemap.xmlregenerated (scoped) to satisfy the #12523SEO_SYNCguard.ai:lint-tree-jsongreen.Related
Parent: #12511 / PR #12512. AiConfig census: #12456 / #12461. Sequencing gate: #12523 (
SEO_SYNC).Origin Session ID: c2800781-b204-4883-a52f-2979a560718b