Estate knowledge routing: one home per kind of artefact, atlas frozen, a generated index instead of one store
rank: decision outranks: []
Section titled “rank: decision outranks: []”Estate knowledge routing: one home per kind of artefact, atlas frozen, a generated index instead of one store
Section titled “Estate knowledge routing: one home per kind of artefact, atlas frozen, a generated index instead of one store”Date: 2026-10-22 Status: closed Supersedes: none Superseded-by: none — current MR-compliance: MR-4, MR-6, MR-7, MR-9, MR-12, MR-20
Context
Section titled “Context”The estate writes its lessons, decisions and procedures into seven
stores: eva-hq, mary-wiki, petrova-codes, kahn-hq, devarno-cloud (and its
plays repo), atlas, and the operator’s private auto-memory. No rule says
which kind of artefact goes where, and no index spans them.
mary-wiki named the cost on 2026-09-07. F-168
(docs/findings/20260907-1200-f-168-findings-are-consulted-by-accident.md):
the corpus records superbly and is consulted by accident. Retrieval
fails, not recording.
Three rules exist, and they conflict:
- devarno-cloud/plays
plays/PLAY-005-knowledge-capture.md:30: “A lesson, bug chain or diagnostic workflow goes to atlas through theatlas-knowledge-filingskill.” - devarno-cloud/devarno-cloud
AGENTS.xml:279: theqa-scribesubagent writes “the verify_round artefact in atlas/findings”. - Practice since September: agents file estate-wide lessons in eva-hq
docs/findings/, and fleet-binding rulings in petrova-codesdocs/decisions/.
Atlas, the store the first two rules name, is dormant. Commits on
devarno-cloud/atlas origin/main by month: March 173, April 105, September 2,
October 3 (last commit 44d8e9a, 2026-10-14). Agents told to file there
file somewhere else, ad hoc.
The result is duplication. The same lesson sits in several stores, each copy written without reading the others:
| Lesson | Copies (repo: path at origin/main) |
|---|---|
| A green check that guards nothing (false green) | devarno-cloud/atlas findings/2026-08-19-three-ways-a-green-check-guards-nothing.md; eva-hq/eva docs/doctrine/2026-07-13-false-green-and-the-read-surface.md; petrova-codes docs/findings/20260817-2340-a-green-deploy-that-never-ran-and-recall-of-six-in-thirty-one.md; petrova-codes docs/findings/20260826-1230-a-green-that-cannot-tell-nothing-to-report-from-nothing-reported.md; mary-wiki docs/findings/20260909-0830-f-182-false-green-sweep-after-f-181-residue-named-not-chased.md; devarno-cloud/plays findings/2026-10-12-heartbeat-could-not-fail.md — five stores |
| Launch-to-revenue (L2R) has no play | eva-hq/eva docs/findings/20261021-1923-l2r-bound-to-plays.md; devarno-cloud/plays findings/2026-10-21-launch-to-revenue-names-no-play.md |
| Humanizer / AI-writing tells | petrova-codes docs/findings/20261014-0650-humanizer-skill-canonical-home.md; mary-wiki docs/findings/20261014-0749-f-204-ai-writing-tells-had-no-shared-gate-across-the-content-engines.md |
| Railway cost | eva-hq/eva docs/eng/fleet/railway-cost-2026-10-21.md; eva-hq/eva docs/findings/20261021-1330-sevalla-eval-railway-cost.md; eva-hq/eva docs/doctrine/2026-10-21-paas-pricing-shape.md; petrova-codes docs/decisions/2026-10-21-railway-postgres-consolidation.md |
Two more gaps feed the duplication:
- Contracts do not declare knowledge homes.
contracts/contract.schema.jsonhas no field for them, andhost/src/estate/domains.ts:78hard-codesGOVERNED_PATHSto.petrova/**,docs/decisions/**,MILESTONES.mdandCLAUDE.md. Findings, runbooks and doctrine are invisible to the control plane. - Findings have no lifecycle. Nothing marks a finding open, closed or
superseded, and the repo walker does not model it
(
docs/findings/20260911-1205-finding-status-not-modeled-in-repo-walker.md). A reader cannot tell a live lesson from a spent one.
A 2026-09-02 agent-written plan, “ATLAS Compaction” (https://claude.ai/artifact/C3D9DHbC4K8VYRBbDDScBD), diagnosed the same disease inside atlas alone. Its diagnosis holds. Its prescription is weighed under Alternatives.
Decision
Section titled “Decision”Proposed for FLIGHT. Merging this doc executes nothing.
1. Routing table. Each kind of artefact has exactly one home.
| Kind | Home |
|---|---|
| Decision binding one repo | that repo’s docs/decisions/, in its own template |
| Fleet-binding or cross-org decision | petrova-codes docs/decisions/ (**Status:** open, then FLIGHT countersign) |
| MARY facility governance | mary-wiki (unchanged; FLIGHT lands it) |
| Finding about one repo | that repo’s docs/findings/ (push-down) |
devarno-cloud parent findings, including verify_round artefacts | devarno-cloud docs/findings/ (new directory; replaces atlas/findings in AGENTS.xml:279) |
| Cross-estate finding (two or more repos, or no owning repo) | eva-hq docs/findings/ |
| Doctrine (a pattern behind two or more cited incidents) | eva-hq docs/doctrine/ |
| Reusable prompt | eva-hq prompts/ (unchanged; sole author) |
| Delegated recurring procedure and its run records | devarno-cloud/plays (unchanged) |
| Lesson that changes a play | plays findings/ with amends: PLAY-NNN@vN (unchanged, rule L-fix) |
| Runbook for one system | that repo’s docs/runbooks/ |
| Skills | tracked in git, never local-only. Repo-specific: <repo>/.claude/skills/. Estate-wide: one tracked home, chosen in a later decision |
| atlas (devarno-cloud/atlas) | frozen read-only archive. No new artefacts. Cite in place. A superseded or duplicate entry gets a pointer stub, never a deletion |
| Cross-store index | generated by eva-hq scripts/knowledge-census.py and a weekly cycle cycles/knowledge-index/; never hand-edited |
2. Rules.
- R1 — Search before filing. Before writing a finding, doctrine or
runbook, run
python3 eva-hq/scripts/knowledge-census.py search <terms>across all stores and show the hits in the PR or report. Until the census script merges, search each store’sorigin/mainwithgit grep. - R2 — One home per lesson. A lesson lives in the one store the table names. Other stores cross-link to it. They never copy it.
- R3 — New findings carry a status line:
open,closedorsuperseded. It applies to findings written after this decision is countersigned. Existing findings are not normalised (MR-7). - R4 — Contracts may declare knowledge dirs. Each registered repo may
declare its knowledge directories in
.petrova/contract.yaml. The field and its effect onGOVERNED_PATHSare a separate decision (docs/decisions/2026-10-22-contract-knowledge-block.md, drafted in parallel); this doc only routes to it.
3. Atlas is frozen and indexed, not revived. The operator ruled this on 2026-10-22. Atlas stays readable at its current paths. The cross-store index lists its entries alongside every other store’s.
Alternatives considered
Section titled “Alternatives considered”- Revive atlas as the single home for lessons. Rejected. Five months of practice moved away from it (173 commits in March, 2 in September). A rule that sends agents to a store they do not read reproduces F-168, and moving eva-hq, mary-wiki and petrova-codes findings into it would break every existing citation.
- Atlas as the published home of the index. Rejected for now. The index is generated by an eva-hq cycle. Publishing it from a frozen repo means a bot writing into an archive, which contradicts the freeze. It can be revisited once the index exists and has readers.
- Execute the 2026-09-02 ATLAS Compaction plan
(https://claude.ai/artifact/C3D9DHbC4K8VYRBbDDScBD). Rejected, for three
reasons. First, a single-store premise: it compacts one dormant store
of seven, while the live writing happens in the other six. Second, it
mints a new
ATL-ID space, a fifth taxonomy beside DR, PTV, F- and PLAY- IDs, which repeats the fragmentation it describes. Third, it needs a 13-agent fleet and a mass re-registration on a store nobody writes to. Kept from it: evidence andverified_aton claims,canonical:pointer stubs instead of deletion, receipts never projected, and the SSO doctrine pair as the duplicate-detection self-test. - Status quo. Rejected. The four clusters above are the measured cost.
Consequences
Section titled “Consequences”For code:
- eva-hq gains
scripts/knowledge-census.py(read-only census and duplicate report) and the weekly cyclecycles/knowledge-index/, each in its own PR. - The contract
knowledge:block and theGOVERNED_PATHSchange ship under their own decision (R4).
For docs (amendments this decision needs, each by a new artefact, MR-7):
- devarno-cloud/devarno-cloud
AGENTS.xml:279—qa-scribewrites to devarno-clouddocs/findings/, notatlas/findings. A devarno-cloud PR that cites this doc (MR-6: subagents read fromAGENTS.xml). - devarno-cloud/plays
PLAY-005— amended by a plays finding carryingamends: PLAY-005@vN(rule L-fix), naming this table as the filing rule in place of atlas. - The
atlas-knowledge-filingskill — rewritten against this table and collapsed to one tracked copy. Today it exists as two divergent local copies (PLAY-005 step 0 names them), neither in git. - devarno-cloud/atlas — a tombstone banner in its README and CLAUDE.md stating the freeze, plus pointer stubs where a duplicate has a canonical home elsewhere.
For in-flight phases: none paused. Atlas has had no substantive writes since June; freezing it stops no live work.
For invariants: none. The routing table is a filing convention, not a numbered invariant (MR-9).
What this decision does NOT do:
- It does not move or renumber any existing artefact. Every current path stays valid and citable.
- It does not normalise old front matter, add status lines to existing findings, or rewrite any existing decision (MR-7).
- It does not delete anything from atlas or any other store.
- It does not add the contract
knowledge:field. R4 is decided separately. - It does not choose the estate-wide home for skills.
References
Section titled “References”- mary-wiki/mary
docs/findings/20260907-1200-f-168-findings-are-consulted-by-accident.md(consulted by accident) - devarno-cloud/plays
plays/PLAY-005-knowledge-capture.md:30(lessons go to atlas) - devarno-cloud/devarno-cloud
AGENTS.xml:279(qa-scribewritesatlas/findings) docs/findings/20260911-1205-finding-status-not-modeled-in-repo-walker.md(no finding lifecycle)host/src/estate/domains.ts:78(hard-codedGOVERNED_PATHS)docs/decisions/2026-10-22-contract-knowledge-block.md(R4, sibling draft)- ATLAS Compaction plan, 2026-09-02: https://claude.ai/artifact/C3D9DHbC4K8VYRBbDDScBD
- The duplicate paths in the Context table, each verified with
git cat-file -e origin/main:<path>on 2026-10-22
Sign-off
Section titled “Sign-off”- Subagent: Claude Opus 5.5, 2026-10-22 (drafted from the operator’s 2026-10-22 rulings, atlas freeze and index, scope phases 0–4; paths read at each repo’s
origin/main; petrova-codes atedbfd044) - Human countersign — the routing table in §1, rules R1–R3, and the atlas freeze in §3; R4 is countersigned on its own decision — flight@arno.host, 2026-10-22 (jzero.run T1)
Countersigned by human:flight@arno.host on 2026-10-22 through jzero.run /approvals —
box ticked in commit 4cd7b20b on main, authored by the human: the routing table in §1, rules R1–R3 and the atlas freeze in §3 accepted as drafted. R4 is closed on its own decision, 2026-10-22-contract-knowledge-block.md.
Status flipped open→closed on 2026-10-22 by an agent as scribe (MR-7).