Repository navigation
Closed
Labels
kind:taskA task the plan skill rendered; the body carries ## TaskA task the plan skill rendered; the body carries ## Taskmodel:standardA standard model: work that needs care, or routine work that is largeA standard model: work that needs care, or routine work that is largesize:M200 to 500 net lines; one PR200 to 500 net lines; one PR
Description
Task
| slice | size | difficulty | model | who | estimated lines |
|---|---|---|---|---|---|
| Audit segments rotate and the chain is checked | M | needs care | standard | an agent | 400 (220 code, 180 tests) |
Editing one audit record makes
min doctorname where the chain breaks.
Covers:
- BEP-049
Layers:
- verify:
- crates/bep/src/audit.rs: chaining and verification as pure functions over bytes, apart from the writer
- scripts/kani.sh: the added harness's count
cargo nextest run -p bep prop_audit_chain_detects_unrecomputed_editcargo nextest run -p bep kani_audit_chain_detects_edit(deferred: kani)
- cli:
- crates/minimal/src/cli.rs:
min doctor - crates/minimal/src/cmd/mod.rs: dispatch and module line
- crates/minimal/src/cmd/doctor.rs (new): runs the audit chain check across every segment
cargo nextest run -p minimal doctor_reports_a_broken_audit_chain
- crates/minimal/src/cli.rs:
Waits on:
Plan block
### T34 — Report an edited audit chain in min doctor
slice: S5
kind: task
covers: BEP-049
size: M
est: 220 code, 180 tests
executor: agent
difficulty: needs care
model: standard
diagnostics: the chain check prints "Audit log: the hash chain breaks at record <n> of <segment>; a record was changed or removed." or "Audit log: chain verified." on stdout, pinned by prop_audit_chain_detects_unrecomputed_edit
observability: one info log line per check naming the segments verified and the outcome
layers:
- verify:
- crates/bep/src/audit.rs: chaining and verification as pure functions over bytes, apart from the writer
- scripts/kani.sh: the added harness's count
test: cargo nextest run -p bep prop_audit_chain_detects_unrecomputed_edit
test (deferred: kani): cargo nextest run -p bep kani_audit_chain_detects_edit
- cli:
- crates/minimal/src/cli.rs: `min doctor`
- crates/minimal/src/cmd/mod.rs: dispatch and module line
- crates/minimal/src/cmd/doctor.rs (new): runs the audit chain check across every segment
test: cargo nextest run -p minimal doctor_reports_a_broken_audit_chain
produces:
- crates/minimal/src/cmd/doctor.rs (entry point)
consumes: none
proof: Editing one audit record makes `min doctor` name where the chain breaks.
depends on:
- blocked by #2290
Reacted by minimal-foundry
Metadata
Metadata
Assignees
Labels
kind:taskA task the plan skill rendered; the body carries ## TaskA task the plan skill rendered; the body carries ## Taskmodel:standardA standard model: work that needs care, or routine work that is largeA standard model: work that needs care, or routine work that is largesize:M200 to 500 net lines; one PR200 to 500 net lines; one PR
Activity
minimal-foundry commentedon Oct 26, 2026
Done. #2603 merged.
branch
agent/2293-report-an-edited-audit-chain-in-min-doctor· epic #1501 · PR #2603856326f93efa82320c380b35e76ce36cc9d1c4c2934f4f6c9a16abae3ac8fa1da1bca977eb33a12cfee97caf360ce2e730edddd8b37f47b9Updated 2026-10-29T01:35:18.595Z.