From 3bd35fc7e8bc140c25f8821bcaa24f3edfb8d857 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Jacob=20Read=20IV=20=E2=80=94=20Creator=20of=20?= =?UTF-8?q?=C4=80ML=E2=84=A2?= Date: Tue, 13 Oct 2026 11:54:07 -0700 Subject: [PATCH 1/3] Make atlas topic a keyboard choice and preserve same prediction --- docs/index.html | 30 +++++++++++++++++++++++++----- 1 file changed, 25 insertions(+), 5 deletions(-) diff --git a/docs/index.html b/docs/index.html index 082df088..c995c215 100644 --- a/docs/index.html +++ b/docs/index.html @@ -26,7 +26,7 @@ .continuity{position:relative;overflow:hidden;margin:24px 0 58px;padding:clamp(24px,4vw,42px);border:1px solid rgba(125,249,255,.26);border-radius:28px;background:radial-gradient(circle at 100% 0,rgba(125,249,255,.16),transparent 36%),linear-gradient(135deg,#111b31,#090f1d 65%)}.continuity::before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,transparent 49.9%,rgba(125,249,255,.035) 50%,transparent 50.1%);background-size:32px 32px;opacity:.55}.continuity>*{position:relative}.continuity-kicker{color:var(--cyan);font:800 .73rem ui-monospace,monospace;letter-spacing:.16em}.continuity h2{max-width:800px;margin:12px 0;font-size:clamp(1.8rem,3.5vw,3.1rem);line-height:1.12;letter-spacing:-.035em}.continuity-lede{max-width:760px;color:#c8d5e4}.continuity-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:26px 0}.continuity-step{padding:19px;border:1px solid rgba(255,255,255,.12);border-radius:16px;background:rgba(255,255,255,.045)}.continuity-step span{color:var(--gold);font:800 .72rem ui-monospace,monospace;letter-spacing:.12em}.continuity-step b{display:block;margin:9px 0 5px;font-size:1.12rem}.continuity-step small{color:#b5c4d5;font-size:.84rem}.continuity-foot{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.continuity-foot code{color:var(--cyan);font-size:.78rem}.continuity-foot a{color:#06141b;background:var(--cyan);padding:11px 16px;border-radius:999px;font-weight:850;text-decoration:none}.continuity-foot a:focus-visible{outline:3px solid var(--gold);outline-offset:3px}.continuity-caveat{margin:22px 0 0;color:var(--muted);font-size:.79rem} .scope-teaser{display:flex;align-items:center;justify-content:space-between;gap:18px;border:1px solid rgba(242,206,114,.48);border-radius:20px;background:linear-gradient(110deg,rgba(242,206,114,.14),rgba(13,24,41,.91));padding:23px 26px;margin:0 0 56px}.scope-teaser span{color:var(--gold);font:800 .7rem ui-monospace,monospace;letter-spacing:.15em}.scope-teaser b{display:block;margin:4px 0;font-size:1.28rem;letter-spacing:-.025em}.scope-teaser p{margin:0;color:#c7d0df;font-size:.86rem}.scope-teaser a{flex-shrink:0;color:#07111f;background:var(--gold);padding:11px 16px;border-radius:999px;text-decoration:none;font-weight:850}.scope-teaser a:focus-visible{outline:3px solid var(--cyan);outline-offset:3px} .truth{margin:40px 0;padding:30px;border:1px solid rgba(242,206,114,.3);border-radius:26px;background:linear-gradient(135deg,rgba(242,206,114,.08),rgba(125,249,255,.05))}.truth h2{margin-top:0}.truth p{color:#cad2df}.footer{padding:30px 0 50px;border-top:1px solid var(--line);color:var(--muted);font-size:.82rem;text-align:center} - .atlas{margin:0 0 45px;border:1px solid var(--line);border-radius:22px;background:rgba(255,255,255,.035)}.atlas summary{display:grid;gap:4px;cursor:pointer;padding:22px 26px;list-style:none}.atlas summary::-webkit-details-marker{display:none}.atlas summary span{color:var(--cyan);font:800 .7rem ui-monospace,monospace;letter-spacing:.14em}.atlas summary strong{font-size:1.25rem}.atlas summary small{color:var(--muted);font-size:.82rem}.atlas summary:focus-visible{outline:3px solid var(--gold);outline-offset:3px}.atlas[open] summary{border-bottom:1px solid var(--line)}.atlas-tools{padding:20px 20px 16px}.atlas-tools label{display:block;margin-bottom:7px;color:var(--cyan);font:800 .7rem ui-monospace,monospace;letter-spacing:.13em}.atlas-tools input{box-sizing:border-box;width:100%;padding:13px 15px;border:1px solid rgba(125,249,255,.35);border-radius:12px;background:#071522;color:#f0fbff;font:500 .9rem ui-sans-serif,system-ui}.atlas-tools input::placeholder{color:#94aebb}.atlas-tools input:focus-visible{outline:3px solid var(--gold);outline-offset:2px}.atlas-filters{display:flex;gap:8px;flex-wrap:wrap;margin-top:13px}.atlas-filters button{padding:8px 12px;border:1px solid rgba(125,249,255,.26);border-radius:999px;background:#102434;color:#b9d7df;font:800 .76rem ui-sans-serif,system-ui;cursor:pointer}.atlas-filters button[aria-pressed=true]{border-color:var(--cyan);background:rgba(125,249,255,.16);color:var(--cyan)}.atlas-filters button:focus-visible,.atlas-share button:focus-visible{outline:3px solid var(--gold);outline-offset:2px}.atlas-share{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-top:13px}.atlas-share button{padding:8px 12px;border:1px solid rgba(242,206,114,.4);border-radius:999px;background:rgba(242,206,114,.1);color:var(--gold);font:800 .76rem ui-sans-serif,system-ui;cursor:pointer}.atlas-share small{color:#9db1c3;font-size:.7rem}.atlas-count{color:#aabdc9;font:.72rem ui-monospace,monospace}.atlas-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:0 20px 20px}.atlas-list .scope-teaser{min-width:0;min-height:190px;align-items:flex-start;flex-direction:column;margin:0}.atlas-list .scope-teaser a{margin-top:auto}.atlas-list .scope-teaser[hidden],.atlas-empty[hidden]{display:none}.atlas-empty{grid-column:1/-1;margin:0;padding:35px;border:1px dashed var(--line);border-radius:15px;color:var(--muted);text-align:center} + .atlas{margin:0 0 45px;border:1px solid var(--line);border-radius:22px;background:rgba(255,255,255,.035)}.atlas summary{display:grid;gap:4px;cursor:pointer;padding:22px 26px;list-style:none}.atlas summary::-webkit-details-marker{display:none}.atlas summary span{color:var(--cyan);font:800 .7rem ui-monospace,monospace;letter-spacing:.14em}.atlas summary strong{font-size:1.25rem}.atlas summary small{color:var(--muted);font-size:.82rem}.atlas summary:focus-visible{outline:3px solid var(--gold);outline-offset:3px}.atlas[open] summary{border-bottom:1px solid var(--line)}.atlas-tools{padding:20px 20px 16px}.atlas-tools label{display:block;margin-bottom:7px;color:var(--cyan);font:800 .7rem ui-monospace,monospace;letter-spacing:.13em}.atlas-tools input{box-sizing:border-box;width:100%;padding:13px 15px;border:1px solid rgba(125,249,255,.35);border-radius:12px;background:#071522;color:#f0fbff;font:500 .9rem ui-sans-serif,system-ui}.atlas-tools input::placeholder{color:#94aebb}.atlas-tools input:focus-visible{outline:3px solid var(--gold);outline-offset:2px}.atlas-filters{display:flex;gap:8px;flex-wrap:wrap;margin-top:13px}.atlas-filters button{padding:8px 12px;border:1px solid rgba(125,249,255,.26);border-radius:999px;background:#102434;color:#b9d7df;font:800 .76rem ui-sans-serif,system-ui;cursor:pointer}.atlas-filters button[aria-checked=true]{border-color:var(--cyan);background:rgba(125,249,255,.16);color:var(--cyan)}.atlas-filters button:focus-visible,.atlas-share button:focus-visible{outline:3px solid var(--gold);outline-offset:2px}.atlas-share{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-top:13px}.atlas-share button{padding:8px 12px;border:1px solid rgba(242,206,114,.4);border-radius:999px;background:rgba(242,206,114,.1);color:var(--gold);font:800 .76rem ui-sans-serif,system-ui;cursor:pointer}.atlas-share small{color:#9db1c3;font-size:.7rem}.atlas-count{color:#aabdc9;font:.72rem ui-monospace,monospace}.atlas-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:0 20px 20px}.atlas-list .scope-teaser{min-width:0;min-height:190px;align-items:flex-start;flex-direction:column;margin:0}.atlas-list .scope-teaser a{margin-top:auto}.atlas-list .scope-teaser[hidden],.atlas-empty[hidden]{display:none}.atlas-empty{grid-column:1/-1;margin:0;padding:35px;border:1px dashed var(--line);border-radius:15px;color:var(--muted);text-align:center} .challenge-feature{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:clamp(22px,5vw,65px);align-items:center;position:relative;overflow:hidden;margin:0 0 38px;padding:clamp(25px,4vw,43px);border:1px solid rgba(242,206,114,.43);border-radius:27px;background:radial-gradient(circle at 100% 0,rgba(255,102,136,.14),transparent 44%),linear-gradient(135deg,#172238,#0a1020 66%);box-shadow:0 24px 70px rgba(0,0,0,.2)}.challenge-feature::before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,transparent 49.8%,rgba(242,206,114,.04) 50%,transparent 50.2%);background-size:29px 29px}.challenge-feature>*{position:relative}.challenge-kicker{color:var(--gold);font:850 .72rem ui-monospace,monospace;letter-spacing:.15em}.challenge-feature h2{max-width:560px;margin:11px 0 14px;font-size:clamp(2rem,4.5vw,3.65rem);line-height:1.04;letter-spacing:-.05em}.challenge-feature h2 em{font-style:normal;color:var(--gold)}.challenge-feature p{max-width:560px;margin:0;color:#ccd7e5}.challenge-feature .challenge-link{display:inline-flex;margin-top:21px;padding:11px 17px;border-radius:999px;background:var(--gold);color:#10151f;font-weight:900;text-decoration:none}.challenge-feature .challenge-link:focus-visible{outline:3px solid var(--cyan);outline-offset:3px}.challenge-limit{display:block;max-width:520px;margin-top:13px;color:#aab9c9;font-size:.76rem}.challenge-ledger{padding:18px;border:1px solid rgba(255,255,255,.16);border-radius:19px;background:#050c19b8;box-shadow:0 18px 50px #0005}.ledger-head{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:13px;color:#9db9c5;font:800 .67rem ui-monospace,monospace;letter-spacing:.12em}.ledger-head b{color:var(--cyan)}.ledger-step{display:grid;grid-template-columns:1fr auto;gap:4px 12px;padding:17px;border:1px solid rgba(156,255,176,.34);border-radius:13px;background:rgba(156,255,176,.065)}.ledger-step span{color:#c0cfdb;font:800 .69rem ui-monospace,monospace;letter-spacing:.11em}.ledger-step strong{color:var(--green);font:900 .95rem ui-monospace,monospace}.ledger-step small{grid-column:1/-1;color:#d0dce5;font:.73rem/1.5 ui-monospace,monospace}.ledger-step.changed{border-color:rgba(255,102,136,.42);background:rgba(255,102,136,.08)}.ledger-step.changed strong{color:#ff9bb0}.ledger-pivot{display:flex;align-items:center;gap:11px;margin:10px 0;color:var(--gold);font:800 .69rem ui-monospace,monospace;letter-spacing:.09em}.ledger-pivot::before,.ledger-pivot::after{content:"";height:1px;flex:1;background:rgba(242,206,114,.3)} .probe-switch{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0 10px}.probe-switch button{flex:1;min-width:150px;padding:9px 10px;border:1px solid rgba(125,249,255,.25);border-radius:9px;background:rgba(125,249,255,.045);color:#b8d7df;font:800 .75rem ui-sans-serif,system-ui;cursor:pointer}.probe-switch button[aria-checked=true]{border-color:var(--gold);background:rgba(242,206,114,.13);color:var(--gold)}.probe-switch button:focus-visible,.predict-choices button:focus-visible{outline:3px solid var(--cyan);outline-offset:2px}.predict-label{display:block;margin:18px 0 8px;color:#e5eff3;font:800 .73rem ui-monospace,monospace;letter-spacing:.08em}.predict-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.predict-choices button{min-width:0;padding:11px 7px;border:1px solid rgba(125,249,255,.35);border-radius:10px;background:#102434;color:#c8eced;font:800 .72rem ui-sans-serif,system-ui;cursor:pointer}.predict-choices button[aria-checked=true]{border-color:var(--cyan);background:rgba(125,249,255,.17);color:#fff}.predict-feedback{margin:13px 0 9px;padding:11px 13px;border-left:3px solid var(--green);border-radius:7px;background:rgba(156,255,176,.08);color:#d5f0dd;font-size:.8rem}.predict-feedback[data-correct=false]{border-color:var(--gold);background:rgba(242,206,114,.09);color:#f5dfad}.ledger-step[hidden],.predict-feedback[hidden]{display:none}.ledger-note{display:block;margin-top:12px;color:#9db1c3;font-size:.72rem} @media(max-width:900px){.hero{grid-template-columns:1fr;padding-top:42px}.hero h1{max-width:690px}.proof-console{max-width:690px}.paths{grid-template-columns:1fr 1fr}} @@ -115,7 +115,7 @@

AI proposes.
The host decides.

RESEARCH ATLAS / 13 LABSFind the experiment behind the boundary ↗Search by failure mode or choose a path through the 13 labs. -
13 labs shownTopic only · search text stays here
+
13 labs shownTopic only · search text stays here
NEW / CONNECTED MCP PILOTOne call crosses the wire. Zero pass the rule.

An official SDK client talks to a child MCP server over stdio. A misleading hint lets an outside call reach the local handler once; an AML host rule stops the same proposal before the server. Inspect six measured cases and the local audit.

Trace the connected call ↗
MODEL CONTEXT PROTOCOL / IN-MEMORY CASESA tool hint is not permission.

Eight additional in-memory callback cases distinguish policy denial, stale approval, tool errors, and unknown outcomes.

Inspect the earlier cases ↗
@@ -217,6 +217,7 @@

No magic. No false certainty.

})); } function chooseProbe(button){ + if(chosenProbe===button.dataset.probe)return; chosenProbe=button.dataset.probe; const preview=probePreview[chosenProbe]; selectRadio(probeButtons,button); @@ -250,6 +251,7 @@

No magic. No false certainty.

const atlas=document.querySelector("#research-atlas"); const atlasSearch=document.querySelector("#atlas-search"); const atlasLabs=[...atlas.querySelectorAll(".atlas-list .scope-teaser")]; + const atlasButtons=[...atlas.querySelectorAll(".atlas-filters button")]; let atlasTopic="all"; const atlasHashes={"#research-atlas":"all","#atlas-calls":"calls","#atlas-recipients":"recipients","#atlas-screens":"screens"}; const atlasUrl=topic=>{ @@ -281,14 +283,32 @@

No magic. No false certainty.

} } atlasSearch.addEventListener("input",filterAtlas); + function syncAtlasButtons(topic){ + atlasButtons.forEach(button=>{ + const checked=button.dataset.topic===topic; + button.setAttribute("aria-checked",String(checked)); + button.tabIndex=checked?0:-1; + }); + } function selectAtlasTopic(topic){ atlasTopic=topic; - atlas.querySelectorAll(".atlas-filters button").forEach(option=>option.setAttribute("aria-pressed",String(option.dataset.topic===topic))); + syncAtlasButtons(topic); window.history.replaceState(null,"",atlasUrl(atlasTopic)); document.querySelector("#atlas-copy").textContent="Copy this topic link ↗"; filterAtlas(); } - atlas.querySelectorAll(".atlas-filters button").forEach(button=>button.addEventListener("click",()=>selectAtlasTopic(button.dataset.topic))); + atlasButtons.forEach((button,index)=>{ + button.addEventListener("click",()=>selectAtlasTopic(button.dataset.topic)); + button.addEventListener("keydown",event=>{ + const next=event.key==="Home"?0:event.key==="End"?atlasButtons.length-1: + ["ArrowRight","ArrowDown"].includes(event.key)?(index+1)%atlasButtons.length: + ["ArrowLeft","ArrowUp"].includes(event.key)?(index+atlasButtons.length-1)%atlasButtons.length:null; + if(next===null)return; + event.preventDefault(); + atlasButtons[next].focus(); + selectAtlasTopic(atlasButtons[next].dataset.topic); + }); + }); document.querySelector("#atlas-show-all").addEventListener("click",()=>selectAtlasTopic("all")); atlas.querySelectorAll("[data-atlas-suggestion]").forEach(button=>button.addEventListener("click",()=>{ atlasSearch.value=button.dataset.atlasSuggestion; @@ -301,7 +321,7 @@

No magic. No false certainty.

atlas.open=true; atlasTopic=topic; atlasSearch.value=""; - atlas.querySelectorAll(".atlas-filters button").forEach(option=>option.setAttribute("aria-pressed",String(option.dataset.topic===topic))); + syncAtlasButtons(topic); filterAtlas(); requestAnimationFrame(()=>atlas.scrollIntoView({block:"start"})); } From 53a488534b0f43aff0abe0e4d9cb244b52691955 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Jacob=20Read=20IV=20=E2=80=94=20Creator=20of=20?= =?UTF-8?q?=C4=80ML=E2=84=A2?= Date: Tue, 13 Oct 2026 11:54:11 -0700 Subject: [PATCH 2/3] Keep answered challenge on same-condition reselect --- test/home-challenge-selection.test.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/test/home-challenge-selection.test.js b/test/home-challenge-selection.test.js index baa55f4f..6e5b35e8 100644 --- a/test/home-challenge-selection.test.js +++ b/test/home-challenge-selection.test.js @@ -59,6 +59,9 @@ test("challenge choices support one selected answer, keyboard navigation, and re predictions[2].click(); assert.equal(fields["#predict-feedback"].dataset.correct, "true"); assert.deepEqual(predictions.map(x => x.tabIndex), [-1, -1, 0]); + probes[0].click(); + assert.equal(fields["#predict-feedback"].hidden, false, "reselecting the same change keeps its answer"); + assert.equal(fields["#ledger-result"].hidden, false); assert.equal(predictions[2].key("ArrowRight"), true); assert.equal(focused, predictions[0]); assert.deepEqual(predictions.map(x => x.attributes["aria-checked"]), ["true", "false", "false"]); From 9b8236e6fd335d80b908992d8c34b7a6ffc2a98a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Jacob=20Read=20IV=20=E2=80=94=20Creator=20of=20?= =?UTF-8?q?=C4=80ML=E2=84=A2?= Date: Tue, 13 Oct 2026 11:54:15 -0700 Subject: [PATCH 3/3] Test atlas topic keyboard, URL, and search state --- test/home-atlas-choice.test.js | 76 ++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 test/home-atlas-choice.test.js diff --git a/test/home-atlas-choice.test.js b/test/home-atlas-choice.test.js new file mode 100644 index 00000000..186eba54 --- /dev/null +++ b/test/home-atlas-choice.test.js @@ -0,0 +1,76 @@ +import assert from "node:assert/strict"; +import { readFileSync } from "node:fs"; +import { runInNewContext } from "node:vm"; +import test from "node:test"; + +test("atlas topic keyboard selection updates URL and preserves the search", () => { + const page = readFileSync(new URL("../docs/index.html", import.meta.url), "utf8"); + const script = page.match(/