Skip to content

I0602 — Make a local override explicit and prove it survives an update of the shared source

Define how a repository overrides part of a shared policy, require the override to be declared rather than inferred from a value differing, and prove with a case that updating the shared source leaves the override standing.

BLOCKED wave 1 · p3 · implementation profile · runs alone

Part of shared-policy — Shared policy across repositories and workers.

Blocked. This issue cannot start until I0601, milestone:shared-policy are done. The status is derived from that, not declared.

Objective

Define how a repository overrides part of a shared policy, require the override to be declared rather than inferred from a value differing, and prove with a case that updating the shared source leaves the override standing.

Why

An override that looks like an ordinary key is indistinguishable from a stale copy. Declaring it is what lets the drift report tell a deliberate exception from an accident.

Current state

A shared source can be named and resolved. Anything a repository writes locally either wins or loses by a rule nobody has written down.

Desired state

Overrides are declared, the merge order is documented and tested, and a shared source that changes underneath a repository does not silently take an override away.

Scope

  • lib
  • share
  • docs

Out of scope

  • Overriding a rule the shared policy declares non-overridable, if such a class is introduced later

Dependencies

What waits on this

Acceptance criteria

  • An override is a declaration, and a local value that differs without one is a finding
  • The merge order is documented and covered by a case
  • A case updates the shared source and shows the override still applies

Validation

  • bash test/run.sh

Evidence required

  • suite

Evidence

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

Risk

Merge semantics are where shared configuration usually becomes unexplainable; the documented order and its case are the whole defence.

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