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
| covers | type | command | result | at commit |
|---|---|---|---|---|
| docs_integrated | test | bin/majordomus doctor | share/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 keys | next |
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.