I0302 — Record telemetry a provider reports, and refuse anything it did not
Add the command that attaches measured execution facts to the active task, accepting only values a provider actually reported and refusing any field the caller cannot attribute to a reporter.
BLOCKED wave 1 · p2 · implementation profile · runs alone
Part of execution-telemetry — Execution telemetry, only from providers that expose it honestly.
Blocked. This issue cannot start until I0301, milestone:execution-telemetry are done. The status is derived from that, not declared.
Objective
Add the command that attaches measured execution facts to the active task, accepting only values a provider actually reported and refusing any field the caller cannot attribute to a reporter.
Why
The tool never invokes a model, so it cannot measure a session itself; the numbers have to be handed to it. The boundary where they arrive is the only place their provenance can still be checked.
Current state
The record has a shape and nothing writes one.
Desired state
A worker or a wrapper hands measured facts to one command, they are validated and stored against the task, and a value with no reporter is refused with a finding that names the field.
Scope
- lib
- bin
Out of scope
- Any network call, poll, or background collection
- Deriving one field from another to fill a gap
Dependencies
What waits on this
Acceptance criteria
- Measured facts attach to the active task and survive into the completed record
- A field without a reporter, or with a reporter that is not named, is refused
- No code path fabricates, interpolates or defaults a measured value
- The command works with no network and leaves no background process
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
A provider's self-reported usage may itself be wrong; the record says who reported it so that a later correction has something to correct.
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/I0302.yaml. Read it back with majordomus plan show I0302.