From 6435f076e28407f199f559873cc7e26755d53b0f Mon Sep 17 00:00:00 2001 From: John Morrissey <544926+tachyon-beep@users.noreply.github.com> Date: Sun, 9 Aug 2026 08:08:15 +1000 Subject: [PATCH 1/6] site: implement static-content review fixes (site stream) Linkified citation spine into /design/, OG/Twitter/canonical metadata + social card, status-note honesty + as-of date, token fixes (bg-note-status, hue drift), theme swap, a11y fixes (tabindex, target size, en-GB, permalinks), 404/robots/sitemap, favicon consolidation, deploy gates (html-validate + offline linkcheck), design-skill safe subset. Co-Authored-By: Claude Fable 5 --- .claude/skills/simic-design/readme.md | 37 ++++++--- .github/workflows/deploy-site.yml | 25 ++++++ site/404.html | 91 ++++++++++++++++++++ site/architecture.html | 96 +++++++++++++--------- site/assets/mark.svg | 1 + site/assets/social-card.png | Bin 0 -> 62763 bytes site/assets/social-card.src.html | 97 ++++++++++++++++++++++ site/index.html | 105 +++++++++++++++--------- site/lineage.html | 71 ++++++++++------ site/robots.txt | 10 +++ site/sitemap.xml | 29 +++++++ site/style.css | 114 ++++++++++++++++++++------ tools/ci/linkcheck.py | 71 ++++++++++++++++ 13 files changed, 607 insertions(+), 140 deletions(-) create mode 100644 site/404.html create mode 100644 site/assets/mark.svg create mode 100644 site/assets/social-card.png create mode 100644 site/assets/social-card.src.html create mode 100644 site/robots.txt create mode 100644 site/sitemap.xml create mode 100755 tools/ci/linkcheck.py diff --git a/.claude/skills/simic-design/readme.md b/.claude/skills/simic-design/readme.md index 25cc025..f1c71fe 100644 --- a/.claude/skills/simic-design/readme.md +++ b/.claude/skills/simic-design/readme.md @@ -31,13 +31,15 @@ Source repo: https://github.com/foundryside-dev/simic — explore it for the can ## VISUAL FOUNDATIONS -**Color**: OKLCH throughout. Blue-green world: hue 225 ("ink") carries all structure — backgrounds, text, borders; hue 175 (teal) carries emphasis — links, accents, active nav, callout spines; hue 85 (amber) is the sole warning color. Both themes come from one palette via `light-dark()`; `color-scheme: light dark` follows the OS, `[data-theme]` overrides. Max 2 background colors per page (`--color-bg`, `--color-bg-subtle`), plus tinted note backgrounds. Never pure black/white. +**Color**: OKLCH throughout. Blue-green world: hue 225 ("ink") carries all structure — backgrounds, text, borders; hue 175 (teal) carries emphasis — links, accents, active nav, callout spines; hue 85 (amber) is the sole warning color. A callout holds its family's hue on both sides of `light-dark()` — never let the dark side drift off-hue. Both themes come from one palette via `light-dark()`. Max 2 background colors per page (`--color-bg`, `--color-bg-subtle`), plus the two tinted note grounds (`--color-bg-note`, `--color-bg-note-status`). Never pure black/white. + +**Theme model — two-state, not three.** The marketing site follows the OS via `color-scheme: light dark` and **has no toggle**: it ships zero JavaScript, so nothing ever sets `data-theme`. The `:root[data-theme]` rules in `site/style.css` are an unreached hook, kept for a future toggle; the diagrams cannot follow them at all (they select via ``, resolved by the layout engine). Only the **wiki** is three-state — MkDocs Material supplies its own toggle. Do not describe the marketing site as having a theme switcher. **Type**: system stacks only, on purpose (zero third-party requests — a privacy stance, not an omission). Body `system-ui…`; code/labels `ui-monospace…`. Mono is the brand's display voice: the wordmark, taglines, note labels, invariant chips, table `name` cells are all mono. Fluid heading sizes via `clamp()`. Base 1rem/1.65. h1 tracking -0.02em; mono labels tracked out (+0.04–0.08em) and often uppercase at ~0.78rem. **Spacing/layout**: 8px-base scale (`--space-1..7` = 4/8/16/24/32/48/72px). Two widths: prose `--measure` 46rem, wide blocks (tables, diagrams, grids) `--page` 62rem. Prose is narrow by default; wide elements opt out. -**Backgrounds**: flat solid colors only. No gradients, no textures, no imagery, no photography. The only "images" are pre-rendered Mermaid diagram SVGs, shipped in light+dark pairs and swapped with the color tokens. +**Backgrounds**: flat solid colors only. No gradients, no textures, no imagery, no photography. The only "images" are pre-rendered Mermaid diagram SVGs, shipped in light+dark pairs and selected by `` + `media="screen and (prefers-color-scheme: dark)"` — one variant fetched, and print falls through to the light one. The single exception is `site/assets/social-card.png`, a 1200×630 Open Graph card rendered from `social-card.src.html`; it is a fixed dark artefact and does not track the viewer's theme. **Borders & radius**: 1px hairline `--color-border` everywhere (h2 top rules, table rows, cards, code); `--color-border-firm` for firmer edges. Radius `4px` (3px on inline code, 2px on focus rings). Callouts and quotes use a 3px left spine (teal = note/canon, amber = status, neutral = plain quote). @@ -52,7 +54,7 @@ Source repo: https://github.com/foundryside-dev/simic — explore it for the can ## ICONOGRAPHY There is **no icon system**. The site ships zero icon fonts, zero icon SVG sets. The complete iconography: -- **The mark**: a teal diamond (`assets/mark.svg`, `#0f9b8e`), used as favicon and rendered as the `◈` character before the wordmark (`.wordmark::before`, colored accent). This is the closest thing to a logo — there is no wordmark image; the wordmark is live text in mono. +- **The mark**: a teal diamond, used as favicon and rendered as the `◈` character before the wordmark (`.wordmark::before`, colored accent). This is the closest thing to a logo — there is no wordmark image; the wordmark is live text in mono. One file, two deployed copies kept byte-identical: `site/assets/mark.svg` (marketing) and `tools/wiki/assets/mark.svg` (wiki logo + favicon). Its `#0f9b8e` is a fixed hex, not a token — a favicon cannot use `light-dark()` — and sits between `--teal-600` and `--teal-400`; do not introduce a fourth teal to match it. - **Unicode as UI glyphs**: `◈` (wordmark), `→` (forward links "Read the architecture →"), `›` (breadcrumbs), `·` (footer separators). - **Diagrams**: pre-rendered Mermaid SVGs in `assets/diagrams/` (light/dark pairs) — the only illustrations in the brand. - The wiki (Material theme) uses Material Design icons only for chrome (theme toggle, GitHub link, permalinks); content uses none. @@ -61,13 +63,28 @@ Do not introduce icon sets, emoji, or drawn illustrations. When an icon urge str ## Index -- `styles.css` — global entry (imports everything below) -- `tokens/` — `colors.css`, `typography.css`, `spacing.css`, `base.css` -- `assets/` — `mark.svg`, `diagrams/` (6 Mermaid SVGs, light/dark pairs) -- `guidelines/` — foundation specimen cards -- `components/site/` — Masthead, SiteFooter, PageHead, Note, CanonQuote, Spine, CardGrid, DataTable, Split, Diagram (the full inventory `site/style.css` defines — nothing invented) -- `ui_kits/website/` — recreation of the overview page -- `ui_kits/wiki/` — recreation of a design-docs wiki page (MkDocs Material) +> **⚠ INCOMPLETE EXPORT — read before using this skill.** Only the eight +> metadata files were committed (`6e74997`). The 33 files listed below under +> `tokens/`, `components/`, `guidelines/` and `ui_kits/` are **absent from this +> directory** and are not gitignored — they were never committed. `styles.css` +> is therefore four dangling `@import`s and loads nothing. +> +> Until the export is completed, **treat `site/style.css` in the repo as the +> token source of truth** (it always was — see the note above) and read +> `_ds_manifest.json` for the resolved token values, which it carries inline. +> Do not hand-author replacements for the files below: they exist in the +> upstream Claude Design project `SimicDesignSystem_5a908e` and re-exporting or +> pulling them (`DesignSync`) is the fix. Do not edit this Index to match the +> disk either — the gap is the record of what is missing. + +- `styles.css` — global entry (imports everything below) — **present but inert** +- `tokens/` — `colors.css`, `typography.css`, `spacing.css`, `base.css` — **missing** +- `assets/` — `mark.svg`, `diagrams/` (6 Mermaid SVGs, light/dark pairs) — **missing** (both live in the repo: `site/assets/mark.svg`, `site/assets/diagrams/`) +- `guidelines/` — foundation specimen cards (14 files) — **missing** +- `components/{content,data,navigation}/` — Masthead, SiteFooter, PageHead, Note, CanonQuote, Spine, CardGrid, DataTable, Split, Diagram (the full inventory `site/style.css` defines — nothing invented) — **missing** +- `ui_kits/website/` — recreation of the overview page — **missing** +- `ui_kits/wiki/` — recreation of a design-docs wiki page (MkDocs Material) — **missing** +- `_ds_manifest.json` — component/token index; the only complete record of the palette in this directory - `SKILL.md` — agent skill entry point **Intentional additions**: none. The component list is exactly the class inventory of `site/style.css`. The wiki surface is stock MkDocs Material (teal/teal, `font: false`) — recreated as a UI kit screen, not as components. diff --git a/.github/workflows/deploy-site.yml b/.github/workflows/deploy-site.yml index 1e11433..1a1208d 100644 --- a/.github/workflows/deploy-site.yml +++ b/.github/workflows/deploy-site.yml @@ -25,6 +25,9 @@ on: - 'docs/design/**' - 'docs/adr/**' - 'tools/wiki/**' + # The pre-upload gates: a change to either must re-run against the + # current site, not wait for the next content edit to notice it. + - 'tools/ci/**' - '.github/workflows/deploy-site.yml' workflow_dispatch: @@ -110,6 +113,28 @@ jobs: echo " root pages: $(find _pages -maxdepth 1 -name '*.html' | wc -l)" echo " wiki pages: $(find _pages/design -name '*.html' | wc -l)" + - name: Validate the hand-written pages + # The wiki half is gated by `mkdocs build --strict` above; this is the + # equivalent gate for site/, which is hand-written and had none. Scoped + # to the ROOT pages on purpose — the generated Material output is the + # upstream theme's business, not ours, and linting it here would fail + # the deploy on markup we do not author. + run: npx --yes html-validate '_pages/*.html' + + - name: Check internal links and fragments + # Offline: every href/src in the root pages must resolve to a file in + # the artifact, and every #fragment to a real id on the target page. + # External URLs are listed, never fetched — a deploy must not fail + # because GitHub rate-limited us. + # + # This exists because the marketing pages deep-link into the generated + # wiki (/design/02-constitution/#53-the-canonical-sentence). Those slugs + # are derived from chapter headings, so rewording a heading silently + # breaks a citation on the other half of the site. That is precisely the + # class of break --strict catches within the wiki and nothing caught + # across the seam. + run: python3 tools/ci/linkcheck.py _pages + - name: Upload Pages artifact uses: actions/upload-pages-artifact@v3 with: diff --git a/site/404.html b/site/404.html new file mode 100644 index 0000000..07e68d4 --- /dev/null +++ b/site/404.html @@ -0,0 +1,91 @@ + + + + + +Page not found — Simic + + + + + + + + + +
+ +
+ +
+
+ +
+

Overview › Not found

+

Page not found

+

+ Nothing is published at that address. The site is small enough to list + exhaustively, so one of the links below is almost certainly what you + wanted. +

+
+ + + +

+ If you followed a link from the design-docs wiki or from + the repository and + landed here, that is a broken cross-reference worth reporting as an issue. +

+ +
+
+ + + + + diff --git a/site/architecture.html b/site/architecture.html index cab845f..cf6f49a 100644 --- a/site/architecture.html +++ b/site/architecture.html @@ -1,11 +1,25 @@ - + Architecture — Simic - + + + + + + + + + + + + + + + @@ -21,7 +35,7 @@
  • Architecture
  • Why this design
  • Design docs
  • -
  • Source
  • +
  • Source
  • @@ -44,14 +58,16 @@

    Architecture

    Reading note

    This page is a digest. The canonical text is - docs/design/02-constitution.md (naming constitution and the - 45 invariants) and docs/design/04-architecture.md (system - context, planes, control hierarchy) in - the repository. + 02-constitution.md + (naming constitution and the 45 invariants) and + 04-architecture.md + (system context, planes, control hierarchy), published in full at + /design/ and versioned in + the repository.

    -

    Actors have verbs. Infrastructure has prepositions.

    +

    Actors have verbs. Infrastructure has prepositions.#

    The locked convention distinguishes agents from @@ -68,7 +84,7 @@

    Actors have verbs. Infrastructure has prepositions.

    happen.

    -
    +
    @@ -102,7 +118,7 @@

    Actors have verbs. Infrastructure has prepositions.

    The three infrastructure domains
    -
    +
    @@ -139,12 +155,13 @@

    Actors have verbs. Infrastructure has prepositions.

    reveals the account.

    The canonical sentence — a compact authority map. - docs/design/02-constitution.md §5.3 + 02-constitution.md + § The canonical sentence -

    Architectural planes

    +

    Architectural planes#

    -
    +
    The eleven agent domains
    @@ -165,7 +182,7 @@

    Architectural planes

    Domains grouped by the concern they serve
    -

    The newsroom principle

    +

    The newsroom principle#

    The resemblance to a newsroom is structural rather than decorative. A @@ -175,7 +192,7 @@

    The newsroom principle

    chain corrupts both evidence and accountability.

    -
    +
    @@ -223,16 +240,18 @@

    The newsroom principle

    reject diagnostic or structural hints in Narset's channel.

    -

    The loops

    +

    The loops#

    -

    Observation and commissioning

    +

    Observation and commissioning#

    -
    -

    Assurance and adjudication

    +

    Assurance and adjudication#

    -
    -

    Control hierarchy

    +

    Control hierarchy#

    -
    Tamiyo
    +
    Tamiyo
       └── establishes StrategicEnvelope
             └── Narset chooses local actions
                   ├── WAIT
    @@ -291,7 +312,7 @@ 

    Control hierarchy

    -

    The sentence test

    +

    The sentence test#

    Because each domain owns a verb, the narrative grammar doubles as a cheap @@ -302,7 +323,7 @@

    The sentence test

    Healthy

    -
    Nissa published the same TelemetryEnvelope
    +
    Nissa published the same TelemetryEnvelope
       to Narset and Momir.
     Narset issued a GrowthIntent for Region A
       under Tamiyo's envelope.
    @@ -317,7 +338,7 @@ 

    Healthy

    Triggers review

    -
    Narset forwarded a captioned telemetry
    +
    Narset forwarded a captioned telemetry
       summary to Momir.
     Narset requested an attention-like topology.
     Nissa recommended a wide bottleneck.
    @@ -333,12 +354,13 @@ 

    Triggers review

    The full catalogue of smells — observation to likely cause — is in - docs/design/03-principles.md, Appendix A. The sentence test + 03-principles.md + § Appendix A. The sentence test is not a proof; it is an intentionally cheap first filter, backed by Leyline contracts and authority tests that do the real enforcement.

    -

    Dependency direction

    +

    Dependency direction#

    The naming grammar implies two rules. Agents may consume neutral services @@ -346,7 +368,7 @@

    Dependency direction

    must not import agent policy or encode agent-specific preferences.

    -
    +
    The analogy, desk by desk
    @@ -399,7 +421,7 @@

    The guarantees →

    Simic — a research project by tachyon-beep. Licensed Apache-2.0.

    diff --git a/site/assets/mark.svg b/site/assets/mark.svg new file mode 100644 index 0000000..178a175 --- /dev/null +++ b/site/assets/mark.svg @@ -0,0 +1 @@ + diff --git a/site/assets/social-card.png b/site/assets/social-card.png new file mode 100644 index 0000000000000000000000000000000000000000..d3b483e547bd062dca409a1fb466f9ba5fc3be53 GIT binary patch literal 62763 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 + + + +Simic social card source + + + + + + +

    simic
    +

    Counterfactual Generative Morphogenesis

    +

    + New neural structure generated from the live state of a host network, then + causally screened against doing nothing. +

    +

    Pre-implementation bootstrap · HLD v4.1 locked

    + + diff --git a/site/index.html b/site/index.html index 47bd9fd..cc62234 100644 --- a/site/index.html +++ b/site/index.html @@ -1,11 +1,25 @@ - + Simic — Counterfactual Generative Morphogenesis - - + + + + + + + + + + + + + + + + @@ -21,7 +35,7 @@
  • Architecture
  • Why this design
  • Design docs
  • -
  • Source
  • +
  • Source
  • @@ -42,17 +56,19 @@

    Simic

    - Project status + Project status — as of 9 August 2026

    - Pre-implementation bootstrap. The design is complete and - locked — HLD v4.1, Namespec 1.0 — and a Python scaffold exists, but there - is no functional code yet. First engineering work is - Phase A: Namespec, Leyline contracts, and dependency boundaries. - Nothing on this site describes a running system or a measured result. + Pre-implementation bootstrap. The design is locked — HLD + v4.1, Namespec 1.0 — and under active hardening: 38 design-review findings + are open, including several unresolved contract shapes. A Python scaffold + exists, but there is no functional code yet. First + engineering work is Phase A: Namespec, Leyline contracts, and + dependency boundaries. Nothing on this site describes a running system or + a measured result.

    -

    The idea

    +

    The idea#

    Growing a neural network at runtime raises four questions that existing @@ -77,26 +93,29 @@

    The idea

    lysed when it no longer does.

    -

    The loop, end to end

    +

    The loop, end to end#

    -
    -

    Why counterfactuals, not a reward function

    +

    Why counterfactuals, not a reward function#

    Paired branches start from one snapshot and run over identical futures, so @@ -115,7 +134,7 @@

    Why counterfactuals, not a reward function

    the subject of Why this design looks like this.

    -

    Guarantees

    +

    Guarantees#

    The constitution defines 45 blocking invariants, cited throughout the design @@ -167,7 +186,7 @@

    Guarantees

    -

    Fourteen domains, one sentence

    +

    Fourteen domains, one sentence#

    Authority is split across fourteen bounded domains with deliberately vivid @@ -185,7 +204,9 @@

    Fourteen domains, one sentence

    longer earns continued tenancy. Sarpadia retains every precedent. Oona reveals the account.

    - The canonical sentence — docs/design/02-constitution.md §5.3 + The canonical sentence — + 02-constitution.md + § The canonical sentence

    @@ -206,7 +227,7 @@

    Fourteen domains, one sentence

    Read the architecture →

    -

    What this is not

    +

    What this is not#

    The initial implementation does not attempt:

    @@ -231,7 +252,8 @@

    What this is not

    construction, retrieval, random search, analytic construction, or static over-provisioning?

    - docs/design/01-claim.md §4 + 01-claim.md + § Non-goals

    @@ -240,37 +262,38 @@

    What this is not

    tested scale.

    -

    Where the design lives

    +

    Where the design lives#

    The canonical authority is the HLD chapter set in the repository, not this - site. Paths below are references into - the repository. + site. Each chapter below is published on this domain at + /design/, and the same paths locate it in + the repository.

    -
    +
    Dependency edges and their verdicts
    - - - - - - - - + + + + + + + +
    Repository map
    PathContents
    docs/design/00-INDEX.mdEntry point to the HLD chapter set, with reading paths
    docs/design/01-claim.mdExecutive summary, problem statement, goals, non-goals, the first defensible claim
    docs/design/02-constitution.mdNaming constitution and the 45 blocking invariants
    docs/design/03-principles.mdDesign principles and the architectural smell catalogue
    docs/design/04-architecture.mdSystem context, planes, and the control hierarchy
    docs/adr/Architecture decision records
    docs/product/Product workspace — vision, roadmap, metrics, decisions
    src/simic/Target code layout: one package per domain (scaffold only, today)
    docs/design/00-INDEX.mdEntry point to the HLD chapter set, with reading paths
    docs/design/01-claim.mdExecutive summary, problem statement, goals, non-goals, the first defensible claim
    docs/design/02-constitution.mdNaming constitution and the 45 blocking invariants
    docs/design/03-principles.mdDesign principles and the architectural smell catalogue
    docs/design/04-architecture.mdSystem context, planes, and the control hierarchy
    docs/adr/Architecture decision records
    docs/product/Product workspace — vision, roadmap, metrics, decisions
    src/simic/Target code layout: one package per domain (scaffold only, today)

    Implementation follows Phases A–K, defined in - docs/design/programme/phases.md. Python is the working - language. The project is licensed Apache-2.0. + programme/phases.md. + Python is the working language. The project is licensed Apache-2.0.

    @@ -280,7 +303,7 @@

    Where the design lives

    Simic — a research project by tachyon-beep. Licensed Apache-2.0.

    diff --git a/site/lineage.html b/site/lineage.html index 17ac56f..52cfc0c 100644 --- a/site/lineage.html +++ b/site/lineage.html @@ -1,11 +1,25 @@ - + Why this design — Simic - - + + + + + + + + + + + + + + + + @@ -21,7 +35,7 @@
  • Architecture
  • Why this design
  • Design docs
  • -
  • Source
  • +
  • Source
  • @@ -40,24 +54,27 @@

    Why this design looks like this

    -

    The record this design answers

    +

    The record this design answers#

    - Simic is the third incarnation of one research programme. Early versions of - the simic project (known as esper) built the morphogenetic chassis this - design retains — reversible slots, staged maturation, lifecycle states — and - that working record is the proximate reason for every major choice made - here. Whatever succeeds is Simic; the earlier work is history flowing - backward into that name, not a separate identity. + Simic is the third incarnation of one research programme. Its two + predecessors — ESPER and ESPER LITE — built the morphogenetic chassis this + design retains: reversible slots, staged maturation, lifecycle states. That + working record is the proximate reason for every major choice made here, and + the two strata below are, roughly, its two eras. Whatever succeeds is Simic; + the earlier work is history flowing backward into that name, not a separate + identity.

    The record is documented in full at - docs/design/01-claim.md §2.6, and the principle it produces is - docs/design/03-principles.md §6.20. + 01-claim.md + § The empirical driver, and the principle it produces is + 03-principles.md + § Armour and forward motion.

    -

    What the record proved

    +

    What the record proved#

    Seed telemetry is sufficient for intelligent structural @@ -76,14 +93,14 @@

    What the record proved

    which parts of the programme get pushed forward and which get armoured.

    -

    Where it bled: two strata

    +

    Where it bled: two strata#

    The scars are layered, and they defend different parts of this architecture. Collapsing them into a single story loses information in both directions.

    -

    Stratum one — telemetry-access corruption

    +

    Stratum one — telemetry-access corruption#

    In one generation, machine-generated telemetry code contained @@ -113,10 +130,10 @@

    Stratum one — telemetry-access corruption

    rule that absent signal stays absent and is never a fabricated zero (INV-38), fail-closed typed compatibility (INV-24), direct publication from Nissa with no editorial intermediary (INV-07), observation binding (INV-08), - the defaulting-access ban (ADR-0006), and a poison-pill acceptance harness. + the defaulting-access ban (ADR-0006), and a poison-pill acceptance harness.

    -

    Stratum two — learning-loop and instrument failures

    +

    Stratum two — learning-loop and instrument failures#

    After telemetry access was hardened, the reinforcement-learning loop and its @@ -168,7 +185,7 @@

    Stratum two — learning-loop and instrument failures

    self-deception. The armour is built in both directions accordingly.

    -

    The pivot, stated plainly

    +

    The pivot, stated plainly#

    The earlier work could not shape a reward to incentivise behaviour the reward @@ -194,7 +211,7 @@

    The pivot, stated plainly

    honestly read as the price of that conversion.

    -

    Attribution honesty

    +

    Attribution honesty#

    Read the claims against this @@ -205,11 +222,12 @@

    Attribution honesty

    contributions are the ones that could not: generated (not selected) structure, separated authorities, and provider blindness. The success criteria in - docs/design/01-claim.md §28 should be read against that split. + 01-claim.md + § Success criteria should be read against that split.

    -

    Armour and forward motion

    +

    Armour and forward motion#

    The whole shape follows one rule, stated by the owner: @@ -220,7 +238,8 @@

    Armour and forward motion

    Where capability was validated, push forward; where the programme struggled, build armour.

    - docs/design/03-principles.md §6.20 + 03-principles.md + § Armour and forward motion
    @@ -235,7 +254,7 @@

    The armour

    schemas with fail-closed compatibility (INV-24), validity masks and the absent-is-never-zero rule (INV-38), Nissa's direct publication with no editorial intermediary (INV-07), observation binding (INV-08), the - defaulting-access ban (ADR-0006), and the poison-pill negative-space + defaulting-access ban (ADR-0006), and the poison-pill negative-space harness.

    Against learning-loop self-deception: no shaped-reward authority anywhere on the constitutional path, the evidence/judgement split @@ -260,7 +279,7 @@

    The forward motion

    -

    Two standing obligations

    +

    Two standing obligations#