diff --git a/.claude/skills/simic-design/_adherence.oxlintrc.json b/.claude/skills/simic-design/_adherence.oxlintrc.json
index 54b4616..a87fb60 100644
--- a/.claude/skills/simic-design/_adherence.oxlintrc.json
+++ b/.claude/skills/simic-design/_adherence.oxlintrc.json
@@ -121,7 +121,6 @@
"--amber-400",
"--amber-700",
"--color-accent",
- "--color-accent-quiet",
"--color-bg",
"--color-bg-code",
"--color-bg-note",
@@ -189,7 +188,6 @@
"--color-border": "color",
"--color-border-firm": "color",
"--color-accent": "color",
- "--color-accent-quiet": "color",
"--color-warn": "color",
"--color-link": "color",
"--color-link-hover": "color",
diff --git a/.claude/skills/simic-design/_ds_manifest.json b/.claude/skills/simic-design/_ds_manifest.json
index 0cda52e..8bd6840 100644
--- a/.claude/skills/simic-design/_ds_manifest.json
+++ b/.claude/skills/simic-design/_ds_manifest.json
@@ -1 +1 @@
-{"namespace":"SimicDesignSystem_5a908e","components":[{"name":"CanonQuote","sourcePath":"components/content/CanonQuote.jsx"},{"name":"Note","sourcePath":"components/content/Note.jsx"},{"name":"PageHead","sourcePath":"components/content/PageHead.jsx"},{"name":"Spine","sourcePath":"components/content/Spine.jsx"},{"name":"CardGrid","sourcePath":"components/data/CardGrid.jsx"},{"name":"DataTable","sourcePath":"components/data/DataTable.jsx"},{"name":"Diagram","sourcePath":"components/data/Diagram.jsx"},{"name":"Split","sourcePath":"components/data/Split.jsx"},{"name":"Masthead","sourcePath":"components/navigation/Masthead.jsx"},{"name":"SiteFooter","sourcePath":"components/navigation/SiteFooter.jsx"}],"startingPoints":[{"name":"Masthead","path":"components/navigation/Masthead.jsx","previewPath":"components/navigation/navigation.card.html","kind":"component","section":"Website","subtitle":"Masthead with wordmark and primary nav","viewport":"1100x80"},{"name":"website","path":"ui_kits/website/index.html","previewPath":"ui_kits/website/index.html","kind":"screen","section":"Website","subtitle":"Simic overview page with masthead, status note, spine, diagram","viewport":"1280x900"},{"name":"wiki","path":"ui_kits/wiki/index.html","previewPath":"ui_kits/wiki/index.html","kind":"screen","section":"Wiki","subtitle":"MkDocs Material docs page: teal header, nav sections, TOC","viewport":"1280x860"}],"cards":[{"path":"guidelines/callouts.html","group":"Brand","viewport":"700x240","subtitle":"3px left spine: teal = note, amber = status; mono uppercase label","name":"Callouts"},{"path":"guidelines/diagrams.html","group":"Brand","viewport":"700x300","subtitle":"Pre-rendered Mermaid SVGs, shipped in light/dark pairs — the brand's only imagery","name":"Diagrams"},{"path":"guidelines/mark.html","group":"Brand","viewport":"700x150","subtitle":"A teal diamond — favicon, and ◈ before the live-text wordmark. No logo image exists.","name":"The mark"},{"path":"guidelines/quotes.html","group":"Brand","viewport":"700x170","subtitle":"Canon quotes get the accent spine and a mono-path cite","name":"Quotes"},{"path":"guidelines/accents.html","group":"Colors","viewport":"700x110","subtitle":"Hue 175 (teal) carries emphasis; hue 85 (amber) is the only warning","name":"Accents"},{"path":"guidelines/ink-ramp.html","group":"Colors","viewport":"700x110","subtitle":"Hue 225 carries structure — backgrounds, text, borders","name":"Ink ramp"},{"path":"guidelines/links.html","group":"Colors","viewport":"700x120","subtitle":"Hover shifts color only — no underline games, no motion","name":"Links & states"},{"path":"guidelines/semantic-dark.html","group":"Colors","viewport":"700x230","subtitle":"Same tokens, dark side of every light-dark() pair","name":"Semantic tokens — dark"},{"path":"guidelines/semantic-light.html","group":"Colors","viewport":"700x230","subtitle":"One declaration each, via light-dark()","name":"Semantic tokens — light"},{"path":"components/content/content.card.html","group":"Components","viewport":"700x760","subtitle":"PageHead, Note (+status), CanonQuote, Spine","name":"Content"},{"path":"components/data/data.card.html","group":"Components","viewport":"700x720","subtitle":"CardGrid, DataTable, Split, Diagram","name":"Data & layout"},{"path":"components/navigation/navigation.card.html","group":"Components","viewport":"700x320","subtitle":"Masthead + SiteFooter — page frame chrome","name":"Navigation"},{"path":"guidelines/layout.html","group":"Spacing","viewport":"700x160","subtitle":"Prose 46rem; tables, diagrams and grids opt out to 62rem","name":"Measure & page"},{"path":"guidelines/spacing.html","group":"Spacing","viewport":"700x180","subtitle":"8px base: 4 / 8 / 16 / 24 / 32 / 48 / 72","name":"Spacing scale"},{"path":"guidelines/type-body.html","group":"Type","viewport":"700x190","subtitle":"1rem / 1.65, strong at 650 in heading color, em for contrastive stress","name":"Body & inline"},{"path":"guidelines/type-headings.html","group":"Type","viewport":"700x260","subtitle":"System stack, fluid clamp() sizes, sentence case","name":"Headings"},{"path":"guidelines/type-mono.html","group":"Type","viewport":"700x200","subtitle":"ui-monospace is the display voice: wordmark, taglines, labels, invariant chips","name":"Mono voice"},{"path":"ui_kits/website/index.html","group":"Website","viewport":"1280x900","subtitle":"simic.foundryside.dev — zero-JS static site, recreated click-through","name":"Overview page"},{"path":"ui_kits/wiki/index.html","group":"Wiki","viewport":"1280x860","subtitle":"simic.foundryside.dev/design/ — MkDocs Material (teal, system fonts), recreated","name":"Design docs — HLD index"}],"templates":[],"hasThumbnailHtml":true,"globalCssPaths":["tokens/colors.css","tokens/typography.css","tokens/spacing.css","tokens/base.css","styles.css"],"tokens":[{"name":"--ink-050","value":"oklch(0.985 0.004 225)","kind":"color","definedIn":"tokens/colors.css"},{"name":"--ink-100","value":"oklch(0.955 0.008 225)","kind":"color","definedIn":"tokens/colors.css"},{"name":"--ink-200","value":"oklch(0.905 0.012 225)","kind":"color","definedIn":"tokens/colors.css"},{"name":"--ink-300","value":"oklch(0.825 0.016 225)","kind":"color","definedIn":"tokens/colors.css"},{"name":"--ink-500","value":"oklch(0.495 0.024 225)","kind":"color","definedIn":"tokens/colors.css"},{"name":"--ink-700","value":"oklch(0.375 0.030 225)","kind":"color","definedIn":"tokens/colors.css"},{"name":"--ink-850","value":"oklch(0.235 0.026 225)","kind":"color","definedIn":"tokens/colors.css"},{"name":"--ink-900","value":"oklch(0.185 0.024 225)","kind":"color","definedIn":"tokens/colors.css"},{"name":"--ink-950","value":"oklch(0.145 0.020 225)","kind":"color","definedIn":"tokens/colors.css"},{"name":"--teal-400","value":"oklch(0.780 0.110 175)","kind":"color","definedIn":"tokens/colors.css"},{"name":"--teal-600","value":"oklch(0.560 0.105 175)","kind":"color","definedIn":"tokens/colors.css"},{"name":"--teal-700","value":"oklch(0.470 0.098 175)","kind":"color","definedIn":"tokens/colors.css"},{"name":"--amber-400","value":"oklch(0.800 0.105 85)","kind":"color","definedIn":"tokens/colors.css"},{"name":"--amber-700","value":"oklch(0.520 0.105 85)","kind":"color","definedIn":"tokens/colors.css"},{"name":"--color-bg","value":"light-dark(var(--ink-050), var(--ink-950))","kind":"color","definedIn":"tokens/colors.css"},{"name":"--color-bg-subtle","value":"light-dark(var(--ink-100), var(--ink-900))","kind":"color","definedIn":"tokens/colors.css"},{"name":"--color-bg-code","value":"light-dark(var(--ink-100), var(--ink-850))","kind":"color","definedIn":"tokens/colors.css"},{"name":"--color-bg-note","value":"light-dark(oklch(0.965 0.020 175), oklch(0.235 0.030 195))","kind":"color","definedIn":"tokens/colors.css"},{"name":"--color-bg-note-status","value":"light-dark(oklch(0.975 0.022 85), oklch(0.235 0.028 75))","kind":"color","definedIn":"tokens/colors.css"},{"name":"--color-text","value":"light-dark(var(--ink-900), var(--ink-100))","kind":"font","definedIn":"tokens/colors.css"},{"name":"--color-text-muted","value":"light-dark(var(--ink-500), var(--ink-300))","kind":"font","definedIn":"tokens/colors.css"},{"name":"--color-heading","value":"light-dark(var(--ink-950), var(--ink-050))","kind":"color","definedIn":"tokens/colors.css"},{"name":"--color-border","value":"light-dark(var(--ink-200), oklch(0.300 0.020 225))","kind":"color","definedIn":"tokens/colors.css"},{"name":"--color-border-firm","value":"light-dark(var(--ink-300), oklch(0.380 0.024 225))","kind":"color","definedIn":"tokens/colors.css"},{"name":"--color-accent","value":"light-dark(var(--teal-700), var(--teal-400))","kind":"color","definedIn":"tokens/colors.css"},{"name":"--color-accent-quiet","value":"light-dark(var(--teal-600), oklch(0.660 0.080 175))","kind":"color","definedIn":"tokens/colors.css"},{"name":"--color-warn","value":"light-dark(var(--amber-700), var(--amber-400))","kind":"color","definedIn":"tokens/colors.css"},{"name":"--color-link","value":"var(--color-accent)","kind":"color","definedIn":"tokens/colors.css"},{"name":"--color-link-hover","value":"color-mix(in oklch, var(--color-link) 72%, var(--color-text) 28%)","kind":"color","definedIn":"tokens/colors.css"},{"name":"--font-body","value":"system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif","kind":"font","definedIn":"tokens/typography.css"},{"name":"--font-code","value":"ui-monospace, \"SFMono-Regular\", Menlo, Consolas, \"Liberation Mono\", monospace","kind":"font","definedIn":"tokens/typography.css"},{"name":"--text-h1","value":"clamp(2rem, calc(1.45rem + 2.6vw), 3.1rem)","kind":"font","definedIn":"tokens/typography.css"},{"name":"--text-h2","value":"clamp(1.35rem, calc(1.18rem + 0.8vw), 1.75rem)","kind":"font","definedIn":"tokens/typography.css"},{"name":"--text-h3","value":"clamp(1.08rem, calc(1.02rem + 0.3vw), 1.22rem)","kind":"font","definedIn":"tokens/typography.css"},{"name":"--space-1","value":"0.25rem","kind":"spacing","definedIn":"tokens/spacing.css"},{"name":"--space-2","value":"0.5rem","kind":"spacing","definedIn":"tokens/spacing.css"},{"name":"--space-3","value":"1rem","kind":"spacing","definedIn":"tokens/spacing.css"},{"name":"--space-4","value":"1.5rem","kind":"spacing","definedIn":"tokens/spacing.css"},{"name":"--space-5","value":"2rem","kind":"spacing","definedIn":"tokens/spacing.css"},{"name":"--space-6","value":"3rem","kind":"spacing","definedIn":"tokens/spacing.css"},{"name":"--space-7","value":"4.5rem","kind":"spacing","definedIn":"tokens/spacing.css"},{"name":"--measure","value":"46rem","kind":"spacing","definedIn":"tokens/spacing.css"},{"name":"--page","value":"62rem","kind":"spacing","definedIn":"tokens/spacing.css"},{"name":"--radius","value":"4px","kind":"radius","definedIn":"tokens/spacing.css"}],"themes":[],"fonts":[],"brandFonts":[],"source":"spa"}
+{"namespace":"SimicDesignSystem_5a908e","components":[{"name":"CanonQuote","sourcePath":"components/content/CanonQuote.jsx"},{"name":"Note","sourcePath":"components/content/Note.jsx"},{"name":"PageHead","sourcePath":"components/content/PageHead.jsx"},{"name":"Spine","sourcePath":"components/content/Spine.jsx"},{"name":"CardGrid","sourcePath":"components/data/CardGrid.jsx"},{"name":"DataTable","sourcePath":"components/data/DataTable.jsx"},{"name":"Diagram","sourcePath":"components/data/Diagram.jsx"},{"name":"Split","sourcePath":"components/data/Split.jsx"},{"name":"Masthead","sourcePath":"components/navigation/Masthead.jsx"},{"name":"SiteFooter","sourcePath":"components/navigation/SiteFooter.jsx"}],"startingPoints":[{"name":"Masthead","path":"components/navigation/Masthead.jsx","previewPath":"components/navigation/navigation.card.html","kind":"component","section":"Website","subtitle":"Masthead with wordmark and primary nav","viewport":"1100x80"},{"name":"website","path":"ui_kits/website/index.html","previewPath":"ui_kits/website/index.html","kind":"screen","section":"Website","subtitle":"Simic overview page with masthead, status note, spine, diagram","viewport":"1280x900"},{"name":"wiki","path":"ui_kits/wiki/index.html","previewPath":"ui_kits/wiki/index.html","kind":"screen","section":"Wiki","subtitle":"MkDocs Material docs page: teal header, nav sections, TOC","viewport":"1280x860"}],"cards":[{"path":"guidelines/callouts.html","group":"Brand","viewport":"700x240","subtitle":"3px left spine: teal = note, amber = status; mono uppercase label","name":"Callouts"},{"path":"guidelines/diagrams.html","group":"Brand","viewport":"700x300","subtitle":"Pre-rendered Mermaid SVGs, shipped in light/dark pairs \u2014 the brand's only imagery","name":"Diagrams"},{"path":"guidelines/mark.html","group":"Brand","viewport":"700x150","subtitle":"A teal diamond \u2014 favicon, and \u25c8 before the live-text wordmark. No logo image exists.","name":"The mark"},{"path":"guidelines/quotes.html","group":"Brand","viewport":"700x170","subtitle":"Canon quotes get the accent spine and a mono-path cite","name":"Quotes"},{"path":"guidelines/accents.html","group":"Colors","viewport":"700x110","subtitle":"Hue 175 (teal) carries emphasis; hue 85 (amber) is the only warning","name":"Accents"},{"path":"guidelines/ink-ramp.html","group":"Colors","viewport":"700x110","subtitle":"Hue 225 carries structure \u2014 backgrounds, text, borders","name":"Ink ramp"},{"path":"guidelines/links.html","group":"Colors","viewport":"700x120","subtitle":"Hover shifts color only \u2014 no underline games, no motion","name":"Links & states"},{"path":"guidelines/semantic-dark.html","group":"Colors","viewport":"700x230","subtitle":"Same tokens, dark side of every light-dark() pair","name":"Semantic tokens \u2014 dark"},{"path":"guidelines/semantic-light.html","group":"Colors","viewport":"700x230","subtitle":"One declaration each, via light-dark()","name":"Semantic tokens \u2014 light"},{"path":"components/content/content.card.html","group":"Components","viewport":"700x760","subtitle":"PageHead, Note (+status), CanonQuote, Spine","name":"Content"},{"path":"components/data/data.card.html","group":"Components","viewport":"700x720","subtitle":"CardGrid, DataTable, Split, Diagram","name":"Data & layout"},{"path":"components/navigation/navigation.card.html","group":"Components","viewport":"700x320","subtitle":"Masthead + SiteFooter \u2014 page frame chrome","name":"Navigation"},{"path":"guidelines/layout.html","group":"Spacing","viewport":"700x160","subtitle":"Prose 46rem; tables, diagrams and grids opt out to 62rem","name":"Measure & page"},{"path":"guidelines/spacing.html","group":"Spacing","viewport":"700x180","subtitle":"8px base: 4 / 8 / 16 / 24 / 32 / 48 / 72","name":"Spacing scale"},{"path":"guidelines/type-body.html","group":"Type","viewport":"700x190","subtitle":"1rem / 1.65, strong at 650 in heading color, em for contrastive stress","name":"Body & inline"},{"path":"guidelines/type-headings.html","group":"Type","viewport":"700x260","subtitle":"System stack, fluid clamp() sizes, sentence case","name":"Headings"},{"path":"guidelines/type-mono.html","group":"Type","viewport":"700x200","subtitle":"ui-monospace is the display voice: wordmark, taglines, labels, invariant chips","name":"Mono voice"},{"path":"ui_kits/website/index.html","group":"Website","viewport":"1280x900","subtitle":"simic.foundryside.dev \u2014 zero-JS static site, recreated click-through","name":"Overview page"},{"path":"ui_kits/wiki/index.html","group":"Wiki","viewport":"1280x860","subtitle":"simic.foundryside.dev/design/ \u2014 MkDocs Material (teal, system fonts), recreated","name":"Design docs \u2014 HLD index"}],"templates":[],"hasThumbnailHtml":true,"globalCssPaths":["tokens/colors.css","tokens/typography.css","tokens/spacing.css","tokens/base.css","styles.css"],"tokens":[{"name":"--ink-050","value":"oklch(0.985 0.004 225)","kind":"color","definedIn":"tokens/colors.css"},{"name":"--ink-100","value":"oklch(0.955 0.008 225)","kind":"color","definedIn":"tokens/colors.css"},{"name":"--ink-200","value":"oklch(0.905 0.012 225)","kind":"color","definedIn":"tokens/colors.css"},{"name":"--ink-300","value":"oklch(0.825 0.016 225)","kind":"color","definedIn":"tokens/colors.css"},{"name":"--ink-500","value":"oklch(0.495 0.024 225)","kind":"color","definedIn":"tokens/colors.css"},{"name":"--ink-700","value":"oklch(0.375 0.030 225)","kind":"color","definedIn":"tokens/colors.css"},{"name":"--ink-850","value":"oklch(0.235 0.026 225)","kind":"color","definedIn":"tokens/colors.css"},{"name":"--ink-900","value":"oklch(0.185 0.024 225)","kind":"color","definedIn":"tokens/colors.css"},{"name":"--ink-950","value":"oklch(0.145 0.020 225)","kind":"color","definedIn":"tokens/colors.css"},{"name":"--teal-400","value":"oklch(0.780 0.110 175)","kind":"color","definedIn":"tokens/colors.css"},{"name":"--teal-600","value":"oklch(0.560 0.105 175)","kind":"color","definedIn":"tokens/colors.css"},{"name":"--teal-700","value":"oklch(0.470 0.098 175)","kind":"color","definedIn":"tokens/colors.css"},{"name":"--amber-400","value":"oklch(0.800 0.105 85)","kind":"color","definedIn":"tokens/colors.css"},{"name":"--amber-700","value":"oklch(0.520 0.105 85)","kind":"color","definedIn":"tokens/colors.css"},{"name":"--color-bg","value":"light-dark(var(--ink-050), var(--ink-950))","kind":"color","definedIn":"tokens/colors.css"},{"name":"--color-bg-subtle","value":"light-dark(var(--ink-100), var(--ink-900))","kind":"color","definedIn":"tokens/colors.css"},{"name":"--color-bg-code","value":"light-dark(var(--ink-100), var(--ink-850))","kind":"color","definedIn":"tokens/colors.css"},{"name":"--color-bg-note","value":"light-dark(oklch(0.965 0.020 175), oklch(0.235 0.030 175))","kind":"color","definedIn":"tokens/colors.css"},{"name":"--color-bg-note-status","value":"light-dark(oklch(0.975 0.022 85), oklch(0.235 0.028 85))","kind":"color","definedIn":"tokens/colors.css"},{"name":"--color-text","value":"light-dark(var(--ink-900), var(--ink-100))","kind":"font","definedIn":"tokens/colors.css"},{"name":"--color-text-muted","value":"light-dark(var(--ink-500), var(--ink-300))","kind":"font","definedIn":"tokens/colors.css"},{"name":"--color-heading","value":"light-dark(var(--ink-950), var(--ink-050))","kind":"color","definedIn":"tokens/colors.css"},{"name":"--color-border","value":"light-dark(var(--ink-200), oklch(0.300 0.020 225))","kind":"color","definedIn":"tokens/colors.css"},{"name":"--color-border-firm","value":"light-dark(var(--ink-300), oklch(0.380 0.024 225))","kind":"color","definedIn":"tokens/colors.css"},{"name":"--color-accent","value":"light-dark(var(--teal-700), var(--teal-400))","kind":"color","definedIn":"tokens/colors.css"},{"name":"--color-warn","value":"light-dark(var(--amber-700), var(--amber-400))","kind":"color","definedIn":"tokens/colors.css"},{"name":"--color-link","value":"var(--color-accent)","kind":"color","definedIn":"tokens/colors.css"},{"name":"--color-link-hover","value":"color-mix(in oklch, var(--color-link) 72%, var(--color-text) 28%)","kind":"color","definedIn":"tokens/colors.css"},{"name":"--font-body","value":"system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif","kind":"font","definedIn":"tokens/typography.css"},{"name":"--font-code","value":"ui-monospace, \"SFMono-Regular\", Menlo, Consolas, \"Liberation Mono\", monospace","kind":"font","definedIn":"tokens/typography.css"},{"name":"--text-h1","value":"clamp(2rem, calc(1.45rem + 2.6vw), 3.1rem)","kind":"font","definedIn":"tokens/typography.css"},{"name":"--text-h2","value":"clamp(1.35rem, calc(1.18rem + 0.8vw), 1.75rem)","kind":"font","definedIn":"tokens/typography.css"},{"name":"--text-h3","value":"clamp(1.08rem, calc(1.02rem + 0.3vw), 1.22rem)","kind":"font","definedIn":"tokens/typography.css"},{"name":"--space-1","value":"0.25rem","kind":"spacing","definedIn":"tokens/spacing.css"},{"name":"--space-2","value":"0.5rem","kind":"spacing","definedIn":"tokens/spacing.css"},{"name":"--space-3","value":"1rem","kind":"spacing","definedIn":"tokens/spacing.css"},{"name":"--space-4","value":"1.5rem","kind":"spacing","definedIn":"tokens/spacing.css"},{"name":"--space-5","value":"2rem","kind":"spacing","definedIn":"tokens/spacing.css"},{"name":"--space-6","value":"3rem","kind":"spacing","definedIn":"tokens/spacing.css"},{"name":"--space-7","value":"4.5rem","kind":"spacing","definedIn":"tokens/spacing.css"},{"name":"--measure","value":"46rem","kind":"spacing","definedIn":"tokens/spacing.css"},{"name":"--page","value":"62rem","kind":"spacing","definedIn":"tokens/spacing.css"},{"name":"--radius","value":"4px","kind":"radius","definedIn":"tokens/spacing.css"}],"themes":[],"fonts":[],"brandFonts":[],"source":"spa"}
diff --git a/.claude/skills/simic-design/assets/diagrams/assurance-loop-dark.svg b/.claude/skills/simic-design/assets/diagrams/assurance-loop-dark.svg
new file mode 100644
index 0000000..b8d8463
--- /dev/null
+++ b/.claude/skills/simic-design/assets/diagrams/assurance-loop-dark.svg
@@ -0,0 +1 @@
+Urabrask artefact Jin-Gitaxias builds a blinded TestPlan Tolaria restores one common Snapshot Candidate branches Controls Mandatory no-op Jin-Gitaxias verifies conformance and certifies the measurements QualityReport Isperia applies eligibility, then the tail-risk veto, then utility policy ADMIT one · REJECT DEFER · REQUIRE_RETEST · NO_OP
diff --git a/.claude/skills/simic-design/assets/diagrams/assurance-loop-light.svg b/.claude/skills/simic-design/assets/diagrams/assurance-loop-light.svg
new file mode 100644
index 0000000..8ee188c
--- /dev/null
+++ b/.claude/skills/simic-design/assets/diagrams/assurance-loop-light.svg
@@ -0,0 +1 @@
+Urabrask artefact Jin-Gitaxias builds a blinded TestPlan Tolaria restores one common Snapshot Candidate branches Controls Mandatory no-op Jin-Gitaxias verifies conformance and certifies the measurements QualityReport Isperia applies eligibility, then the tail-risk veto, then utility policy ADMIT one · REJECT DEFER · REQUIRE_RETEST · NO_OP
diff --git a/.claude/skills/simic-design/assets/diagrams/core-loop-dark.svg b/.claude/skills/simic-design/assets/diagrams/core-loop-dark.svg
new file mode 100644
index 0000000..4c2cc8d
--- /dev/null
+++ b/.claude/skills/simic-design/assets/diagrams/core-loop-dark.svg
@@ -0,0 +1 @@
+same envelope, published directly same envelope, published directly GrowthIntent the assignment brief admit no-op wins maintenance warrant Task and data stream Tolaria trains the Wrenn host Nissa publishes the canonical TelemetryEnvelope Aurelia whether and where to commission growth Momir designs candidate growth Ugin authorises strategic resources Leyline and Wrenn resolve the legal GrowthRequest Urborg optional bootstrap ancestry Elesh conforms Urabrask compiles Jin-Gitaxias specifies QA Tolaria executes the tests Jin-Gitaxias certifies the evidence Isperia judges candidate versus no-op Wrenn embodies the admitted growth No intervention policy utility exactly zero Emrakul removes what Isperia judges no longer earns its place Urborg retains every success, failure, abstention Tamiyo reveals the complete account
diff --git a/.claude/skills/simic-design/assets/diagrams/core-loop-light.svg b/.claude/skills/simic-design/assets/diagrams/core-loop-light.svg
new file mode 100644
index 0000000..6e3f062
--- /dev/null
+++ b/.claude/skills/simic-design/assets/diagrams/core-loop-light.svg
@@ -0,0 +1 @@
+same envelope, published directly same envelope, published directly GrowthIntent the assignment brief admit no-op wins maintenance warrant Task and data stream Tolaria trains the Wrenn host Nissa publishes the canonical TelemetryEnvelope Aurelia whether and where to commission growth Momir designs candidate growth Ugin authorises strategic resources Leyline and Wrenn resolve the legal GrowthRequest Urborg optional bootstrap ancestry Elesh conforms Urabrask compiles Jin-Gitaxias specifies QA Tolaria executes the tests Jin-Gitaxias certifies the evidence Isperia judges candidate versus no-op Wrenn embodies the admitted growth No intervention policy utility exactly zero Emrakul removes what Isperia judges no longer earns its place Urborg retains every success, failure, abstention Tamiyo reveals the complete account
diff --git a/.claude/skills/simic-design/assets/diagrams/observation-loop-dark.svg b/.claude/skills/simic-design/assets/diagrams/observation-loop-dark.svg
new file mode 100644
index 0000000..ff0b6f8
--- /dev/null
+++ b/.claude/skills/simic-design/assets/diagrams/observation-loop-dark.svg
@@ -0,0 +1 @@
+published directly published directly StrategicEnvelope E GrowthIntent I RegionContract R GrammarProfile G observation identity GrowthRequest Q Nissa observes Snapshot S at decision point T TelemetryEnvelope O Aurelia commission work? where? under what class? Momir what structure would address this observed state? Ugin Pure request resolution O, E, I, R, G → Q Wrenn Leyline
diff --git a/.claude/skills/simic-design/assets/diagrams/observation-loop-light.svg b/.claude/skills/simic-design/assets/diagrams/observation-loop-light.svg
new file mode 100644
index 0000000..7c84eff
--- /dev/null
+++ b/.claude/skills/simic-design/assets/diagrams/observation-loop-light.svg
@@ -0,0 +1 @@
+published directly published directly StrategicEnvelope E GrowthIntent I RegionContract R GrammarProfile G observation identity GrowthRequest Q Nissa observes Snapshot S at decision point T TelemetryEnvelope O Aurelia commission work? where? under what class? Momir what structure would address this observed state? Ugin Pure request resolution O, E, I, R, G → Q Wrenn Leyline
diff --git a/.claude/skills/simic-design/assets/mark.svg b/.claude/skills/simic-design/assets/mark.svg
new file mode 100644
index 0000000..178a175
--- /dev/null
+++ b/.claude/skills/simic-design/assets/mark.svg
@@ -0,0 +1 @@
+
diff --git a/.claude/skills/simic-design/components/content/CanonQuote.d.ts b/.claude/skills/simic-design/components/content/CanonQuote.d.ts
new file mode 100644
index 0000000..2ba79b8
--- /dev/null
+++ b/.claude/skills/simic-design/components/content/CanonQuote.d.ts
@@ -0,0 +1,10 @@
+/**
+ * Blockquote. canon=true (default) gives the accent spine used for canonical design-doc quotes; false is the neutral quote.
+ */
+export interface CanonQuoteProps {
+ canon?: boolean;
+ /** Attribution line, usually a mono file path + section */
+ cite?: React.ReactNode;
+ children: React.ReactNode;
+}
+export declare function CanonQuote(props: CanonQuoteProps): JSX.Element;
diff --git a/.claude/skills/simic-design/components/content/CanonQuote.jsx b/.claude/skills/simic-design/components/content/CanonQuote.jsx
new file mode 100644
index 0000000..636da79
--- /dev/null
+++ b/.claude/skills/simic-design/components/content/CanonQuote.jsx
@@ -0,0 +1,8 @@
+export function CanonQuote({ canon = true, cite, children }) {
+ return (
+
+ {children}
+ {cite && {cite} }
+
+ );
+}
diff --git a/.claude/skills/simic-design/components/content/CanonQuote.prompt.md b/.claude/skills/simic-design/components/content/CanonQuote.prompt.md
new file mode 100644
index 0000000..3528414
--- /dev/null
+++ b/.claude/skills/simic-design/components/content/CanonQuote.prompt.md
@@ -0,0 +1,5 @@
+Quote block — canon (accent spine) or neutral. Cite is usually a repo path.
+
+```jsx
+The canonical sentence — docs/design/02-constitution.md §5.3>}>Under Leyline, Ugin plans…
+```
diff --git a/.claude/skills/simic-design/components/content/Note.d.ts b/.claude/skills/simic-design/components/content/Note.d.ts
new file mode 100644
index 0000000..d57f03a
--- /dev/null
+++ b/.claude/skills/simic-design/components/content/Note.d.ts
@@ -0,0 +1,11 @@
+/**
+ * Callout with a 3px left spine and mono uppercase label. Teal note by default; status=true switches to the amber warning treatment.
+ */
+export interface NoteProps {
+ /** Mono uppercase label, e.g. "Project status" */
+ label?: string;
+ /** Amber status variant */
+ status?: boolean;
+ children: React.ReactNode;
+}
+export declare function Note(props: NoteProps): JSX.Element;
diff --git a/.claude/skills/simic-design/components/content/Note.jsx b/.claude/skills/simic-design/components/content/Note.jsx
new file mode 100644
index 0000000..d1d4a36
--- /dev/null
+++ b/.claude/skills/simic-design/components/content/Note.jsx
@@ -0,0 +1,9 @@
+export function Note({ label, status = false, children }) {
+ const spine = status ? "var(--color-warn)" : "var(--color-accent)";
+ return (
+
+ {label &&
{label} }
+
{children}
+
+ );
+}
diff --git a/.claude/skills/simic-design/components/content/Note.prompt.md b/.claude/skills/simic-design/components/content/Note.prompt.md
new file mode 100644
index 0000000..39dcf37
--- /dev/null
+++ b/.claude/skills/simic-design/components/content/Note.prompt.md
@@ -0,0 +1,5 @@
+Callout note — teal spine for notes, amber `status` variant for project-status warnings.
+
+```jsx
+Pre-implementation bootstrap. …
+```
diff --git a/.claude/skills/simic-design/components/content/PageHead.d.ts b/.claude/skills/simic-design/components/content/PageHead.d.ts
new file mode 100644
index 0000000..37929fd
--- /dev/null
+++ b/.claude/skills/simic-design/components/content/PageHead.d.ts
@@ -0,0 +1,13 @@
+/**
+ * Page header block: optional breadcrumb, h1, mono accent tagline, larger lede paragraph.
+ */
+export interface PageHeadProps {
+ title: string;
+ /** Mono accent line under the h1 (e.g. "Counterfactual Generative Morphogenesis") */
+ tagline?: string;
+ /** 1.12rem intro paragraph; accepts rich children */
+ lede?: React.ReactNode;
+ /** Breadcrumb line, e.g. "Overview \u203A Why this design" */
+ crumb?: React.ReactNode;
+}
+export declare function PageHead(props: PageHeadProps): JSX.Element;
diff --git a/.claude/skills/simic-design/components/content/PageHead.jsx b/.claude/skills/simic-design/components/content/PageHead.jsx
new file mode 100644
index 0000000..e6602bd
--- /dev/null
+++ b/.claude/skills/simic-design/components/content/PageHead.jsx
@@ -0,0 +1,10 @@
+export function PageHead({ title, tagline, lede, crumb }) {
+ return (
+
+ {crumb &&
{crumb}
}
+
{title}
+ {tagline &&
{tagline}
}
+ {lede &&
{lede}
}
+
+ );
+}
diff --git a/.claude/skills/simic-design/components/content/PageHead.prompt.md b/.claude/skills/simic-design/components/content/PageHead.prompt.md
new file mode 100644
index 0000000..76aaf5d
--- /dev/null
+++ b/.claude/skills/simic-design/components/content/PageHead.prompt.md
@@ -0,0 +1,5 @@
+Page head — h1 + mono tagline + lede, used once at the top of a page's content column.
+
+```jsx
+New neural structure is generated from the live state of a host network …>} />
+```
diff --git a/.claude/skills/simic-design/components/content/Spine.d.ts b/.claude/skills/simic-design/components/content/Spine.d.ts
new file mode 100644
index 0000000..472724e
--- /dev/null
+++ b/.claude/skills/simic-design/components/content/Spine.d.ts
@@ -0,0 +1,11 @@
+/**
+ * The invariant "spine" list: hairline-ruled items with a bold title and a mono accent INV-nn chip.
+ */
+export interface SpineItem {
+ title: React.ReactNode;
+ /** e.g. "INV-15, INV-16" */
+ inv?: string;
+ body: React.ReactNode;
+}
+export interface SpineProps { items: SpineItem[]; }
+export declare function Spine(props: SpineProps): JSX.Element;
diff --git a/.claude/skills/simic-design/components/content/Spine.jsx b/.claude/skills/simic-design/components/content/Spine.jsx
new file mode 100644
index 0000000..6d13437
--- /dev/null
+++ b/.claude/skills/simic-design/components/content/Spine.jsx
@@ -0,0 +1,14 @@
+export function Spine({ items }) {
+ return (
+
+ {items.map((it,i)=>(
+
+
+ {it.title}{it.inv && <> {it.inv} >}
+
+ {it.body}
+
+ ))}
+
+ );
+}
diff --git a/.claude/skills/simic-design/components/content/Spine.prompt.md b/.claude/skills/simic-design/components/content/Spine.prompt.md
new file mode 100644
index 0000000..ef4a212
--- /dev/null
+++ b/.claude/skills/simic-design/components/content/Spine.prompt.md
@@ -0,0 +1,5 @@
+Invariant spine list — used for guarantee/obligation lists.
+
+```jsx
+
+```
diff --git a/.claude/skills/simic-design/components/content/content.card.html b/.claude/skills/simic-design/components/content/content.card.html
new file mode 100644
index 0000000..1b2a546
--- /dev/null
+++ b/.claude/skills/simic-design/components/content/content.card.html
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/.claude/skills/simic-design/components/data/CardGrid.d.ts b/.claude/skills/simic-design/components/data/CardGrid.d.ts
new file mode 100644
index 0000000..5665404
--- /dev/null
+++ b/.claude/skills/simic-design/components/data/CardGrid.d.ts
@@ -0,0 +1,6 @@
+/**
+ * Link-card grid: subtle fill, hairline border, accent title, border turns accent on hover. No shadows.
+ */
+export interface CardItem { title: React.ReactNode; body: React.ReactNode; href?: string; }
+export interface CardGridProps { cards: CardItem[]; }
+export declare function CardGrid(props: CardGridProps): JSX.Element;
diff --git a/.claude/skills/simic-design/components/data/CardGrid.jsx b/.claude/skills/simic-design/components/data/CardGrid.jsx
new file mode 100644
index 0000000..dfa01e8
--- /dev/null
+++ b/.claude/skills/simic-design/components/data/CardGrid.jsx
@@ -0,0 +1,17 @@
+export function CardGrid({ cards }) {
+ return (
+
+ );
+}
diff --git a/.claude/skills/simic-design/components/data/CardGrid.prompt.md b/.claude/skills/simic-design/components/data/CardGrid.prompt.md
new file mode 100644
index 0000000..d0ea53c
--- /dev/null
+++ b/.claude/skills/simic-design/components/data/CardGrid.prompt.md
@@ -0,0 +1,5 @@
+Card grid of navigation cards. Titles conventionally end with " \u2192".
+
+```jsx
+
+```
diff --git a/.claude/skills/simic-design/components/data/DataTable.d.ts b/.claude/skills/simic-design/components/data/DataTable.d.ts
new file mode 100644
index 0000000..d547d8d
--- /dev/null
+++ b/.claude/skills/simic-design/components/data/DataTable.d.ts
@@ -0,0 +1,10 @@
+/**
+ * Wrapped table: hairline frame, uppercase mono-ish header row on subtle fill, first column in mono (the "name" column).
+ */
+export interface DataTableProps {
+ caption?: React.ReactNode;
+ columns: React.ReactNode[];
+ /** Row cells; first cell renders in mono heading style */
+ rows: React.ReactNode[][];
+}
+export declare function DataTable(props: DataTableProps): JSX.Element;
diff --git a/.claude/skills/simic-design/components/data/DataTable.jsx b/.claude/skills/simic-design/components/data/DataTable.jsx
new file mode 100644
index 0000000..03235d3
--- /dev/null
+++ b/.claude/skills/simic-design/components/data/DataTable.jsx
@@ -0,0 +1,17 @@
+export function DataTable({ caption, columns, rows }) {
+ return (
+
+
+ {caption && {caption} }
+
+ {columns.map((c,i)=>{c} )}
+
+
+ {rows.map((r,ri)=>
+ {r.map((cell,ci)=>{cell} )}
+ )}
+
+
+
+ );
+}
diff --git a/.claude/skills/simic-design/components/data/DataTable.prompt.md b/.claude/skills/simic-design/components/data/DataTable.prompt.md
new file mode 100644
index 0000000..4cf1739
--- /dev/null
+++ b/.claude/skills/simic-design/components/data/DataTable.prompt.md
@@ -0,0 +1,5 @@
+Reference table (e.g. repository map). First column is the mono name column.
+
+```jsx
+
+```
diff --git a/.claude/skills/simic-design/components/data/Diagram.d.ts b/.claude/skills/simic-design/components/data/Diagram.d.ts
new file mode 100644
index 0000000..67289ec
--- /dev/null
+++ b/.claude/skills/simic-design/components/data/Diagram.d.ts
@@ -0,0 +1,13 @@
+/**
+ * Pre-rendered Mermaid diagram frame: light/dark SVG pair swapped with the theme, horizontal scroll below minWidth, muted figcaption.
+ */
+export interface DiagramProps {
+ lightSrc: string;
+ darkSrc?: string;
+ /** Accessible description of the diagram */
+ label: string;
+ caption?: React.ReactNode;
+ /** px below which the frame scrolls instead of shrinking (legibility beats fitting) */
+ minWidth?: number | string;
+}
+export declare function Diagram(props: DiagramProps): JSX.Element;
diff --git a/.claude/skills/simic-design/components/data/Diagram.jsx b/.claude/skills/simic-design/components/data/Diagram.jsx
new file mode 100644
index 0000000..61c08f1
--- /dev/null
+++ b/.claude/skills/simic-design/components/data/Diagram.jsx
@@ -0,0 +1,13 @@
+export function Diagram({ lightSrc, darkSrc, label, caption, minWidth = 0 }) {
+ return (
+
+
+
+ {darkSrc && }
+
+
+
+ {caption && {caption} }
+
+ );
+}
diff --git a/.claude/skills/simic-design/components/data/Diagram.prompt.md b/.claude/skills/simic-design/components/data/Diagram.prompt.md
new file mode 100644
index 0000000..43aa591
--- /dev/null
+++ b/.claude/skills/simic-design/components/data/Diagram.prompt.md
@@ -0,0 +1,5 @@
+Diagram frame for the pre-rendered SVG pairs in assets/diagrams/.
+
+```jsx
+Source: docs/design/01-claim.md §1>} />
+```
diff --git a/.claude/skills/simic-design/components/data/Split.d.ts b/.claude/skills/simic-design/components/data/Split.d.ts
new file mode 100644
index 0000000..6f254d1
--- /dev/null
+++ b/.claude/skills/simic-design/components/data/Split.d.ts
@@ -0,0 +1,3 @@
+/** Two-column comparison split (armour / forward motion). Stacks under 18rem columns. */
+export interface SplitProps { left: React.ReactNode; right: React.ReactNode; }
+export declare function Split(props: SplitProps): JSX.Element;
diff --git a/.claude/skills/simic-design/components/data/Split.jsx b/.claude/skills/simic-design/components/data/Split.jsx
new file mode 100644
index 0000000..445f89a
--- /dev/null
+++ b/.claude/skills/simic-design/components/data/Split.jsx
@@ -0,0 +1,8 @@
+export function Split({ left, right }) {
+ return (
+
+
+
+
+ );
+}
diff --git a/.claude/skills/simic-design/components/data/Split.prompt.md b/.claude/skills/simic-design/components/data/Split.prompt.md
new file mode 100644
index 0000000..4dd3725
--- /dev/null
+++ b/.claude/skills/simic-design/components/data/Split.prompt.md
@@ -0,0 +1,5 @@
+Two-column contrast layout.
+
+```jsx
+The armour …
>} right={<>The forward motion …
>} />
+```
diff --git a/.claude/skills/simic-design/components/data/data.card.html b/.claude/skills/simic-design/components/data/data.card.html
new file mode 100644
index 0000000..0143058
--- /dev/null
+++ b/.claude/skills/simic-design/components/data/data.card.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/.claude/skills/simic-design/components/navigation/Masthead.d.ts b/.claude/skills/simic-design/components/navigation/Masthead.d.ts
new file mode 100644
index 0000000..83c723e
--- /dev/null
+++ b/.claude/skills/simic-design/components/navigation/Masthead.d.ts
@@ -0,0 +1,11 @@
+/**
+ * Site header: mono \u25C8 simic wordmark + primary nav. Active item gets heading color and a 2px accent underline.
+ * @startingPoint section="Website" subtitle="Masthead with wordmark and primary nav" viewport="1100x80"
+ */
+export interface MastheadProps {
+ /** Label of the current page */
+ current?: string;
+ /** [label, href] pairs; defaults to the live site's nav */
+ items?: [string, string][];
+}
+export declare function Masthead(props: MastheadProps): JSX.Element;
diff --git a/.claude/skills/simic-design/components/navigation/Masthead.jsx b/.claude/skills/simic-design/components/navigation/Masthead.jsx
new file mode 100644
index 0000000..79901d6
--- /dev/null
+++ b/.claude/skills/simic-design/components/navigation/Masthead.jsx
@@ -0,0 +1,24 @@
+export function Masthead({ current = "Overview", items }) {
+ const nav = items ?? [["Overview","index.html"],["Architecture","architecture.html"],["Why this design","lineage.html"],["Design docs","/design/"],["Source","https://github.com/foundryside-dev/simic"]];
+ return (
+
+ );
+}
diff --git a/.claude/skills/simic-design/components/navigation/Masthead.prompt.md b/.claude/skills/simic-design/components/navigation/Masthead.prompt.md
new file mode 100644
index 0000000..fcfbbc6
--- /dev/null
+++ b/.claude/skills/simic-design/components/navigation/Masthead.prompt.md
@@ -0,0 +1,7 @@
+Site masthead — use at the top of every simic website page.
+
+```jsx
+
+```
+
+Pass `items` as [label, href] pairs to change nav. Wordmark is live text, never an image.
diff --git a/.claude/skills/simic-design/components/navigation/SiteFooter.d.ts b/.claude/skills/simic-design/components/navigation/SiteFooter.d.ts
new file mode 100644
index 0000000..93214cd
--- /dev/null
+++ b/.claude/skills/simic-design/components/navigation/SiteFooter.d.ts
@@ -0,0 +1,3 @@
+/** Site footer: attribution line left, repo link and version stamp right. */
+export interface SiteFooterProps {}
+export declare function SiteFooter(props: SiteFooterProps): JSX.Element;
diff --git a/.claude/skills/simic-design/components/navigation/SiteFooter.jsx b/.claude/skills/simic-design/components/navigation/SiteFooter.jsx
new file mode 100644
index 0000000..aa1cb9f
--- /dev/null
+++ b/.claude/skills/simic-design/components/navigation/SiteFooter.jsx
@@ -0,0 +1,13 @@
+export function SiteFooter() {
+ return (
+
+ );
+}
diff --git a/.claude/skills/simic-design/components/navigation/SiteFooter.prompt.md b/.claude/skills/simic-design/components/navigation/SiteFooter.prompt.md
new file mode 100644
index 0000000..a20f435
--- /dev/null
+++ b/.claude/skills/simic-design/components/navigation/SiteFooter.prompt.md
@@ -0,0 +1,5 @@
+Site footer — bottom of every simic website page. No props.
+
+```jsx
+
+```
diff --git a/.claude/skills/simic-design/components/navigation/navigation.card.html b/.claude/skills/simic-design/components/navigation/navigation.card.html
new file mode 100644
index 0000000..bad9cd5
--- /dev/null
+++ b/.claude/skills/simic-design/components/navigation/navigation.card.html
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/.claude/skills/simic-design/guidelines/accents.html b/.claude/skills/simic-design/guidelines/accents.html
new file mode 100644
index 0000000..8dc7795
--- /dev/null
+++ b/.claude/skills/simic-design/guidelines/accents.html
@@ -0,0 +1,3 @@
+
+
+
diff --git a/.claude/skills/simic-design/guidelines/callouts.html b/.claude/skills/simic-design/guidelines/callouts.html
new file mode 100644
index 0000000..f02902d
--- /dev/null
+++ b/.claude/skills/simic-design/guidelines/callouts.html
@@ -0,0 +1,4 @@
+
+
+Read the claims against this The architecture's irreducible contributions are the ones that could not be retrofitted.
+Project status Pre-implementation bootstrap. Nothing on this site describes a running system.
diff --git a/.claude/skills/simic-design/guidelines/diagrams.html b/.claude/skills/simic-design/guidelines/diagrams.html
new file mode 100644
index 0000000..721dca1
--- /dev/null
+++ b/.claude/skills/simic-design/guidelines/diagrams.html
@@ -0,0 +1,6 @@
+
+
+
diff --git a/.claude/skills/simic-design/guidelines/ink-ramp.html b/.claude/skills/simic-design/guidelines/ink-ramp.html
new file mode 100644
index 0000000..2bf421b
--- /dev/null
+++ b/.claude/skills/simic-design/guidelines/ink-ramp.html
@@ -0,0 +1,3 @@
+
+
+
diff --git a/.claude/skills/simic-design/guidelines/layout.html b/.claude/skills/simic-design/guidelines/layout.html
new file mode 100644
index 0000000..4e67288
--- /dev/null
+++ b/.claude/skills/simic-design/guidelines/layout.html
@@ -0,0 +1,8 @@
+
+
+
+
+
--measure 46rem · prose
+
--page 62rem · wide
+
+--radius: 4px everywhere · no shadows anywhere in the system
diff --git a/.claude/skills/simic-design/guidelines/links.html b/.claude/skills/simic-design/guidelines/links.html
new file mode 100644
index 0000000..db7d4f8
--- /dev/null
+++ b/.claude/skills/simic-design/guidelines/links.html
@@ -0,0 +1,8 @@
+
+
+
diff --git a/.claude/skills/simic-design/guidelines/mark.html b/.claude/skills/simic-design/guidelines/mark.html
new file mode 100644
index 0000000..f089efe
--- /dev/null
+++ b/.claude/skills/simic-design/guidelines/mark.html
@@ -0,0 +1,7 @@
+
+
+
+
+
◈ simic
+
#0f9b8e · unicode glyphs as icons: ◈ → › · no icon fonts, no emoji, ever
+
diff --git a/.claude/skills/simic-design/guidelines/quotes.html b/.claude/skills/simic-design/guidelines/quotes.html
new file mode 100644
index 0000000..cbdced7
--- /dev/null
+++ b/.claude/skills/simic-design/guidelines/quotes.html
@@ -0,0 +1,6 @@
+
+
+
+Nissa sends the photograph directly to the designer. Aurelia sends only the assignment brief.
+The load-bearing routing rule — docs/design/02-constitution.md §5.5
+
diff --git a/.claude/skills/simic-design/guidelines/semantic-dark.html b/.claude/skills/simic-design/guidelines/semantic-dark.html
new file mode 100644
index 0000000..328f025
--- /dev/null
+++ b/.claude/skills/simic-design/guidelines/semantic-dark.html
@@ -0,0 +1,3 @@
+
+
+
diff --git a/.claude/skills/simic-design/guidelines/semantic-light.html b/.claude/skills/simic-design/guidelines/semantic-light.html
new file mode 100644
index 0000000..ba35e79
--- /dev/null
+++ b/.claude/skills/simic-design/guidelines/semantic-light.html
@@ -0,0 +1,3 @@
+
+
+
diff --git a/.claude/skills/simic-design/guidelines/spacing.html b/.claude/skills/simic-design/guidelines/spacing.html
new file mode 100644
index 0000000..8923633
--- /dev/null
+++ b/.claude/skills/simic-design/guidelines/spacing.html
@@ -0,0 +1,3 @@
+
+
+
diff --git a/.claude/skills/simic-design/guidelines/type-body.html b/.claude/skills/simic-design/guidelines/type-body.html
new file mode 100644
index 0000000..9f280af
--- /dev/null
+++ b/.claude/skills/simic-design/guidelines/type-body.html
@@ -0,0 +1,4 @@
+
+
+Growing a network at runtime raises four questions: what new structure to add, whether it is sound, and who decides. Admitted structure is never permanent by default — it must keep earning its tenancy, per INV-15, and is sedated or lysed when it no longer does (docs/design/04-architecture.md §7.4).
+--font-body: system-ui … · inline code: bg-code fill, 1px border, 3px radius
diff --git a/.claude/skills/simic-design/guidelines/type-headings.html b/.claude/skills/simic-design/guidelines/type-headings.html
new file mode 100644
index 0000000..3c059e4
--- /dev/null
+++ b/.claude/skills/simic-design/guidelines/type-headings.html
@@ -0,0 +1,6 @@
+
+
+Counterfactual morphogenesis
+Why counterfactuals, not a reward function
+The loop, end to end
+--text-h1 clamp(2rem→3.1rem) · --text-h2 clamp(1.35→1.75) · --text-h3 clamp(1.08→1.22) · h1 tracking -0.02em
diff --git a/.claude/skills/simic-design/guidelines/type-mono.html b/.claude/skills/simic-design/guidelines/type-mono.html
new file mode 100644
index 0000000..4114004
--- /dev/null
+++ b/.claude/skills/simic-design/guidelines/type-mono.html
@@ -0,0 +1,8 @@
+
+
+
+◈ simic
+Counterfactual Generative Morphogenesis
+Project status
+INV-15, INV-16 · INV-45
+
diff --git a/.claude/skills/simic-design/readme.md b/.claude/skills/simic-design/readme.md
index d4ddf29..72959c1 100644
--- a/.claude/skills/simic-design/readme.md
+++ b/.claude/skills/simic-design/readme.md
@@ -51,12 +51,12 @@ Source repo: https://github.com/foundryside-dev/simic — explore it for the can
**Dark mode**: not an afterthought — every token is a `light-dark()` pair; diagrams ship as light/dark pairs selected by ``; print falls back to light.
-
+
+
+Simic — website UI kit
+
+
+
+
+
+
+
+
+
+
+
diff --git a/.claude/skills/simic-design/ui_kits/wiki/README.md b/.claude/skills/simic-design/ui_kits/wiki/README.md
new file mode 100644
index 0000000..8fa4cae
--- /dev/null
+++ b/.claude/skills/simic-design/ui_kits/wiki/README.md
@@ -0,0 +1,3 @@
+# Wiki UI kit
+
+Recreation of https://simic.foundryside.dev/design/ — the MkDocs Material projection of `docs/design/` (config: `tools/wiki/mkdocs.yml`). Key facts honored: `palette: teal/teal` (header `#009485`), `font: false` (system stack, no Google Fonts), light/dark toggle (working — click the sun icon), left nav derived from the chapter directory structure, right TOC, edit link to the real source, "Made with Material for MkDocs" footer. Content is `docs/design/00-INDEX.md`, abbreviated. This is theme chrome, not the design system's own component vocabulary — the wiki is stock Material by upstream choice.
diff --git a/.claude/skills/simic-design/ui_kits/wiki/index.html b/.claude/skills/simic-design/ui_kits/wiki/index.html
new file mode 100644
index 0000000..5e0ad77
--- /dev/null
+++ b/.claude/skills/simic-design/ui_kits/wiki/index.html
@@ -0,0 +1,126 @@
+
+
+
+Simic — High-Level Design
+
+
+
+
+
+
+
+✎
+Simic HLD — Index
+Architecture version: 4.1 · Namespec: 2.0 — locked · Status: canonical design authority (decomposed from the v4.1 monolith per ADR-0001 ).
+Every chapter is standalone. Load 02-constitution.md in every working session; load the chapters your task names; do not load the rest.
+Chapter map¶
+File Contents
+01-claim.mdThe scientific claim and its falsifiers (exec summary, problem, goals, non-goals, success criteria, final statement)
+02-constitution.mdAlways load. Naming constitution, the 45 constitutional invariants (INV-01..INV-45), one-line namespec invariants
+03-principles.mdDesign principles and the architectural smell catalogue
+04-architecture.mdPlanes, subsystem map, end-to-end operating flow
+05-leyline-contracts.mdAll core contract shapes (StrategicEnvelope … ScaffoldManifest)
+07-counterfactual-engine.mdBranch pools, Academy/Field QA, no-op anchoring, blindness, statistical unit
+
+Reading paths¶
+
+Implementing a domain: 02-constitution.md + domains/<it>.md + 05-leyline-contracts.md (its contracts) + programme/learning.md (its entry).
+Admission / adjudication work: 02 + domains/isperia.md + domains/jin-gitaxias.md + 07-counterfactual-engine.md.
+New here: 01 → 04 → 02, then appendices/newsroom.md for the authority model.
+
+Citation convention¶
+Note
Invariants: INV-nn . Contracts: by name (GrowthIntent), never by section number. Chapters: by path#anchor . Names and file anchors survive restructuring, numbers do not.
+Size discipline¶
+Chapters stay under ~600 lines. A chapter that outgrows the budget is split by an ADR, never silently. (Largest at decomposition: 05-leyline-contracts.md, 579 lines.)
+
+
+
+
+
diff --git a/docs/product/decisions/0019-design-system-recovery-path.md b/docs/product/decisions/0019-design-system-recovery-path.md
index 0958549..a3ea333 100644
--- a/docs/product/decisions/0019-design-system-recovery-path.md
+++ b/docs/product/decisions/0019-design-system-recovery-path.md
@@ -1,8 +1,11 @@
# PDR-0019 — Design-system recovery path: re-export if it survives, else reconstruct — never fabricate
-Date: 2026-08-09 Status: proposed Author: Claude (product-owner session)
-Owner sign-off: REQUIRED — the deciding fact (does the SimicDesignSystem
-project survive in the owner's claude.ai/design UI?) is owner-visible only.
+Date: 2026-08-09 Status: accepted Author: Claude (product-owner session)
+Owner sign-off: RECEIVED 2026-08-09 (session 10, "yes try to fetch it now")
+— the project survives; the re-export fork fired. Executed same day on
+branch design-system-recovery: all 57 files pulled, 12/12 bundle
+sourceHashes verified sha256 (the originals, per this PDR's adjudication
+rule), divergence-table corrections and Namespec 2.0 re-applied on top.
Related: simic-42e575b93c, commit 6e74997, PDR-0018 (the divergence table),
memory: simic-design-system-partial-export