{"schemaVersion":"pre.page.v1","id":"architecture","route":"/architecture","meta":{"title":"Architecture","description":"System boundaries, the headless operating model, account holons, and the reference implementations.","navLabel":"Architecture","order":30,"nav":true,"navGroup":"","discoverable":true,"eyebrow":"System map","status":"canonical","theme":"main","visibility":"public"},"source":{"kind":"filesystem","ref":"ARCHITECTURE.md","digest":"1059d0b0d250c209d1bf4676ee1c1a97ac9b152e8c1b686fc267b288c369a320"},"navigation":{"items":[{"route":"/","label":"Main","order":0,"placement":"primary","group":""},{"route":"/context","label":"Context","order":10,"placement":"primary","group":""},{"route":"/vision","label":"Vision","order":15,"placement":"secondary","group":"Explore"},{"route":"/principles","label":"Principles","order":20,"placement":"primary","group":""},{"route":"/architecture","label":"Architecture","order":30,"placement":"primary","group":""},{"route":"/ontology","label":"Ontology","order":32,"placement":"secondary","group":"Explore"},{"route":"/protocol","label":"Protocol","order":35,"placement":"secondary","group":"Explore"},{"route":"/security","label":"Security","order":40,"placement":"secondary","group":"Explore"},{"route":"/roadmap","label":"Roadmap","order":45,"placement":"primary","group":""},{"route":"/status","label":"Status","order":50,"placement":"primary","group":""},{"route":"/projects","label":"Projects","order":60,"placement":"secondary","group":"Reference"},{"route":"/decisions","label":"Decisions","order":65,"placement":"secondary","group":"Reference"},{"route":"/learnings","label":"Learnings","order":68,"placement":"secondary","group":"Reference"},{"route":"/glossary","label":"Glossary","order":70,"placement":"secondary","group":"Reference"},{"route":"/sources","label":"Sources","order":90,"placement":"secondary","group":"Reference"}],"outline":[{"id":"layer-map","label":"Layer map","level":2},{"id":"headless-stateless-operating-model","label":"Headless, stateless operating model","level":2},{"id":"pre-account-boundary","label":"Pre Account boundary","level":2},{"id":"pre-bi-resolution","label":"*.pre.bi resolution","level":2},{"id":"account-surfaces","label":"Account surfaces","level":2},{"id":"deployment-topologies","label":"Deployment topologies","level":2},{"id":"isolated-manual-account","label":"Isolated manual account","level":3},{"id":"shared-wildcard-platform","label":"Shared wildcard platform","level":3},{"id":"dedicated-or-federated-account","label":"Dedicated or federated account","level":3},{"id":"relational-stored-program-architecture","label":"Relational stored-program architecture","level":2},{"id":"protocol-reference-kernel","label":"Protocol reference kernel","level":2},{"id":"harnest-step-2-implementation","label":"HARnest Step 2 implementation","level":2},{"id":"durable-protocol-spine-versus-domain-projection","label":"Durable protocol spine versus domain projection","level":2},{"id":"communications-as-an-account-projection","label":"Communications as an account projection","level":2},{"id":"content-reference-implementation","label":"Content reference implementation","level":2},{"id":"repository-ownership","label":"Repository ownership","level":2}]},"presentation":{"theme":"main","classes":{"page":"min-h-screen bg-[#f6f4ee] text-[#20251f]","header":"sticky top-0 z-20 border-b border-[#d8d6cd] bg-[#f6f4ee]/95 backdrop-blur","headerInner":"mx-auto flex w-full max-w-6xl items-center justify-between gap-6 px-5 py-4 sm:px-8 lg:px-10","brand":"flex shrink-0 items-baseline gap-2 text-sm font-semibold tracking-[-0.02em] text-[#20251f]","brandMark":"font-mono text-[0.66rem] font-medium uppercase tracking-[0.22em] text-[#737c72]","nav":"flex max-w-full gap-1 overflow-x-auto pb-1 text-sm [scrollbar-width:none] [&::-webkit-scrollbar]:hidden","navLink":"whitespace-nowrap rounded-full px-3 py-1.5 text-[#667066] transition-colors hover:bg-[#e9e7df] hover:text-[#20251f] focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[#556255]","navLinkActive":"bg-[#20251f] text-[#f6f4ee] hover:bg-[#20251f] hover:text-[#f6f4ee]","shell":"mx-auto w-full max-w-6xl px-5 sm:px-8 lg:px-10","main":"grid gap-10 py-12 lg:grid-cols-[minmax(0,1fr)_14rem] lg:py-16","article":"min-w-0","aside":"hidden lg:block","eyebrow":"font-mono text-xs font-medium uppercase tracking-[0.2em] text-[#768075]","title":"mt-4 max-w-4xl text-balance text-4xl font-medium leading-[1.04] tracking-[-0.045em] text-[#172018] sm:text-6xl","description":"mt-5 max-w-3xl text-pretty text-lg leading-8 text-[#586157] sm:text-xl","statusRow":"mt-7 flex flex-wrap gap-2","badge":"rounded-full border border-[#cfd2c9] bg-[#ebece6] px-3 py-1 font-mono text-[0.68rem] uppercase tracking-[0.12em] text-[#5d665c]","body":"mt-12 max-w-3xl","heading1":"mt-12 scroll-mt-28 text-3xl font-medium leading-tight tracking-[-0.035em] text-[#20251f]","heading2":"mt-12 scroll-mt-28 text-2xl font-medium leading-tight tracking-[-0.025em] text-[#20251f]","heading3":"mt-9 scroll-mt-28 text-xl font-semibold leading-tight tracking-[-0.015em] text-[#293229]","heading4":"mt-8 scroll-mt-28 text-lg font-semibold text-[#293229]","heading5":"mt-8 scroll-mt-28 text-base font-semibold uppercase tracking-[0.08em] text-[#4d574d]","heading6":"mt-8 scroll-mt-28 text-sm font-semibold uppercase tracking-[0.12em] text-[#5d675c]","paragraph":"mt-5 text-[1.04rem] leading-8 text-[#404940]","unorderedList":"mt-5 list-disc space-y-2 pl-6 text-[1.02rem] leading-7 text-[#404940] marker:text-[#879184]","orderedList":"mt-5 list-decimal space-y-2 pl-6 text-[1.02rem] leading-7 text-[#404940] marker:font-mono marker:text-[#737c72]","quote":"my-8 border-l-2 border-[#879184] pl-5 text-xl leading-8 text-[#2e382f]","code":"my-7 overflow-x-auto rounded-2xl border border-[#303a31] bg-[#20251f] p-5 font-mono text-sm leading-6 text-[#eef1e9] shadow-sm","divider":"my-10 border-0 border-t border-[#d8d6cd]","inlineLink":"font-medium text-[#284f36] underline decoration-[#9dab9a] decoration-1 underline-offset-4 transition-colors hover:text-[#173421] focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[#556255]","inlineCode":"rounded bg-[#e8e7df] px-1.5 py-0.5 font-mono text-[0.88em] text-[#2d372e]","inlineStrong":"font-semibold text-[#263027]","inlineEmphasis":"italic","tocTitle":"font-mono text-[0.68rem] font-semibold uppercase tracking-[0.16em] text-[#788078]","tocList":"mt-4 space-y-2 border-l border-[#d8d6cd] pl-4","tocLink":"block text-sm leading-5 text-[#697269] transition-colors hover:text-[#20251f] focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[#556255]","tocSticky":"sticky top-28","tocChild":"pl-3","secondaryNav":"mt-16 grid gap-8 border-t border-[#d8d6cd] pt-7 sm:grid-cols-2","secondaryNavGroup":"min-w-0","secondaryNavTitle":"font-mono text-[0.68rem] font-semibold uppercase tracking-[0.16em] text-[#788078]","secondaryNavList":"mt-3 flex flex-wrap gap-x-4 gap-y-2","secondaryNavLink":"text-sm leading-5 text-[#697269] transition-colors hover:text-[#20251f] focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[#556255]","footer":"mt-10 border-t border-[#d8d6cd] pt-5 text-xs leading-5 text-[#737c72]","footerCode":"font-mono text-[0.68rem] text-[#5e675e]"}},"blocks":[{"id":"block-1","type":"heading","level":2,"anchor":"layer-map","content":[{"type":"text","value":"Layer map"}],"plainText":"Layer map","className":"mt-12 scroll-mt-28 text-2xl font-medium leading-tight tracking-[-0.025em] text-[#20251f]"},{"id":"block-2","type":"code","language":"text","value":"Pre\n  identity, custody, provenance, authority, respect\n        |\n        +-- Pre Account -- governed custody, authority, billing, export\n        |\n        +-- Presertion -- knowing\n        |\n        +-- HARnest ---- doing\n                |\n                +-- Har -- realtime relational membrane\n        |\n        +-- Stow ------- encounter and local capability\n        |\n        +-- pre CLI ---- shell and local participant interface\n        |\n        +-- *.pre.bi --- network bindings and surface projections","className":"my-7 overflow-x-auto rounded-2xl border border-[#303a31] bg-[#20251f] p-5 font-mono text-sm leading-6 text-[#eef1e9] shadow-sm"},{"id":"block-3","type":"paragraph","content":[{"type":"text","value":"External services and substrates remain replaceable:"}],"className":"mt-5 text-[1.04rem] leading-8 text-[#404940]"},{"id":"block-4","type":"code","language":"text","value":"Linear      work projection\nBrevo       mail transport, inbound parsing, and delivery evidence\nGmail       external communications source and transport\nMicrosoft   external communications source and transport\nGitHub      code and versioned artifacts\nVercel      serverless application execution and delivery\nInstant     current hosted relational and persistence implementation\nOpenRouter  optional evanescent model-compute gateway\nCloudflare  DNS, edge, routing, and abuse controls\nBackblaze   durable object storage","className":"my-7 overflow-x-auto rounded-2xl border border-[#303a31] bg-[#20251f] p-5 font-mono text-sm leading-6 text-[#eef1e9] shadow-sm"},{"id":"block-5","type":"heading","level":2,"anchor":"headless-stateless-operating-model","content":[{"type":"text","value":"Headless, stateless operating model"}],"plainText":"Headless, stateless operating model","className":"mt-12 scroll-mt-28 text-2xl font-medium leading-tight tracking-[-0.025em] text-[#20251f]"},{"id":"block-6","type":"paragraph","content":[{"type":"text","value":"Pre is a substrate-independent operating system for persistent relational identity, knowledge, and agency."}],"className":"mt-5 text-[1.04rem] leading-8 text-[#404940]"},{"id":"block-7","type":"paragraph","content":[{"type":"text","value":"It is "},{"type":"strong","children":[{"type":"text","value":"headless"}]},{"type":"text","value":" because no interface is privileged. It is "},{"type":"strong","children":[{"type":"text","value":"stateless at the execution edge"}]},{"type":"text","value":" because a function, model, browser session, controller, or CLI process may disappear after leaving attributable durable records."}],"className":"mt-5 text-[1.04rem] leading-8 text-[#404940]"},{"id":"block-8","type":"paragraph","content":[{"type":"text","value":"The world itself remains durable."}],"className":"mt-5 text-[1.04rem] leading-8 text-[#404940]"},{"id":"block-9","type":"code","language":"text","value":"instantiate\n  -> identify\n  -> resolve account and record scope\n  -> retrieve bounded context\n  -> resolve authority\n  -> perform one action\n  -> preserve events, evidence, result, and receipt\n  -> terminate","className":"my-7 overflow-x-auto rounded-2xl border border-[#303a31] bg-[#20251f] p-5 font-mono text-sm leading-6 text-[#eef1e9] shadow-sm"},{"id":"block-10","type":"heading","level":2,"anchor":"pre-account-boundary","content":[{"type":"text","value":"Pre Account boundary"}],"plainText":"Pre Account boundary","className":"mt-12 scroll-mt-28 text-2xl font-medium leading-tight tracking-[-0.025em] text-[#20251f]"},{"id":"block-11","type":"paragraph","content":[{"type":"text","value":"A Pre Account is an independently addressable holon and the default top-level boundary for custody, authority, billing, export, restore, and succession."}],"className":"mt-5 text-[1.04rem] leading-8 text-[#404940]"},{"id":"block-12","type":"code","language":"text","value":"account:<stable-id>\n  |\n  +-- bindings\n  |     +-- <slug>.pre.bi\n  |     +-- custom domain\n  |     +-- provider tenant IDs\n  |\n  +-- memberships and identity bindings\n  +-- custody and retention policy\n  +-- workspaces and rooms\n  +-- records, artifacts, evidence, and assertions\n  +-- tasks, runs, approvals, verdicts, and receipts\n  +-- communications and relationship projections\n  +-- engagements, entitlements, quotas, and external payment bindings\n  +-- exports, restores, and succession","className":"my-7 overflow-x-auto rounded-2xl border border-[#303a31] bg-[#20251f] p-5 font-mono text-sm leading-6 text-[#eef1e9] shadow-sm"},{"id":"block-13","type":"paragraph","content":[{"type":"text","value":"A hostname, organization name, person name, repository, database row, billing account, or provider tenant is not the canonical account identity. Each may be an external binding."}],"className":"mt-5 text-[1.04rem] leading-8 text-[#404940]"},{"id":"block-14","type":"paragraph","content":[{"type":"text","value":"A person may participate in several accounts. An account may represent a person, family, organization, archive, community, or separately governed initiative. Cross-account access requires an explicit bounded context grant or capability."}],"className":"mt-5 text-[1.04rem] leading-8 text-[#404940]"},{"id":"block-15","type":"heading","level":2,"anchor":"pre-bi-resolution","content":[{"type":"code","value":"*.pre.bi"},{"type":"text","value":" resolution"}],"plainText":"*.pre.bi resolution","className":"mt-12 scroll-mt-28 text-2xl font-medium leading-tight tracking-[-0.025em] text-[#20251f]"},{"id":"block-16","type":"paragraph","content":[{"type":"text","value":"A request to an account surface follows this shape:"}],"className":"mt-5 text-[1.04rem] leading-8 text-[#404940]"},{"id":"block-17","type":"code","language":"text","value":"request host\n  -> trusted hostname normalization\n  -> admitted external-binding lookup\n  -> canonical account candidate\n  -> authenticated identity\n  -> account membership and capability resolution\n  -> field-scoped projection or action","className":"my-7 overflow-x-auto rounded-2xl border border-[#303a31] bg-[#20251f] p-5 font-mono text-sm leading-6 text-[#eef1e9] shadow-sm"},{"id":"block-18","type":"paragraph","content":[{"type":"text","value":"The hostname selects a candidate account; it does not grant access. Client-supplied account IDs, slugs, hosts, headers, roles, or memberships are untrusted input."}],"className":"mt-5 text-[1.04rem] leading-8 text-[#404940]"},{"id":"block-19","type":"paragraph","content":[{"type":"text","value":"Reserved infrastructure labels include "},{"type":"code","value":"main"},{"type":"text","value":", "},{"type":"code","value":"api"},{"type":"text","value":", "},{"type":"code","value":"reply"},{"type":"text","value":", "},{"type":"code","value":"assets"},{"type":"text","value":", "},{"type":"code","value":"status"},{"type":"text","value":", "},{"type":"code","value":"admin"},{"type":"text","value":", and "},{"type":"code","value":"work"},{"type":"text","value":"."}],"className":"mt-5 text-[1.04rem] leading-8 text-[#404940]"},{"id":"block-20","type":"heading","level":2,"anchor":"account-surfaces","content":[{"type":"text","value":"Account surfaces"}],"plainText":"Account surfaces","className":"mt-12 scroll-mt-28 text-2xl font-medium leading-tight tracking-[-0.025em] text-[#20251f]"},{"id":"block-21","type":"paragraph","content":[{"type":"text","value":"One account may project through several paths and interfaces:"}],"className":"mt-5 text-[1.04rem] leading-8 text-[#404940]"},{"id":"block-22","type":"code","language":"text","value":"/<root>       public or member presence\n/inbox        relationship-centered communications\n/records      Presertion knowledge, evidence, and chronology\n/work         HARnest tasks, approvals, evidence, receipts, and handoffs\n/people       people, organizations, and relationships\n/files        artifacts, renditions, provenance, and custody\n/ask          later bounded account or avatar mediation\n/settings     membership, transports, retention, usage, billing, export","className":"my-7 overflow-x-auto rounded-2xl border border-[#303a31] bg-[#20251f] p-5 font-mono text-sm leading-6 text-[#eef1e9] shadow-sm"},{"id":"block-23","type":"paragraph","content":[{"type":"text","value":"Public and authenticated surfaces may differ in visible fields and available actions while remaining projections over the same governed account world. No surface receives authority merely because it can display a record."}],"className":"mt-5 text-[1.04rem] leading-8 text-[#404940]"},{"id":"block-24","type":"heading","level":2,"anchor":"deployment-topologies","content":[{"type":"text","value":"Deployment topologies"}],"plainText":"Deployment topologies","className":"mt-12 scroll-mt-28 text-2xl font-medium leading-tight tracking-[-0.025em] text-[#20251f]"},{"id":"block-25","type":"paragraph","content":[{"type":"text","value":"The account contract survives several implementation stages."}],"className":"mt-5 text-[1.04rem] leading-8 text-[#404940]"},{"id":"block-26","type":"heading","level":3,"anchor":"isolated-manual-account","content":[{"type":"text","value":"Isolated manual account"}],"plainText":"Isolated manual account","className":"mt-9 scroll-mt-28 text-xl font-semibold leading-tight tracking-[-0.015em] text-[#293229]"},{"id":"block-27","type":"code","language":"text","value":"one exact hostname binding\none account configuration\none isolated canonical store or data namespace\none object-storage namespace\none steward\none complete export","className":"my-7 overflow-x-auto rounded-2xl border border-[#303a31] bg-[#20251f] p-5 font-mono text-sm leading-6 text-[#eef1e9] shadow-sm"},{"id":"block-28","type":"paragraph","content":[{"type":"text","value":"Use this topology for the first paid and lighthouse accounts while HARnest persistence and authorization are still being normalized."}],"className":"mt-5 text-[1.04rem] leading-8 text-[#404940]"},{"id":"block-29","type":"heading","level":3,"anchor":"shared-wildcard-platform","content":[{"type":"text","value":"Shared wildcard platform"}],"plainText":"Shared wildcard platform","className":"mt-9 scroll-mt-28 text-xl font-semibold leading-tight tracking-[-0.015em] text-[#293229]"},{"id":"block-30","type":"code","language":"text","value":"*.pre.bi\n  -> trusted account resolver\n  -> account-scoped store queries\n  -> account-scoped authorization\n  -> typed account surface","className":"my-7 overflow-x-auto rounded-2xl border border-[#303a31] bg-[#20251f] p-5 font-mono text-sm leading-6 text-[#eef1e9] shadow-sm"},{"id":"block-31","type":"paragraph","content":[{"type":"text","value":"Standard accounts may share application code and infrastructure only after unrelated writers cannot overwrite one another, every query is account-scoped, tenant isolation is tested, and backup and restore are accepted."}],"className":"mt-5 text-[1.04rem] leading-8 text-[#404940]"},{"id":"block-32","type":"heading","level":3,"anchor":"dedicated-or-federated-account","content":[{"type":"text","value":"Dedicated or federated account"}],"plainText":"Dedicated or federated account","className":"mt-9 scroll-mt-28 text-xl font-semibold leading-tight tracking-[-0.015em] text-[#293229]"},{"id":"block-33","type":"paragraph","content":[{"type":"text","value":"Sensitive, sovereign, institutional, or local-first accounts may use dedicated stores, deployments, regions, object custody, or self-hosted conforming implementations. Migration must preserve account address, provenance, authority history, protocol semantics, and exportability."}],"className":"mt-5 text-[1.04rem] leading-8 text-[#404940]"},{"id":"block-34","type":"heading","level":2,"anchor":"relational-stored-program-architecture","content":[{"type":"text","value":"Relational stored-program architecture"}],"plainText":"Relational stored-program architecture","className":"mt-12 scroll-mt-28 text-2xl font-medium leading-tight tracking-[-0.025em] text-[#20251f]"},{"id":"block-35","type":"paragraph","content":[{"type":"text","value":"Instructions, data, identity, authority, context, evidence, and interface descriptions may all be addressable records. That does not make every record executable."}],"className":"mt-5 text-[1.04rem] leading-8 text-[#404940]"},{"id":"block-36","type":"paragraph","content":[{"type":"text","value":"The safety boundary remains explicit:"}],"className":"mt-5 text-[1.04rem] leading-8 text-[#404940]"},{"id":"block-37","type":"code","language":"text","value":"message != execution\nidentity != authority\naccount address != membership\nhostname != account authority\nrecord != command\nschema validity != trust\nevidence != verdict\nprocess completion != objective completion\nmodel invocation != participant\nsuccession != authority transfer","className":"my-7 overflow-x-auto rounded-2xl border border-[#303a31] bg-[#20251f] p-5 font-mono text-sm leading-6 text-[#eef1e9] shadow-sm"},{"id":"block-38","type":"heading","level":2,"anchor":"protocol-reference-kernel","content":[{"type":"text","value":"Protocol reference kernel"}],"plainText":"Protocol reference kernel","className":"mt-12 scroll-mt-28 text-2xl font-medium leading-tight tracking-[-0.025em] text-[#20251f]"},{"id":"block-39","type":"paragraph","content":[{"type":"text","value":"Step 1 separates semantic contracts from persistence:"}],"className":"mt-5 text-[1.04rem] leading-8 text-[#404940]"},{"id":"block-40","type":"code","language":"text","value":"ActionEnvelope\n      |\n      v\ntrusted protocol kernel\n  - durable request claim\n  - identity + account + authority resolution\n  - attenuating capability/context chains\n  - trusted risk classification\n  - bounded executor\n  - ordered events\n  - evidence\n  - optional objective evaluator\n  - ResultEnvelope + immutable Receipt\n      |\n      v\nProtocolJournal / storage adapter","className":"my-7 overflow-x-auto rounded-2xl border border-[#303a31] bg-[#20251f] p-5 font-mono text-sm leading-6 text-[#eef1e9] shadow-sm"},{"id":"block-41","type":"paragraph","content":[{"type":"text","value":"The reference implementation uses in-memory authority, journal, and resource stores. "},{"type":"code","value":"ProtocolJournal"},{"type":"text","value":" permits synchronous or asynchronous persistence without allowing storage mechanics to redefine observable semantics."}],"className":"mt-5 text-[1.04rem] leading-8 text-[#404940]"},{"id":"block-42","type":"paragraph","content":[{"type":"text","value":"A Har, Instant, SQL, local-first, filesystem, or other implementation must preserve:"}],"className":"mt-5 text-[1.04rem] leading-8 text-[#404940]"},{"id":"block-43","type":"list","ordered":false,"items":[[{"type":"text","value":"only admitted authority state is trusted;"}],[{"type":"text","value":"account scope is resolved before account-owned state is read or mutated;"}],[{"type":"text","value":"delegation cannot escalate;"}],[{"type":"text","value":"idempotent replay cannot duplicate effects;"}],[{"type":"text","value":"changed input cannot masquerade as replay;"}],[{"type":"text","value":"incomplete requests remain recoverable;"}],[{"type":"text","value":"evidence and verdicts stay distinct;"}],[{"type":"text","value":"verified verdicts cite attributable evidence;"}],[{"type":"text","value":"external projections do not own canonical objects;"}],[{"type":"text","value":"succession does not inherit authority."}]],"className":"mt-5 list-disc space-y-2 pl-6 text-[1.02rem] leading-7 text-[#404940] marker:text-[#879184]"},{"id":"block-44","type":"heading","level":2,"anchor":"harnest-step-2-implementation","content":[{"type":"text","value":"HARnest Step 2 implementation"}],"plainText":"HARnest Step 2 implementation","className":"mt-12 scroll-mt-28 text-2xl font-medium leading-tight tracking-[-0.025em] text-[#20251f]"},{"id":"block-45","type":"paragraph","content":[{"type":"text","value":"The first real product implementation lives in repository "},{"type":"code","value":"prepace/harnest"},{"type":"text","value":", not in this canonical-map repository."}],"className":"mt-5 text-[1.04rem] leading-8 text-[#404940]"},{"id":"block-46","type":"code","language":"text","value":"Browser / operator\n        |\n        v\nHARnest on Vercel\n  - SSR public/private projections\n  - operator and controller authentication\n  - server-resolved domain policy\n  - canonical action/result/receipt boundary\n        |\n        +---------------------------+\n        |                           |\n        v                           v\nInstant                        Local controller\n  - inherited domain           - local repository authority\n    checkpoint                 - fixed Git reads\n  - request-scoped             - allowlisted verification scripts\n    protocol documents         - detailed local-only artifacts\n  - idempotency                - optional OpenRouter synthesis\n  - events/evidence            - sanitized remote summaries\n  - verdicts/receipts","className":"my-7 overflow-x-auto rounded-2xl border border-[#303a31] bg-[#20251f] p-5 font-mono text-sm leading-6 text-[#eef1e9] shadow-sm"},{"id":"block-47","type":"paragraph","content":[{"type":"text","value":"The web server does not receive shell authority, Git credentials, local repository paths, raw command output, or OpenRouter credentials."}],"className":"mt-5 text-[1.04rem] leading-8 text-[#404940]"},{"id":"block-48","type":"paragraph","content":[{"type":"text","value":"The controller may request and record bounded work. It does not issue its own objective verdict or gain write authority through messages or model output."}],"className":"mt-5 text-[1.04rem] leading-8 text-[#404940]"},{"id":"block-49","type":"paragraph","content":[{"type":"text","value":"The optional model invocation sees only sanitized evidence. The durable participant is "},{"type":"code","value":"agent:pre:repo-auditor-01"},{"type":"text","value":"; gateway, requested model, actual model, provider, usage, and cost belong to the invocation record."}],"className":"mt-5 text-[1.04rem] leading-8 text-[#404940]"},{"id":"block-50","type":"paragraph","content":[{"type":"text","value":"The first copy-safe handoff is account-unbound. It identifies implementation provenance and workspace, room, task, and run scope without claiming an account that the current product has not admitted."}],"className":"mt-5 text-[1.04rem] leading-8 text-[#404940]"},{"id":"block-51","type":"heading","level":2,"anchor":"durable-protocol-spine-versus-domain-projection","content":[{"type":"text","value":"Durable protocol spine versus domain projection"}],"plainText":"Durable protocol spine versus domain projection","className":"mt-12 scroll-mt-28 text-2xl font-medium leading-tight tracking-[-0.025em] text-[#20251f]"},{"id":"block-52","type":"paragraph","content":[{"type":"text","value":"The supplied HARnest implementation persisted its complete domain ledger as one server-only checkpoint. Step 2 preserves that projection for compatibility while adding independently keyed canonical protocol documents:"}],"className":"mt-5 text-[1.04rem] leading-8 text-[#404940]"},{"id":"block-53","type":"code","language":"text","value":"idempotency claim\nrequest bundle\nevent\nevidence\nobjective verdict\nreceipt","className":"my-7 overflow-x-auto rounded-2xl border border-[#303a31] bg-[#20251f] p-5 font-mono text-sm leading-6 text-[#eef1e9] shadow-sm"},{"id":"block-54","type":"paragraph","content":[{"type":"text","value":"This means accepted actions and evidence no longer exist only inside the mutable checkpoint."}],"className":"mt-5 text-[1.04rem] leading-8 text-[#404940]"},{"id":"block-55","type":"paragraph","content":[{"type":"text","value":"It does not make the checkpoint a final relational design. The next persistence boundary is to migrate tasks, runs, assignments, events, evidence, approvals, and related domain state into independently transacted normalized entities or another conforming HarStore. Account implementation must build on that normalized boundary rather than place unrelated accounts in one checkpoint."}],"className":"mt-5 text-[1.04rem] leading-8 text-[#404940]"},{"id":"block-56","type":"paragraph","content":[{"type":"text","value":"The canonical protocol export and conformance suite serve as the migration oracle."}],"className":"mt-5 text-[1.04rem] leading-8 text-[#404940]"},{"id":"block-57","type":"heading","level":2,"anchor":"communications-as-an-account-projection","content":[{"type":"text","value":"Communications as an account projection"}],"plainText":"Communications as an account projection","className":"mt-12 scroll-mt-28 text-2xl font-medium leading-tight tracking-[-0.025em] text-[#20251f]"},{"id":"block-58","type":"paragraph","content":[{"type":"text","value":"Email and other communications are account-bound records, not provider-owned inbox truth."}],"className":"mt-5 text-[1.04rem] leading-8 text-[#404940]"},{"id":"block-59","type":"code","language":"text","value":"external transport\n  -> authenticated adapter event\n  -> account and relationship resolution\n  -> canonical message, delivery, attachment, and provenance records\n  -> /inbox projection","className":"my-7 overflow-x-auto rounded-2xl border border-[#303a31] bg-[#20251f] p-5 font-mono text-sm leading-6 text-[#eef1e9] shadow-sm"},{"id":"block-60","type":"paragraph","content":[{"type":"text","value":"Brevo may provide sending, inbound parsing, and delivery evidence. Gmail, Microsoft, direct SMTP, SMS, and voice may provide other transports. Provider message IDs remain external bindings. The account retains the canonical relationship, conversation, task, evidence, and retention context."}],"className":"mt-5 text-[1.04rem] leading-8 text-[#404940]"},{"id":"block-61","type":"heading","level":2,"anchor":"content-reference-implementation","content":[{"type":"text","value":"Content reference implementation"}],"plainText":"Content reference implementation","className":"mt-12 scroll-mt-28 text-2xl font-medium leading-tight tracking-[-0.025em] text-[#20251f]"},{"id":"block-62","type":"paragraph","content":[{"type":"text","value":"Step 0 applies the same architecture to this site:"}],"className":"mt-5 text-[1.04rem] leading-8 text-[#404940]"},{"id":"block-63","type":"code","language":"text","value":"ContentSource\n  -> Markdown record\n  -> trusted compiler\n  -> PageDocument v1\n  -> renderer\n  -> HTML / JSON / Markdown projection","className":"my-7 overflow-x-auto rounded-2xl border border-[#303a31] bg-[#20251f] p-5 font-mono text-sm leading-6 text-[#eef1e9] shadow-sm"},{"id":"block-64","type":"paragraph","content":[{"type":"text","value":"The current "},{"type":"code","value":"FilesystemContentSource"},{"type":"text","value":" reads a catalog and canonical Markdown files. A future "},{"type":"code","value":"HarContentSource"},{"type":"text","value":" can replace it while retaining the source-record and projection contracts."}],"className":"mt-5 text-[1.04rem] leading-8 text-[#404940]"},{"id":"block-65","type":"paragraph","content":[{"type":"text","value":"Presentation is bounded:"}],"className":"mt-5 text-[1.04rem] leading-8 text-[#404940]"},{"id":"block-66","type":"list","ordered":true,"items":[[{"type":"text","value":"content selects a semantic theme name;"}],[{"type":"text","value":"trusted code resolves that name to known class strings;"}],[{"type":"text","value":"the compiled JSON carries the resolved strings;"}],[{"type":"text","value":"the renderer consumes the projection without accepting arbitrary executable markup."}]],"className":"mt-5 list-decimal space-y-2 pl-6 text-[1.02rem] leading-7 text-[#404940] marker:font-mono marker:text-[#737c72]"},{"id":"block-67","type":"heading","level":2,"anchor":"repository-ownership","content":[{"type":"text","value":"Repository ownership"}],"plainText":"Repository ownership","className":"mt-12 scroll-mt-28 text-2xl font-medium leading-tight tracking-[-0.025em] text-[#20251f]"},{"id":"block-68","type":"paragraph","content":[{"type":"code","value":"prepace/main:main"},{"type":"text","value":" owns:"}],"className":"mt-5 text-[1.04rem] leading-8 text-[#404940]"},{"id":"block-69","type":"list","ordered":false,"items":[[{"type":"text","value":"the canonical map;"}],[{"type":"text","value":"protocol constitution;"}],[{"type":"text","value":"schemas and conformance fixtures;"}],[{"type":"text","value":"the Pre Account and network-binding decision;"}],[{"type":"text","value":"architectural decisions and cross-workstream status."}]],"className":"mt-5 list-disc space-y-2 pl-6 text-[1.02rem] leading-7 text-[#404940] marker:text-[#879184]"},{"id":"block-70","type":"paragraph","content":[{"type":"code","value":"prepace/harnest:main"},{"type":"text","value":" owns:"}],"className":"mt-5 text-[1.04rem] leading-8 text-[#404940]"},{"id":"block-71","type":"list","ordered":false,"items":[[{"type":"text","value":"task rooms and agency projections;"}],[{"type":"text","value":"operator and controller boundaries;"}],[{"type":"text","value":"domain persistence adapters;"}],[{"type":"text","value":"account-scoped HARnest implementation;"}],[{"type":"text","value":"local bounded executors;"}],[{"type":"text","value":"model-gateway integration;"}],[{"type":"text","value":"live operational acceptance."}]],"className":"mt-5 list-disc space-y-2 pl-6 text-[1.02rem] leading-7 text-[#404940] marker:text-[#879184]"},{"id":"block-72","type":"paragraph","content":[{"type":"text","value":"Customer and account records belong in governed runtime stores, not either Git repository."}],"className":"mt-5 text-[1.04rem] leading-8 text-[#404940]"}]}