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.

adopter-upgrades — Adoptující repozitář přežije upgrade Majordomus a to, co do něj nástroj vendoruje, je neutrální vůči adoptujícímu

Adopter může nástroj povýšit nebo vendorovat jeho pravidla a dostane přesně řečeno, co migrovat, než cokoli odmítne jeho commity. Migrace je příkaz, ne ruční přehrání. Co nástroj do adoptera zapisuje (pravidla, kostra, rozsah, kandidáti), je k tomuto repozitáři neutrální a drží trunk jen pro PR čistý.

AKTIVNÍ 14 of 20 issues done

připraveno
4
blokováno
2
aktivní
0
verify
0
hotovo
14
zrušeno
0

Problém

Navazující repozitář OSCILLA, auditovaný 2026-10-04 proti v0.13.0 (e08aec8651), ukazuje nástroj, jak svým adoptujícím láme věci způsoby, které žádný test v tomto repozitáři nevidí, protože každý zdejší test běží nad rozložením tohoto repozitáře. Instalace 0.12.0 pro celý stroj způsobila, že doctor hlásil v OSCILLA 433 selhání: nezapečetěná razítka plánu a kroky případů užití překlasifikované jako měnící stav. Jeho pre-commit hook spouští doctor, takže každý commit byl odmítnut, dokud se vrstva ručně nemigrovala, a migrovaná vrstva je pak odmítnuta verzí 0.10. Nic nezaznamenává, pro jakou verzi nástroje byla vrstva napsána, a migrate zvládá jen .majordomus na .ai. Živé scénáře případů užití odmítají podpříkazy znalostí jen pro čtení, zatímco připouštějí check --checkpoint, který zapisuje. Aktualizace vendorovaných pravidel zanechává za sebou klíče politiky a zdrojů, na kterých závisejí. Odvozovač znalostí zapisuje nesledované kandidáty na trunk, který mění jen pull requesty. Vendorovaná pravidla a skeleton init nesou příběh, testovací cesty a stack tohoto repozitáře.

Výsledek

Adopter může nástroj povýšit nebo vendorovat jeho pravidla a dostane přesně řečeno, co migrovat, než cokoli odmítne jeho commity. Migrace je příkaz, ne ruční přehrání. Co nástroj do adoptera zapisuje (pravidla, kostra, rozsah, kandidáti), je k tomuto repozitáři neutrální a drží trunk jen pro PR čistý.

Aktuální stav

Na e08aec8651 manifest a politika nejmenují žádnou verzi nástroje ani vrstvy. SEALED_FROM je jedna globální konstanta (lib/project.awk:45, plan.rs:122). share/commands.yaml klasifikuje každý příkaz nejvyšší úrovně jednou. lib/migrate.sh přesouvá jen .majordomus/. docs/INSTALL.md říká jen znovu spustit instalátor pro upgrade. Deriver znalostí zapisuje .ai/repo/knowledge/candidates/ v tom checkoutu, který uzavře epizodu. Manifest balíku pravidel uvádí source_revision 0.6.0.

Cílový stav

doctor odděluje nálezy rozdílu verzí od vad a jmenuje migraci, která je odstraní. migrate přenese vrstvu z jedné verze na další, včetně znovuzapečetění starých razítek plánu s jejich původními časy. Třída účinku se posuzuje podle podpříkazu a příznaku. rules vendor update hlásí nebo aplikuje klíče kostry, které nová pravidla potřebují. Kandidáti nikdy nezašpiní trunk. Vendorovaná pravidla a kostra init neříkají nic, co platí jen pro tento repozitář.

Rozsah

  • .ai/repo/project
  • lib
  • podíl
  • apps/majordomus-cli/src/plan.rs
  • dokumentace
  • test/cases

Mimo rozsah

  • Samotná OSCILLA: je to důkaz, jen ke čtení
  • Opravy už na cestě: #780-#784, fix/context-resolves-a-path-not-yet-created, #746 a 9030dc4795
  • Přijetí jakéhokoli ADR, které tyto úkoly navrhují; přijetí je aktem vlastníka

Kritéria přijetí

  • Upgrade nástroje nad vrstvou zapsanou předchozí minor verzí dává zprávu doctoru, která jmenuje nesoulad verzí a příkaz migrace, ne vady; dokázáno případem, který přidává I1980
  • Živý scénář případu užití smí spustit podpříkaz jen pro čtení u příkazu, který také zapisuje, a nesmí spustit zapisující příznak příkazu jen pro čtení; prokázáno případem, který přidává I1981
  • Každý úkol tohoto milníku je DONE nebo CANCELLED s důvodem

Validace

  • bin/majordomus plan validate
  • bin/majordomus usecase validate
  • scripts/derive-check

Požadované důkazy

  • version_skew_is_named
  • effect_class_per_subcommand

Úkoly

Každý z nich je prováděcí kontrakt s vlastními kritérii přijetí, validačním příkazem a požadovanými důkazy. Sloupec wave je vrstva grafu závislostí, v níž úkol leží.

issuestatusvlnazávisí nanázev
I1980 PŘIPRAVENO 0 — Vrstva jmenuje verzi nástroje, pro kterou byla napsána, a doctor rozliší posun verzí od vad
I1981 HOTOVO 0 — Třída efektu příkazu se deklaruje pro každý podpříkaz a příznak a živé scénáře posuzují celé argv
I1982 BLOKOVÁNO 1 I1980 Razítka plánu zapsaná před existencí pečetí se znovu zapečetí příkazem, který zachová jejich původní časy
I1983 BLOKOVÁNO 1 I1980 Povýšení vendorovaných pravidel nahlásí nebo uplatní klíče politiky a zdroje, na kterých ta pravidla závisí
I1984 HOTOVO 0 — Znalostní kandidáti nikdy nenechávají nesledované soubory na trunku, který mění jen pull requesty
I1985 HOTOVO 1 I1984 Znalostní kandidát se vztahuje ke svému rozhodnutí a commitu, ne k celé epizodě
I1986 HOTOVO 0 — Vendorovaný balíček pravidel neříká nic, co platí jen pro tento repozitář
I1987 HOTOVO 0 — Původ souboru znalostního záznamu přežije smazání souboru
I1988 PŘIPRAVENO 1 I1981 Instalační skripty případu užití žijí tam, kde je adopter deklaruje, a jeho scénáře smějí spouštět adopterovy vlastní příkazy
I1989 HOTOVO 0 — init zasadí rozsah pro stack, který najde, ne pro stack tohoto repozitáře
I1990 PŘIPRAVENO 0 — Kontrola pre-push posuzuje refy, které se pushují, nebo říká, proč je úloha checkoutu váže
I1991 HOTOVO 0 — Úprava politiky jen v komentáři nevygeneruje žádný bootstrap
I1996 HOTOVO 0 — doctor nenechá adoptera selhat na kontrole napsané pro tento repozitář
I1998 HOTOVO 0 — Příkaz health v nesupervizovaném repozitáři nekončí kódem 0
I1999 PŘIPRAVENO 0 — Sledovaný soubor, který hook přegeneruje, neodmítne úlohu, která se ho nikdy nedotkla
I2464 HOTOVO 0 — Cesta s mezerou je pro doktrínu rozsahu jedna cesta
I2491 HOTOVO 0 — Osobní vrstva nic sdíleného nemění: init --personal a install.sh --personal drží vrstvu jako vlastní jednoho člověka, ověří to a --shared ji předá týmu
I2849 HOTOVO 0 — release next zvyšuje z trunku, který repozitář jmenuje, nikdy z názvu větve zapsaného v nástroji
I2941 HOTOVO 0 — Čerstvý init nechá doctor čistý: README, které nejmenuje AGENTS.md, získá jeden odstavec, který ho jmenuje
I2942 HOTOVO 0 — Dry run instalátoru nic nezmění a průvodce instalací říká jen to, co je pravda

Graf

graf závislostí adopter-upgradesz .ai/repo/project
flowchart LR
    I1980["I1980<br/>A layer names the tool version it was written for, and doctor tells version skew from defects"]:::ready
    I1981["I1981<br/>A command's effect class is declared per subcommand and flag, and live scenarios judge the whole argv"]:::done
    I1982["I1982<br/>Plan stamps written before seals existed are re-sealed by a command that keeps their original times"]:::blocked
    I1983["I1983<br/>Upgrading the vendored rules reports or applies the policy and source keys those rules depend on"]:::blocked
    I1984["I1984<br/>Knowledge candidates never leave untracked files on a trunk that only pull requests change"]:::done
    I1985["I1985<br/>A knowledge candidate relates to its own decision and commit, not to the whole episode"]:::done
    I1986["I1986<br/>The vendored rule package says nothing that is only true of this repository"]:::done
    I1987["I1987<br/>A knowledge record's file provenance survives the file's deletion"]:::done
    I1988["I1988<br/>A use case's setup scripts live where the adopter declares, and its scenarios may run the adopter's own commands"]:::ready
    I1989["I1989<br/>init seeds a scope for the stack it finds, not for this repository's"]:::done
    I1990["I1990<br/>The pre-push check judges the refs being pushed, or says why the checkout's task binds them"]:::ready
    I1991["I1991<br/>A comment-only edit of the policy regenerates no bootstrap"]:::done
    I1996["I1996<br/>doctor does not fail an adopter on a check written for this repository"]:::done
    I1998["I1998<br/>A health command in an unsupervised repository does not exit 0"]:::done
    I1999["I1999<br/>A tracked file a hook regenerates does not refuse a task that never touched it"]:::ready
    I2464["I2464<br/>A path that holds a space is one path to the scope doctrine"]:::done
    I2491["I2491<br/>A personal layer changes nothing shared: init --personal and install.sh --personal keep the layer one person's own, verify it, and --shared hands it to the team"]:::done
    I2849["I2849<br/>release next raises from the trunk the repository names, never from a branch name written in the tool"]:::done
    I2941["I2941<br/>A fresh init leaves doctor clean: a README that does not name AGENTS.md gains one paragraph that does"]:::done
    I2942["I2942<br/>An installer dry run changes nothing, and the install guide says only what is true"]:::done
    I1980 --> I1982
    I1980 --> I1983
    I1981 --> I1988
    I1984 --> I1985
    classDef done stroke:#16a34a,fill:#dcfce7,color:#14532d,stroke-width:2px
    classDef active stroke:#2563eb,fill:#eff6ff,color:#1e3a8a,stroke-width:2px
    classDef verify stroke:#7c3aed,fill:#f5f3ff,color:#4c1d95,stroke-width:2px
    classDef ready stroke:#0891b2,fill:#ecfeff,color:#164e63,stroke-width:2px
    classDef planned stroke:#0891b2,fill:#ecfeff,color:#164e63,stroke-width:2px
    classDef blocked stroke:#b45309,fill:#fffbeb,color:#78350f,stroke-width:2px
    classDef cancelled stroke:#6b7280,fill:#f9fafb,color:#374151,stroke-width:2px
    classDef superseded stroke:#6b7280,fill:#f9fafb,color:#374151,stroke-width:2px

Kanonický záznam: .ai/repo/project/milestones/adopter-upgrades.yaml. Přečtěte ho zpět pomocí majordomus plan show adopter-upgrades.

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