Přeskočit na obsah

Tato stránka byla automaticky přeložena z angličtiny, jediného jazyka, ve kterém se tento web píše. Číst originál.

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ží.

issuestatusvlnazávisí naná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

graf závislostí M002z .ai/repo/project
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:2px

Kanonický záznam: .ai/repo/project/milestones/M002.yaml. Přečtěte jej zpět pomocí majordomus plan show M002.

Prohledává názvy a popisy všech stránek, které tento web publikuje.