I0701 — Reproduce the misattribution as an executable case
Write a behavioural case in which two workers share one checkout — one starts a task, the other records a decision — and assert what happens today, so that the defect stops being an anecdote and becomes something a command demonstrates.
READY wave 0 · p1 · debugging profile · parallel safe
Part of M002 — A durable record names the worker that wrote it.
Ready. Every dependency is done, so majordomus plan start I0701 will be accepted.
Objective
Write a behavioural case in which two workers share one checkout — one starts a task, the other records a decision — and assert what happens today, so that the defect stops being an anecdote and becomes something a command demonstrates.
Why
This was found by three sessions colliding in one evening, which is a story rather than a test. A characterisation case is what makes the fix provable and what turns the eventual behaviour change red if it regresses.
Current state
decision, checkpoint and question resolve the active task from .majordomus/state/current.yaml. Nothing in test/cases exercises a second worker writing while somebody else's task is active.
Desired state
A case runs the sequence in a disposable repository, asserts that the record is attributed to the active task rather than to the worker that wrote it, and says in a comment that this is the gap being characterised rather than the behaviour being blessed.
Scope
- test/cases
Out of scope
- Any change to lib/decision.sh, lib/checkpoint.sh or lib/question.sh
Dependencies
None. This issue is a root of the graph.
What waits on this
Acceptance criteria
- The case starts a task, then records a decision as a second worker, and reaches an entry in decisions.md
- It asserts the current attribution explicitly and marks it in a comment as the gap, not the goal
- It covers checkpoint and question as well as decision, or says why they are out of its reach
- It runs in a disposable repository like every other case
Validation
- bash test/run.sh
Evidence required
- gap_reproduced
Evidence
None recorded. Every token above needs a command or an artifact behind it before this issue can be completed; narrative is refused.
Risk
A characterisation test that pins the wrong behaviour is a trap unless the comment saying so is unmissable; that comment is the whole safety mechanism.
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/I0701.yaml. Read it back with majordomus plan show I0701.