Skip to content

I0827 — The benchmark policy block

Declare benchmark.samples, benchmark.warmup, benchmark.timeout_seconds, benchmark.cache_max_entries, benchmark.regression.p50/p95/p99 and benchmark.budget.doctor_ms in the policy, its allow-list and the skeleton, with no reader-side default.

DONE wave 2 · p0 · implementation profile · runs alone

Part of M004 — Performance is executable evidence, and the hot path does no canonical work twice.

Objective

Declare benchmark.samples, benchmark.warmup, benchmark.timeout_seconds, benchmark.cache_max_entries, benchmark.regression.p50/p95/p99 and benchmark.budget.doctor_ms in the policy, its allow-list and the skeleton, with no reader-side default.

Why

Repeated constants in code are the thing majordomus.policy-completeness exists to refuse.

Current state

The policy has no benchmark keys.

Desired state

One block, documented in docs/SCHEMAS.md, read by bench, the cache and the budget check.

Scope

  • share/allow/policy.txt
  • share/skeleton/policy.yaml
  • .ai/repo/policy.yaml
  • docs/SCHEMAS.md
  • lib/doctor.sh

Dependencies

What waits on this

Acceptance criteria

  • doctor's policy-completeness check passes with the new keys
  • An unknown benchmark key is refused

Validation

  • bin/majordomus doctor

Evidence required

  • docs_integrated

Evidence

coverstypecommandresultat commit
docs_integratedtestbin/majordomus doctorshare/schemas/policy.schema.json declares benchmark.samples, benchmark.warmup, benchmark.regression.{p50,p95,p99} and benchmark.budget.{doctor_ms,watch_ms}; share/allow/policy.txt is regenerated from it by the Rust generate command and generate --check reports in sync; share/skeleton/policy.yaml and .ai/repo/policy.yaml carry the block; doctor reports every policy key the code reads as declared, with the key scanner widened to keys carrying digits; docs/SCHEMAS.md documents the keysnext

Risk

The peer branch generates allow-lists from schemas; the keys are added in the anchored one-per-line form so the fold is mechanical.

Timeline

started
2026-09-05T03:33:10Z
verified
2026-09-05T03:33:10Z
completed
2026-09-05T03:33:10Z

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