Home / Projects / Orchestrata Ultimate / Decisions / ADR index / ADR-0102

ADR-0102: Three graph ADR nodes overwritten by a mis-targeted codetools sync are re-baselined from docs, and the codetools register gets its own graph key before any further sync

field value
Status Accepted — Accepted (ruling, Mohamed, 2026-10-13 21:12, verbatim: "agreed, next")
Date 2026-10-13
Register factory (docs/adr, 4-digit ids)
Source docs/adr/0102-three-graph-adr-nodes-overwritten-by-a-mis-targeted-codetools-sync-are-re-baselined-from-docs-and-the-codetools-register-gets-its-own-graph-key-before-any-further-sync.md — permalink at 9447d4fcc (unchanged on master since that commit)
Wiki register entry ADR-0102 (wiki status: Accepted)

← ADR-0101 · ADR-0103 →

The record

Status: Accepted (ruling, Mohamed, 2026-10-13 21:12, verbatim: "agreed, next") · Date: 2026-10-13 · Authorises --rebaseline-id for ADR-0035, ADR-0036 and ADR-0041 under ADR-0096's mechanism; constrains scripts/sync_architecture_to_graph.py until the project key lands

Context

At 20:21 on 2026-10-13 the coordinating session ran scripts/sync_architecture_to_graph.py --adrs <knowledge-wiki>/projects/codetools/decisions.md --repo-adrs <codetools>/docs/adr to give codetools' new ADR-0041 its graph home. The script has no project parameter: every id it reads is written under the orchestrata-ultimate: key. The codetools register (ADR-0019 to ADR-0041) therefore collided with this repository's ids. Observed from the run and the check that followed:

Graph node What happened
orchestrata-ultimate:ADR-0039, ADR-0040 Refused: the nodes are Accepted and the immutability guard blocked the body write (BODY_DRIFT … is immutable). Intact.
orchestrata-ultimate:ADR-0034 Overwritten with the codetools body, then restored by the corrective orchestrata sync at 20:23 (its status allowed the rewrite back). Intact now.
orchestrata-ultimate:ADR-0035, ADR-0036 Overwritten with the codetools bodies ("One release on disk…", "Builders stop at targeted evidence…"), which carry Status: Accepted; the restore run was then refused by the same guard. The graph now holds codetools text under this repository's ids.
orchestrata-ultimate:ADR-0041 Created from the codetools wiki entry; this repository's ADR-0041 ("Ruleset engine — per-surface immutable versions, named compositions (F1)") has only a wiki record, so the restore did not rewrite it.

scripts/check_adr_graph_sync.py reports FAIL — 3 violation(s) across 126 id(s): title DRIFT on ADR-0035, ADR-0036 and ADR-0041. The script's --rebaseline-id refuses any id its --authority ADR does not name (ADR-0096), so the repair needs a ruling that names the three.

The underlying defect: a register that is not this repository's has no place in the graph under this script. The worktree orchestrata-ultimate-adrsync (branch ws/adr-sync-project-flag) holds work toward a project key; until it lands, codetools ADRs have two homes (docs, wiki), not three.

Decision (proposed)

  1. Re-baseline the three nodes from this repository's records. scripts/sync_architecture_to_graph.py --rebaseline-id ADR-0035 --authority ADR-0102, the same for ADR-0036, each from docs/adr/; ADR-0041 from the wiki project register (projects/orchestrata-ultimate/decisions.md), since it has no docs record. check_adr_graph_sync.py must then report no violation across the 126 ids.
  2. No codetools sync into this graph until the project key exists. The codetools register's graph home is deferred, recorded in codetools ADR-0041's consequences by this id. Landing the project key (ws/adr-sync-project-flag) is a normal slice under ADR-0046/0047; when it lands, codetools ADRs sync under their own key and this rule expires.
  3. The sync refuses a foreign register. sync_architecture_to_graph.py --adrs PATH and --repo-adrs DIR refuse any path outside this repository and its own wiki page ($WIKI_ROOT/projects/orchestrata-ultimate/decisions.md) with a message naming this ADR, until a project key makes a foreign path meaningful.

Alternatives rejected

Consequences

Provenance

Coordinating session's own error at 20:21 on 2026-10-13, found by the check it ran at 20:23; sync and check output quoted above. Mechanism: ADR-0096 (--rebaseline-id with --authority), ADR-0098 (first-capture). Drafted by the coordinating session; awaiting Mohamed's ruling.

Rulings cited

None.

Specs cited

None (or no spec page exists for the ones named).