Skip to content

I1022 — Drift in any derived surface fails the build

Extend the generation check to cover every artifact this milestone introduces — the graph, the static projection, the navigation, the indexes, the search data — so a stale committed projection cannot merge.

BLOCKED wave 4 · p0 · implementation profile · parallel safe

Part of capability-graph — One capability graph, two projections, and no second inventory of what this repository can do.

Blocked. This issue cannot start until I1007 is done. The status is derived from that, not declared.

Objective

Extend the generation check to cover every artifact this milestone introduces — the graph, the static projection, the navigation, the indexes, the search data — so a stale committed projection cannot merge.

Why

Generation without a check is a suggestion. This is the mechanism that makes every derived surface in this milestone actually derived.

Current state

The generation check covers the existing target set.

Desired state

The new artifacts are in the same set, and a drift failure names the source to change rather than the file that differs.

Scope

  • apps/majordomus-cli/src/generate.rs

Out of scope

  • A separate drift script for the new artifacts

Dependencies

What waits on this

Acceptance criteria

  • Every new artifact is part of the canonical target set and its check
  • A drift failure names the authoritative source to change, not only the generated file that differs
  • Generation is deterministic, so an unchanged repository never reports drift
  • CI executes the check on every change

Validation

  • majordomus generate --check
  • bash test/run.sh

Evidence required

  • drift_covered
  • source_named

Evidence

None recorded. Every token above needs a command or an artifact behind it before this issue can be completed; narrative is refused.

Risk

A non-deterministic generator turns this check into noise within a day, and the response to noise is to disable the check.

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/I1022.yaml. Read it back with majordomus plan show I1022.