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.

I2653 — Každý diagram na webu je jeden interaktivní, odkazovatelný prohlížeč, jehož odkazy uzlů se odvozují, a odvozenou tabulku lze nakreslit jako graf

Zařídit, aby každý diagram Mermaid, který web publikuje, šel přibližovat, posouvat, zobrazit na celou obrazovku, stáhnout a adresovat fragmentem (#diagram-<name>, a #diagram-<name>:<node> pro jeden uzel), přičemž uzel, který jmenuje pravidlo, rozhodnutí, příkaz, schopnost, úkol, milník nebo dokument, je s stránkou toho objektu spojen buildem, ne autorem diagramu; a nechat tabulku, kterou web už vykresluje z odvozených dat, nakreslit jako interaktivní graf Apache ECharts jejím deklarováním, bez druhé kopie čísel.

HOTOVO vlna 0 · p2 · profil implementation · bezpečné souběžně

Součást surfaces-never-disagree — Každý povrch promítá stejný stav, říká, kdy byl pozorován, a nevede si vlastní seznam.

Cíl

Zařídit, aby každý diagram Mermaid, který web publikuje, šel přibližovat, posouvat, zobrazit na celou obrazovku, stáhnout a adresovat fragmentem (#diagram-<name>, a #diagram-<name>:<node> pro jeden uzel), přičemž uzel, který jmenuje pravidlo, rozhodnutí, příkaz, schopnost, úkol, milník nebo dokument, je s stránkou toho objektu spojen buildem, ne autorem diagramu; a nechat tabulku, kterou web už vykresluje z odvozených dat, nakreslit jako interaktivní graf Apache ECharts jejím deklarováním, bez druhé kopie čísel.

Proč

ADR 0152. site/diagrams.js inicializoval Mermaid a nic víc: široký graf závislostí byl vodorovný posuvník, žádný diagram neměl adresu a uzel, který byl úkolem nebo pravidlem, byl text. Pravidlo project.a-diagram-is-drawn-not-typed říká, že zpracovatelný diagram je to, co umožňuje odkazování a kontrolu; nic to nevyužívalo. Web nekreslil žádný graf, ačkoli ADR 0135 jmenuje ECharts jako knihovnu pro měřené řady.

Aktuální stav

Každý <pre class=\"mermaid\"> se vykreslí v přirozené šířce uvnitř posouvatelného boxu. Nemá id, ovládací prvky ani odkazy. Runtime Mermaidu (nejtěžší soubor na webu) se načítá blokujícím tagem script. Čísla, která generátor odvozuje (úkoly na milník a stav, percentily měření výkonu), jsou jen tabulky.

Cílový stav

scripts/lib/diagrams.mjs pojmenuje každý diagram po buildu (výslovný data-diagram, jinak nadpis, pod kterým leží), vypíše jeho uzly a vedle něj zapíše odkazy, které odvodil z site/data/generated; site/diagrams.js z každého udělá stejný prohlížeč; scripts/ci/link-check řeší fragment uzlu proti deklarovaným uzlům diagramu; site/charts.js kreslí každý <figure data-chart> z tabulky uvnitř, přičemž vendorovaný build ECharts se stahuje, až když se graf blíží k viewportu; docs/DIAGRAMS.md je příručka.

Rozsah

  • site/diagrams.js
  • site/charts.js
  • site/tailwind.css
  • site/templates/partials/mermaid.html
  • site/templates/partials/charts.html
  • site/templates/components.html
  • site/templates/argument.html
  • site/templates/dag.html
  • site/templates/milestone.html
  • site/templates/plan-section.html
  • site/templates/economics.html
  • share/design/figure.css
  • scripts/lib/diagrams.mjs
  • scripts/lib/diagrams.test.mjs
  • scripts/lib/interaction-specs/diagram.mjs
  • scripts/lib/interaction-specs/scroll-region.mjs
  • scripts/site-build
  • scripts/site-check
  • scripts/ci/link-check
  • test/cases/3006_diagrams_are_interactive_and_linkable.sh
  • docs/DIAGRAMS.md
  • docs/claims/a-diagram-is-named-linked-and-addressable.md
  • docs/CLAIMS.yaml
  • docs/README.md
  • docs/DESIGN_SYSTEM.md
  • docs/GITHUB_PAGES_ARCHITECTURE.md
  • package.json
  • package-lock.json
  • .ai/repo/automation/inventory.jsonl
  • .ai/repo/adrs/0152-a-diagram-and-a-chart-on-the-site-are-one-viewer-each-over-w.md
  • .ai/repo/project/issues/I2653.yaml
  • .ai/repo/project/issues/I2654.yaml
  • .ai/repo/project/issues/I2655.yaml
  • .ai/repo/project/issues/I2656.yaml

Mimo rozsah

  • Domovská stránka: její příběh a rozpočet bajtů jsou deklarovány (site/data/homepage.toml) a podle rozhodnutí nenese žádný diagram; I2655 se na to ptá samostatně
  • Cockpit a majordomus ui: vykreslují vlastní grafy; sdílení tohoto prohlížeče s nimi je I2656
  • Vpisování odkazů do zdroje diagramu direktivou click v Mermaidu: odkaz se odvozuje z identity, nebo neexistuje

Závislosti

Žádné. Tento úkol je kořenem grafu.

Co na tom čeká

Kritéria přijetí

  • Každý <pre class=\"mermaid\"> sestaveného webu nese jedinečné id diagram-<name>, seznam svých uzlů a tabindex=0; build, který by na stránce publikoval dva diagramy s jedním id, se odmítne
  • Uzel, jehož id nebo popisek je identitou objektu, pro který web má stránku, je vypsán vedle diagramu jako odkaz na tu stránku a scripts/ci/link-check vyřeší každý takový odkaz
  • Odkaz na #diagram-<name>:<node> je odmítnut scripts/ci/link-check, když diagram tento uzel nedeklaruje
  • V prohlížeči prohlížeč diagramů přibližuje, posouvá a resetuje z lišty nástrojů i z klávesnice, kopíruje svůj vlastní odkaz a otevře diagram a uzel, které fragment pojmenovává
  • <figure data-chart> se kreslí z tabulky uvnitř a tabulka na stránce zůstává
  • Ratchet ručně kreslených diagramů zůstává na diagrams=0

Validace

  • node --test scripts/lib/diagrams.test.mjs
  • MJ_TEST_JOBS=2 bash test/run.sh 3006_diagrams_are_interactive_and_linkable 12_site_build 272_diagrams_are_drawn
  • scripts/site-build && scripts/site-check
  • scripts/ci/diagram-check

Požadované důkazy

  • diagram_pass_unit_tests
  • diagram_case_3006
  • site_check_passes

Důkazy

pokrývátypcommandvýsledeku commitu
diagram_pass_unit_teststestnode --test scripts/lib/diagrams.test.mjs# tests 20, # pass 20, # fail 0, # skipped 0 na 09c334079f509c3340
diagram_case_3006testMJ_TEST_JOBS=2 bash test/run.sh 3006_diagrams_are_interactive_and_linkable 12_site_build 272_diagrams_are_drawn; scripts/ci/diagram-checkok 3006 2s, ok 272 2s, ok 12_site_build 386s (s npm ci node_modules a target/web/rustdoc ze scripts/rust-check --doc; 0 přeskočeno); diagram-check: v publikovaných dokumentech není žádný ručně kreslený diagram; na 09c334079f5 s programem z #130409c3340
site_check_passestestscripts/site-build && scripts/site-check; scripts/ci/link-check; scripts/interaction-probe --spec diagram; node <scratch>/chart.mjs https://majordomus.dev/plan/site-build ok, 2023 tras; site-check: 0 selhání; link-check OK 431283 odkazů na 2023 stránkách se rozlišuje, 21664 fragmentů včetně #diagram-<name>:<node>; interaction-probe OK 798 ovládacích prvků diagramů na 78 stránkách dělá, co říká jejich specifikace (zoom, fit, pan, klávesy, Link, odkazy uzlů); publikovaný /plan/ figure[data-chart=bar] vykreslen jako canvas 1214x1058 z jeho tabulky o 38 řádcích, která zůstává zobrazena; na 09c334079f5; dodáno #1097 ve velkém vrcholu 11e53f5a45109c3340

Časová osa

zahájeno
2026-10-16T17:05:18Z
ověřeno
2026-10-16T17:05:23Z
dokončeno
2026-10-16T17:05:34Z

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/I2653.yaml. Načtěte jej zpět pomocí majordomus plan show I2653.

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