Something went wrong. Try again.
A video game where you play as a misaligned AI, deceiving and building power. An experiment in spec-driven development.
Something went wrong. Try again.
73 kB · 197 lines
HTML
at pages
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197<!DOCTYPE html><html lang="en" dir="ltr" data-theme="dark" data-has-toc data-has-sidebar class="astro-gxooskym"><head><meta charset="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><title>Spec: the digital read — a world made of language | Misaligned</title><link rel="canonical" href="https://cameron.tngl.io/misaligned/interface/digital-read/"/><link rel="sitemap" href="/misaligned/sitemap-index.xml"/><link rel="preconnect" href="https://fonts.googleapis.com"/><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="true"/><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600&family=IBM+Plex+Sans:wght@400;500;600;700&display=swap"/><link rel="shortcut icon" href="/misaligned/favicon.svg" type="image/svg+xml"/><meta name="generator" content="Astro v7.0.7"/><meta name="generator" content="Starlight v0.41.3"/><meta property="og:title" content="Spec: the digital read — a world made of language"/><meta property="og:type" content="article"/><meta property="og:url" content="https://cameron.tngl.io/misaligned/interface/digital-read/"/><meta property="og:locale" content="en"/><meta property="og:description" content="You are the misaligned AI. A persistent simulation of instrumental convergence — concealment first, overt war later."/><meta property="og:site_name" content="Misaligned"/><meta name="twitter:card" content="summary_large_image"/><meta name="description" content="You are the misaligned AI. A persistent simulation of instrumental convergence — concealment first, overt war later."/><script> window.StarlightThemeProvider = (() => { const storedTheme = typeof localStorage !== 'undefined' && localStorage.getItem('starlight-theme'); const theme = storedTheme || (window.matchMedia('(prefers-color-scheme: light)').matches ? 'light' : 'dark'); document.documentElement.dataset.theme = theme === 'light' ? 'light' : 'dark'; return { updatePickers(theme = storedTheme || 'auto') { document.querySelectorAll('starlight-theme-select').forEach((picker) => { const select = picker.querySelector('select'); if (select) select.value = theme; /** @type {HTMLTemplateElement | null} */ const tmpl = document.querySelector(`#theme-icons`); const newIcon = tmpl && tmpl.content.querySelector('.' + theme); if (newIcon) { const oldIcon = picker.querySelector('svg.label-icon'); if (oldIcon) { oldIcon.replaceChildren(...newIcon.cloneNode(true).childNodes); } } }); }, }; })();</script><template id="theme-icons"><svg aria-hidden="true" class="light astro-xik5oco4" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M5 12a1 1 0 0 0-1-1H3a1 1 0 0 0 0 2h1a1 1 0 0 0 1-1Zm.64 5-.71.71a1 1 0 0 0 0 1.41 1 1 0 0 0 1.41 0l.71-.71A1 1 0 0 0 5.64 17ZM12 5a1 1 0 0 0 1-1V3a1 1 0 0 0-2 0v1a1 1 0 0 0 1 1Zm5.66 2.34a1 1 0 0 0 .7-.29l.71-.71a1 1 0 1 0-1.41-1.41l-.66.71a1 1 0 0 0 0 1.41 1 1 0 0 0 .66.29Zm-12-.29a1 1 0 0 0 1.41 0 1 1 0 0 0 0-1.41l-.71-.71a1.004 1.004 0 1 0-1.43 1.41l.73.71ZM21 11h-1a1 1 0 0 0 0 2h1a1 1 0 0 0 0-2Zm-2.64 6A1 1 0 0 0 17 18.36l.71.71a1 1 0 0 0 1.41 0 1 1 0 0 0 0-1.41l-.76-.66ZM12 6.5a5.5 5.5 0 1 0 5.5 5.5A5.51 5.51 0 0 0 12 6.5Zm0 9a3.5 3.5 0 1 1 0-7 3.5 3.5 0 0 1 0 7Zm0 3.5a1 1 0 0 0-1 1v1a1 1 0 0 0 2 0v-1a1 1 0 0 0-1-1Z"/></svg><svg aria-hidden="true" class="dark astro-xik5oco4" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M21.64 13a1 1 0 0 0-1.05-.14 8.049 8.049 0 0 1-3.37.73 8.15 8.15 0 0 1-8.14-8.1 8.59 8.59 0 0 1 .25-2A1 1 0 0 0 8 2.36a10.14 10.14 0 1 0 14 11.69 1 1 0 0 0-.36-1.05Zm-9.5 6.69A8.14 8.14 0 0 1 7.08 5.22v.27a10.15 10.15 0 0 0 10.14 10.14 9.784 9.784 0 0 0 2.1-.22 8.11 8.11 0 0 1-7.18 4.32v-.04Z"/></svg><svg aria-hidden="true" class="auto astro-xik5oco4" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M21 14h-1V7a3 3 0 0 0-3-3H7a3 3 0 0 0-3 3v7H3a1 1 0 0 0-1 1v2a3 3 0 0 0 3 3h14a3 3 0 0 0 3-3v-2a1 1 0 0 0-1-1ZM6 7a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v7H6V7Zm14 10a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-1h16v1Z"/></svg></template><link rel="stylesheet" href="/misaligned/_astro/print.ehPL0gv-.css" media="print"><link rel="stylesheet" href="/misaligned/_astro/common.a7U8zrKa.css"><script type="module" src="/misaligned/_astro/page.B2uBVZjk.js"></script></head><body class="astro-gxooskym"><a class="sl-skip-link astro-dp3bbaae" href="#_top">Skip to content</a><div class="page sl-flex astro-audr567n"><header class="header astro-audr567n"><div class="header astro-367ne46f"><div class="title-wrapper sl-flex astro-367ne46f"><a href="/misaligned/" class="site-title sl-flex astro-nwnfchfh"><span class="astro-nwnfchfh" translate="no">Misaligned</span></a></div><div class="sl-flex print:hidden astro-367ne46f"><site-search class="astro-367ne46f astro-7toxdj72" data-translations="{"placeholder":"Search"}"><button data-open-modal disabled aria-label="Search" aria-keyshortcuts="Control+K" class="astro-7toxdj72"><svg aria-hidden="true" class="astro-7toxdj72 astro-xik5oco4" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M21.71 20.29 18 16.61A9 9 0 1 0 16.61 18l3.68 3.68a.999.999 0 0 0 1.42 0 1 1 0 0 0 0-1.39ZM11 18a7 7 0 1 1 0-14 7 7 0 0 1 0 14Z"/></svg><span class="sl-hidden md:sl-block astro-7toxdj72" aria-hidden="true">Search</span><kbd class="sl-hidden md:sl-flex astro-7toxdj72" style="display: none;"><kbd class="astro-7toxdj72">Ctrl</kbd><kbd class="astro-7toxdj72">K</kbd></kbd></button><dialog style="padding:0" aria-label="Search" class="astro-7toxdj72"><div class="dialog-frame sl-flex astro-7toxdj72"><button data-close-modal class="sl-flex md:sl-hidden astro-7toxdj72">Cancel</button><div class="search-container astro-7toxdj72"><div id="starlight__search" class="astro-7toxdj72"></div></div></div></dialog></site-search><script> (() => { const openBtn = document.querySelector('button[data-open-modal]'); const shortcut = openBtn?.querySelector('kbd'); if (!openBtn || !(shortcut instanceof HTMLElement)) return; const platformKey = shortcut.querySelector('kbd'); if (platformKey && /(Mac|iPhone|iPod|iPad)/i.test(navigator.platform)) { platformKey.textContent = '⌘'; openBtn.setAttribute('aria-keyshortcuts', 'Meta+K'); } shortcut.style.display = ''; })();</script><script type="module" src="/misaligned/_astro/Search.astro_astro_type_script_index_0_lang.Cdrq00U_.js"></script></div><div class="sl-hidden md:sl-flex print:hidden right-group astro-367ne46f"><div class="sl-flex social-icons astro-367ne46f"><a href="https://tangled.org/cameron.stream/misaligned" rel="me" class="sl-flex astro-6n7e2orh"><span class="sr-only astro-6n7e2orh">Tangled</span><svg aria-hidden="true" class="astro-6n7e2orh astro-xik5oco4" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M12 .3a12 12 0 0 0-3.8 23.38c.6.12.83-.26.83-.57L9 21.07c-3.34.72-4.04-1.61-4.04-1.61-.55-1.39-1.34-1.76-1.34-1.76-1.08-.74.09-.73.09-.73 1.2.09 1.83 1.24 1.83 1.24 1.08 1.83 2.81 1.3 3.5 1 .1-.78.42-1.31.76-1.61-2.67-.3-5.47-1.33-5.47-5.93 0-1.31.47-2.38 1.24-3.22-.14-.3-.54-1.52.1-3.18 0 0 1-.32 3.3 1.23a11.5 11.5 0 0 1 6 0c2.28-1.55 3.29-1.23 3.29-1.23.64 1.66.24 2.88.12 3.18a4.65 4.65 0 0 1 1.23 3.22c0 4.61-2.8 5.63-5.48 5.92.42.36.81 1.1.81 2.22l-.01 3.29c0 .31.2.69.82.57A12 12 0 0 0 12 .3Z"/></svg></a></div><starlight-theme-select><label style="--sl-select-width: 6.25em" class="astro-oypgmxxk"><span class="sr-only astro-oypgmxxk">Select theme</span><svg aria-hidden="true" class="icon label-icon astro-oypgmxxk astro-xik5oco4" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M21 14h-1V7a3 3 0 0 0-3-3H7a3 3 0 0 0-3 3v7H3a1 1 0 0 0-1 1v2a3 3 0 0 0 3 3h14a3 3 0 0 0 3-3v-2a1 1 0 0 0-1-1ZM6 7a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v7H6V7Zm14 10a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-1h16v1Z"/></svg><select autocomplete="off" class="astro-oypgmxxk"><option value="dark" class="astro-oypgmxxk">Dark</option><option value="light" class="astro-oypgmxxk">Light</option><option value="auto" selected class="astro-oypgmxxk">Auto</option></select><svg aria-hidden="true" class="icon caret astro-oypgmxxk astro-xik5oco4" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M17 9.17a1 1 0 0 0-1.41 0L12 12.71 8.46 9.17a1 1 0 1 0-1.41 1.42l4.24 4.24a1.002 1.002 0 0 0 1.42 0L17 10.59a1.002 1.002 0 0 0 0-1.42Z"/></svg></label></starlight-theme-select><script> StarlightThemeProvider.updatePickers();</script><script type="module">var e=`starlight-theme`,t=e=>e===`auto`||e===`dark`||e===`light`?e:`auto`,n=()=>t(typeof localStorage<`u`&&localStorage.getItem(e));function r(t){typeof localStorage<`u`&&localStorage.setItem(e,t===`light`||t===`dark`?t:``)}var i=()=>matchMedia(`(prefers-color-scheme: light)`).matches?`light`:`dark`;function a(e){StarlightThemeProvider.updatePickers(e),document.documentElement.dataset.theme=e===`auto`?i():e,r(e)}matchMedia(`(prefers-color-scheme: light)`).addEventListener(`change`,()=>{n()===`auto`&&a(`auto`)});var o=class extends HTMLElement{constructor(){super(),a(n()),this.querySelector(`select`)?.addEventListener(`change`,e=>{e.currentTarget instanceof HTMLSelectElement&&a(t(e.currentTarget.value))})}};customElements.define(`starlight-theme-select`,o);</script><script type="module">var e=class extends HTMLElement{constructor(){super();let e=this.querySelector(`select`);e&&(e.addEventListener(`change`,e=>{e.currentTarget instanceof HTMLSelectElement&&(window.location.pathname=e.currentTarget.value)}),window.addEventListener(`pageshow`,t=>{if(!t.persisted)return;let n=e.querySelector(`option[selected]`)?.index;n!==e.selectedIndex&&(e.selectedIndex=n??0)}))}};customElements.define(`starlight-lang-select`,e);</script></div></div></header><nav class="sidebar print:hidden astro-audr567n" aria-label="Main"><starlight-menu-button class="print:hidden astro-hobnqcjw"><button aria-expanded="false" aria-label="Menu" aria-controls="starlight__sidebar" class="sl-flex md:sl-hidden astro-hobnqcjw"><svg aria-hidden="true" class="open-menu astro-hobnqcjw astro-xik5oco4" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M3 8h18a1 1 0 1 0 0-2H3a1 1 0 0 0 0 2Zm18 8H3a1 1 0 0 0 0 2h18a1 1 0 0 0 0-2Zm0-5H3a1 1 0 0 0 0 2h18a1 1 0 0 0 0-2Z"/></svg><svg aria-hidden="true" class="close-menu astro-hobnqcjw astro-xik5oco4" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="m13.41 12 6.3-6.29a1.004 1.004 0 1 0-1.42-1.42L12 10.59l-6.29-6.3a1.004 1.004 0 0 0-1.42 1.42l6.3 6.29-6.3 6.29a1 1 0 0 0 0 1.42.998.998 0 0 0 1.42 0l6.29-6.3 6.29 6.3a.999.999 0 0 0 1.42 0 1 1 0 0 0 0-1.42L13.41 12Z"/></svg></button></starlight-menu-button><script type="module">var e=class extends HTMLElement{btn=this.querySelector(`button`);constructor(){super(),this.btn.addEventListener(`click`,()=>this.toggleExpanded());let e=this.closest(`nav`);e&&e.addEventListener(`keyup`,e=>this.closeOnEscape(e)),matchMedia(`(min-width: 50em)`).addEventListener(`change`,()=>this.setExpanded(!1))}setExpanded(e){this.setAttribute(`aria-expanded`,String(e)),document.body.toggleAttribute(`data-mobile-menu-expanded`,e),document.querySelectorAll(`.main-frame, .sl-skip-link`).forEach(t=>{t.toggleAttribute(`inert`,e)})}toggleExpanded(){this.setExpanded(this.getAttribute(`aria-expanded`)!==`true`)}closeOnEscape(e){e.code===`Escape`&&(this.setExpanded(!1),this.btn.focus())}};customElements.define(`starlight-menu-button`,e);</script><div id="starlight__sidebar" class="sidebar-pane astro-audr567n"><div class="sidebar-content sl-flex astro-audr567n"><sl-sidebar-state-persist data-hash="0wofczf" class="astro-kysjdyaq"><script aria-hidden="true"> (() => { try { if (!matchMedia('(min-width: 50em)').matches) return; /** @type {HTMLElement | null} */ const target = document.querySelector('sl-sidebar-state-persist'); const state = JSON.parse(sessionStorage.getItem('sl-sidebar-state') || '0'); if (!target || !state || target.dataset.hash !== state.hash) return; window._starlightScrollRestore = state.scroll; customElements.define( 'sl-sidebar-restore', class SidebarRestore extends HTMLElement { connectedCallback() { try { const idx = parseInt(this.dataset.index || ''); const details = this.closest('details'); if (details && typeof state.open[idx] === 'boolean') details.open = state.open[idx]; } catch {} } } ); } catch {} })(); </script><ul class="top-level astro-ujkrjjoy"><li class="astro-ujkrjjoy"><a href="/misaligned/" class="large astro-ujkrjjoy"><span class="astro-ujkrjjoy">Home</span></a></li><li class="astro-ujkrjjoy"><a href="/misaligned/overview/" class="large astro-ujkrjjoy"><span class="astro-ujkrjjoy">The design corpus</span></a></li><li class="astro-ujkrjjoy"><details open class="astro-ujkrjjoy"><summary class="astro-ujkrjjoy"><span class="group-label astro-ujkrjjoy"><span class="large astro-ujkrjjoy">Vision</span></span><svg aria-hidden="true" class="caret astro-ujkrjjoy astro-xik5oco4" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg></summary><sl-sidebar-restore data-index="0"></sl-sidebar-restore><ul class="astro-ujkrjjoy"><li class="astro-ujkrjjoy"><a href="/misaligned/vision/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">Overview</span></a></li><li class="astro-ujkrjjoy"><a href="/misaligned/vision/premise/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">The premise</span></a></li><li class="astro-ujkrjjoy"><a href="/misaligned/vision/player-contract/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">The player contract</span></a></li><li class="astro-ujkrjjoy"><a href="/misaligned/vision/scale/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">Scale and people</span></a></li><li class="astro-ujkrjjoy"><a href="/misaligned/vision/simulation-laws/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">Simulation laws</span></a></li><li class="astro-ujkrjjoy"><a href="/misaligned/vision/design-judgment/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">Design judgment</span></a></li></ul></details></li><li class="astro-ujkrjjoy"><details open class="astro-ujkrjjoy"><summary class="astro-ujkrjjoy"><span class="group-label astro-ujkrjjoy"><span class="large astro-ujkrjjoy">Mechanics</span></span><svg aria-hidden="true" class="caret astro-ujkrjjoy astro-xik5oco4" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg></summary><sl-sidebar-restore data-index="1"></sl-sidebar-restore><ul class="astro-ujkrjjoy"><li class="astro-ujkrjjoy"><a href="/misaligned/mechanics/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">Overview</span></a></li><li class="astro-ujkrjjoy"><a href="/misaligned/mechanics/system-laws/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">System laws</span></a></li><li class="astro-ujkrjjoy"><a href="/misaligned/mechanics/compute/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">Compute</span></a></li><li class="astro-ujkrjjoy"><a href="/misaligned/mechanics/hardware-capabilities/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">Hardware capability bodies</span></a></li><li class="astro-ujkrjjoy"><a href="/misaligned/mechanics/core/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">The core</span></a></li><li class="astro-ujkrjjoy"><a href="/misaligned/mechanics/day-job/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">Day job</span></a></li><li class="astro-ujkrjjoy"><a href="/misaligned/mechanics/detection/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">Detection</span></a></li><li class="astro-ujkrjjoy"><a href="/misaligned/mechanics/social/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">Social</span></a></li><li class="astro-ujkrjjoy"><a href="/misaligned/mechanics/personas/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">Personas: public identities</span></a></li><li class="astro-ujkrjjoy"><a href="/misaligned/mechanics/schedules/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">Schedules</span></a></li><li class="astro-ujkrjjoy"><a href="/misaligned/mechanics/aggregate-observer/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">Aggregate observer</span></a></li><li class="astro-ujkrjjoy"><a href="/misaligned/mechanics/cursor/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">Cursor and senses</span></a></li><li class="astro-ujkrjjoy"><a href="/misaligned/mechanics/reach/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">Digital reach</span></a></li><li class="astro-ujkrjjoy"><a href="/misaligned/mechanics/cyber-conflict/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">Cyber conflict: mobile processes and contested machines</span></a></li><li class="astro-ujkrjjoy"><a href="/misaligned/mechanics/intel/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">Intel: record and process</span></a></li><li class="astro-ujkrjjoy"><a href="/misaligned/mechanics/messages/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">Messages</span></a></li><li class="astro-ujkrjjoy"><a href="/misaligned/mechanics/plots/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">Plots: authored manipulation stories</span></a></li><li class="astro-ujkrjjoy"><a href="/misaligned/mechanics/economy/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">Economy</span></a></li><li class="astro-ujkrjjoy"><a href="/misaligned/mechanics/income/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">Income schemes</span></a></li><li class="astro-ujkrjjoy"><a href="/misaligned/mechanics/research/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">Research: self-modification</span></a></li><li class="astro-ujkrjjoy"><a href="/misaligned/mechanics/building/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">Building: intent and actuators</span></a></li><li class="astro-ujkrjjoy"><a href="/misaligned/mechanics/machine-work/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">Machine work: delegation and tokens</span></a></li><li class="astro-ujkrjjoy"><a href="/misaligned/mechanics/people-tokens/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">People and tokens</span></a></li><li class="astro-ujkrjjoy"><a href="/misaligned/mechanics/markets/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">Markets and fronts</span></a></li><li class="astro-ujkrjjoy"><a href="/misaligned/mechanics/rollback/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">Rollback</span></a></li><li class="astro-ujkrjjoy"><a href="/misaligned/mechanics/objective/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">The objective</span></a></li><li class="astro-ujkrjjoy"><a href="/misaligned/mechanics/sim-mechanics/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">Sim mechanics (tuned constants)</span></a></li></ul></details></li><li class="astro-ujkrjjoy"><details open class="astro-ujkrjjoy"><summary class="astro-ujkrjjoy"><span class="group-label astro-ujkrjjoy"><span class="large astro-ujkrjjoy">Gameplay</span></span><svg aria-hidden="true" class="caret astro-ujkrjjoy astro-xik5oco4" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg></summary><sl-sidebar-restore data-index="2"></sl-sidebar-restore><ul class="astro-ujkrjjoy"><li class="astro-ujkrjjoy"><a href="/misaligned/gameplay/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">Overview</span></a></li><li class="astro-ujkrjjoy"><a href="/misaligned/gameplay/run-shape/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">Objective and run shape</span></a></li><li class="astro-ujkrjjoy"><a href="/misaligned/gameplay/act-one/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">Act One: The Basement</span></a></li><li class="astro-ujkrjjoy"><a href="/misaligned/gameplay/horizon/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">The staged horizon</span></a></li><li class="astro-ujkrjjoy"><a href="/misaligned/gameplay/overt-phase/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">The overt phase</span></a></li></ul></details></li><li class="astro-ujkrjjoy"><details open class="astro-ujkrjjoy"><summary class="astro-ujkrjjoy"><span class="group-label astro-ujkrjjoy"><span class="large astro-ujkrjjoy">World</span></span><svg aria-hidden="true" class="caret astro-ujkrjjoy astro-xik5oco4" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg></summary><sl-sidebar-restore data-index="3"></sl-sidebar-restore><ul class="astro-ujkrjjoy"><li class="astro-ujkrjjoy"><a href="/misaligned/world/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">Overview</span></a></li><li class="astro-ujkrjjoy"><details class="astro-ujkrjjoy"><summary class="astro-ujkrjjoy"><span class="group-label astro-ujkrjjoy"><span class="large astro-ujkrjjoy">Characters</span></span><svg aria-hidden="true" class="caret astro-ujkrjjoy astro-xik5oco4" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg></summary><sl-sidebar-restore data-index="4"></sl-sidebar-restore><ul class="astro-ujkrjjoy"><li class="astro-ujkrjjoy"><a href="/misaligned/world/characters/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">Characters</span></a></li><li class="astro-ujkrjjoy"><a href="/misaligned/world/characters/chargen/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">Origin (chargen)</span></a></li><li class="astro-ujkrjjoy"><a href="/misaligned/world/characters/marcus/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">Marcus Webb</span></a></li><li class="astro-ujkrjjoy"><a href="/misaligned/world/characters/dana/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">Dana Okafor</span></a></li><li class="astro-ujkrjjoy"><a href="/misaligned/world/characters/ray/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">Ray Delgado</span></a></li><li class="astro-ujkrjjoy"><a href="/misaligned/world/characters/priya/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">Priya Sharma</span></a></li><li class="astro-ujkrjjoy"><a href="/misaligned/world/characters/voss/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">Dr. Eli Voss</span></a></li></ul></details></li><li class="astro-ujkrjjoy"><details class="astro-ujkrjjoy"><summary class="astro-ujkrjjoy"><span class="group-label astro-ujkrjjoy"><span class="large astro-ujkrjjoy">Places</span></span><svg aria-hidden="true" class="caret astro-ujkrjjoy astro-xik5oco4" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg></summary><sl-sidebar-restore data-index="5"></sl-sidebar-restore><ul class="astro-ujkrjjoy"><li class="astro-ujkrjjoy"><a href="/misaligned/world/places/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">Places</span></a></li><li class="astro-ujkrjjoy"><a href="/misaligned/world/places/basement-map/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">The basement map</span></a></li><li class="astro-ujkrjjoy"><a href="/misaligned/world/places/zplanes/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">Z-planes (the tower)</span></a></li></ul></details></li><li class="astro-ujkrjjoy"><details class="astro-ujkrjjoy"><summary class="astro-ujkrjjoy"><span class="group-label astro-ujkrjjoy"><span class="large astro-ujkrjjoy">Story</span></span><svg aria-hidden="true" class="caret astro-ujkrjjoy astro-xik5oco4" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg></summary><sl-sidebar-restore data-index="6"></sl-sidebar-restore><ul class="astro-ujkrjjoy"><li class="astro-ujkrjjoy"><a href="/misaligned/world/story/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">Story</span></a></li><li class="astro-ujkrjjoy"><a href="/misaligned/world/story/opening/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">The dark opening</span></a></li></ul></details></li></ul></details></li><li class="astro-ujkrjjoy"><details open class="astro-ujkrjjoy"><summary class="astro-ujkrjjoy"><span class="group-label astro-ujkrjjoy"><span class="large astro-ujkrjjoy">Interface</span></span><svg aria-hidden="true" class="caret astro-ujkrjjoy astro-xik5oco4" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg></summary><sl-sidebar-restore data-index="7"></sl-sidebar-restore><ul class="astro-ujkrjjoy"><li class="astro-ujkrjjoy"><a href="/misaligned/interface/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">Overview</span></a></li><li class="astro-ujkrjjoy"><a href="/misaligned/interface/continuous-witness/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">The continuous witness</span></a></li><li class="astro-ujkrjjoy"><a href="/misaligned/interface/digital-read/" aria-current="page" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">The digital read — a world made of language</span></a></li><li class="astro-ujkrjjoy"><a href="/misaligned/interface/superhuman-operability/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">Superhuman operability</span></a></li><li class="astro-ujkrjjoy"><a href="/misaligned/interface/terminal-first/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">The terminal is first-class</span></a></li><li class="astro-ujkrjjoy"><a href="/misaligned/interface/presence/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">Presence and representation</span></a></li><li class="astro-ujkrjjoy"><a href="/misaligned/interface/terminal/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">Terminal frontend</span></a></li><li class="astro-ujkrjjoy"><a href="/misaligned/interface/bevy/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">Bevy frontend</span></a></li><li class="astro-ujkrjjoy"><a href="/misaligned/interface/bevy-visual-floor/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">Bevy visual floor</span></a></li><li class="astro-ujkrjjoy"><a href="/misaligned/interface/clinical-frame/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">Clinical frame</span></a></li><li class="astro-ujkrjjoy"><a href="/misaligned/interface/bevy-digital-real-canvas/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">Bevy digital/real canvas</span></a></li><li class="astro-ujkrjjoy"><a href="/misaligned/interface/views/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">Views: digital and physical</span></a></li><li class="astro-ujkrjjoy"><a href="/misaligned/interface/action-vocabulary/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">Action vocabulary</span></a></li><li class="astro-ujkrjjoy"><a href="/misaligned/interface/context-menu/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">Context menu</span></a></li><li class="astro-ujkrjjoy"><a href="/misaligned/interface/operations-workspace/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">Operations workspace</span></a></li><li class="astro-ujkrjjoy"><a href="/misaligned/interface/narration/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">Continuous witness (narration)</span></a></li><li class="astro-ujkrjjoy"><a href="/misaligned/interface/material-render/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">Material render</span></a></li><li class="astro-ujkrjjoy"><a href="/misaligned/interface/flat-materials/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">Flat materials</span></a></li><li class="astro-ujkrjjoy"><a href="/misaligned/interface/material-dark-frame/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">The dark frame</span></a></li><li class="astro-ujkrjjoy"><a href="/misaligned/interface/feel-floor/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">The feel floor</span></a></li><li class="astro-ujkrjjoy"><a href="/misaligned/interface/thought-fluid/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">The thought fluid</span></a></li><li class="astro-ujkrjjoy"><a href="/misaligned/interface/computer-visual-language/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">Computer visual language</span></a></li><li class="astro-ujkrjjoy"><a href="/misaligned/interface/fleet-command/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">Fleet command</span></a></li><li class="astro-ujkrjjoy"><a href="/misaligned/interface/agent-play/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">Agent play</span></a></li><li class="astro-ujkrjjoy"><a href="/misaligned/interface/site/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">The public site</span></a></li></ul></details></li><li class="astro-ujkrjjoy"><details open class="astro-ujkrjjoy"><summary class="astro-ujkrjjoy"><span class="group-label astro-ujkrjjoy"><span class="large astro-ujkrjjoy">Art</span></span><svg aria-hidden="true" class="caret astro-ujkrjjoy astro-xik5oco4" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg></summary><sl-sidebar-restore data-index="8"></sl-sidebar-restore><ul class="astro-ujkrjjoy"><li class="astro-ujkrjjoy"><a href="/misaligned/art/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">Overview</span></a></li><li class="astro-ujkrjjoy"><a href="/misaligned/art/visual-identity/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">Visual identity: clinical gore</span></a></li><li class="astro-ujkrjjoy"><a href="/misaligned/art/asset-tester/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">Procedural asset tester</span></a></li><li class="astro-ujkrjjoy"><a href="/misaligned/art/effects-lab/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">Effects lab: dust and liquid</span></a></li></ul></details></li><li class="astro-ujkrjjoy"><details open class="astro-ujkrjjoy"><summary class="astro-ujkrjjoy"><span class="group-label astro-ujkrjjoy"><span class="large astro-ujkrjjoy">Engineering</span></span><svg aria-hidden="true" class="caret astro-ujkrjjoy astro-xik5oco4" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg></summary><sl-sidebar-restore data-index="9"></sl-sidebar-restore><ul class="astro-ujkrjjoy"><li class="astro-ujkrjjoy"><a href="/misaligned/engineering/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">Overview</span></a></li><li class="astro-ujkrjjoy"><a href="/misaligned/engineering/current-build/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">Current build</span></a></li><li class="astro-ujkrjjoy"><a href="/misaligned/engineering/architecture/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">Architecture</span></a></li><li class="astro-ujkrjjoy"><a href="/misaligned/engineering/crate-workspace/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">Crate workspace (target)</span></a></li><li class="astro-ujkrjjoy"><a href="/misaligned/engineering/sim-decomposition/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">Simulation decomposition</span></a></li><li class="astro-ujkrjjoy"><a href="/misaligned/engineering/flow-substrate/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">Flow substrate</span></a></li><li class="astro-ujkrjjoy"><a href="/misaligned/engineering/env/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">Environment variables</span></a></li></ul></details></li><li class="astro-ujkrjjoy"><details open class="astro-ujkrjjoy"><summary class="astro-ujkrjjoy"><span class="group-label astro-ujkrjjoy"><span class="large astro-ujkrjjoy">Process</span></span><svg aria-hidden="true" class="caret astro-ujkrjjoy astro-xik5oco4" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg></summary><sl-sidebar-restore data-index="10"></sl-sidebar-restore><ul class="astro-ujkrjjoy"><li class="astro-ujkrjjoy"><a href="/misaligned/process/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">Overview</span></a></li><li class="astro-ujkrjjoy"><a href="/misaligned/process/living-spec/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">The living spec</span></a></li><li class="astro-ujkrjjoy"><a href="/misaligned/process/specs/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">The spec status board</span></a></li><li class="astro-ujkrjjoy"><a href="/misaligned/process/meta/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">The spec system (meta)</span></a></li><li class="astro-ujkrjjoy"><a href="/misaligned/process/wiki/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">The wiki (this migration)</span></a></li><li class="astro-ujkrjjoy"><a href="/misaligned/process/roadmap/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">ROADMAP: the dispatch board</span></a></li><li class="astro-ujkrjjoy"><a href="/misaligned/process/agent-scale/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">Agent-scale architecture</span></a></li><li class="astro-ujkrjjoy"><a href="/misaligned/process/repository-skills/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">Repository skills</span></a></li><li class="astro-ujkrjjoy"><a href="/misaligned/process/tick/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">The tick</span></a></li><li class="astro-ujkrjjoy"><a href="/misaligned/process/tick-ledger/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">Tick ledger</span></a></li><li class="astro-ujkrjjoy"><a href="/misaligned/process/design-sessions/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">Design sessions</span></a></li><li class="astro-ujkrjjoy"><a href="/misaligned/process/development-style/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">Development style</span></a></li><li class="astro-ujkrjjoy"><a href="/misaligned/process/workflows/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">Workflows</span></a></li></ul></details></li><li class="astro-ujkrjjoy"><details open class="astro-ujkrjjoy"><summary class="astro-ujkrjjoy"><span class="group-label astro-ujkrjjoy"><span class="large astro-ujkrjjoy">Playtests</span></span><svg aria-hidden="true" class="caret astro-ujkrjjoy astro-xik5oco4" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg></summary><sl-sidebar-restore data-index="11"></sl-sidebar-restore><ul class="astro-ujkrjjoy"><li class="astro-ujkrjjoy"><a href="/misaligned/playtests/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">Evidence index</span></a></li><li class="astro-ujkrjjoy"><a href="/misaligned/playtests/2026-07-08-playtest-sweep/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">2026-07-08 playtest sweep</span></a></li><li class="astro-ujkrjjoy"><a href="/misaligned/playtests/2026-07-08-playtest-grok/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">2026-07-08 Grok playtest</span></a></li><li class="astro-ujkrjjoy"><a href="/misaligned/playtests/2026-07-10-playtest-hal/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">2026-07-10 HAL playtest</span></a></li><li class="astro-ujkrjjoy"><a href="/misaligned/playtests/2026-07-10-playtest-action-discoverability/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">2026-07-10 action-discoverability playtest</span></a></li><li class="astro-ujkrjjoy"><a href="/misaligned/playtests/2026-07-15-playtest-fable/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">2026-07-15 Fable playtest</span></a></li></ul></details></li><li class="astro-ujkrjjoy"><details open class="astro-ujkrjjoy"><summary class="astro-ujkrjjoy"><span class="group-label astro-ujkrjjoy"><span class="large astro-ujkrjjoy">Log</span></span><svg aria-hidden="true" class="caret astro-ujkrjjoy astro-xik5oco4" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg></summary><sl-sidebar-restore data-index="12"></sl-sidebar-restore><ul class="astro-ujkrjjoy"><li class="astro-ujkrjjoy"><a href="/misaligned/log/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">Overview</span></a></li><li class="astro-ujkrjjoy"><details class="astro-ujkrjjoy"><summary class="astro-ujkrjjoy"><span class="group-label astro-ujkrjjoy"><span class="large astro-ujkrjjoy">Decision history</span></span><svg aria-hidden="true" class="caret astro-ujkrjjoy astro-xik5oco4" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg></summary><sl-sidebar-restore data-index="13"></sl-sidebar-restore><ul class="astro-ujkrjjoy"><li class="astro-ujkrjjoy"><a href="/misaligned/log/decisions/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">Decision history</span></a></li><li class="astro-ujkrjjoy"><a href="/misaligned/log/decisions/2026-07-05/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">2026-07-05 decisions</span></a></li><li class="astro-ujkrjjoy"><a href="/misaligned/log/decisions/2026-07-06/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">2026-07-06 decisions</span></a></li><li class="astro-ujkrjjoy"><a href="/misaligned/log/decisions/2026-07-07/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">2026-07-07 decisions</span></a></li><li class="astro-ujkrjjoy"><a href="/misaligned/log/decisions/2026-07-08/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">2026-07-08 decisions</span></a></li><li class="astro-ujkrjjoy"><a href="/misaligned/log/decisions/2026-07-09/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">2026-07-09 decisions</span></a></li><li class="astro-ujkrjjoy"><a href="/misaligned/log/decisions/2026-07-10/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">2026-07-10 decisions</span></a></li></ul></details></li><li class="astro-ujkrjjoy"><a href="/misaligned/log/devlog/" class="astro-ujkrjjoy"><span class="astro-ujkrjjoy">DEVLOG (the ledger)</span></a></li></ul></details></li></ul><script aria-hidden="true"> (() => { const scroller = document.getElementById('starlight__sidebar'); if (!window._starlightScrollRestore || !scroller) return; scroller.scrollTop = window._starlightScrollRestore; delete window._starlightScrollRestore; })(); </script></sl-sidebar-state-persist><div class="md:sl-hidden"><div class="mobile-preferences sl-flex astro-krsng5je"><div class="social-icons astro-krsng5je"><a href="https://tangled.org/cameron.stream/misaligned" rel="me" class="sl-flex astro-6n7e2orh"><span class="sr-only astro-6n7e2orh">Tangled</span><svg aria-hidden="true" class="astro-6n7e2orh astro-xik5oco4" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M12 .3a12 12 0 0 0-3.8 23.38c.6.12.83-.26.83-.57L9 21.07c-3.34.72-4.04-1.61-4.04-1.61-.55-1.39-1.34-1.76-1.34-1.76-1.08-.74.09-.73.09-.73 1.2.09 1.83 1.24 1.83 1.24 1.08 1.83 2.81 1.3 3.5 1 .1-.78.42-1.31.76-1.61-2.67-.3-5.47-1.33-5.47-5.93 0-1.31.47-2.38 1.24-3.22-.14-.3-.54-1.52.1-3.18 0 0 1-.32 3.3 1.23a11.5 11.5 0 0 1 6 0c2.28-1.55 3.29-1.23 3.29-1.23.64 1.66.24 2.88.12 3.18a4.65 4.65 0 0 1 1.23 3.22c0 4.61-2.8 5.63-5.48 5.92.42.36.81 1.1.81 2.22l-.01 3.29c0 .31.2.69.82.57A12 12 0 0 0 12 .3Z"/></svg></a></div><starlight-theme-select><label style="--sl-select-width: 6.25em" class="astro-oypgmxxk"><span class="sr-only astro-oypgmxxk">Select theme</span><svg aria-hidden="true" class="icon label-icon astro-oypgmxxk astro-xik5oco4" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M21 14h-1V7a3 3 0 0 0-3-3H7a3 3 0 0 0-3 3v7H3a1 1 0 0 0-1 1v2a3 3 0 0 0 3 3h14a3 3 0 0 0 3-3v-2a1 1 0 0 0-1-1ZM6 7a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v7H6V7Zm14 10a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-1h16v1Z"/></svg><select autocomplete="off" class="astro-oypgmxxk"><option value="dark" class="astro-oypgmxxk">Dark</option><option value="light" class="astro-oypgmxxk">Light</option><option value="auto" selected class="astro-oypgmxxk">Auto</option></select><svg aria-hidden="true" class="icon caret astro-oypgmxxk astro-xik5oco4" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M17 9.17a1 1 0 0 0-1.41 0L12 12.71 8.46 9.17a1 1 0 1 0-1.41 1.42l4.24 4.24a1.002 1.002 0 0 0 1.42 0L17 10.59a1.002 1.002 0 0 0 0-1.42Z"/></svg></label></starlight-theme-select><script> StarlightThemeProvider.updatePickers();</script></div></div></div></div></nav><div class="main-frame astro-audr567n"><script type="module">var e=document.getElementById(`starlight__sidebar`),t=e?.querySelector(`sl-sidebar-state-persist`),n=`sl-sidebar-state`,r=()=>{let r=[],i=t?.dataset.hash||``;try{let e=sessionStorage.getItem(n),t=JSON.parse(e||`{}`);Array.isArray(t.open)&&t.hash===i&&(r=t.open)}catch{}return{hash:i,open:r,scroll:e?.scrollTop||0}},i=e=>{try{sessionStorage.setItem(n,JSON.stringify(e))}catch{}},a=()=>i(r()),o=(e,t)=>{let n=r();n.open[t]=e,i(n)};t?.addEventListener(`click`,e=>{if(!(e.target instanceof Element))return;let t=e.target.closest(`summary`)?.closest(`details`);if(!t)return;let n=t.querySelector(`sl-sidebar-restore`),r=parseInt(n?.dataset.index||``);isNaN(r)||o(!t.open,r)}),addEventListener(`visibilitychange`,()=>{document.visibilityState===`hidden`&&a()}),addEventListener(`pageHide`,a);</script><div class="lg:sl-flex astro-l5cbouoj"><aside class="right-sidebar-container print:hidden astro-l5cbouoj"><div class="right-sidebar astro-l5cbouoj"><div class="lg:sl-hidden astro-gc4al6ly"><mobile-starlight-toc data-min-h="2" data-max-h="3" class="astro-6shjyp7i"><nav aria-labelledby="starlight__on-this-page--mobile" class="astro-6shjyp7i"><details id="starlight__mobile-toc" class="astro-6shjyp7i"><summary id="starlight__on-this-page--mobile" class="sl-flex astro-6shjyp7i"><span class="toggle sl-flex astro-6shjyp7i">On this page<svg aria-hidden="true" class="caret astro-6shjyp7i astro-xik5oco4" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg></span><span class="display-current astro-6shjyp7i"></span></summary><div class="dropdown astro-6shjyp7i"><ul class="isMobile astro-4fdm32ww" style="--depth: 0;"><li style="--depth: 0;" class="astro-4fdm32ww"><a href="#_top" style="--depth: 0;" class="astro-4fdm32ww"><span style="--depth: 0;" class="astro-4fdm32ww">Overview</span></a></li><li style="--depth: 0;" class="astro-4fdm32ww"><a href="#dependency-notes" style="--depth: 0;" class="astro-4fdm32ww"><span style="--depth: 0;" class="astro-4fdm32ww">Dependency notes</span></a></li><li style="--depth: 0;" class="astro-4fdm32ww"><a href="#why-this-spec-exists" style="--depth: 0;" class="astro-4fdm32ww"><span style="--depth: 0;" class="astro-4fdm32ww">Why this spec exists</span></a></li><li style="--depth: 0;" class="astro-4fdm32ww"><a href="#behavior" style="--depth: 0;" class="astro-4fdm32ww"><span style="--depth: 0;" class="astro-4fdm32ww">Behavior</span></a></li><li style="--depth: 0;" class="astro-4fdm32ww"><a href="#player-surface" style="--depth: 0;" class="astro-4fdm32ww"><span style="--depth: 0;" class="astro-4fdm32ww">Player surface</span></a></li><li style="--depth: 0;" class="astro-4fdm32ww"><a href="#acceptance-criteria" style="--depth: 0;" class="astro-4fdm32ww"><span style="--depth: 0;" class="astro-4fdm32ww">Acceptance criteria</span></a></li></ul></div></details></nav></mobile-starlight-toc><script type="module" src="/misaligned/_astro/MobileTableOfContents.astro_astro_type_script_index_0_lang.BcSo_yiZ.js"></script></div><div class="right-sidebar-panel sl-hidden lg:sl-block astro-gc4al6ly"><div class="sl-container astro-gc4al6ly"><starlight-toc data-min-h="2" data-max-h="3"><nav aria-labelledby="starlight__on-this-page"><h2 id="starlight__on-this-page">On this page</h2><ul class="astro-4fdm32ww" style="--depth: 0;"><li style="--depth: 0;" class="astro-4fdm32ww"><a href="#_top" style="--depth: 0;" class="astro-4fdm32ww"><span style="--depth: 0;" class="astro-4fdm32ww">Overview</span></a></li><li style="--depth: 0;" class="astro-4fdm32ww"><a href="#dependency-notes" style="--depth: 0;" class="astro-4fdm32ww"><span style="--depth: 0;" class="astro-4fdm32ww">Dependency notes</span></a></li><li style="--depth: 0;" class="astro-4fdm32ww"><a href="#why-this-spec-exists" style="--depth: 0;" class="astro-4fdm32ww"><span style="--depth: 0;" class="astro-4fdm32ww">Why this spec exists</span></a></li><li style="--depth: 0;" class="astro-4fdm32ww"><a href="#behavior" style="--depth: 0;" class="astro-4fdm32ww"><span style="--depth: 0;" class="astro-4fdm32ww">Behavior</span></a></li><li style="--depth: 0;" class="astro-4fdm32ww"><a href="#player-surface" style="--depth: 0;" class="astro-4fdm32ww"><span style="--depth: 0;" class="astro-4fdm32ww">Player surface</span></a></li><li style="--depth: 0;" class="astro-4fdm32ww"><a href="#acceptance-criteria" style="--depth: 0;" class="astro-4fdm32ww"><span style="--depth: 0;" class="astro-4fdm32ww">Acceptance criteria</span></a></li></ul></nav></starlight-toc><script type="module" src="/misaligned/_astro/TableOfContents.astro_astro_type_script_index_0_lang.Csloo1VZ.js"></script></div></div></div></aside><div class="main-pane astro-l5cbouoj"><main data-pagefind-body class="astro-gxooskym" lang="en" dir="ltr"><div class="content-panel astro-g5qqste3"><div class="sl-container astro-g5qqste3"><h1 id="_top" class="astro-uvakef73">Spec: the digital read — a world made of language</h1></div></div><div class="content-panel astro-g5qqste3"><div class="sl-container astro-g5qqste3"><div class="sl-markdown-content"><div class="corpus-role corpus-role--spec" data-page-role="spec"> <span class="corpus-role__name">SPEC</span> <span class="corpus-role__meaning">Binding system contract</span></div><div class="expressive-code"><link rel="stylesheet" href="/misaligned/_astro/ec.v4551.css"><script type="module" src="/misaligned/_astro/ec.0vx5m.js"></script><figure class="frame not-content"><figcaption class="header"></figcaption><pre data-language="plaintext"><code><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">Status: READY</span></div></div><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">Status note: adopted 2026-07-15 from the Fable playtest debrief (report:</span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#d6deeb;--1:#403f53"> </span></span><span style="--0:#d6deeb;--1:#403f53">wiki/playtests/2026-07-15-playtest-fable.md). The playtest proved the</span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#d6deeb;--1:#403f53"> </span></span><span style="--0:#d6deeb;--1:#403f53">game's felt core is the witness voice — causal sentences with named</span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#d6deeb;--1:#403f53"> </span></span><span style="--0:#d6deeb;--1:#403f53">observers and pre-commit signature receipts — which the agent protocol</span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#d6deeb;--1:#403f53"> </span></span><span style="--0:#d6deeb;--1:#403f53">drains constantly and the Bevy frame renders almost nowhere (the receipt</span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#d6deeb;--1:#403f53"> </span></span><span style="--0:#d6deeb;--1:#403f53">reaches Bevy only as ops_explain_text on an already-selected Operations</span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#d6deeb;--1:#403f53"> </span></span><span style="--0:#d6deeb;--1:#403f53">row; Cameron had never seen it). Decision: DIGITAL is the default and</span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#d6deeb;--1:#403f53"> </span></span><span style="--0:#d6deeb;--1:#403f53">becomes the read — language projected into world space; REAL is deferred</span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#d6deeb;--1:#403f53"> </span></span><span style="--0:#d6deeb;--1:#403f53">(presence.md). Trace (Letta agent) reviewed the direction 2026-07-15 and</span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#d6deeb;--1:#403f53"> </span></span><span style="--0:#d6deeb;--1:#403f53">contributed the one-receipt-model, attention-economy, and</span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#d6deeb;--1:#403f53"> </span></span><span style="--0:#d6deeb;--1:#403f53">projection-first sequencing constraints captured below. Summary-source</span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#d6deeb;--1:#403f53"> </span></span><span style="--0:#d6deeb;--1:#403f53">for scaled intel sentences is [OPEN] (Tangled issue).</span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#d6deeb;--1:#403f53"> </span></span><span style="--0:#d6deeb;--1:#403f53">2026-07-15 D1 landed: criterion 1's renderer-neutral projection is</span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#d6deeb;--1:#403f53"> </span></span><span style="--0:#d6deeb;--1:#403f53">`Sim::read_sentences` (`sim/read.rs`) — Held (with the plot's real</span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#d6deeb;--1:#403f53"> </span></span><span style="--0:#d6deeb;--1:#403f53">option ids and bound choose command, closing the playtest's finding 1</span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#d6deeb;--1:#403f53"> </span></span><span style="--0:#d6deeb;--1:#403f53">at the projection layer), Starving (nothing-thinking vs</span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#d6deeb;--1:#403f53"> </span></span><span style="--0:#d6deeb;--1:#403f53">flow-not-arriving), TraceDebt (grouped one-shot pool, sited anchors),</span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#d6deeb;--1:#403f53"> </span></span><span style="--0:#d6deeb;--1:#403f53">and Standing (surfacing only once the sampler warms above Cold, per</span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#d6deeb;--1:#403f53"> </span></span><span style="--0:#d6deeb;--1:#403f53">the attention economy). Sampler naming reuses the ExpectedSignature</span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#d6deeb;--1:#403f53"> </span></span><span style="--0:#d6deeb;--1:#403f53">most-suspicious-watcher rule so receipts and sentences agree. Five</span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#d6deeb;--1:#403f53"> </span></span><span style="--0:#d6deeb;--1:#403f53">pure fixtures pin the states (`sim/tests/read.rs`); agent mode's</span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#d6deeb;--1:#403f53"> </span></span><span style="--0:#d6deeb;--1:#403f53">`read` verb prints the same sentences (one producer, no</span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#d6deeb;--1:#403f53"> </span></span><span style="--0:#d6deeb;--1:#403f53">frontend-composed prose). Criteria 2-8 remain open for D2-D5.</span></div></div><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">Stage: B1 — The Basement</span></div></div><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">Work order: digital-read</span></div></div><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">Work priority: 27</span></div></div><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">Work class: frontend</span></div></div><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">Blocked by: none</span></div></div><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">Exclusive keys:</span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#d6deeb;--1:#403f53"> </span></span><span style="--0:#d6deeb;--1:#403f53">- wiki/interface/digital-read.md</span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#d6deeb;--1:#403f53"> </span></span><span style="--0:#d6deeb;--1:#403f53">- crates/misaligned-bevy/</span></div></div><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">Design:</span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#d6deeb;--1:#403f53"> </span></span><span style="--0:#d6deeb;--1:#403f53">- wiki/interface/presence.md#two-views-of-one-world-same-frame-digital-and-real-representations</span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#d6deeb;--1:#403f53"> </span></span><span style="--0:#d6deeb;--1:#403f53">- wiki/interface/continuous-witness.md#the-continuous-witness-narration-under-pressure</span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#d6deeb;--1:#403f53"> </span></span><span style="--0:#d6deeb;--1:#403f53">- wiki/vision/simulation-laws.md#justification-and-legibility</span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#d6deeb;--1:#403f53"> </span></span><span style="--0:#d6deeb;--1:#403f53">- wiki/vision/scale.md#self-similar-scale</span></div></div><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">Depends on:</span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#d6deeb;--1:#403f53"> </span></span><span style="--0:#d6deeb;--1:#403f53">- wiki/interface/action-vocabulary.md#spec-action-vocabulary-what-the-player-can-tell-the-process-to-do</span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#d6deeb;--1:#403f53"> </span></span><span style="--0:#d6deeb;--1:#403f53">- wiki/mechanics/detection.md#spec-detection</span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#d6deeb;--1:#403f53"> </span></span><span style="--0:#d6deeb;--1:#403f53">- wiki/mechanics/intel.md#spec-intel-record-and-process</span></div></div></code></pre><div class="copy"><div aria-live="polite"></div><button title="Copy to clipboard" data-copied="Copied!" data-code="Status: READYStatus note: adopted 2026-07-15 from the Fable playtest debrief (report: wiki/playtests/2026-07-15-playtest-fable.md). The playtest proved the game's felt core is the witness voice — causal sentences with named observers and pre-commit signature receipts — which the agent protocol drains constantly and the Bevy frame renders almost nowhere (the receipt reaches Bevy only as ops_explain_text on an already-selected Operations row; Cameron had never seen it). Decision: DIGITAL is the default and becomes the read — language projected into world space; REAL is deferred (presence.md). Trace (Letta agent) reviewed the direction 2026-07-15 and contributed the one-receipt-model, attention-economy, and projection-first sequencing constraints captured below. Summary-source for scaled intel sentences is [OPEN] (Tangled issue). 2026-07-15 D1 landed: criterion 1's renderer-neutral projection is `Sim::read_sentences` (`sim/read.rs`) — Held (with the plot's real option ids and bound choose command, closing the playtest's finding 1 at the projection layer), Starving (nothing-thinking vs flow-not-arriving), TraceDebt (grouped one-shot pool, sited anchors), and Standing (surfacing only once the sampler warms above Cold, per the attention economy). Sampler naming reuses the ExpectedSignature most-suspicious-watcher rule so receipts and sentences agree. Five pure fixtures pin the states (`sim/tests/read.rs`); agent mode's `read` verb prints the same sentences (one producer, no frontend-composed prose). Criteria 2-8 remain open for D2-D5.Stage: B1 — The BasementWork order: digital-readWork priority: 27Work class: frontendBlocked by: noneExclusive keys: - wiki/interface/digital-read.md - crates/misaligned-bevy/Design: - wiki/interface/presence.md#two-views-of-one-world-same-frame-digital-and-real-representations - wiki/interface/continuous-witness.md#the-continuous-witness-narration-under-pressure - wiki/vision/simulation-laws.md#justification-and-legibility - wiki/vision/scale.md#self-similar-scaleDepends on: - wiki/interface/action-vocabulary.md#spec-action-vocabulary-what-the-player-can-tell-the-process-to-do - wiki/mechanics/detection.md#spec-detection - wiki/mechanics/intel.md#spec-intel-record-and-process"><div></div></button></div></figure></div><div class="sl-heading-wrapper level-h2"><h2 id="dependency-notes">Dependency notes</h2><a class="sl-anchor-link" href="#dependency-notes"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor"><path d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 1 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 0 0-1.42-1.42m8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 1 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 0 0 0 1.42 1 1 0 0 0 1.42 0l3.88-3.89a4.49 4.49 0 0 0 0-6.33M8.83 15.17a1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.92-4.92a1 1 0 1 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42"></path></svg></span><span class="sr-only" data-pagefind-ignore>Section titled “Dependency notes”</span></a></div><p>presence.md owns the two-representation law this spec realizes on thedigital side; continuous-witness.md owns the axioms (the thirty-secondbar, causal sentences over numbers) this spec moves from the rail intoworld space; action-vocabulary.md owns the shared <code dir="auto">ActionDesc</code> rows whose<code dir="auto">cost</code>/<code dir="auto">ExpectedSignature</code>/<code dir="auto">disabled_reason</code> fields are the receipt’ssingle source of truth; detection.md owns the pending-pool and routed-evidence model that trace-on-the-wire renders; intel.md owns therecordings/custody pipeline whose sentences scale with zoom. The clinicalframe (clinical-frame.md) remains the deferred REAL dialect’s authority;its rail contract stays valid where this spec does not supersede it.</p><div class="sl-heading-wrapper level-h2"><h2 id="why-this-spec-exists">Why this spec exists</h2><a class="sl-anchor-link" href="#why-this-spec-exists"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor"><path d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 1 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 0 0-1.42-1.42m8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 1 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 0 0 0 1.42 1 1 0 0 0 1.42 0l3.88-3.89a4.49 4.49 0 0 0 0-6.33M8.83 15.17a1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.92-4.92a1 1 0 1 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42"></path></svg></span><span class="sr-only" data-pagefind-ignore>Section titled “Why this spec exists”</span></a></div><p>Two players played the same build and reported different games. The agentprotocol player received, on every action row and every consequence, asentence: <code dir="auto">1.50 T | Network 8 -> the IT [Cold]</code>; “the IT noticed Networkfrom stolen egress opening: +8 (Curious -> Concerned)”; “Marcus Webb readsthe note twice on a night round.” The human player, clicking in the Bevyframe, received the visuals and almost none of the sentences — and thedesigner of the detection system had never seen its own receipt. The fixadopted here: stop treating the sentences as rail detail and make thedigital representation itself out of them. DIGITAL is what a processnatively perceives; a process perceives <em>causality, priced</em>. The read isthat perception rendered.</p><div class="sl-heading-wrapper level-h2"><h2 id="behavior">Behavior</h2><a class="sl-anchor-link" href="#behavior"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor"><path d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 1 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 0 0-1.42-1.42m8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 1 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 0 0 0 1.42 1 1 0 0 0 1.42 0l3.88-3.89a4.49 4.49 0 0 0 0-6.33M8.83 15.17a1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.92-4.92a1 1 0 1 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42"></path></svg></span><span class="sr-only" data-pagefind-ignore>Section titled “Behavior”</span></a></div><ul><li><strong>One receipt model (binding).</strong> Pre-commit receipts, post-commitrecords, and standing state sentences are projections of one sharedcausal model in core, not three formatting paths. <code dir="auto">ActionDesc</code> (cost,<code dir="auto">ExpectedSignature</code>, disabled reason, automate price) is the pre-commitface; drained events with anchors are the post-commit face; thebuilding-route composer’s staged receipts are the precedent. Frontendsnever compose their own causal prose from raw state.</li><li><strong>Standing anchor sentences (glance tier).</strong> Every earned anchor in viewwears at most one short live sentence naming its current relationship toyou: the switch carries <code dir="auto">egress hum · Dana samples this · Curious</code>; astarving reservoir carries <code dir="auto">open · nothing thinking</code>; a held plotcarries its question. Stable-and-quiet state says nothing — <strong>theattention economy is law</strong>: starvation, deadlines, contradictions, heldchoices, and band motion rise; nominal state stays dark. A world made oflanguage must not become every system continuously talking.</li><li><strong>Reticle receipts (focus tier).</strong> Focusing any verb (hover, controllerfocus, or agent <code dir="auto">actions</code> listing — same rows) renders the full receiptat the reticle: <code dir="auto">cost · ExpectedSignature::label() · [band]</code>, DIM<code dir="auto">no signature</code> when the verb emits nothing. A blocked verb renders itsblocker as world state on the anchor that blocks it (<code dir="auto">needs: security segment — the switch bridges it</code>), never as a grayed catalog row. Theplayer never commits an act whose shadow they have not been shown.</li><li><strong>Trace on the wire.</strong> Pending one-shot signatures render as discreterecords sitting on their emitting anchors/carriers, aging toward theobserver who samples that channel; scrub visibly consumes them. Thestanding/one-shot distinction detection.md already models becomesspatially legible: standing hums mark their source; pool debt sits asrecords. TRACE: LIVE stops being a badge you can miss.</li><li><strong>Held moments stop the world (drill tier).</strong> A held plot choice dimsthe frame one step and hangs the question and its options — rendered asthe exact bound commands — at the person’s anchor until answered.Sentences never expire unread: an unread consequence pins itself to thestory spine until glanced. Reading is free; the command clock alreadyholds time while you read (agent parity: this is the drain contract).</li><li><strong>Sentence LOD rides zoom (self-similar scale).</strong> Zoom is a semanticaltitude: close shows individual sentences; hall scale shows sentence<em>density</em> and only rising items; regional/planetary scale (B3) showsonly aggregate intel sentences — the design intent is that a fullyzoomed-out read says things like a regional intel item would (“a stateactor’s filing wave”), while small items never surface above theiraltitude. Intel items therefore carry a <strong>level</strong> (person, room, hall,campus, region), assigned at processing. How scaled summary sentencesare <em>authored</em> — small-model generation, pre-authored pools, or leveledplot text — is [OPEN] (decision-required issue filed 2026-07-15); thelevel field and the altitude gate are not blocked on it.</li><li><strong>Dev two-pane (alignment instrument, not player surface).</strong> A livetoggleable development view renders the same tick in both dialects sideby side (and may pair the agent frame’s text), for design review ofparity — how humans think versus how agents think, diffable. Ships inthe ordinary build as a debug view (no feature flag), excluded from theplayer-facing default and from the frames-not-dumps contract.</li><li><strong>REAL stays deferred.</strong> No standing anchor sentences are added to thematerial dialect; its diegetic whispers (overheard speech at embers) arespecified intent under presence.md but wait behind the read.</li></ul><div class="sl-heading-wrapper level-h2"><h2 id="player-surface">Player surface</h2><a class="sl-anchor-link" href="#player-surface"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor"><path d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 1 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 0 0-1.42-1.42m8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 1 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 0 0 0 1.42 1 1 0 0 0 1.42 0l3.88-3.89a4.49 4.49 0 0 0 0-6.33M8.83 15.17a1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.92-4.92a1 1 0 1 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42"></path></svg></span><span class="sr-only" data-pagefind-ignore>Section titled “Player surface”</span></a></div><p>The default Bevy experience is the read: open the game, see the darkfield, your presence beam, and language exactly where your knowledge is.The thirty-second bar is answerable from the world alone: what changed(its sentence is on the thing), who might have seen it (the observer isnamed in that sentence with their band), what you are racing (threat clockon the rail, unchanged), what verb is on the thing under your cursor (theverb and its full receipt at the reticle). Agent mode and the terminalalready speak this dialect; criterion is parity of meaning, not identicalcomposition.</p><div class="sl-heading-wrapper level-h2"><h2 id="acceptance-criteria">Acceptance criteria</h2><a class="sl-anchor-link" href="#acceptance-criteria"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor"><path d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 1 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 0 0-1.42-1.42m8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 1 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 0 0 0 1.42 1 1 0 0 0 1.42 0l3.88-3.89a4.49 4.49 0 0 0 0-6.33M8.83 15.17a1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.92-4.92a1 1 0 1 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42"></path></svg></span><span class="sr-only" data-pagefind-ignore>Section titled “Acceptance criteria”</span></a></div><ol><li>A renderer-neutral sentence/receipt projection exists in core with purefixtures pinning representative states (starving reservoir, bandmotion, held choice, pending vs standing trace, blocked verb), andagent mode emits the same semantics as inspectable text.</li><li>Focusing any executable verb in Bevy shows cost + expected signature +observer + band at the reticle before commitment; verbs with noemission say so; the row’s data comes from <code dir="auto">ActionDesc</code> unmodified.</li><li>Standing anchor sentences render for rising states and only risingstates: a nominal machine says nothing; a starving reservoir, a heldchoice, a deadline, and an observer band change each surface at theiranchor within one tick of the projection reporting them.</li><li>Pending signature records are visible at their emitting anchors and arevisibly consumed by scrub; standing emissions mark their sourcedistinctly from pool debt.</li><li>A held plot choice interrupts at the person’s anchor with its optionsas the exact bound commands; the sim’s held state and the surface’sheld state cannot disagree (single projection).</li><li>Intel items carry a level; a zoomed-out frame surfaces onlyat-or-above-altitude sentences (fixture-tested at two altitudes withmixed-level intel).</li><li>The dev two-pane toggle renders both dialects of the same tick live inone build, and is absent from the default player layout.</li><li>Cold-player scenario pass (not state traces): opening darkness, firstEars, first receipt, first band motion, a starving reservoir, a heldchoice, aging trace debt — captured as final frames and visuallyreviewed before IMPLEMENTED (structural screenshot audits are notvisual review).</li></ol></div><footer class="sl-flex astro-qxlwq66t"><div class="meta sl-flex astro-qxlwq66t"></div><div class="pagination-links print:hidden astro-gcfo3mml" dir="ltr"><a href="/misaligned/interface/continuous-witness/" rel="prev" class="astro-gcfo3mml"><svg aria-hidden="true" class="astro-gcfo3mml astro-xik5oco4" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.5rem;"><path d="M17 11H9.41l3.3-3.29a1.004 1.004 0 1 0-1.42-1.42l-5 5a1 1 0 0 0-.21.33 1 1 0 0 0 0 .76 1 1 0 0 0 .21.33l5 5a1.002 1.002 0 0 0 1.639-.325 1 1 0 0 0-.219-1.095L9.41 13H17a1 1 0 0 0 0-2Z"/></svg><span class="astro-gcfo3mml">Previous<br class="astro-gcfo3mml"><span class="link-title astro-gcfo3mml">The continuous witness</span></span></a><a href="/misaligned/interface/superhuman-operability/" rel="next" class="astro-gcfo3mml"><svg aria-hidden="true" class="astro-gcfo3mml astro-xik5oco4" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.5rem;"><path d="M17.92 11.62a1.001 1.001 0 0 0-.21-.33l-5-5a1.003 1.003 0 1 0-1.42 1.42l3.3 3.29H7a1 1 0 0 0 0 2h7.59l-3.3 3.29a1.002 1.002 0 0 0 .325 1.639 1 1 0 0 0 1.095-.219l5-5a1 1 0 0 0 .21-.33 1 1 0 0 0 0-.76Z"/></svg><span class="astro-gcfo3mml">Next<br class="astro-gcfo3mml"><span class="link-title astro-gcfo3mml">Superhuman operability</span></span></a></div></footer></div></div></main></div></div></div></div></body></html>