development-runtime — Runtime má vývojový povrch
Vývojový přechod se rozhoduje přesně na jednom místě, v `capability!` druhu `command` v registru Rustu, a každý povrch, který ho nabízí, je projekce: CLI, nástroj MCP, HTTP routa, operace OpenAPI a generovaný formulář runneru v Cockpitu, žádný z nich není psaný ručně. Životní cyklus přestává být druhým programem bez povrchů a historie provádění, kterou by vývojový povrch ukazoval, existuje někde trvale.
AKTIVNÍ 55 of 85 issues done
- připraveno
- 19
- blokováno
- 10
- aktivní
- 0
- verify
- 1
- hotovo
- 55
- zrušeno
- 0
Problém
Cockpit je věrná projekce registru, který v sobě nemá téměř nic vývojového. Znovu změřeno na dnešním masteru, registr deklaruje přesně tři schopnosti druhu `command` — executions.start, executions.cancel, peers.announce — a dokument OpenAPI, který server servíruje, má přesně těchto tři operace jiné než GET. Každý příkaz vývojového životního cyklu žije ve druhém programu, bin/majordomus, a každý jeho uzel v grafu příkazů je zadržen před každým strojovým povrchem. Žádný vývojový povrch tedy nelze postavit přidáním stránek: za stránkami není nic, co by se dalo volat, a `majordomus_plan_done` odpovídá `unknown tool`, protože pro přechod plánu neexistuje schopnost. docs/COCKPIT_IDE_AUDIT.md je důkaz; ADR 0040 je rozhodnutí, které obhajuje. Dokud tento milník neexistoval, nic z toho nebylo v plánu: klíčové hledání v úkolech a milnících pro paletu, diff view, stav CI a zvýraznění syntaxe nevrátilo nic, takže práci nebylo možné naplánovat, blokovat ani o ní reportovat.
Výsledek
Vývojový přechod se rozhoduje přesně na jednom místě, v `capability!` druhu `command` v registru Rustu, a každý povrch, který ho nabízí, je projekce: CLI, nástroj MCP, HTTP routa, operace OpenAPI a generovaný formulář runneru v Cockpitu, žádný z nich není psaný ručně. Životní cyklus přestává být druhým programem bez povrchů a historie provádění, kterou by vývojový povrch ukazoval, existuje někde trvale.
Aktuální stav
Tři příkazové schopnosti, všechny o exekucích nebo peerech. Přechody životního cyklu existují jen v lib/plan.sh a lib/start.sh. `majordomus run` se provádí ve vlastním procesu a nikdy nedosáhne běžícího serveru, takže rovina exekucí, kterou ukazuje Cockpit, a ta, kterou používá člověk, jsou disjunktní. Server, jehož spustitelný soubor byl nahrazen, se stále hlásí jako `ready`. Dvě schopnosti — devtask.issue a devtask.milestone — přistály po základu auditu a dávají runtime první kanonické čtení úkolu a milníku jako práce; ani jedna nic nezapisuje.
Cílový stav
Fáze A plánu auditu přistála od začátku do konce — jeden přechod, jedna schopnost, čtyři povrchy, žádná ručně psaná projekce — a fáze, které na ní závisejí, lze proti ní plánovat. Tři nosné vady jmenované v tabulce F auditu jsou opraveny nebo výslovně odloženy se záznamem, místo aby se mlčky nesly pod každým pozdějším měřením.
Rozsah
- apps/majordomus-cli/src/capability/builtin
- apps/majordomus-cli/src/cockpit
- lib
- podíl
- dokumentace
- test/cases
Mimo rozsah
- Terminál, PTY nebo shellové provádění na jakémkoli povrchu. Audit to eviduje jako non-goal a share/cockpit/palette.js již hranici uvádí doslova.
- Úprava zdroje repozitáře v prohlížeči. Cockpit odmítá každou trasu jinou než GET rozhodnutím a tento milník to rozhodnutí znovu neotevírá.
- Opakování a plánovač. apps/majordomus-cli/src/execution/mod.rs ve své vlastní dokumentaci modulu uvádí, že je z rozhodnutí nemá.
- Druhé datové úložiště nebo druhý projektový model. Záznamy zůstávají kanonické a runtime je čte.
- Doba odezvy `/cockpit/worktrees`. Je to F3 v tabulce auditu a opravuje se na fix/cockpit-answers-quickly; tento milník na tu práci odkazuje, místo aby ji duplikoval.
- Celkový přenos lib/*.sh. Fáze A je jeden přechod; zbytek je naplánován za ní, nebo vůbec.
Kritéria přijetí
- Registr deklaruje alespoň jednu schopnost druhu command, která mění vývojový záznam, a generované OpenAPI nese její operaci jinou než GET, aniž by kdokoli upravoval dokument
- Stejný přechod je dosažitelný z CLI, z MCP i přes HTTP a stávající generický runner Cockpitu jej řídí bez úpravy zdroje Cockpitu
- Provedení, které člověk spustí, je viditelné serveru, jenž repozitář obsluhuje, nebo záznam uvádí, které rozhodnutí bylo učiněno místo toho a proč
- Povrch, který hlásí runtime jako připravený, nemůže servírovat spustitelný soubor, který už na disku neexistuje
- V docs/COCKPIT_IDE_AUDIT.md nezůstalo stát žádné tvrzení, kterému by příkaz v tomto repozitáři odporoval
Validace
- majordomus plan validate
- bin/majordomus-cli capabilities validate
- bin/majordomus-cli generate --check
- bash test/run.sh
Požadované důkazy
- sada testů
- one_mutating_development_capability
- projection_not_handwritten
Rizika
- Fáze A je celá architektura v miniatuře. Pokud se vzor nepřistane čistě na jednom přechodu, nefungovala by žádná pozdější fáze a správná reakce je zastavit, ne rozšiřovat.
- Druhé jméno pro existující pojem může přistát paralelně. Jedno už přistálo: modul devtask se dokumentuje jako join nad plánem a trace, ne jako druhý model, a drží tvrzení o rovnosti proti plan.issues. Je aditivní a má zůstat, ale jeho slovník připravenosti zjemňuje kanonické stavy a Fáze A by měla pojmenování sbližovat, ne pěstovat třetí.
- Master se během práce pohybuje. Pohnul se jedenáctkrát během auditu, který tento milník vytvořil, a znovu mezi tím auditem a tímto záznamem.
Ú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ží.
| issue | status | vlna | závisí na | název |
|---|---|---|---|---|
| I1501 | HOTOVO | 0 | — | Provedení, které člověk spustí, je provedení, které server vidí |
| I1502 | HOTOVO | 0 | — | Server, který servíruje kód, jenž už neexistuje, se přestane prohlašovat za ready |
| I1503 | HOTOVO | 0 | — | Uzavřená relace se pod toutéž identitou neuzavře podruhé |
| I1504 | PŘIPRAVENO | 0 | — | Jeden vývojový přechod je schopnost, od začátku do konce |
| I1505 | BLOKOVÁNO | 1 | I1504 | Mutující schopnost zanechá trvalou událost a ledger lze přečíst zpět |
| I1506 | BLOKOVÁNO | 2 | I1504, I1505 | Příkazy životního cyklu se stanou neinteraktivními schopnostmi |
| I1507 | BLOKOVÁNO | 3 | I1505, I1506 | Úkoly, milníky, relace a peery se do Cockpitu dostávají jako projekce |
| I1508 | HOTOVO | 0 | — | Navigace se odvozuje z dispatcheru, neudržuje se vedle něj |
| I1509 | HOTOVO | 0 | — | Detailní stránka, která nic nestránkuje, přerostla důvod, proč nic nestránkuje |
| I1510 | HOTOVO | 0 | — | Mezera, kterou audit nazývá plánovanou, jmenuje objekt plánu, který existuje |
| I1511 | HOTOVO | 0 | — | Povrch dokumentace odpovídá i v checkoutu, který web nepostavil |
| I1512 | PŘIPRAVENO | 0 | — | Stav kontrol je něco, na co runtime umí odpovědět |
| I1520 | HOTOVO | 0 | — | Krok, kterému dojde čas, to řekne sám |
| I1967 | HOTOVO | 0 | — | Reporter, který nastaví příznak, je reporter |
| I1992 | HOTOVO | 0 | — | Rebuild, který selže, nespotřebuje žádnou změnu: další požadavek ho zkusí znovu |
| I1995 | HOTOVO | 0 | — | Práce, kterou relace nechala necommitnutou ve worktree, je pojmenována, ne nalezena náhodou |
| I1997 | PŘIPRAVENO | 0 | — | Nástěnku peerů lze číst z příkazové řádky |
| I2054 | HOTOVO | 0 | — | Tag neobarví všechny ostatní pull requesty načerveno, dokud nepřistane jeho záznam |
| I2059 | PŘIPRAVENO | 0 | — | Rebuild nikdy nenahradí spustitelný soubor, který jmenuje živý lease |
| I2114 | PŘIPRAVENO | 0 | — | Rozsah úlohy připouští to, co její derive zapisuje |
| I2301 | HOTOVO | 0 | — | Zda je práce hotová, odpovídá měření: invariant hotovo se ptá na dluh, co zůstalo za námi a na backlog |
| I2398 | HOTOVO | 0 | — | Derive přenesený na jiný stroj čeká na řadu v deklarované frontě |
| I2399 | HOTOVO | 0 | — | Každá relace se v intervalu sama briefuje, aniž by o to byla žádána |
| I2460 | HOTOVO | 0 | — | Přehled se ptá svých zdrojů najednou, takže stojí tolik co nejpomalejší zdroj, ne jejich součet |
| I2461 | HOTOVO | 0 | — | majordomus ui se servíruje na /ui jako samostatný produkt, s obrazovkami složenými ze schopností |
| I2462 | HOTOVO | 1 | I2461 | UI má každou obrazovku a jeho mesh je graf, jehož uzly otevírají inspektor |
| I2463 | HOTOVO | 0 | — | Řada navázaných pull requestů je typovaný objekt, servírovaný všude a kreslený jako graf |
| I2470 | HOTOVO | 2 | I2462 | Pull requesty se drainují v UI: fronta, kterou čtenář zúží, prozkoumá a sleduje až k tomu, na čem každý závisí |
| I2471 | HOTOVO | 3 | I2470 | Plán rozvoje otevře milník: co obsahuje, co může začít, jeho kritickou cestu a na co čeká |
| I2472 | HOTOVO | 4 | I2471 | Doba běhu CI se měří od začátku každého běhu do jeho dokončení a obrazovka CI/CD ji kreslí |
| I2473 | HOTOVO | 3 | I2470 | Pull request ukazuje svou stopu: co s ním udělal executor a co drain lane nedávno udělal |
| I2474 | HOTOVO | 4 | I2473 | Drain kreslí svou propustnost merge: merge každého dne za čtrnáct dní, kterými končí jeho stopa |
| I2475 | HOTOVO | 4 | I2470, I2471 | Úkoly se procházejí: každý úkol plánu podle stavu, milníku, priority nebo textu, každý jako odkaz dál |
| I2476 | HOTOVO | 4 | I2471 | Záměr otevře, co mu slouží: jeho výrok, jeho kritéria a jejich důkazy a milníky a úkoly, které mu slouží |
| I2477 | HOTOVO | 2 | I2462 | Tvrzení otevře svůj důkaz: co ho rozhoduje, jeho poslední běh, co se od té doby změnilo, jak ho znovu vidět |
| I2478 | HOTOVO | 2 | I2462 | Pravidlo otevře svůj důkaz: co stanoví, které testy ho dokazují, co chybí a jaká pravidla jsou kolem něj |
| I2481 | HOTOVO | 3 | I2478 | UI odkazuje na každou entitu, kterou jmenuje, a tam, kde zdroj nemá hodnotu, říká žádné |
| I2482 | HOTOVO | 4 | I2481 | Každá obrazovka UI má případ a žádný odkaz v UI není mrtvý |
| I2483 | HOTOVO | 2 | I2462 | UI se publikuje jako snapshot: načtený jednou na publikovaném commitu a nesený webem na /ui |
| I2484 | PŘIPRAVENO | 1 | I2461 | majordomus ui zajistí sdílený server a otevře dashboard UI |
| I2485 | PŘIPRAVENO | 3 | I2489 | Bench měří první požadavek poté, co se repozitář pohnul, a rozpočet ho omezuje |
| I2486 | HOTOVO | 1 | I2461 | Žádná obrazovka nečeká na zdroj: stránka ukáže poslední čtení s jeho stářím a za čtenářovými zády čte znovu |
| I2487 | PŘIPRAVENO | 2 | I2486 | Obrazovka se streamuje a jeden stream řekne otevřené stránce, která čtení se změnila |
| I2488 | PŘIPRAVENO | 2 | I2486 | HTTP stack se volí měřením: stejné trasy a několik set otevřených streamů na tiny_http a na axum |
| I2489 | HOTOVO | 2 | I2486 | Obrazovka přes rozpočet shodí build: rozpočty latence UI jsou politika měření výkonu a bench --check je vynucuje |
| I2495 | HOTOVO | 3 | I2483 | Cockpit se publikuje jako snapshot na /cockpit a odkazy na důkazy v UI vedou na něj |
| I2652 | HOTOVO | 2 | I2486 | UI ukazuje, co drží znalostní báze: kandidáty čekající na review a zda deriver stále zapisuje, jen čtené a nikdy ne ovládané |
| I2670 | PŘIPRAVENO | 0 | — | Nabídka build cache je typovaný model a její výběr je čistá, vysvětlená funkce |
| I2671 | BLOKOVÁNO | 1 | I2670 | Provider nabízí svou cache jako podepsaný záznam meshe s expirací a zastavený provider zastará |
| I2672 | BLOKOVÁNO | 1 | I2670 | Nabídky a výběr jsou jedno čtení, promítnuté do CLI, MCP, HTTP a OpenAPI |
| I2673 | BLOKOVÁNO | 2 | I2670, I2672 | Konfigurace klienta sccache se odvozuje z vybrané nabídky, nejdřív z lokálního disku |
| I2674 | BLOKOVÁNO | 1 | I2670 | Uzel se zřídí jako poskytovatel S3 cache, idempotentně, bez tajemství v repozitáři |
| I2675 | BLOKOVÁNO | 2 | I2672 | Zdraví build cache, rezerva a statistiky zásahů jsou vidět tam, kde je mesh |
| I2676 | BLOKOVÁNO | 3 | I2673, I2674 | Build cache je ověřena a validována: chybové cesty, bezpečnost a skutečný zásah na druhém uzlu |
| I2677 | BLOKOVÁNO | 2 | I2672 | Build cache je zdokumentována, řízena pravidlem a popsána na webu a na Pages |
| I2678 | HOTOVO | 0 | — | Veřejná Observatory přehrává zaznamenané události a říká, že jde o přehrávání |
| I2679 | HOTOVO | 0 | — | Observatory sleduje stream s kurzorem, místo aby se znovu ptala na jeho stránku |
| I2680 | HOTOVO | 0 | — | Kontroly Observatory jsou uzavřeny důkazy: snímky obrazovky, naměřené snímkové frekvence, soak, cvičení obnovy |
| I2694 | PŘIPRAVENO | 0 | — | Povýšená poznámka se vyřeší v každém checkoutu, ne jen tam, kde byla povýšena |
| I2695 | HOTOVO | 0 | — | Observatory kreslí scény důkazů, tvrzení, povrchu, vlny a release ze schopností, které na ně už odpovídají |
| I2696 | HOTOVO | 0 | — | p5 je sestavené, volitelné aktivum UI a stránka říká, kde je |
| I2697 | HOTOVO | 0 | — | Veřejný snapshot nese knihovnu p5, nebo říká, které scény nemůže nakreslit |
| I2698 | PŘIPRAVENO | 0 | — | Nové scény mají důkaz snímky obrazovky ve 1080p a 4K na pojmenované revizi |
| I2712 | HOTOVO | 1 | I2054 | release-check bere tag, jehož běh release ještě probíhá, jako čekající, ne jako chybějící záznam |
| I2713 | HOTOVO | 0 | — | Build nikdy nenechá nečinné inkrementální relace zaplnit disk |
| I2714 | PŘIPRAVENO | 0 | — | Jeden build adresář nikdy neslouží úlohám dvou worktrees najednou |
| I2715 | HOTOVO | 0 | — | Nový veřejný kód v Rustu projde rust-quality dřív než úloha structure |
| I2718 | HOTOVO | 0 | — | Propojený worktree spouští vlastní hooky, nikdy hooky primárního checkoutu |
| I2760 | HOTOVO | 0 | — | Položka rozsahu je jedna cesta a cesta, kterou by kontext odmítl, se odmítne už při startu |
| I2787 | HOTOVO | 1 | I2713 | Build nikdy nenechá artefakty crate ze sdíleného build adresáře zaplnit disk |
| I2813 | HOTOVO | 0 | — | Publikovaná stránka, která odpovídá 503 nebo neodpovídá, se znovu dotáže dřív, než se prohlásí za chybějící |
| I2882 | HOTOVO | 0 | — | Vzdálený derive staví jen uvnitř svého vlastního adresáře běhu |
| I2962 | HOTOVO | 0 | — | Co obsluhované povrchy mění, se říká tak, jak to říká registr |
| I2963 | HOTOVO | 0 | — | Návratové kódy z README jsou kontrakt příkazů |
| I2964 | HOTOVO | 0 | — | Každý krok, který čte povrch do publikovaného snapshotu, se může zeptat forge |
| I2965 | HOTOVO | 0 | — | Web říká, že test dokazuje záruku jen tak daleko, kam sahají zaznamenané důkazy |
| I2966 | HOTOVO | 0 | — | Nastavení forge, které nešlo přečíst, je neznámé, nikdy ne \"nic nepovoluje\" |
| I2967 | HOTOVO | 0 | — | Vlastní stránky webu jmenují rozvržení, které platí |
| I3098 | OVĚŘIT | 0 | — | Waiting derives take the machine's derive lock in the order they arrived |
| I3171 | PŘIPRAVENO | 0 | — | The compiled context names source ranges with their reason and confidence, not only whole objects of the layer |
| I3172 | PŘIPRAVENO | 0 | — | The compiled context names the small set of capabilities the work needs |
| I3312 | PŘIPRAVENO | 0 | — | An ADR may name the paths it governs, and the compiled context for those paths includes it |
| I3316 | PŘIPRAVENO | 0 | — | The rescue command a stranded worktree is offered is proved by a drill that restores its work byte-identical |
| I3317 | PŘIPRAVENO | 0 | — | An execution records the commit it started at, and a writing execution the paths it changed |
| I3836 | PŘIPRAVENO | 0 | — | An offload derive observes the bundle's base commit, not its throwaway snapshot, so what it derives passes CI's check |
Graf
flowchart LR
I1501["I1501<br/>An execution a person starts is an execution the server can see"]:::done
I1502["I1502<br/>A server serving code that no longer exists stops calling itself ready"]:::done
I1503["I1503<br/>A closed session is not closed a second time under the same identity"]:::done
I1504["I1504<br/>One development transition is a capability, end to end"]:::ready
I1505["I1505<br/>A mutating capability leaves a durable event, and the ledger can be read back"]:::blocked
I1506["I1506<br/>The lifecycle commands become non-interactive capabilities"]:::blocked
I1507["I1507<br/>Issues, milestones, sessions and peers reach the Cockpit as projections"]:::blocked
I1508["I1508<br/>The navigation is derived from the dispatcher, not kept beside it"]:::done
I1509["I1509<br/>A detail page that pages nothing has outgrown the reason it pages nothing"]:::done
I1510["I1510<br/>A gap the audit calls planned names a plan object that exists"]:::done
I1511["I1511<br/>The documentation surface answers in a checkout that has not built the site"]:::done
I1512["I1512<br/>Gate state is something the runtime can answer"]:::ready
I1520["I1520<br/>A step that runs out of time says so itself"]:::done
I1967["I1967<br/>A reporter that sets a flag is a reporter"]:::done
I1992["I1992<br/>A rebuild that fails consumes no change: the next request retries it"]:::done
I1995["I1995<br/>Work a session left uncommitted in a worktree is named, not found by luck"]:::done
I1997["I1997<br/>The peer board can be read from the command line"]:::ready
I2054["I2054<br/>A tag does not turn every other pull request red until its record lands"]:::done
I2059["I2059<br/>A rebuild never replaces the executable a live lease names"]:::ready
I2114["I2114<br/>A task's scope admits what its derive writes"]:::ready
I2301["I2301<br/>Whether the work is done is answered by measurement: the done invariant asks about debt, what was left behind and the backlog"]:::done
I2398["I2398<br/>A derive offloaded to another machine waits its turn in a declared queue"]:::done
I2399["I2399<br/>Every session briefs itself on an interval, without being asked"]:::done
I2460["I2460<br/>The overview asks its sources at once, so it costs its slowest source and not their sum"]:::done
I2461["I2461<br/>majordomus ui is served at /ui as its own product, with screens composed from capabilities"]:::done
I2462["I2462<br/>The UI has every screen, and its mesh is a graph whose nodes open an inspector"]:::done
I2463["I2463<br/>A train of stacked pull requests is a typed object, served everywhere and drawn as a graph"]:::done
I2470["I2470<br/>The pull requests drain in the UI: a queue a reader narrows, inspects and follows to what each depends on"]:::done
I2471["I2471<br/>The roadmap opens a milestone: what it holds, what can start, its critical path, and what it waits for"]:::done
I2472["I2472<br/>How long CI takes is measured, from when each run started to when it completed, and the CI/CD screen draws it"]:::done
I2473["I2473<br/>A pull request shows its trail: what the executor did to it, and the drain what the lane did lately"]:::done
I2474["I2474<br/>The drain draws its merge throughput: each day's merges over the fortnight its trail ends on"]:::done
I2475["I2475<br/>The issues are browsed: every issue of the plan by status, milestone, priority or text, each a link onward"]:::done
I2476["I2476<br/>An intent opens what serves it: its statement, its criteria and their evidence, and the milestones and issues that serve it"]:::done
I2477["I2477<br/>A claim opens its proof: what settles it, its last run, what changed since, how to see it again"]:::done
I2478["I2478<br/>A rule opens its proof: what it states, the tests that prove it, what is missing, and the rules around it"]:::done
I2481["I2481<br/>The UI links every entity it names, and says none where a source has no value"]:::done
I2482["I2482<br/>Every screen of the UI has a case, and no link on the UI is dead"]:::done
I2483["I2483<br/>The UI is published as a snapshot: read once at the published commit and carried by the site at /ui"]:::done
I2484["I2484<br/>majordomus ui ensures the shared server and opens the UI's dashboard"]:::ready
I2485["I2485<br/>The bench measures the first request after the repository moved, and a budget bounds it"]:::ready
I2486["I2486<br/>No screen waits for a source: a page shows the latest reading with its age, read again behind the reader"]:::done
I2487["I2487<br/>A screen is streamed, and one stream tells an open page which readings changed"]:::ready
I2488["I2488<br/>The HTTP stack is chosen by measurement: the same routes and several hundred open streams on tiny_http and on axum"]:::ready
I2489["I2489<br/>A screen over its budget fails the build: the UI's latency budgets are benchmark policy, and bench --check holds them"]:::done
I2495["I2495<br/>The Cockpit is published as a snapshot at /cockpit, and the UI's evidence links lead to it"]:::done
I2652["I2652<br/>The UI shows what the knowledge base holds: the candidates awaiting review and whether the deriver still writes, read and never acted on"]:::done
I2670["I2670<br/>A build-cache offer is a typed model and its selection is a pure, explained function"]:::ready
I2671["I2671<br/>A provider offers its cache as a signed, expiring mesh record, and a stopped provider goes stale"]:::blocked
I2672["I2672<br/>The offers and the selection are one read, projected to CLI, MCP, HTTP and OpenAPI"]:::blocked
I2673["I2673<br/>The sccache client configuration is derived from the selected offer, local disk first"]:::blocked
I2674["I2674<br/>A node is provisioned as an S3 cache provider, idempotently, with no secret in the repository"]:::blocked
I2675["I2675<br/>Build-cache health, headroom and hit statistics are visible where the mesh is"]:::blocked
I2676["I2676<br/>The build cache is verified and validated: failure paths, security and a real second-node hit"]:::blocked
I2677["I2677<br/>The build cache is documented, governed by a rule and described on the site and the Pages"]:::blocked
I2678["I2678<br/>The public Observatory replays events that were recorded, and says it is a replay"]:::done
I2679["I2679<br/>The Observatory follows a stream with a cursor instead of asking for its page again"]:::done
I2680["I2680<br/>The Observatory's gates are closed with evidence: screenshots, measured frame rates, a soak, the recovery drills"]:::done
I2694["I2694<br/>A promoted note resolves in every checkout, not only where it was promoted"]:::ready
I2695["I2695<br/>The Observatory draws the proof, claim, surface, wave and release scenes from the capabilities that already answer them"]:::done
I2696["I2696<br/>p5 is a built, optional asset of the UI and the page says where it is"]:::done
I2697["I2697<br/>The public snapshot carries the p5 library, or says which scenes it cannot draw"]:::done
I2698["I2698<br/>The new scenes have screenshot evidence at 1080p and 4K on a named revision"]:::ready
I2712["I2712<br/>release-check treats a tag whose release run is still going as pending, not as a missing record"]:::done
I2713["I2713<br/>A build never lets idle incremental sessions fill the disk"]:::done
I2714["I2714<br/>One build directory never serves two worktrees' jobs at once"]:::ready
I2715["I2715<br/>New public Rust code meets rust-quality before the structure job does"]:::done
I2718["I2718<br/>A linked worktree runs its own hooks, never the primary checkout's"]:::done
I2760["I2760<br/>A scope entry is one path, and a path context would refuse is refused at start"]:::done
I2787["I2787<br/>A build never lets the shared build directory's crate artifacts fill the disk"]:::done
I2813["I2813<br/>A published page that answers 503, or does not answer, is asked again before it is called missing"]:::done
I2882["I2882<br/>A remote derive builds only inside its own run directory"]:::done
I2962["I2962<br/>What the served surfaces change is said as the registry says it"]:::done
I2963["I2963<br/>The README's exit codes are the commands' contract"]:::done
I2964["I2964<br/>Every step that reads a surface into the published snapshot can ask the forge"]:::done
I2965["I2965<br/>The site says a test proves a guarantee only as far as recorded evidence supports it"]:::done
I2966["I2966<br/>A forge setting that could not be read is unknown, never \"allows nothing\""]:::done
I2967["I2967<br/>The site's own pages name the layout in force"]:::done
I3098["I3098<br/>Waiting derives take the machine's derive lock in the order they arrived"]:::verify
I3171["I3171<br/>The compiled context names source ranges with their reason and confidence, not only whole objects of the layer"]:::ready
I3172["I3172<br/>The compiled context names the small set of capabilities the work needs"]:::ready
I3312["I3312<br/>An ADR may name the paths it governs, and the compiled context for those paths includes it"]:::ready
I3316["I3316<br/>The rescue command a stranded worktree is offered is proved by a drill that restores its work byte-identical"]:::ready
I3317["I3317<br/>An execution records the commit it started at, and a writing execution the paths it changed"]:::ready
I3836["I3836<br/>An offload derive observes the bundle's base commit, not its throwaway snapshot, so what it derives passes CI's check"]:::ready
I1504 --> I1505
I1504 --> I1506
I1505 --> I1506
I1505 --> I1507
I1506 --> I1507
I2054 --> I2712
I2461 --> I2462
I2461 --> I2484
I2461 --> I2486
I2462 --> I2470
I2462 --> I2477
I2462 --> I2478
I2462 --> I2483
I2470 --> I2471
I2470 --> I2473
I2470 --> I2475
I2471 --> I2472
I2471 --> I2475
I2471 --> I2476
I2473 --> I2474
I2478 --> I2481
I2481 --> I2482
I2483 --> I2495
I2486 --> I2487
I2486 --> I2488
I2486 --> I2489
I2486 --> I2652
I2489 --> I2485
I2670 --> I2671
I2670 --> I2672
I2670 --> I2673
I2670 --> I2674
I2672 --> I2673
I2672 --> I2675
I2672 --> I2677
I2673 --> I2676
I2674 --> I2676
I2713 --> I2787
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:2pxLinked from this diagram (85)
- I1501 Provedení, které člověk spustí, je provedení, které server vidí
- I1502 Server obsluhující kód, který už neexistuje, přestane o sobě tvrdit, že je připraven
- I1503 Uzavřená relace se pod toutéž identitou neuzavírá podruhé
- I1504 Jeden vývojový přechod je schopnost, od začátku do konce
- I1505 Schopnost, která mění stav, zanechá trvalou událost a ledger lze přečíst zpět
- I1506 Příkazy životního cyklu se stanou neinteraktivními schopnostmi
- I1507 Úkoly, milníky, relace a peeři se do Cockpitu dostávají jako projekce
- I1508 Navigace se odvozuje z dispatcheru, neuchovává se vedle něj
- I1509 Detailní stránka, která nic nestránkuje, přerostla důvod, proč nic nestránkuje
- I1510 Mezera, kterou audit označuje jako plánovanou, jmenuje objekt plánu, který existuje
- I1511 Dokumentační povrch odpovídá i v checkoutu, který web nesestavil
- I1512 Stav kontroly je něco, na co runtime umí odpovědět
- I1520 Krok, kterému dojde čas, to řekne sám
- I1967 Reportér, který nastavuje příznak, je reportér
- I1992 Rebuild, který selže, nespotřebuje žádnou změnu: další požadavek ho zopakuje
- I1995 Práce, kterou relace nechala necommitnutou ve worktree, se pojmenuje, nenajde se náhodou
- I1997 Nástěnku peerů lze číst z příkazové řádky
- I2054 Tag nezčervená každý další pull request, dokud nedorazí jeho záznam
- I2059 Rebuild nikdy nenahradí spustitelný soubor, který pojmenovává živý lease
- I2114 Rozsah úlohy připouští to, co zapisuje její derive
- I2301 Zda je práce hotová, odpovídá měření: invariant hotovosti se ptá na dluh, na to, co zůstalo po sobě, a na backlog
- I2398 Derive odložený na jiný stroj čeká na řadu v deklarované frontě
- I2399 Každá relace se v intervalu sama informuje, aniž by se na to někdo ptal
- I2460 Přehled se ptá svých zdrojů najednou, takže stojí tolik co nejpomalejší zdroj, ne jejich součet
- I2461 majordomus ui se servíruje na /ui jako samostatný produkt, s obrazovkami složenými ze schopností
- I2462 UI má každou obrazovku a jeho mesh je graf, jehož uzly otevírají inspektor
- I2463 Vlak navrstvených pull requestů je typovaný objekt, všude servírovaný a kreslený jako graf
- I2470 Pull requesty se odbavují v UI: fronta, kterou čtenář zužuje, prohlíží a sleduje až k tomu, na čem každý závisí
- I2471 Plán rozvoje otevře milník: co obsahuje, co může začít, jeho kritickou cestu a na co čeká
- I2472 Délka běhu CI se měří od startu každého běhu do jeho dokončení a obrazovka CI/CD ji kreslí
- I2473 Pull request ukazuje svou stopu: co s ním udělal executor a drain, co lane udělal v poslední době
- I2474 Odbavování kreslí svou propustnost merge: merge každého dne za čtrnáct dní, jimiž jeho stopa končí
- I2475 Úkoly se procházejí: každý úkol plánu podle stavu, milníku, priority nebo textu, každý odkazuje dál
- I2476 Záměr otevře to, co mu slouží: jeho tvrzení, jeho kritéria a jejich důkazy a milníky a úkoly, které mu slouží
- I2477 Tvrzení otevře svůj důkaz: co o něm rozhoduje, jeho poslední běh, co se od té doby změnilo, jak to vidět znovu
- I2478 Pravidlo otevře svůj důkaz: co říká, jaké testy ho dokazují, co chybí a jaká pravidla jsou kolem něj
- I2481 UI odkazuje na každou entitu, kterou jmenuje, a říká žádné, kde zdroj nemá hodnotu
- I2482 Každá obrazovka UI má případ a žádný odkaz v UI není mrtvý
- I2483 UI se publikuje jako snímek: čte se jednou v publikovaném commitu a web ho nese na /ui
- I2484 majordomus ui zajistí sdílený server a otevře dashboard UI
- I2485 Bench měří první požadavek po posunu repozitáře a rozpočet ho omezuje
- I2486 Žádná obrazovka nečeká na zdroj: stránka ukazuje poslední čtení s jeho stářím, čtené znovu za zády čtenáře
- I2487 Obrazovka se streamuje a jeden stream říká otevřené stránce, které údaje se změnily
- I2488 HTTP stack se vybírá měřením: stejné routy a několik set otevřených streamů na tiny_http a na axum
- I2489 Obrazovka překračující rozpočet shodí build: limity latence UI jsou politika měření výkonu a bench --check je vynucuje
- I2495 Cockpit se publikuje jako snapshot na /cockpit a odkazy na důkazy v UI na něj vedou
- I2652 UI ukazuje, co znalostní báze drží: kandidáty čekající na revizi a zda deriver stále zapisuje, čteno a nikdy na tom nic nevykonáno
- I2670 Nabídka build cache je typovaný model a její výběr je čistá, vysvětlená funkce
- I2671 Provider nabízí svou cache jako podepsaný, expirující záznam meshe a zastavený provider zastará
- I2672 Nabídky a výběr jsou jedno čtení, promítnuté do CLI, MCP, HTTP a OpenAPI
- I2673 Konfigurace klienta sccache se odvozuje z vybrané nabídky, nejdřív lokální disk
- I2674 Uzel se zřídí jako poskytovatel S3 cache, idempotentně, bez tajemství v repozitáři
- I2675 Zdraví cache buildu, rezerva a statistiky zásahů jsou vidět tam, kde je mesh
- I2676 Build cache je ověřena a validována: cesty selhání, bezpečnost a skutečný zásah na druhém uzlu
- I2677 Cache buildu je zdokumentovaná, řídí ji pravidlo a je popsaná na webu a v Pages
- I2678 Veřejná Observatory přehrává události, které byly zaznamenány, a říká, že jde o přehrání
- I2679 Observatory sleduje stream kurzorem místo opakovaného vyžádání jeho stránky
- I2680 Kontroly Observatory se uzavírají důkazy: snímky obrazovky, změřené snímkové frekvence, soak, cvičení obnovy
- I2694 Povýšená poznámka se vyřeší v každém checkoutu, ne jen tam, kde byla povýšena
- I2695 Observatory kreslí scény důkazů, tvrzení, povrchů, vln a releasů ze schopností, které na ně už odpovídají
- I2696 p5 je sestavený, volitelný prvek UI a stránka říká, kde je
- I2697 Veřejný snapshot nese knihovnu p5, nebo říká, které scény nedokáže vykreslit
- I2698 Nové scény mají důkazy ve snímcích obrazovky v 1080p a 4K na pojmenované revizi
- I2712 release-check bere tag, jehož běh releasu ještě probíhá, jako čekající, ne jako chybějící záznam
- I2713 Build nikdy nenechá nečinné inkrementální relace zaplnit disk
- I2714 Jeden adresář buildu nikdy neobsluhuje joby dvou worktrees najednou
- I2715 Nový veřejný kód v Rustu splní rust-quality dříve než job structure
- I2718 Propojený worktree spouští vlastní hooky, nikdy hooky primárního checkoutu
- I2760 Záznam rozsahu je jedna cesta a cesta, kterou by context odmítl, se odmítne už při start
- I2787 Build nikdy nenechá artefakty crate ve sdíleném adresáři buildu zaplnit disk
- I2813 Publikovaná stránka, která odpovídá 503 nebo neodpovídá, se zeptá znovu, než se označí za chybějící
- I2882 Vzdálený derive se buildí jen uvnitř vlastního adresáře běhu
- I2962 Co zpřístupněné povrchy mění, se říká tak, jak to říká registr
- I2963 Návratové kódy v README jsou kontraktem příkazů
- I2964 Každý krok, který čte povrch do publikovaného snapshotu, se může zeptat forge
- I2965 Web říká, že test dokládá záruku jen tak daleko, jak zaznamenané důkazy podporují
- I2966 Nastavení forge, které nešlo přečíst, je neznámé, nikdy ne \"nic nepovoluje\"
- I2967 Vlastní stránky webu uvádějí rozvržení, které platí
- I3098 Waiting derives take the machine's derive lock in the order they arrived
- I3171 The compiled context names source ranges with their reason and confidence, not only whole objects of the layer
- I3172 The compiled context names the small set of capabilities the work needs
- I3312 An ADR may name the paths it governs, and the compiled context for those paths includes it
- I3316 The rescue command a stranded worktree is offered is proved by a drill that restores its work byte-identical
- I3317 An execution records the commit it started at, and a writing execution the paths it changed
- I3836 An offload derive observes the bundle's base commit, not its throwaway snapshot, so what it derives passes CI's check
Kanonický záznam: .ai/repo/project/milestones/development-runtime.yaml. Přečtěte ho zpět pomocí majordomus plan show development-runtime.