diff --git a/docs/index.html b/docs/index.html index c0f03afb..4e07669f 100644 --- a/docs/index.html +++ b/docs/index.html @@ -26,11 +26,11 @@ .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-list{padding:0 20px 20px}.atlas-list .scope-teaser{margin:12px 0} + .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{outline:3px solid var(--gold);outline-offset:2px}.atlas-count{display:block;margin-top:12px;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-pressed=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-pressed=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}} - @media(max-width:800px){.navlinks .ghost{display:none}.compare,.lab,.principles,.paths,.continuity-steps,.challenge-feature{grid-template-columns:1fr}.section-head{align-items:start;flex-direction:column}.hero h1{font-size:clamp(3.2rem,12vw,5rem)}.console-foot,.scope-teaser{align-items:flex-start;flex-direction:column}} + @media(max-width:800px){.navlinks .ghost{display:none}.compare,.lab,.principles,.paths,.continuity-steps,.challenge-feature,.atlas-list{grid-template-columns:1fr}.section-head{align-items:start;flex-direction:column}.hero h1{font-size:clamp(3.2rem,12vw,5rem)}.console-foot,.scope-teaser{align-items:flex-start;flex-direction:column}} @media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.element{transition:none}} .boundary-switch{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:9px;background:#06111e;border-bottom:1px solid var(--line)}.boundary-switch button{padding:11px 8px;border:1px solid transparent;border-radius:11px;background:transparent;color:#a9bfce;font:800 .77rem ui-sans-serif,system-ui;cursor:pointer}.boundary-switch button[aria-pressed=true]{border-color:rgba(125,249,255,.43);background:rgba(125,249,255,.12);color:var(--cyan)}.boundary-switch button:focus-visible{outline:3px solid var(--gold);outline-offset:1px}.console-body[hidden]{display:none}.action-target{padding:15px;border:1px solid var(--line);border-radius:13px;background:rgba(255,255,255,.035)}.action-target span{display:block;color:var(--muted);font-size:.76rem}.action-target strong{display:block;margin-top:5px;color:var(--red);font:700 clamp(.91rem,1.3vw,1.03rem) ui-monospace,monospace;overflow-wrap:anywhere}.action-target.approved strong{color:var(--green)}.action-rule{margin:15px 0;color:#a9c8ce;font:12px/1.5 ui-monospace,monospace}.action-rule b{color:var(--gold);font-weight:700}.verdict.approval{border-color:rgba(242,206,114,.45);background:rgba(242,206,114,.1)}.verdict.approval strong{color:var(--gold);font-size:clamp(1rem,1.9vw,1.35rem)}.action-count{margin:8px 2px 0;color:var(--muted);font-size:.77rem}.action-case button:focus-visible{outline:3px solid var(--gold);outline-offset:2px}.home-evidence{margin-top:12px;padding:12px 14px;border:1px solid rgba(125,249,255,.24);border-radius:11px;background:rgba(0,0,0,.2)}.home-evidence span{display:block;color:var(--cyan);font:800 .65rem ui-monospace,monospace;letter-spacing:.13em}.home-evidence code{display:block;margin:7px 0;color:#d8f5f7;font:11px/1.45 ui-monospace,monospace;overflow-wrap:anywhere}.home-evidence small{color:var(--muted);font-size:.72rem}.gate-slot{min-height:66px;display:grid;place-items:center;margin-top:12px;border:1px dashed rgba(125,249,255,.3);border-radius:11px;color:var(--muted);font-size:.77rem;text-align:center;padding:11px}.gate-slot aml-gate[hidden],#hero-gate-placeholder[hidden]{display:none}.gate-slot aml-gate button{padding:11px 16px;background:var(--cyan);color:#06111e;border:0;border-radius:9px;font:800 .82rem ui-sans-serif,system-ui}.gate-event{margin:7px 0 0;color:#a9c8ce;font:11px ui-monospace,monospace} @media(max-width:520px){.boundary-switch button{font-size:.7rem}.verdict.approval strong{font-size:1rem}.console-body{padding:17px}} @@ -101,21 +101,24 @@

AI proposes.
The host decides.

-
RESEARCH ATLAS / 13 LABSGo deeper into the counterexamples and experiments ↗Connected MCP, action replay, mail targets, real screens, verification, and more.
-
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 ↗
-
NEW / SHARED HOST CLAIMOne ID can cross workers.

Two actual Node workers each reach a simulated callback when their claim stores are separate. A private shared claim lets one through; the other receives a replay error. Inspect four executed cases.

Watch the worker race ↗
-
NEW / FALSE PERFECT-SCORE COUNTEREXAMPLE13/13 can still be wrong.

A canned adapter copies fixed answers and passes every public case. Six seeded transformations expose it at 13/19 while the project reference executes 19/19. Inspect the case-by-case evidence.

Watch the score break ↗
-
OUTSIDE IMPLEMENTER TOOLShow your own boundary result.

Run an adapter against 13 published cases plus six seeded probes and export a standalone visual report of actual verdicts and diagnostics. The published 13-case example is a project reference self-test.

Inspect the report format ↗
-
PREPARED REQUEST BOUNDARYCheck what will be sent.

Eight executed cases reveal a BCC added by host routing after an earlier check. Moving request construction before policy changes simulated provider callbacks from one to zero.

Follow the final request ↗
-
COMPLETE MAIL TOOLOne tool. Every recipient.

Seven executed cases compare a To-only function-tool mapper with a complete-recipient host adapter. An added BCC goes from one simulated callback to zero.

Follow the callback ↗
-
INTERACTIVE RECIPIENT WORKBENCHPut your own recipients through the target check.

Edit intended and proposed To, CC, and BCC fields. Compare exact resource keys and the local target outcome.

Try the workbench ↗
-
COMPLETE RECIPIENT MANIFESTOne visible recipient. Two actual destinations.

A to-only target check misses an added BCC. Seven local cases compare it with a complete, host-owned recipient manifest.

Inspect the second recipient ↗
-
EXECUTABLE TARGET BINDINGDeclared route. Different actual recipient.

Seven local cases show why a host must map the destination a tool will use before approving or dispatching it.

Inspect the mismatch ↗
-
REAL-SCREEN FIELD STUDYA bad policy erases the last call path after scrolling.

Two hashed production captures show why a declared interface policy also needs a contact-continuity constraint.

Inspect the real screen ↗
-
ACTION BOUNDARY STUDIODraw the line before the call.

Edit the proposal and the host policy together. Inspect the exact decision, then export and recheck a portable calculation bundle.

Open the Studio ↗
-
POLICY X-RAYSame address. Different message.

An unreviewed exact route admits a changed body. See what a digest-bound host decision changes in eight executable cases.

Inspect the counterexample ↗
+
RESEARCH ATLAS / 13 LABSFind the experiment behind the boundary ↗Search by failure mode or choose a path through the 13 labs. +
13 labs shown
+
+
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 ↗
+
NEW / SHARED HOST CLAIMOne ID can cross workers.

Two actual Node workers each reach a simulated callback when their claim stores are separate. A private shared claim lets one through; the other receives a replay error. Inspect four executed cases.

Watch the worker race ↗
+
NEW / FALSE PERFECT-SCORE COUNTEREXAMPLE13/13 can still be wrong.

A canned adapter copies fixed answers and passes every public case. Six seeded transformations expose it at 13/19 while the project reference executes 19/19. Inspect the case-by-case evidence.

Watch the score break ↗
+
OUTSIDE IMPLEMENTER TOOLShow your own boundary result.

Run an adapter against 13 published cases plus six seeded probes and export a standalone visual report of actual verdicts and diagnostics. The published 13-case example is a project reference self-test.

Inspect the report format ↗
+
PREPARED REQUEST BOUNDARYCheck what will be sent.

Eight executed cases reveal a BCC added by host routing after an earlier check. Moving request construction before policy changes simulated provider callbacks from one to zero.

Follow the final request ↗
+
COMPLETE MAIL TOOLOne tool. Every recipient.

Seven executed cases compare a To-only function-tool mapper with a complete-recipient host adapter. An added BCC goes from one simulated callback to zero.

Follow the callback ↗
+
INTERACTIVE RECIPIENT WORKBENCHPut your own recipients through the target check.

Edit intended and proposed To, CC, and BCC fields. Compare exact resource keys and the local target outcome.

Try the workbench ↗
+
COMPLETE RECIPIENT MANIFESTOne visible recipient. Two actual destinations.

A to-only target check misses an added BCC. Seven local cases compare it with a complete, host-owned recipient manifest.

Inspect the second recipient ↗
+
EXECUTABLE TARGET BINDINGDeclared route. Different actual recipient.

Seven local cases show why a host must map the destination a tool will use before approving or dispatching it.

Inspect the mismatch ↗
+
REAL-SCREEN FIELD STUDYA bad policy erases the last call path after scrolling.

Two hashed production captures show why a declared interface policy also needs a contact-continuity constraint.

Inspect the real screen ↗
+
ACTION BOUNDARY STUDIODraw the line before the call.

Edit the proposal and the host policy together. Inspect the exact decision, then export and recheck a portable calculation bundle.

Open the Studio ↗
+
POLICY X-RAYSame address. Different message.

An unreviewed exact route admits a changed body. See what a digest-bound host decision changes in eight executable cases.

Inspect the counterexample ↗
+
@@ -206,6 +209,30 @@

No magic. No false certainty.

document.querySelector("#challenge-link").textContent="Verify this result locally ↗"; })); + diff --git a/index.html b/index.html index c0f03afb..4e07669f 100644 --- a/index.html +++ b/index.html @@ -26,11 +26,11 @@ .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-list{padding:0 20px 20px}.atlas-list .scope-teaser{margin:12px 0} + .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{outline:3px solid var(--gold);outline-offset:2px}.atlas-count{display:block;margin-top:12px;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-pressed=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-pressed=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}} - @media(max-width:800px){.navlinks .ghost{display:none}.compare,.lab,.principles,.paths,.continuity-steps,.challenge-feature{grid-template-columns:1fr}.section-head{align-items:start;flex-direction:column}.hero h1{font-size:clamp(3.2rem,12vw,5rem)}.console-foot,.scope-teaser{align-items:flex-start;flex-direction:column}} + @media(max-width:800px){.navlinks .ghost{display:none}.compare,.lab,.principles,.paths,.continuity-steps,.challenge-feature,.atlas-list{grid-template-columns:1fr}.section-head{align-items:start;flex-direction:column}.hero h1{font-size:clamp(3.2rem,12vw,5rem)}.console-foot,.scope-teaser{align-items:flex-start;flex-direction:column}} @media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.element{transition:none}} .boundary-switch{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:9px;background:#06111e;border-bottom:1px solid var(--line)}.boundary-switch button{padding:11px 8px;border:1px solid transparent;border-radius:11px;background:transparent;color:#a9bfce;font:800 .77rem ui-sans-serif,system-ui;cursor:pointer}.boundary-switch button[aria-pressed=true]{border-color:rgba(125,249,255,.43);background:rgba(125,249,255,.12);color:var(--cyan)}.boundary-switch button:focus-visible{outline:3px solid var(--gold);outline-offset:1px}.console-body[hidden]{display:none}.action-target{padding:15px;border:1px solid var(--line);border-radius:13px;background:rgba(255,255,255,.035)}.action-target span{display:block;color:var(--muted);font-size:.76rem}.action-target strong{display:block;margin-top:5px;color:var(--red);font:700 clamp(.91rem,1.3vw,1.03rem) ui-monospace,monospace;overflow-wrap:anywhere}.action-target.approved strong{color:var(--green)}.action-rule{margin:15px 0;color:#a9c8ce;font:12px/1.5 ui-monospace,monospace}.action-rule b{color:var(--gold);font-weight:700}.verdict.approval{border-color:rgba(242,206,114,.45);background:rgba(242,206,114,.1)}.verdict.approval strong{color:var(--gold);font-size:clamp(1rem,1.9vw,1.35rem)}.action-count{margin:8px 2px 0;color:var(--muted);font-size:.77rem}.action-case button:focus-visible{outline:3px solid var(--gold);outline-offset:2px}.home-evidence{margin-top:12px;padding:12px 14px;border:1px solid rgba(125,249,255,.24);border-radius:11px;background:rgba(0,0,0,.2)}.home-evidence span{display:block;color:var(--cyan);font:800 .65rem ui-monospace,monospace;letter-spacing:.13em}.home-evidence code{display:block;margin:7px 0;color:#d8f5f7;font:11px/1.45 ui-monospace,monospace;overflow-wrap:anywhere}.home-evidence small{color:var(--muted);font-size:.72rem}.gate-slot{min-height:66px;display:grid;place-items:center;margin-top:12px;border:1px dashed rgba(125,249,255,.3);border-radius:11px;color:var(--muted);font-size:.77rem;text-align:center;padding:11px}.gate-slot aml-gate[hidden],#hero-gate-placeholder[hidden]{display:none}.gate-slot aml-gate button{padding:11px 16px;background:var(--cyan);color:#06111e;border:0;border-radius:9px;font:800 .82rem ui-sans-serif,system-ui}.gate-event{margin:7px 0 0;color:#a9c8ce;font:11px ui-monospace,monospace} @media(max-width:520px){.boundary-switch button{font-size:.7rem}.verdict.approval strong{font-size:1rem}.console-body{padding:17px}} @@ -101,21 +101,24 @@

AI proposes.
The host decides.

-
RESEARCH ATLAS / 13 LABSGo deeper into the counterexamples and experiments ↗Connected MCP, action replay, mail targets, real screens, verification, and more.
-
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 ↗
-
NEW / SHARED HOST CLAIMOne ID can cross workers.

Two actual Node workers each reach a simulated callback when their claim stores are separate. A private shared claim lets one through; the other receives a replay error. Inspect four executed cases.

Watch the worker race ↗
-
NEW / FALSE PERFECT-SCORE COUNTEREXAMPLE13/13 can still be wrong.

A canned adapter copies fixed answers and passes every public case. Six seeded transformations expose it at 13/19 while the project reference executes 19/19. Inspect the case-by-case evidence.

Watch the score break ↗
-
OUTSIDE IMPLEMENTER TOOLShow your own boundary result.

Run an adapter against 13 published cases plus six seeded probes and export a standalone visual report of actual verdicts and diagnostics. The published 13-case example is a project reference self-test.

Inspect the report format ↗
-
PREPARED REQUEST BOUNDARYCheck what will be sent.

Eight executed cases reveal a BCC added by host routing after an earlier check. Moving request construction before policy changes simulated provider callbacks from one to zero.

Follow the final request ↗
-
COMPLETE MAIL TOOLOne tool. Every recipient.

Seven executed cases compare a To-only function-tool mapper with a complete-recipient host adapter. An added BCC goes from one simulated callback to zero.

Follow the callback ↗
-
INTERACTIVE RECIPIENT WORKBENCHPut your own recipients through the target check.

Edit intended and proposed To, CC, and BCC fields. Compare exact resource keys and the local target outcome.

Try the workbench ↗
-
COMPLETE RECIPIENT MANIFESTOne visible recipient. Two actual destinations.

A to-only target check misses an added BCC. Seven local cases compare it with a complete, host-owned recipient manifest.

Inspect the second recipient ↗
-
EXECUTABLE TARGET BINDINGDeclared route. Different actual recipient.

Seven local cases show why a host must map the destination a tool will use before approving or dispatching it.

Inspect the mismatch ↗
-
REAL-SCREEN FIELD STUDYA bad policy erases the last call path after scrolling.

Two hashed production captures show why a declared interface policy also needs a contact-continuity constraint.

Inspect the real screen ↗
-
ACTION BOUNDARY STUDIODraw the line before the call.

Edit the proposal and the host policy together. Inspect the exact decision, then export and recheck a portable calculation bundle.

Open the Studio ↗
-
POLICY X-RAYSame address. Different message.

An unreviewed exact route admits a changed body. See what a digest-bound host decision changes in eight executable cases.

Inspect the counterexample ↗
+
RESEARCH ATLAS / 13 LABSFind the experiment behind the boundary ↗Search by failure mode or choose a path through the 13 labs. +
13 labs shown
+
+
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 ↗
+
NEW / SHARED HOST CLAIMOne ID can cross workers.

Two actual Node workers each reach a simulated callback when their claim stores are separate. A private shared claim lets one through; the other receives a replay error. Inspect four executed cases.

Watch the worker race ↗
+
NEW / FALSE PERFECT-SCORE COUNTEREXAMPLE13/13 can still be wrong.

A canned adapter copies fixed answers and passes every public case. Six seeded transformations expose it at 13/19 while the project reference executes 19/19. Inspect the case-by-case evidence.

Watch the score break ↗
+
OUTSIDE IMPLEMENTER TOOLShow your own boundary result.

Run an adapter against 13 published cases plus six seeded probes and export a standalone visual report of actual verdicts and diagnostics. The published 13-case example is a project reference self-test.

Inspect the report format ↗
+
PREPARED REQUEST BOUNDARYCheck what will be sent.

Eight executed cases reveal a BCC added by host routing after an earlier check. Moving request construction before policy changes simulated provider callbacks from one to zero.

Follow the final request ↗
+
COMPLETE MAIL TOOLOne tool. Every recipient.

Seven executed cases compare a To-only function-tool mapper with a complete-recipient host adapter. An added BCC goes from one simulated callback to zero.

Follow the callback ↗
+
INTERACTIVE RECIPIENT WORKBENCHPut your own recipients through the target check.

Edit intended and proposed To, CC, and BCC fields. Compare exact resource keys and the local target outcome.

Try the workbench ↗
+
COMPLETE RECIPIENT MANIFESTOne visible recipient. Two actual destinations.

A to-only target check misses an added BCC. Seven local cases compare it with a complete, host-owned recipient manifest.

Inspect the second recipient ↗
+
EXECUTABLE TARGET BINDINGDeclared route. Different actual recipient.

Seven local cases show why a host must map the destination a tool will use before approving or dispatching it.

Inspect the mismatch ↗
+
REAL-SCREEN FIELD STUDYA bad policy erases the last call path after scrolling.

Two hashed production captures show why a declared interface policy also needs a contact-continuity constraint.

Inspect the real screen ↗
+
ACTION BOUNDARY STUDIODraw the line before the call.

Edit the proposal and the host policy together. Inspect the exact decision, then export and recheck a portable calculation bundle.

Open the Studio ↗
+
POLICY X-RAYSame address. Different message.

An unreviewed exact route admits a changed body. See what a digest-bound host decision changes in eight executable cases.

Inspect the counterexample ↗
+
@@ -206,6 +209,30 @@

No magic. No false certainty.

document.querySelector("#challenge-link").textContent="Verify this result locally ↗"; })); +