{
  "schemaVersion": 1,
  "version": "0.1.0",
  "capturedAt": "2026-09-18T17:06:13.867Z",
  "owner": "Pan Out design-research maintainers",
  "executionBoundary": "Frozen local static reference implementation; no production repository access claimed.",
  "architecture": {
    "layers": [
      {
        "name": "Source evidence",
        "owns": "Immutable captured HTML/CSS/assets, route/state screenshots and hashes",
        "paths": [
          "evidence/",
          "reference-data/source-ledger.json"
        ]
      },
      {
        "name": "Contracts",
        "owns": "Independent denominators, traceable reconstruction decisions, component geometry and behavior",
        "paths": [
          "reference-data/"
        ]
      },
      {
        "name": "Implementation",
        "owns": "Static page markup, scoped family CSS and small local event handlers",
        "paths": [
          "site/",
          "build-site.cjs",
          "build-recipes.cjs",
          "tools/build-docs-recipes.cjs",
          "tools/build-catalog-pages.cjs"
        ]
      },
      {
        "name": "Validation",
        "owns": "Chromium rendering, controls, accessibility, fidelity, junior execution and independent benchmark proof",
        "paths": [
          "tools/",
          "evidence/",
          "reference-data/evaluation-rounds/"
        ]
      }
    ],
    "importDirection": "Implementation reads contracts and public source assets. Research metadata is generated at build time; no runtime source-site dependency."
  },
  "composition": {
    "marketing": {
      "styles": "site/assets/product-recipes.css",
      "scripts": "site/assets/product-recipes.js",
      "root": "main[data-denominator]",
      "parts": "[data-component]",
      "tokens": [
        "--paper",
        "--ink",
        "--coral",
        "--pink",
        "--teal",
        "--gray"
      ],
      "rules": "Use matching page family; parent rail owns horizontal measure and section separation."
    },
    "docs": {
      "styles": "site/assets/docs-recipes.css",
      "scripts": "site/assets/docs-recipes.js",
      "root": "main[data-denominator]",
      "parts": "[data-component]",
      "rules": "Persistent desktop shell; mobile navigation disclosure; independent content and TOC regions."
    },
    "guide": {
      "styles": "site/assets/reference.css + catalog.css",
      "scripts": "site/assets/reference.js + catalog.js",
      "rules": "Guide presentation is an original addition. It is not an observed product shell."
    }
  },
  "naming": {
    "component": "Independent ledger stable kebab-case ID in data-component.",
    "recipe": "Independent route-family ID in data-denominator.",
    "control": "Unique page-local data-control-id for every custom action.",
    "state": "Native attributes first: open, hidden, aria-expanded, aria-selected, aria-pressed, aria-invalid.",
    "content": "Text from user input enters textContent or a value property, never raw HTML."
  },
  "adoption": {
    "duplicatePolicy": "One canonical CSS/JS module per source shell; guide specimens are labelled reduced local examples rather than new product components.",
    "report": "Compare data-component IDs and route-family IDs to independent ledgers; count unreferenced or unknown IDs. Run tools/crawl-site.cjs and tools/verify-render.cjs after a changed contract.",
    "deprecation": "Preserve replaced hooks as documented aliases through one minor version, update all examples, and include a search proving the old name has no unexpected occurrences."
  },
  "versionPolicy": {
    "patch": "Faithful correction or bug fix without contract removal.",
    "minor": "Add a compatible variant, state, token or page.",
    "major": "Remove or change the meaning of a selector, hook, token or behavior.",
    "migration": "Record old and new examples, compatibility interval, required edit and verification. Rebuild and re-freeze before independent review."
  },
  "dataStateContract": {
    "known": "Explicit deterministic fixtures with named expected result.",
    "empty": "Search states no matches rather than rendering an empty panel.",
    "malformed": "Form shows a linked error; values remain in place.",
    "long": "Words wrap; code/table internal scroll is labelled; document overflow <=1px.",
    "delayed": "No asynchronous product request; clipboard uses its real promise and reports permission failure.",
    "reordered": "All local decisions read the currently selected value synchronously; there is no stale remote response.",
    "concurrent": "Last direct user action owns the displayed local feedback; no backend mutation or cross-tab state.",
    "offline": "Once loaded, local controls need no network. Cold offline navigation is unsupported without saved files.",
    "retry": "Correct input then repeat; disabled saving/duplicate server actions do not exist in this boundary.",
    "cancel": "Native dialog Escape/Close returns focus and preserves draft input during the current page session."
  },
  "securityPrivacy": {
    "network": "No analytics, cookies, localStorage, model requests, authentication or form delivery.",
    "permissions": "No local fixture grants access or changes a role. Public external links remain external.",
    "sensitiveInput": "Use example addresses for tests. Values exist in DOM memory only and clear when the page closes or reloads.",
    "injection": "Input interpolations use textContent/value. Static indexed links are built from the trusted local route list.",
    "destructiveActions": "Verified N/A for this static reference; no delete, billing or write-to-product capability is exposed.",
    "logs": "Verification writes synthetic input outcomes only; no source cookies or credentials are published.",
    "localImplementationPolicy": {
      "scope": "Static local reference only",
      "analytics": {
        "rule": "No analytics transport, beacon, cookie, localStorage, or third-party tracker is enabled.",
        "allowed": "Tests may write synthetic result JSON under evidence/.",
        "productionBoundary": "The public source analytics schema and transport were not recovered and are not inferred."
      },
      "permissions": {
        "rule": "No local control requests browser permissions, grants a role, stores a credential, or changes an account.",
        "allowed": "External source links may open as visible destinations with noopener/noreferrer.",
        "productionBoundary": "Authenticated console permission matrices remain private-verification-unavailable."
      },
      "injection": {
        "rule": "Untrusted fixture or form text is inserted through textContent or value; it is never evaluated as markup, code, or URL.",
        "allowed": "Navigation destinations come from a fixed local route list or a literal cited https URL.",
        "productionBoundary": "This is an implementation rule, not a claim about the production application."
      }
    }
  },
  "diagnostics": {
    "successMeasures": [
      "Every required recipe is reachable",
      "Every enabled control has an observable outcome",
      "No missing local assets",
      "No document overflow in supported viewports",
      "No WCAG A/AA violation in the automated selected rules",
      "All references resolve"
    ],
    "telemetry": "No production analytics. Local test JSON records URL, viewport, control ID, expected result, actual result and capture path.",
    "support": "Reproduce a failure using its exact route, viewport, fixture and script command; never request a real credential for a local failure."
  },
  "release": {
    "flags": "Verified N/A: no runtime feature-flag service; all local fixture modes are visible controls or query-independent fixtures.",
    "rollout": "Private GSites immutable deployment after local checks. Publish site/ only, inspect exact returned URL, hash exhaustive live crawl.",
    "rollback": "Republish the previous verified site artifact under a new immutable deployment; never mutate the frozen evidence in place.",
    "killSwitch": "Withdraw the deployment through the authorized GSites lifecycle if publication must stop; no product runtime to disable."
  },
  "exceptions": [
    {
      "id": "a11y-source-semantics",
      "need": "Source uses Framer text/link wrappers without a complete landmark or disclosure contract.",
      "decision": "Local reconstruction uses main/header/nav, one h1, native details/dialog, labelled form controls and visible focus.",
      "risk": "Observed visual evidence is retained; semantics are a deliberate local accessibility improvement.",
      "scope": "Local reference implementation",
      "owner": "Pan Out design-research maintainers",
      "evidence": [
        "reference-data/source-ledger.json",
        "reference-data/component-geometry.json"
      ],
      "reviewDate": "2026-09-18",
      "standardization": "Keep the exception named until source evidence or acceptance changes; revise the specimen, contract and verification in one change."
    },
    {
      "id": "a11y-contrast",
      "need": "Source docs CTA and console secondary text may not meet the chosen AA contrast threshold.",
      "decision": "Dark ink on docs pink CTA; stronger secondary text and link colors in local examples.",
      "risk": "Tiny color deviations are visible and recorded; do not label them exact source colors.",
      "scope": "Local reference implementation",
      "owner": "Pan Out design-research maintainers",
      "evidence": [
        "reference-data/source-ledger.json",
        "reference-data/component-geometry.json"
      ],
      "reviewDate": "2026-09-18",
      "standardization": "Keep the exception named until source evidence or acceptance changes; revise the specimen, contract and verification in one change."
    },
    {
      "id": "body-copy",
      "need": "Complete source essays/legal terms are not part of the reusable sample copy.",
      "decision": "Short source titles, original paragraph fixtures, retained first-party figures and direct source links.",
      "risk": "Page structure and component contracts are preserved; text wrapping/scroll height may differ.",
      "scope": "Local reference implementation",
      "owner": "Pan Out design-research maintainers",
      "evidence": [
        "reference-data/source-ledger.json",
        "reference-data/component-geometry.json"
      ],
      "reviewDate": "2026-09-18",
      "standardization": "Keep the exception named until source evidence or acceptance changes; revise the specimen, contract and verification in one change."
    },
    {
      "id": "motion-default",
      "need": "Source decorative GIF loops and inline artwork animates.",
      "decision": "Reference uses an actual still by default and obeys prefers-reduced-motion.",
      "risk": "State/crop comparisons freeze phase explicitly; motion is not scored from an arbitrary frame.",
      "scope": "Local reference implementation",
      "owner": "Pan Out design-research maintainers",
      "evidence": [
        "reference-data/source-ledger.json",
        "reference-data/component-geometry.json"
      ],
      "reviewDate": "2026-09-18",
      "standardization": "Keep the exception named until source evidence or acceptance changes; revise the specimen, contract and verification in one change."
    },
    {
      "id": "mobile-founder-gallery",
      "need": "Desktop founder windows overlap and stagger.",
      "decision": "Narrow local windows stack with full reading order and no page overflow.",
      "risk": "This is a local reflow improvement and must be checked at390px.",
      "scope": "Local reference implementation",
      "owner": "Pan Out design-research maintainers",
      "evidence": [
        "reference-data/source-ledger.json",
        "reference-data/component-geometry.json"
      ],
      "reviewDate": "2026-09-18",
      "standardization": "Keep the exception named until source evidence or acceptance changes; revise the specimen, contract and verification in one change."
    },
    {
      "id": "source-version",
      "need": "Public sites do not expose a matching current source repository commit.",
      "decision": "Record URL, capture timestamp, response/resource hashes and all observed source revision clues.",
      "risk": "Repository revision identifies this research checkout only, not the product’s private build.",
      "scope": "Local reference implementation",
      "owner": "Pan Out design-research maintainers",
      "evidence": [
        "reference-data/source-ledger.json",
        "reference-data/component-geometry.json"
      ],
      "reviewDate": "2026-09-18",
      "standardization": "Keep the exception named until source evidence or acceptance changes; revise the specimen, contract and verification in one change."
    },
    {
      "id": "private-outcomes",
      "need": "No server request, credential or feedback submission is authorized by a visual reference task.",
      "decision": "All enabled local controls resolve visibly using fixtures.",
      "risk": "No server success, stored preference or authentication is implied.",
      "scope": "Local reference implementation",
      "owner": "Pan Out design-research maintainers",
      "evidence": [
        "reference-data/source-ledger.json",
        "reference-data/component-geometry.json"
      ],
      "reviewDate": "2026-09-18",
      "standardization": "Keep the exception named until source evidence or acceptance changes; revise the specimen, contract and verification in one change."
    }
  ],
  "acceptance": {
    "viewportWidths": [
      390,
      768,
      1440,
      1920
    ],
    "maxDocumentOverflowCssPx": 1,
    "keyboard": "Reach every visible interactive control with Tab; native activation and documented arrow navigation work.",
    "focus": "3px visible outline with offset or equivalent source-appropriate focus indicator.",
    "contrast": "WCAG2AA selected axe rules; any manual incomplete result requires a recorded follow-up.",
    "budgets": "reference-data/operational-contract.json",
    "knownLimits": [
      "Chromium verified; Safari/Firefox and human screen-reader trials are not claimed.",
      "Source production version/commit not exposed.",
      "Private product outcomes remain outside the public-only boundary."
    ]
  }
}
