Skip to content

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.

CANCELLED wave 1 · p2 · implementation profile · runs alone

Part of execution-telemetry — Execution telemetry, only from providers that expose it honestly.

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

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.

Completion report

Cancelled 2026-10-22 by I3287 as superseded by I3288: ADR 0213 receives a provider's usage through its official seam into the Rust economics fabric, not through a shell command a worker hands numbers to, so the command this issue planned in lib and bin is not built. Its criteria are carried into I3288: a field without a named reporter is refused and no code path fabricates, interpolates or defaults a measured value; measured facts attach to the work they served and survive into its completed record; the receiving needs no network beyond the loopback and leaves no background process of its own.

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.

Searches the titles and descriptions of every page this site publishes.