Skip to content

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

Part of two-folder-integration — A repository that adopts Majordomus gains two directories and two lines, and can give them back.

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

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.