Co to znamená
Každý úkol deklaruje evidence_required: tokeny pojmenovávající důkazy, na nichž závisí jeho dokončení. majordomus plan evidence připojí jeden důkaz k jednomu z těchto tokenů a odmítne token, který úkol nedeklaruje. majordomus plan done odmítne, dokud je některý token nepokrytý. Úkol, který má nastaveno completed_at, ale jehož důkazy jsou neúplné, odvodí VERIFY, nikdy DONE.
Princip
mj_plan_evidence připojí důkaz k vlastnímu souboru úkolu, s commitem a časovým razítkem, a odmítne bez --command nebo --artifact: vyprávění se jako důkaz nepřijímá. mj_plan_transition zkontroluje každý deklarovaný token před zápisem completed_at. lib/project.awk přepočítá pokrytí při každém čtení, takže odstranění důkazu vrátí úkol do VERIFY, aniž by někdo upravoval stav.
Jak to vidět
majordomus plan done I0001
# majordomus: I0001 has no evidence for: proof (run: majordomus plan evidence I0001 --covers <token> ...)
majordomus plan evidence I0001 --covers proof --type test --command "bash test/run.sh" --result "32 passed"
majordomus plan done I0001
# plan: I0001 DONECo nepokrývá
Nástroj zaznamená příkaz a to, co worker řekl, že vyprodukoval. Příkaz znovu nespouští a nepozná pravdivý výsledek od napsaného. Hash commitu uložený vedle důkazů je to, co umožňuje nepravdivý výsledek dodatečně prověřit.
Proč existuje
Uzavření tiketu není důkaz, že se práce stala. Kontrola existuje proto, aby „hotovo“ stálo jeden příkaz.