Co to znamená
Milník je jeden soubor pod .ai/repo/project/milestones/, úkol je jeden soubor pod .ai/repo/project/issues/ a oba jsou ručně psané YAML ve stejné omezené podmnožině, jakou používá politika. Každý klíč v nich se kontroluje proti povolenému seznamu v share/allow/. Klíč, který nečte žádný kód, je selhání majordomus plan validate a majordomus doctor, ne komentář.
Princip
mj_project_load zploští každý soubor, odmítne ten, jehož deklarované id nesouhlasí s názvem souboru, a odmítne dva soubory, které si nárokují totéž id. mj_project_unknown_keys porovná každý zploštěný klíč s share/allow/project.txt, share/allow/milestone.txt nebo share/allow/issue.txt. Pravidlo je to samé, které se už používá pro policy.yaml a pro každý profil, takže v repozitáři existuje jediná odpověď na otázku „co se stane s polem, které nikdo nečte“.
Jak to vidět
printf 'estimate: 3d\n' >> .ai/repo/project/issues/I0001.yaml
majordomus plan validate
# FAIL schema I0001 — unknown keys: estimate [reproduce: majordomus plan validate]Co nepokrývá
Povolený seznam dokazuje, že klíč něco čte. Nedokazuje, že hodnota dává smysl: priority s hodnotou p9 se naparsuje, seřadí se na konec a není chybou nikoho.
Proč existuje
Každé pole, které existuje, ale nikdy se nečte, se nakonec objeví na webu jako fakt. Nejlevnější okamžik, kdy ho odmítnout, je ten, kdy se zapisuje.