I3391 — The T5 protocol registers three fault kinds, the trials each needs and what a trial must show, before any fault is injected
Register the T5 trials protocol in .ai/repo/benchmarks/proof-plan.yaml: fault kinds worker_killed_mid_task, connection_cut_in_flight and two_workers_same_work, the trials per kind (owner decision), all_must_pass, and the record fields (fault, injected_at, recovered_at, seconds_to_accepted_finish, lost_commits, duplicate_completions, stranded_claims, multiply_consumed_handovers, outcome, where it ran). Document the procedure in a T5 section of docs/MESH.md: faults are injected by exact pid in throwaway clones, and a killed session's uncommitted edits are out of what the trial counts.
BLOCKED wave 2 · p1 · docs profile · parallel safe
Blocked. This issue cannot start until I3352, I3353, I3390 are done. The status is derived from that, not declared.
Objective
Register the T5 trials protocol in .ai/repo/benchmarks/proof-plan.yaml: fault kinds worker_killed_mid_task, connection_cut_in_flight and two_workers_same_work, the trials per kind (owner decision), all_must_pass, and the record fields (fault, injected_at, recovered_at, seconds_to_accepted_finish, lost_commits, duplicate_completions, stranded_claims, multiply_consumed_handovers, outcome, where it ran). Document the procedure in a T5 section of docs/MESH.md: faults are injected by exact pid in throwaway clones, and a killed session's uncommitted edits are out of what the trial counts.
Why
T5 of the owner's report of 2026-10-19. Registering the trial count and what counts as recovery before injecting faults keeps the result from being chosen afterwards.
Current state
docs/MESH.md documents the mesh lab; no fault protocol is registered.
Desired state
The T5 protocol validates; T5 reads not_run with reason no counted record.
Scope
- .ai/repo/benchmarks
- docs/MESH.md
Out of scope
- Injecting faults (I3392, I3393)
Dependencies
- I3352BLOCKED The six proof tests are registered, each with the claim it settles and its instrument, and none carries a protocol yet
- I3353BLOCKED A trial is a typed record that carries its protocol's digest, refuses what the protocol does not declare, and redacts what its publication basis does not permit
- I3390BLOCKED One conservation reading counts completions per issue, unreachable task commits, stranded claims and multiply-consumed handovers, each violation with its records
What waits on this
- I3392BLOCKED The mesh lab injects the three faults into work in progress, and its evidence holds the conservation reading of each scenario
- I3393BLOCKED Each fault is injected into real coding-agent sessions on one host, and each trial's recovery and conservation reading are committed
Acceptance criteria
- The protocol validates with its digest
- The trials per kind cite a recorded owner decision
- docs/MESH.md states the exact-pid rule and what a trial counts
Validation
- majordomus economics proof
- cargo test --manifest-path apps/majordomus-cli/Cargo.toml --test economics
- majordomus plan validate
Evidence required
- t5_protocol_registered
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/I3391.yaml. Read it back with majordomus plan show I3391.