M002 — Trvalý záznam jmenuje pracovníka, který jej zapsal
Trvalý záznam buď jmenuje pracovníka, který ho vytvořil, nebo se odmítne, a záznam zapsaný z jedné relace nemůže nikdy dorazit připsaný úloze jiné relace.
AKTIVNÍ 2 of 4 issues done · this is the active milestone
- připraveno
- 1
- blokováno
- 1
- aktivní
- 0
- verify
- 0
- hotovo
- 2
- zrušeno
- 0
Problém
Každý trvalý záznam je připsán úloze, která je v checkoutu aktivní, protože rozhodnutí, checkpoint i otázka čtou .majordomus/state/current.yaml, aby zjistily, čí práci patří. Jeden checkout sdílí několik pracovníků, takže záznam jmenuje toho, kdo tam úlohu spustil, ne toho, kdo spustil příkaz. Za jediný večer tři relace zapsaly pod aktivní úlohu jiné relace a jedno rozhodnutí se muselo dodatečně ručně zahodit, protože premisa, kterou zaznamenalo, patřila někomu jinému. Připsání je jediná vlastnost záznamu, kterou nelze později rekonstruovat: konverzace, která by ji rozhodla, je pryč.
Výsledek
Trvalý záznam buď jmenuje pracovníka, který ho vytvořil, nebo se odmítne, a záznam zapsaný z jedné relace nemůže nikdy dorazit připsaný úloze jiné relace.
Aktuální stav
Nezačato. lib/decision.sh, lib/checkpoint.sh a lib/question.sh každý určí aktivní úlohu z checkoutu a zapíšou ji do záznamu. Nic nerozliší dva workery sdílející tento checkout a nic nehlásí, že to nedokáže.
Cílový stav
Přičtení je ověřitelné ze samotného záznamu. Kde nástroj nedokáže zjistit, kdo něco napsal, řekne to a odmítne, místo aby hádal z toho, co je právě aktivní.
Rozsah
- lib
- podíl
- test/cases
- dokumentace
Mimo rozsah
- Registr pojmenovaných pracovníků, person nebo agentů
- Jakákoli identita, kterou musí repozitář udržovat nebo která přežije relaci, jež ji použila
- Zamknutí checkoutu jednomu workerovi
Kritéria přijetí
- Záznam zapsaný, zatímco je aktivní úloha jiného workera, je správně přičten nebo odmítnut jménem
- Přiřazení lze ověřit z jediného záznamu, bez historie konverzace
- Nezavádí se žádný nový typ záznamu ani registr workerů
- Behaviorální případ reprodukuje dva pracovníky zapisující do jednoho checkoutu
Validace
- bash test/run.sh
- bin/majordomus doctor
Požadované důkazy
- sada testů
Rizika
- Samozřejmá oprava je identita, kterou nástroj udržuje, což je registr pojmenovaných pracovníků pod jiným jménem a všude jinde v tomto repozitáři se odmítá. Cokoli se zvolí, musí dodat relace a uložit se jen uvnitř záznamu, který vysvětluje.
- Odmítnutí zapsat nepřiřaditelný záznam může ztratit rozhodnutí, které se někdo snažil učinit. Odmítnutí musí říct, co spustit místo toho, ve stejném dechu.
Úkoly
Každý z nich je prováděcí kontrakt s vlastními kritérii přijetí, validačním příkazem a požadovanými důkazy. Sloupec wave je vrstva grafu závislostí, v níž úkol leží.
| issue | status | vlna | závisí na | název |
|---|---|---|---|---|
| I0701 | HOTOVO | 0 | — | Reprodukovat chybné přiřazení jako spustitelný případ |
| I0702 | HOTOVO | 1 | I0701 | Rozhodnout, jak se záznam připisuje, mezi pojmenovanými alternativami |
| I0703 | PŘIPRAVENO | 2 | I0702 | Implementovat rozhodnutí a prokázat, že platí |
| I0704 | BLOKOVÁNO | 3 | I0703 | Zveřejnit, co atribuce zaručuje a co stále nedokáže |
Graf
flowchart LR
I0701["I0701<br/>Reproduce the misattribution as an executable case"]:::done
I0702["I0702<br/>Decide how a record is attributed, between named alternatives"]:::done
I0703["I0703<br/>Implement the decision and prove it holds"]:::ready
I0704["I0704<br/>Publish what attribution guarantees, and what it still cannot"]:::blocked
I0701 --> I0702
I0702 --> I0703
I0703 --> I0704
classDef done stroke:#16a34a,fill:#dcfce7,color:#14532d,stroke-width:2px
classDef active stroke:#2563eb,fill:#eff6ff,color:#1e3a8a,stroke-width:2px
classDef verify stroke:#7c3aed,fill:#f5f3ff,color:#4c1d95,stroke-width:2px
classDef ready stroke:#0891b2,fill:#ecfeff,color:#164e63,stroke-width:2px
classDef planned stroke:#0891b2,fill:#ecfeff,color:#164e63,stroke-width:2px
classDef blocked stroke:#b45309,fill:#fffbeb,color:#78350f,stroke-width:2px
classDef cancelled stroke:#6b7280,fill:#f9fafb,color:#374151,stroke-width:2px
classDef superseded stroke:#6b7280,fill:#f9fafb,color:#374151,stroke-width:2pxKanonický záznam: .ai/repo/project/milestones/M002.yaml. Přečtěte jej zpět pomocí majordomus plan show M002.