I1112 — What touches the root is two small blocks, and they never change again
Reduce every root-level integration to a small, stable, machine-owned bridge: a managed block in the agent document that points at the layer, and — when direnv is wanted — one line that sources the environment integration.
BLOCKED wave 5 · p0 · implementation profile · parallel safe
Blocked. This issue cannot start until I1109 is done. The status is derived from that, not declared.
Objective
Reduce every root-level integration to a small, stable, machine-owned bridge: a managed block in the agent document that points at the layer, and — when direnv is wanted — one line that sources the environment integration.
Why
Root files are where an integration becomes visible and where it becomes a nuisance. A bridge that carries no logic never has to change, which means an upgrade touches nothing a person has to re-approve.
Current state
Root documents carry generated blocks whose content is regenerated as the layer changes, and provider bootstraps are written to the root.
Desired state
A bridge names where the truth lives and stops. Upgrading Majordomus does not rewrite it, because there is nothing version-dependent inside it.
Scope
- AGENTS.md
- .envrc
Out of scope
- Repository-domain logic in any root file
- A bridge whose content depends on the version of the tool that wrote it
Dependencies
What waits on this
- I1113BLOCKED Entering a directory is local, bounded and silent about the network
- I1114BLOCKED A provider is an adapter over the model, and adding one is an implementation
- I1116BLOCKED This repository's own footprint moves, through the reconciler
- I1121BLOCKED Every surface shows the integration from the one model
Acceptance criteria
- Each bridge is bounded by markers, recorded in the ledger, and carries no logic — only a reference to where the canonical material lives
- Upgrading the tool leaves the bridges byte-identical, proved by reconciling with a newer version against an older adoption
- A bridge is created only when the surface genuinely requires a root file; where a tool can be configured programmatically, nothing is written
- The environment bridge is one stable line whose target lives under `.majordomus/`
Validation
- majordomus init --dry-run
- bash test/run.sh
Evidence required
- bridges_minimal
- stable_across_versions
Evidence
None recorded. Every token above needs a command or an artifact behind it before this issue can be completed; narrative is refused.
Risk
Every provider that wants a root file argues that its file is special. The answer is the same one: the file is an adapter, and its content is derived.
Timeline
- started
- —
- verified
- —
- completed
- —
Those three fields, the evidence above and the state of the dependencies are all the status is made of. There is no status field to disagree with them.
Canonical record: .ai/repo/project/issues/I1112.yaml. Read it back with majordomus plan show I1112.