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.

capability-graph — Jeden graf schopností, dvě projekce a žádný druhý inventář toho, co tento repozitář umí

Jediný typovaný deterministický graf schopností skládá registry, které už své fakty vlastní — nenahrazuje je — a přidává mezi ně typované vztahy, které se odvozují tam, kde existuje stabilní konvence, a deklarují tam, kde ne. Běžící server i publikovaný web se vykreslují z toho jednoho grafu: statická projekce je snímek, běhová projekce je snímek plus živý stav. Navigace, přehled, detail, vyhledávání, pohled na vztahy a matice pokrytí jsou všechny odvozené, visící vztah shodí generování místo toho, aby se vykreslil jako chybějící sekce, a schopnost, která existuje bez dokumentace, testu nebo vynucování, je jako taková viditelná, nikoli k nerozeznání od té, která je má.

AKTIVNÍ 11 of 33 issues done

připraveno
7
blokováno
15
aktivní
0
verify
0
hotovo
11
zrušeno
0

Problém

Spustitelný soubor už deklaruje schopnost jednou a promítá ji do MCP, HTTP, OpenAPI, Swaggeru, příkazové řádky a nyní Cockpitu (ADR 2, ADR 4, ADR 12). Vše, co repozitář ví a co není schopností, je mimo tento model: dovednosti, pravidla, rozhodnutí, dokumenty, případy užití, příklady, měření výkonu a nasazení jsou autoritativní každé ve svém adresáři a se schopnostmi spojené jen v hlavě čtenáře. Cockpit, úvodní stránka, navigace, indexy webu a vyhledávání si proto každé skládá vlastní pohled na to, co existuje, a každý nový subsystém stojí úpravu v každém z nich. Selhání, které to způsobuje, není vizuální: schopnost bez dokumentace, bez testu a bez vynucování vypadá přesně jako ta, která má všechno tři, protože vztah nic nerozřeší.

Výsledek

Jediný typovaný deterministický graf schopností skládá registry, které už své fakty vlastní — nenahrazuje je — a přidává mezi ně typované vztahy, které se odvozují tam, kde existuje stabilní konvence, a deklarují tam, kde ne. Běžící server i publikovaný web se vykreslují z toho jednoho grafu: statická projekce je snímek, běhová projekce je snímek plus živý stav. Navigace, přehled, detail, vyhledávání, pohled na vztahy a matice pokrytí jsou všechny odvozené, visící vztah shodí generování místo toho, aby se vykreslil jako chybějící sekce, a schopnost, která existuje bez dokumentace, testu nebo vynucování, je jako taková viditelná, nikoli k nerozeznání od té, která je má.

Aktuální stav

Cockpit je projekce registru a indexu s vlastním odvozením grafu (ADR 12, feature/ai-artifacts). Webové plochy se činí objevitelnými od svých producentů (ADR 13, rozpracováno). Dovednosti, pravidla, rozhodnutí, případy užití, dokumenty, měření výkonu a — po milníku nasazení — nasazení jsou indexovány každé jako druh a žádné z nich není se schopností spojeno ničím, co stroj čte.

Cílový stav

Přispěvatel zaregistruje schopnost v subsystému, který ji vlastní, spustí generování a Cockpit, navigace, hledání, graf, index dokumentace, matice pokrytí, statický snímek i metadata runtime se změní. Nic jiného se upravovat nemusí a CI odmítne změnu, která kterékoli z nich nechá zastaralé.

Rozsah

  • apps/majordomus-cli/src/graph.rs
  • apps/majordomus-cli/src/capability
  • apps/majordomus-cli/src/cockpit
  • apps/majordomus-cli/src/generate.rs
  • share/cockpit
  • web
  • dokumentace
  • .ai/repo/rules/project
  • .ai/repo/adrs
  • .ai/repo/skills
  • test/cases
  • .github/workflows

Mimo rozsah

  • Ručně udržované menu, seznam stránek nebo inventář schopností v jakémkoli formátu, včetně YAML
  • Nahrazení jakéhokoli registru, který už je autoritativní pro to, co vlastní
  • Klientský aplikační framework; Cockpit zůstává renderovaný na serveru s progresivním vylepšením
  • Jazyk popisu rozvržení se souřadnicemi, sloupci nebo stromy komponent jako daty
  • Externí vyhledávací služba pro graf této velikosti
  • Mutující ovládací prvky v Cockpitu nad rámec toho, co už bezpečným činí stávající autorizační architektura

Kritéria přijetí

  • Graf skládá existující autoritativní registry a nezavádí druhé úložiště toho, co vlastní
  • Každý uzel má stabilní identitu, která přežije změnu názvu, identity jsou jedinečné a generování je deterministické nad shodnými vstupy
  • Vztahy jsou typované, odvozují se jen ze stabilních konvencí a vztah, který se nerozpozná, shodí generování zprávou jmenující oba konce
  • Statická a runtimová projekce pocházejí ze stejného grafu a jejich reprezentace jsou po odstranění polí pouze za běhu shodné
  • Povrch, který vyžaduje běžící backend, se ve statické projekci nenabízí jako použitelný a toto rozhodnutí vychází z metadat dostupnosti, ne z jakékoli kontroly umístění stránky
  • Navigace, přehled, detail, vyhledávání i matice pokrytí jsou odvozeny a přidání schopnosti nevyžaduje úpravu žádné z nich
  • Matice pokrytí hlásí dokumentaci, testy, vynucování a měření výkonu jen tam, kde tvrzení podporuje artefakt nebo vyřešená vazba
  • Cockpit je použitelný na úzkém viewportu telefonu a jeho základní informace jsou přítomny před spuštěním JavaScriptu
  • Každé zde zavedené pravidlo vynucování má kontrolu, kterou CI provádí, doloženou negativním testem

Validace

  • bash test/run.sh
  • bin/majordomus doctor
  • cargo test --workspace --all-features
  • majordomus generate --check
  • scripts/cockpit-probe

Požadované důkazy

  • federated_graph
  • stable_identity
  • relations_resolve
  • dual_projection_parity
  • derived_surfaces
  • coverage_matrix
  • mobile_and_baseline
  • rules_enforced
  • extensibility_proved

Rizika

  • Složení osmi registrů do jednoho modelu zve devátý obchod, který drží složení. Agregát se odvozuje při každém buildu a commituje se jen jako generovaný artefakt; cokoli v něm ručně upraveného je vada.
  • Odvozování z názvů je křehké v den, kdy dva subsystémy pojmenují něco stejným způsobem. Odvozování je povoleno pouze nad stabilními identitami a nejednoznačnost je výslovná deklarace, nikoli heuristika.
  • Matice pokrytí, která hlásí, co tvrdí metadata, místo toho, co existuje, je horší než žádná matice, protože vypadá jako důkaz. Každá zelená buňka se musí rozřešit na artefakt.
  • Cockpit a webové povrchy se právě staví na jiných větvích. Tento milník je rozšiřuje a musí přistát po nich, ne vedle nich.
  • Pohled na graf je to, co chce každý postavit jako první, a to, na čem nejméně záleží, pokud je model pod ním špatný. Model je první a vizualizace ho čte.

Ú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
I1001 HOTOVO 0 — Jeden typovaný graf skládá registry, které už vlastní svá fakta
I1002 HOTOVO 1 I1001 Vztahy jsou typované, odvozené ze stabilních identit a nikdy nevisí do prázdna
I1003 HOTOVO 1 I1001 Dovednosti, pravidla, rozhodnutí, dokumenty, případy užití a měření výkonu vstupují do grafu samy za sebe
I1004 HOTOVO 1 I1001 Dostupnost a viditelnost jsou metadata, ne podmínky v šabloně
I1005 HOTOVO 2 I1002, I1004 Graf je generovaný artefakt se schématem a bez nebezpečného pole
I1006 HOTOVO 3 I1005 Runtime čte graf přes registr, jako každé jiné čtení
I1007 PŘIPRAVENO 3 I1005 Web vykresluje tentýž graf, vygenerovaný jednou
I1008 BLOKOVÁNO 4 I1006, I1007 Obě projekce se prokazatelně shodují s jedním modelem
I1009 PŘIPRAVENO 3 I1004, I1005 Každé menu v tomto repozitáři pochází z jedné derivace
I1010 PŘIPRAVENO 3 I1005 Přehled je to, co existuje, spočítané, ne tvrzené
I1011 PŘIPRAVENO 2 I1002 Matice pokrytí hlásí důkazy a nikdy zelenou buňku bez nich
I1012 PŘIPRAVENO 3 I1005 Jeden detailní pohled, sestavený z toho, co uzel skutečně má
I1013 BLOKOVÁNO 4 I1007 Vyhledávání nad grafem, generované, bez čehokoli ke spouštění
I1014 BLOKOVÁNO 4 I1002, I1007 Pohled na vztahy čte graf a sám nedrží žádná data
I1015 HOTOVO 2 I1004 Povrch, za kterým není server, se nenabízí, jako by ho měl
I1016 BLOKOVÁNO 4 I1009 Cockpit funguje na telefonu i dříve, než se spustí JavaScript
I1017 PŘIPRAVENO 4 I1006 Živý stav je překryv, který degraduje až na nic
I1018 BLOKOVÁNO 3 I1011, I1015 Pravidla povrchu existují jako kontroly, dokázané tím, že je donutíme selhat
I1019 BLOKOVÁNO 4 I1018 Jedna dovednost spouští celou smyčku a sama je v grafu
I1020 BLOKOVÁNO 4 I1002, I1007 Na zdraví grafu odpovídá doctor, který už odpovídá na všechno ostatní
I1021 BLOKOVÁNO 5 I1014, I1015, I1016 Rozhraní dokazuje prohlížeč, v šířkách, které lidé používají
I1022 BLOKOVÁNO 4 I1007 Drift v jakémkoli odvozeném povrchu shodí build
I1023 HOTOVO 3 I1005 Nic soukromého se nedostane na publikovanou stránku
I1024 BLOKOVÁNO 5 I1014 Rozhraní má váhu a ta se měří
I1025 HOTOVO 1 I1001 Federovaný model a jeho dvě projekce jsou architektonické rozhodnutí
I1026 BLOKOVÁNO 4 I1012, I1025 Architektura vysvětluje sama sebe, zevnitř
I1027 BLOKOVÁNO 5 I1018, I1019 Syntetická schopnost architekturu dokazuje, místo aby ji popisovala
I1028 BLOKOVÁNO 4 I1009 Inventáře, které toto nahrazuje, se odstraní, nenechají se běžet vedle
I1029 BLOKOVÁNO 6 I1021, I1022, I1023 Kontrola odmítne to, co by tiše rozbilo rozhraní
I1030 BLOKOVÁNO 7 I1010, I1013, I1017, I1020, I1024, I1026, I1027, I1028, I1029 Milník se přijímá na základě svých důkazů
I1031 HOTOVO 0 — Obsluhovaný povrch říká, který checkout obsluhuje
I1966 HOTOVO 0 — Složený graf je celý, nebo jeho generování odmítne
I3314 PŘIPRAVENO 0 — An object's read names the commit that last changed its file, and its page lists the commits that changed it

Graf

graf závislostí capability-graphz .ai/repo/project
flowchart LR
    I1001["I1001<br/>One typed graph composes the registries that already own their facts"]:::done
    I1002["I1002<br/>Relations are typed, inferred from stable identities, and never dangle"]:::done
    I1003["I1003<br/>Skills, rules, decisions, documents, use cases and benchmarks enter the graph as themselves"]:::done
    I1004["I1004<br/>Availability and visibility are metadata, not conditions in a template"]:::done
    I1005["I1005<br/>The graph is a generated artifact with a schema and no unsafe field"]:::done
    I1006["I1006<br/>The runtime reads the graph through the registry, like every other read"]:::done
    I1007["I1007<br/>The site renders the same graph, generated once"]:::ready
    I1008["I1008<br/>The two projections are proved to be the same model"]:::blocked
    I1009["I1009<br/>Every menu in this repository comes from one derivation"]:::ready
    I1010["I1010<br/>The overview is what exists, counted rather than claimed"]:::ready
    I1011["I1011<br/>The coverage matrix reports evidence, and never a green cell without one"]:::ready
    I1012["I1012<br/>One detail view, assembled from what a node actually has"]:::ready
    I1013["I1013<br/>Search over the graph, generated, with nothing to run"]:::blocked
    I1014["I1014<br/>The relation view reads the graph and holds no data of its own"]:::blocked
    I1015["I1015<br/>A surface with no server behind it is not offered as if it had one"]:::done
    I1016["I1016<br/>The Cockpit works on a phone and before JavaScript runs"]:::blocked
    I1017["I1017<br/>Live state is an overlay that degrades to nothing"]:::ready
    I1018["I1018<br/>The surface rules exist as checks, proved by making them fail"]:::blocked
    I1019["I1019<br/>One skill runs the whole loop, and is itself in the graph"]:::blocked
    I1020["I1020<br/>The graph's health is answered by the doctor that already answers everything else"]:::blocked
    I1021["I1021<br/>A browser proves the interface, at the widths people use"]:::blocked
    I1022["I1022<br/>Drift in any derived surface fails the build"]:::blocked
    I1023["I1023<br/>Nothing private reaches a published page"]:::done
    I1024["I1024<br/>The interface has a weight, and it is measured"]:::blocked
    I1025["I1025<br/>The federated model and its two projections are an architecture decision"]:::done
    I1026["I1026<br/>The architecture explains itself, from inside itself"]:::blocked
    I1027["I1027<br/>A synthetic capability proves the architecture instead of describing it"]:::blocked
    I1028["I1028<br/>The inventories this replaces are removed, not left running beside it"]:::blocked
    I1029["I1029<br/>The gate refuses what would silently break the interface"]:::blocked
    I1030["I1030<br/>The milestone is accepted on its evidence"]:::blocked
    I1031["I1031<br/>A served surface says which checkout it is serving"]:::done
    I1966["I1966<br/>The composed graph is whole or its generation refuses"]:::done
    I3314["I3314<br/>An object's read names the commit that last changed its file, and its page lists the commits that changed it"]:::ready
    I1001 --> I1002
    I1001 --> I1003
    I1001 --> I1004
    I1001 --> I1025
    I1002 --> I1005
    I1002 --> I1011
    I1002 --> I1014
    I1002 --> I1020
    I1004 --> I1005
    I1004 --> I1009
    I1004 --> I1015
    I1005 --> I1006
    I1005 --> I1007
    I1005 --> I1009
    I1005 --> I1010
    I1005 --> I1012
    I1005 --> I1023
    I1006 --> I1008
    I1006 --> I1017
    I1007 --> I1008
    I1007 --> I1013
    I1007 --> I1014
    I1007 --> I1020
    I1007 --> I1022
    I1009 --> I1016
    I1009 --> I1028
    I1010 --> I1030
    I1011 --> I1018
    I1012 --> I1026
    I1013 --> I1030
    I1014 --> I1021
    I1014 --> I1024
    I1015 --> I1018
    I1015 --> I1021
    I1016 --> I1021
    I1017 --> I1030
    I1018 --> I1019
    I1018 --> I1027
    I1019 --> I1027
    I1020 --> I1030
    I1021 --> I1029
    I1022 --> I1029
    I1023 --> I1029
    I1024 --> I1030
    I1025 --> I1026
    I1026 --> I1030
    I1027 --> I1030
    I1028 --> I1030
    I1029 --> I1030
    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/capability-graph.yaml. Přečtěte ho zpět pomocí majordomus plan show capability-graph.

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