# E-026 — The required KPI policy fell outside the round's scope

- Date: 2026-08-03
- Status: organic boundary signal detected; the contract was not retroactively expanded.

## Objective hierarchy

- Main objective: detect deterministic drift with an early, traceable signal.
- Product objective: make KPI usage a mandatory part of the flow prior to a structured edit.
- Round: `R-EVIDENCE-CONTEXT`, aimed at comparable evidence and awareness via `task-flow`.

## Observed trajectory

The implementation added `oguard.kpis.json` as a versioned policy, and linked its hash to the preflight: changing the policy forces `task-flow` to be run again before editing. The round's contract declared code, tests, documentation, and `oguard.contract.json`, but not the new policy file.

The closing `align` measured seven files, 59 lines of churn, and `outside_scope_files = [oguard.kpis.json]`; scope coverage was `0.857143`. The rest of the evidence did contribute to the declared KR.

## Expected and actual behavior of the guard

The introduction of a new governance artifact was expected to force a review of the round's boundary. The guard preserved it as out-of-scope surface and flagged `declared_deviation: true`. Since the active policy was `observe`, it did not emit a warning or block the close: the result is not a strategic approval, but a traceable observation.

`oguard.contract.json` was not edited after the diff to include the file. Doing so would have turned a prospective signal into a retrospective accommodation, exactly the risk documented in E-003.

## Evidence

- Output of `node src/cli.mjs align --json` from 2026-08-03: seven files, out-of-scope ratio `0.142857`, and `oguard.kpis.json` as the only external path.
- `test/pre-edit-gate.test.mjs`: tests that a policy change invalidates the previous preflight.
- `node src/cli.mjs task-flow --json`: policy loaded, hash persisted, and `unknown` result due to zero samples, with no artificial block.

## Classification and limits

This is an organic scope signal, not a true positive from a semantic rule, nor a demonstration that KPIs reduce drift. It also shows a limit of `observe`: it records the boundary without forcing a pause. Whether it is worth promoting this condition to `warn` requires more cases, so as not to penalize legitimate configurations.

## Impact on the thesis

The case supports a bounded thesis: a path contract can make visible a governance artifact the agent did not anticipate. It does not allow inferring token savings, functional correctness, or global strategic sensitivity. It keeps in force the caution that a close without a warning does not equate to the absence of deviation.

## Verifiable follow-up

In the next round that adds a versioned governance artifact, declare it before the first change and compare the result against this episode. Evaluate a `warn` policy for external paths only after labeling several legitimate and deviant cases.
