# E-036 — The coverage KPI counted workflow events as edits

## Context and hierarchy

- Date: 2026-08-11.
- Main objective: make Objective Guard telemetry KPIs statistically valid and operationally interpretable.
- Round objective: correct the preflight coverage denominator and isolate workflow telemetry from edit observations.
- Product question: whether reported coverage actually measured observed edits with preflight.

## Observed trajectory and evidence

Reviewing the inventory showed that `deriveKpis` calculated post events as `report.events - pre_edit.total`. That set included `PostToolUse` and `task-flow`, so the KPI mixed edits with workflow events. The registered inventory contained 255 `PreToolUse`, 326 `PostToolUse`, and 69 `task-flow` events.

## Expected and actual guard behavior

Expected: `preflight_coverage` should compare observed edit attempts with their corresponding pre-edit events.

Actual: the denominator included every event that was not `PreToolUse`. Coverage was artificially low and `observed_structured_edits` did not describe an edit count.

## Classification, correction, and limits

This is an observability-statistics false negative, not a code-detector failure. The correction derives `edit_observations` exclusively from `PostToolUse` events, excludes `task-flow` from the denominator, and adds regression tests for both cases.

The correction assumes that `PostToolUse` represents an edit observation in the current hooks; it does not prove that every possible write mechanism is instrumented.

## Impact on the thesis and follow-up

The signal reduces confidence in historical coverage figures: the value moved from approximately 63% to 75.22% on the same inventory after removing workflow contamination. Historical values should be reinterpreted, not compared directly with new values without a semantic-version label.

Verifiable follow-up: version the KPI schema or label the definition change in historical exports, then measure `PostToolUse`-to-`PreToolUse` coverage per harness.
