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.

Znovu se přít o rozhodnutí, které bylo uzavřeno minulý týden

Rozhodnutí, jehož důvod žil jen v konverzaci, nelze přezkoumat, jen znovu obhajovat — a to workerem s méně informacemi, než měl ten první.

→ sledoval, jak relace vrátila rozhodnutí z minulého týdne, z důvodu, pro který bylo učiněno

cena, když k tomu dojde
vysoká
jak často
běžné

Okamžik

Minulé úterý se tým dohodl normalizovat callback URI před porovnáním a vyloučil uvolnění porovnání, protože to by přijalo padělané stavy. Dnes čerstvá relace, hledící na stejný nesoulad, porovnání uvolní. Je to rozumná oprava. Je to ta, která byla vyloučena.

Proč k tomu dochází

Rozhodnutí padlo v konverzaci a důvod pro ně také. Další relace nemá ani jedno. Má kód, který vypadá jako nevysvětlené omezení, a silný předpoklad ve prospěch zřejmé změny. Rozhodnutí bez zaznamenaného důvodu nelze revidovat, jen znovu obhajovat — a relace je znovu obhajuje od nuly, s méně informacemi než ta první. Otázka, která měla zastavit merge („potřebuje starý mobilní callback ještě starou podobu?“), byla věta v poznámce předávky, kterou nikdo nebyl povinen číst.

Proč to lepší model nevyřeší

Úvaha druhé relace byla správná. Při přísném porovnání, neshodě a bez zaznamenaného důvodu přísnosti je uvolnění porovnání správný závěr. Chybějícím vstupem nebyla inteligence, ale věta „tohle jsme zamítli a tohle by to propustilo“.

Co to stojí

Přepracování, plus bezpečnostní regrese, kterou přepracování znovu zavede, plus hádka, až si toho někdo všimne. Nejhorší je, že druhé rozhodnutí se obvykle dělá s menším kontextem než první, takže repozitář směřuje k té odpovědi, ke které se nejsnáz dojde jen z kódu.

Co Majordomus dělá

majordomus decision add zaznamená, co bylo rozhodnuto, a vyžaduje --why; rozhodnutí bez důvodu se odmítne, protože důvod je to, co další relace potřebuje. --rejected zaznamená alternativu, která byla vyloučena, a --evidence kam se podívat. Id úlohy a git head se počítají, nikdy nepíší. Záznam se nikdy neupravuje ani nemaže: --supersedes zaznamená, že pozdější rozhodnutí nahradilo dřívější, a odmítne text, který neodpovídá žádnému zaznamenanému rozhodnutí, takže náhrada vždy ukazuje na něco skutečného. Profil deep-work činí záznam rozhodnutí podmínkou finish.

Otázka, na kterou je třeba odpovědět, než lze práci přijmout, není věta v poznámce. majordomus question add ji otevře jako řádek, který nástroj umí číst; finish --outcome completed odmítá, dokud nějaká nevyřešená otázka jmenuje úlohu, a záznam, který kontrola neumí zpracovat, je selhání, ne průchod. Otázka blokuje dál, i když je práce předána nové úloze, a majordomus context vytiskne každou otevřenou otázku nad autorskými záznamy.

Před a po

before   the reason existed in a conversation that ended

after    majordomus decision add "Normalise the callback URI before comparing state" \
           --why "the mismatch is a trailing slash, not a forged state parameter" \
           --rejected "relaxing the comparison, which would accept forged states"
         # the next session is assembled with it, and `search` finds it

Jak to ověřit

Zkuste zaznamenat rozhodnutí bez --why: odmítne se. Zaznamenejte jedno se zamítnutou alternativou a přečtěte je zpět pomocí decision list a search; id úlohy a head byly spočteny z gitu, ne napsány.

Co nedělá

Nic nerozhoduje a nehodnotí důvod; slabý důvod v záznamu je pořád v záznamu, což ho činí přezkoumatelným. Nebrání pracovníkovi provést změnu, která odporuje rozhodnutí — staví rozhodnutí, jeho důvod a jeho zamítnutou alternativu před pracovníka dřív, než práce začne.

Jak to vypadá

Konkrétní situace, jedna pro každé publikum. Každá je deklarována v záhlaví okamžiku, takže stav před a po jsou data, ne próza, od které by se stránka mohla odchýlit.

  1. Srovnání, které bylo záměrně přísné ai-native-team

    před
    Nová relace uvolní porovnání stavů, aby opravila nesoulad — přesně tu změnu, která byla minulý týden vyloučena, protože by přijala podvržené stavy.
    po
    Rozhodnutí, jeho důvod a zamítnutá alternativa jsou zaznamenány a pracovník je s nimi sestaven dříve, než začne.
  2. Příspěvek, který mění návrh open-source-maintainer

    před
    Pull request znovu implementuje přístup, který projekt před dvěma lety opustil; maintainer jej vysvětluje počtvrté v komentáři k review.
    po
    Rozhodnutí je záznam se zamítnutou alternativou a review na něj ukazuje, místo aby ho opakovalo.
  3. Nesouhlas sám se sebou solo-builder

    před
    Volba učiněná v úterý je ve čtvrtek tiše zvrácena, protože čtvrtek si nepamatuje důvod úterý.
    po
    `decision add` odmítne rozhodnutí bez `--why`, takže důvod existuje už ve chvíli, kdy je potřeba.

Jak to poznáte

Pozorovatelné příznaky, které tento okamžik deklaruje. Jsou dotazníkem na indexu a vstupem pro majordomus why diagnose; nic jiného je nedefinuje.

  • Otázka, kterou tým už vyřešil, byla tento týden znovu otevřena někým, kdo to nemohl vědět. reopened-this-week
  • Kód nese omezení, které vypadá libovolně, protože důvod není napsán nikde. constraint-looks-arbitrary
  • Důvod významné volby existuje jen v konverzaci. reason-in-chat

Kde to v nástroji najdete

Vše níže je načteno z vlastního záhlaví tohoto okamžiku a ověřeno proti repozitáři. Neexistující název by neprošel validací.

příkazy, které na to odpovídají

schopnosti spustitelného souboru, které na to odpovídají

co dohlíží — odvozeno z tvrzení níže

tvrzení, která tuto stránku podpírají, a důkazy za každým z nich

pravidla, která jej řídí

  • majordomus.decision-records
  • majordomus.externalise-decisions
  • majordomus.blocker-resolution
  • majordomus.decision-threshold

případy užití, které ukazují cestu ven

Pokud vám tohle zní povědomě, další také

Co tento okamžik pojmenovává, co pojmenovává jeho a co sdílí jeho oblast, publikum nebo štítky. Druhé a třetí je odvozeno; zapsáno je jen první.

Všech 38 a jak souvisejí s nástrojem →

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