I0701 — Reprodukovat chybné přičtení jako spustitelný případ
Napsat behaviorální případ, ve kterém dva workeři sdílejí jeden checkout — jeden spustí úlohu, druhý zaznamená rozhodnutí — a ověřit, co se děje dnes, aby se defekt přestal být anekdotou a stal se věcí, kterou příkaz předvede.
HOTOVO vlna 0 · p1 · profil debugging · bezpečné paralelně
Součást M002 — A durable record names the worker that wrote it.
Cíl
Napsat behaviorální případ, ve kterém dva workeři sdílejí jeden checkout — jeden spustí úlohu, druhý zaznamená rozhodnutí — a ověřit, co se děje dnes, aby se defekt přestal být anekdotou a stal se věcí, kterou příkaz předvede.
Proč
Našly to tři relace, které se v jeden večer srazily, což je spíš příběh než test. Charakterizační případ je to, co činí opravu doložitelnou a co zčervená případnou změnu chování, kdyby regresovala.
Aktuální stav
decision, checkpoint a question určují aktivní úlohu z .majordomus/state/current.yaml. Nic v test/cases neprověřuje druhého workera zapisujícího, zatímco je aktivní úloha někoho jiného.
Cílový stav
Případ spustí sekvenci v jednorázovém repozitáři, tvrdí, že záznam je připsán aktivní úloze, ne pracovníkovi, který jej zapsal, a v komentáři říká, že jde o charakterizovanou mezeru, ne o požehnání chování.
Rozsah
- test/cases
Mimo rozsah
- Jakákoli změna lib/decision.sh, lib/checkpoint.sh nebo lib/question.sh
Závislosti
Žádné. Tento úkol je kořenem grafu.
Co na tom čeká
Kritéria přijetí
- Případ spustí úlohu, pak zaznamená rozhodnutí jako druhý worker a dostane se k položce v decisions.md
- Výslovně potvrzuje současné přiřazení a v komentáři ho označuje jako mezeru, ne cíl
- Pokrývá checkpoint a question stejně jako decision, nebo říká, proč jsou mimo jeho dosah
- Běží v jednorázovém repozitáři jako každý jiný případ
Validace
- bash test/run.sh
Požadované důkazy
- gap_reproduced
Důkazy
| pokrývá | typ | command | výsledek | u commitu |
|---|---|---|---|---|
| gap_reproduced | test | bash test/run.sh 3049_a_second_workers_record_lands_on_the_first_workers_task | tests: 1 passed, 0 failed, 0 skipped; worker B's decision, question and checkpoint are filed under worker A's task and none names worker B (gap pinned) | c0e3585 |
Riziko
Charakterizační test, který zafixuje špatné chování, je past, pokud komentář, který to říká, není nepřehlédnutelný; ten komentář je celý bezpečnostní mechanismus.
Časová osa
- zahájeno
- 2026-10-15T00:47:59Z
- ověřeno
- —
- dokončeno
- 2026-10-15T00:48:23Z
Tato tři pole, důkazy výše a stav závislostí jsou vše, z čeho se stav skládá. Neexistuje žádné pole stavu, které by s nimi mohlo být v rozporu.
Kanonický záznam: .ai/repo/project/issues/I0701.yaml. Přečtěte jej zpět pomocí majordomus plan show I0701.