I0903 — Čtení nasazení se deklaruje jednou a projektuje se všude
Deklarovat read-only operace nasazení jako kanonické schopnosti, aby CLI, HTTP API, MCP, OpenAPI i generovaná dokumentace vše odvozovaly z jedné deklarace.
HOTOVO vlna 2 · p0 · profil implementation · bezpečné paralelně
Součást fly-deployment — Image kontejneru je projekcí modelu repozitáře a jeho smoke test je jeho důkazem.
Cíl
Deklarovat read-only operace nasazení jako kanonické schopnosti, aby CLI, HTTP API, MCP, OpenAPI i generovaná dokumentace vše odvozovaly z jedné deklarace.
Proč
Pravidlem repozitáře je, že operace se deklaruje jednou a promítá se; ruční přidání nasazení do registru transportu, souboru OpenAPI nebo tabulky dokumentace je vada, kterou jmenuje ADR 0004.
Aktuální stav
Registr schopností obsahuje modul deploy (apps/majordomus-cli/src/capability/builtin/deploy.rs) vedle ostatních. Tvrzení, které toto pole dříve neslo — že žádný modul nasazení neexistuje — bylo vyvráceno před 2026-09-10 a nikdy nebylo opraveno. Změřeno na master 6042f4286, 2026-09-10.
Cílový stav
Modul schopnosti nasazení deklaruje čtení nasazení a každá projekce je převezme z generate bez druhé registrace kdekoli.
Rozsah
- apps/majordomus-cli/src/capability/builtin/deploy.rs
- apps/majordomus-cli/src/capability/builtin/mod.rs
Mimo rozsah
- Mutující operace přes HTTP nebo MCP; mutace nasazení patří důvěryhodnému CLI a CI
- Ručně upravené OpenAPI, tabulky tras nebo seznamy dokumentace
Závislosti
Co na tom čeká
- I0913ZRUŠENO Konfigurace providera se generuje a levný profil je deklarován
- I0914ZRUŠENO Jedno jádro nasazení, jeden příkaz a nanečisto, které nic nemění
- I0926BLOKOVÁNO Dokumentace nasazení je generovaná a dosažitelná
- I0927PŘIPRAVENO Cockpit ukazuje nasazení ze stejných dat
Kritéria přijetí
- Každá operace je jedna deklarace capability! se vstupem, výstupem, stabilitou, vystavením a tagy
- Operace se objeví v CLI, HTTP API, MCP povrchu, openapi.json a generované referenci, aniž by je jakýkoli soubor uváděl podruhé
- Žádná schopnost neprovádí mutující akci nasazení
- generate --check je po regeneraci zelený a selže, když se projekce upraví ručně
- Projekce pokrytí měřením výkonu zahrnuje nové schopnosti, jak vyžaduje pravidlo pokrytí
Validace
- cargo test --workspace --all-features
- majordomus generate --check
Požadované důkazy
- capability_declared
- projections_derived
- generate_check
- benchmark_coverage
Důkazy
| pokrývá | typ | command | výsledek | u commitu |
|---|---|---|---|---|
| capability_declared | test | cargo test --locked --manifest-path apps/majordomus-cli/Cargo.toml --lib capability::builtin::deploy | výsledek testu: ok. 5 prošlo; 0 selhalo (běh 2026-10-14 mezi 08:59Z a 09:04Z na masteru e28daccd9b) | e28dacc |
| projections_derived | test | majordomus capabilities validate | validate: 0 selhání (běh 2026-10-14 mezi 08:59Z a 09:04Z na master e28daccd9b) | e28dacc |
| generate_check | test | majordomus generate --check | generate --check: synchronizováno (spuštěno 2026-10-14 mezi 08:59Z a 09:04Z na masteru e28daccd9b) | e28dacc |
| benchmark_coverage | test | majordomus bench coverage --check | exit 0 (běh 2026-10-14 mezi 08:59Z a 09:04Z na masteru e28daccd9b) | e28dacc |
Riziko
Čtení stavu nasazení chce volat flyctl, což mění levnou schopnost na síťové volání na horké cestě. Živý stav poskytovatele patří za explicitní operaci s vlastní cenou, ne za běžné čtení.
Časová osa
- zahájeno
- 2026-10-14T09:04:28Z
- ověřeno
- —
- dokončeno
- 2026-10-14T09:04:42Z
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/I0903.yaml. Načtěte ho zpět pomocí majordomus plan show I0903.