I1999 — Sledovaný soubor, který hook regeneruje, neodmítne úlohu, která se ho nikdy nedotkla
Nechat repozitář deklarovat sledované cesty, které si jeho vlastní nástroje přepisují, nechat `check` a `finish` posuzovat je jako práci stroje, ne pracovníka, a docílit, aby zjištění o rozsahu a o poznámce říkala, co je vyřeší, dřív než `finish` odmítne.
PŘIPRAVENO vlna 0 · p2 · profil implementation · bezpečné souběžně
Připraveno. Všechny závislosti jsou hotové, takže majordomus plan start I1999 bude přijato.
Cíl
Nechat repozitář deklarovat sledované cesty, které si jeho vlastní nástroje přepisují, nechat `check` a `finish` posuzovat je jako práci stroje, ne pracovníka, a docílit, aby zjištění o rozsahu a o poznámce říkala, co je vyřeší, dřív než `finish` odmítne.
Proč
Nahlásila relace adoptéra (progresus-isir) 2026-10-08 s majordomus 0.14.0: sedm sledovaných souborů je přepisováno hookem post-checkout při každém checkoutu, takže je každá úloha ukazovala jako změněné mimo rozsah a `check` selhával na práci, která se jich nikdy nedotkla. Prozatímní rada — uvést těch sedm souborů v --scope — byla změřena jako funkční: 0 selhání v `check` přes tři úlohy a dva `finish --outcome completed` (t-20261008121807-0d62, t-20261008123637-b728). Adoptéra stále zarazily dvě věci. `finish` navíc odmítl na majordomus.note-integrity, zatímco `check` ukázal řádek poznámky jen jako INFO, takže nic neřeklo, že nejdřív musí existovat předávka. A nález o rozsahu nedává žádný ukazatel na nápravu: 'obnov soubor' není náprava tam, kde ho hook ihned přepíše.
Aktuální stav
Kontrola rozsahu zachází se všemi změněnými sledovanými cestami stejně. Cesta, kterou hook regeneruje, musí být ručně jmenována v --scope každé úlohy. Nález rozsahu jmenuje cestu a nic, co by ji vyřešilo. `check` hlásí chybějící poznámku o dokončení jako INFO a `finish` na ní odmítne.
Cílový stav
Repozitář jednou deklaruje své strojově regenerované sledované cesty s důvodem a kontrola rozsahu hlásí změnu jedné z nich jako strojovou: pojmenovanou, nikoli selhávající a ne potichu zahozenou. Nález rozsahu na jakékoli jiné cestě uvádí dvě nápravy — pojmenovat cestu v rozsahu, nebo soubor přestat sledovat — a neradí obnovovat soubor, který repozitář deklaruje jako regenerovaný. `check` hlásí, co `finish` odmítne kvůli poznámce nebo předávce, se stejnou závažností, jakou používá `finish`, a jmenuje příkaz, který ji zapíše.
Rozsah
- bin/majordomus
- lib
- apps/majordomus-cli/src
- share/skeleton
- docs/CLI.md
- docs/ADOPTION.md
- test/cases
Závislosti
Žádné. Tento úkol je kořenem grafu.
Kritéria přijetí
- Repozitář, který deklaruje regenerovanou cestu, projde kontrolou `check` u úlohy, jejíž rozsah ji nejmenuje, a report jmenuje cestu i deklaraci, která ji pokrývá
- Změna nedeklarované cesty mimo rozsah stále selže v `check` a nález jmenuje obě nápravy
- Deklarace bez důvodu je odmítnuta
- Cokoli `finish --outcome completed` odmítne kvůli poznámce nebo handoveru, `check` předem hlásí jako selhávající s příkazem, který to vyrovná
- Shellový nástroj a spustitelný soubor v Rustu dávají pro stejný strom stejný verdikt
Validace
- bin/majordomus plan validate
- MJ_TEST_JOBS=4 bash test/run.sh <the case this issue adds>
Požadované důkazy
- regenerated_paths_scope_case
- check_reports_what_finish_refuses_case
Důkazy
Nic nezaznamenáno. Za každým tokenem výše musí stát příkaz nebo artefakt, než lze tento úkol dokončit; vyprávění se odmítá.
Časová osa
- zahájeno
- —
- ověřeno
- —
- dokončeno
- —
Tato tři pole, důkazy výše a stav závislostí jsou vše, z čeho se stav skládá. Neexistuje žádné pole stavu, které by s nimi mohlo být v rozporu.
Kanonický záznam: .ai/repo/project/issues/I1999.yaml. Přečtěte ho zpět pomocí majordomus plan show I1999.