Skip to content

I2866 — Each node of a measured derive reports its fingerprint, cache status and times, and each run its critical path and peak memory

Have a measured derive report, per node, its input fingerprint, cache status, run and queue time in milliseconds, outputs and changed-output count; and per run, wall time, CPU time, critical path, subprocess count and peak memory, with cargo overhead apart from the derivation.

BLOCKED wave 1 · p2 · implementation profile · runs alone

Part of a-derive-does-only-the-work-its-inputs-changed — A derive does only the work its inputs changed, and can say why.

Blocked. This issue cannot start until I2521 is done. The status is derived from that, not declared.

Objective

Have a measured derive report, per node, its input fingerprint, cache status, run and queue time in milliseconds, outputs and changed-output count; and per run, wall time, CPU time, critical path, subprocess count and peak memory, with cargo overhead apart from the derivation.

Why

Split from I2521 on 2026-10-21 (3e with a3). These were the 2026-10-18 amendment to I2521's desired state. They are new instrumentation in the crate's bench module, not a measurement of the present derive, and need a build and tests of their own.

Current state

scripts/derive records whole-stage durations only (I2521's second slice). Nothing reports per-node fingerprints, cache status or queue time, and no run reports a critical path, subprocess count or peak memory.

Desired state

A measured derive's report carries every per-node and per-run field above, and a test pins their presence and units.

Scope

  • apps/majordomus-cli/src/bench
  • scripts/derive
  • .ai/repo/project/issues/I2866.yaml

Out of scope

  • Changing what any generator writes
  • Budgets or gates on the measured durations

Dependencies

Acceptance criteria

  • Each node of a measured run reports its input fingerprint, cache status, run and queue time in milliseconds, outputs and changed-output count
  • Each run reports wall, CPU, critical path, subprocess count and peak memory, with cargo overhead apart from the derivation
  • A test fails when any of those fields is missing or carries the wrong unit

Validation

  • bin/majordomus plan validate
  • cargo test --manifest-path apps/majordomus-cli/Cargo.toml bench

Evidence required

  • derive_node_metrics

Evidence

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

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

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