From d992ca4a01a8e9ef7eeca595a0d018cfc3643ccf Mon Sep 17 00:00:00 2001 From: Mathias Date: Mon, 20 Jul 2026 09:40:46 +0200 Subject: [PATCH] =?UTF-8?q?feat(atlas):=20UX=20polish=20=E2=80=94=20legend?= =?UTF-8?q?=20+=20feedback-bus=20honesty=20+=20Plain=20declutter=20(#6,=20?= =?UTF-8?q?#8)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit #6: always-visible legend keying the live-status colours (passed/running/failed), the governance-gate colour, and the dashed feedback loop. #8: the 08→TELOS loop is labelled "partly manual today" (honest, per PROJECT.md); Plain view hides the jargon-dense substrate ribbon + technical footer, so a non-technical viewer isn't shown koala/iguana/ns/assessor-loop proper nouns — they remain in Technical view. Frontend/CSS only; verified by screenshot. build/test/lint green. Co-Authored-By: Claude Opus 4.8 (1M context) --- internal/web/static/cad-atlas.html | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/internal/web/static/cad-atlas.html b/internal/web/static/cad-atlas.html index e812d97..e535bf4 100644 --- a/internal/web/static/cad-atlas.html +++ b/internal/web/static/cad-atlas.html @@ -67,6 +67,15 @@ .stagehead{min-height:64px} body.plain .stagehead{min-height:188px} .stage .node:first-of-type{margin-top:24px} + /* Plain view hides the jargon-dense infra ribbon + technical footer */ + body.plain .substrate{display:none} + body.plain footer{display:none} + .legend{display:flex;gap:16px;flex-wrap:wrap;align-items:center; + padding:7px 22px;border-bottom:1px solid var(--line);background:var(--bg);font-size:11px;color:var(--dim)} + .legend .lbl{letter-spacing:1.5px;margin-right:2px} + .legend .lg{display:inline-flex;align-items:center;gap:6px} + .legend .lg i{width:11px;height:11px;border-radius:3px;display:inline-block;border:1px solid rgba(0,0,0,.35)} + .legend .dash{width:18px;border-top:2px dashed var(--violet);display:inline-block} .scroll{overflow-x:auto;padding:24px 22px 20px} .track{position:relative;display:flex;align-items:flex-start;min-width:max-content} @@ -140,6 +149,14 @@
SUBSTRATE
+
+ KEY + passed / ready + running / waiting + failed / blocked + governance gate — must pass to advance + feedback loop · partly manual +
@@ -246,7 +263,7 @@ function build(){ const lastX=cs[cs.length-1], telosX=cs[1]; loopPath.setAttribute('d',`M ${lastX} ${RAILY} L ${lastX} ${loopY} L ${telosX} ${loopY} L ${telosX} ${RAILY}`); loopLbl.setAttribute('x',(telosX+lastX)/2-90);loopLbl.setAttribute('y',loopY-8); - loopLbl.textContent=(STAGES[8]&&STAGES[8].trans_label?STAGES[8].trans_label+' · ':'')+'feedback bus'; + loopLbl.textContent=(STAGES[8]&&STAGES[8].trans_label?STAGES[8].trans_label+' · ':'')+'feedback bus · partly manual today'; // transition labels on the spine — the "what must be true to advance" story. // Always visible (default layer). Gate hops (04→05 human, 06→07 CI) in gold. const tg=document.getElementById('translabels'); tg.innerHTML='';