Co to znamená
.ai/repo/policy.yaml čte parser, který přesně ví, které klíče se smějí objevit na každé úrovni. Klíč, který nezná — překlep, pole z novější verze, pole, které si někdo vymyslel — je chyba, ne tichá no-op. Totéž pravidlo platí pro každý soubor profilu.
Princip
lib/common.sh nese malý parser YAML napsaný pro podmnožinu, kterou politika používá: vnořené mapy, blokové seznamy, seznamy map, inline seznamy, uvozené skaláry a komentáře. Soubor zploští na řádky dotted.path=value. lib/doctor.sh pak porovná každý klíč se seznamem povolených regulárních výrazů v share/allow/policy.txt (a share/allow/profile.txt pro profily). Každý klíč bez shody se hlásí se souborem a názvem klíče. Parser odmítá, co nedokáže poctivě reprezentovat — tabulátory, kotvy, flow mapy, víceřádkové skaláry — místo aby hádal.
Jak to vidět
echo "nonsense: 1" >> .ai/repo/policy.yaml
majordomus doctor
# FAIL policy .ai/repo/policy.yaml — unknown keys: nonsense [reproduce: grep -nE 'nonsense' .ai/repo/policy.yaml]Co nepokrývá
Hodnoty se validují jen tam, kde je příkaz potřebuje (doba trvání, číslo, název profilu). Dobře utvořený klíč s nepravděpodobnou hodnotou projde parserem a selže později v příkazu, který ho čte, se zprávou onoho příkazu.
Proč existuje
Dva agenti znovu vstoupili do lintovaného katalogu ve zdrojovém prostředí a nesli čtyři vymyšlené klíče frontmatter a datovaný pin modelu; nic je nezastavilo, protože neznámé klíče se ignorovaly. Konfiguračnímu formátu, který přijme cokoli, nelze věřit, že cokoli řekl.