# _dsa-tokens — local design-system-ASK mirror

Local, pinned mirror of design-system-ASK Tier 1 + Tier 2 foundations for the
diagram bundle in this directory. There is **no runtime fetch** from the
design-system-ASK repo and **no Google Fonts CDN dependency** — the diagram
renders entirely from these local files.

**Synced from:** [`apexSolarKiss/design-system-ASK`](https://github.com/apexSolarKiss/design-system-ASK)
**Pinned commit:** `067691a2fb6ca979cb6a5b0c9ca1d97790134b3f`
**Synced:** 2026-09-17
**`colors_and_type.css` sha256:** `4fed9d796a0d51072802f430b9528459a5cbb9c709fa1964bf5b13f18464122a` (15,496 B)
**`three-functions.css` sha256:** `6c8d9dc539a27b0fecd48767d5f7314b5f43f2b173aab8db1fd16b153523b7d2` (unchanged at the advanced pin; the mirror stays at a **single pin** — `three-functions.css`, `fonts-embedded.js` and the six font carriers are byte-identical at `a7c5530` and `067691a`, verified member-by-member against the owner at both commits and against disk, so advancing the pin re-vendors `colors_and_type.css` alone)

**Re-vendor 2026-10-08 — shared render support to design-system-ASK #175 (`db9aaa86`): the fit's v3 placement, a shared pointer controller and the chrome's room rule. Every diagram page now takes the responsive chrome and the controller; nine render stamps advance; the foundation pin above is untouched.** None of these files is a mirror member, so `067691a` and every mirror member — the tokens, Three Functions, the font files and `fonts-embedded.js` — stay exactly as vendored. **Re-vendored byte-identical from the owner:**
- `diagrams-fit.js` `6fbf521f…` → `d733be35…`: v3 adds opt-in placement. `balance` centers a drawing vertically between the chrome above and below it, and `compactClearance` caps the clearance while the responsive chrome is compact; a caller that passes neither gets the v2 result.
- `diagrams-chrome.js` `c4b63393…` → `e8eed502…`: the panels also close behind their triggers when they would leave the drawing less room above the HUD than the fit needs, and a change in the HUD's size is announced like any other chrome change.
- `diagrams.css` `f6c398a3…` → `6ad733cd…`: a canvas the pointer controller owns takes `touch-action: none` under the drawing, so a finger there moves the drawing, never the page.
- `diagrams-static-H-engine.js` `dbcebdb2…` → `e0892fbf…`: the engine requires fit v3, passes `balance` and `compactClearance`, and hands its gestures to the pointer controller; a page that does not load the controller keeps the mouse drag and wheel.
- New: `diagrams-pointer.js` `830a4b62…` (v2): one finger pans from anywhere on the drawing, two pinch it about their centroid, and a wheel zooms about the pointer; the panels keep their own taps and scrolling.

`export-png.js` is unchanged at `b3e34d95…` and `diagrams-text-layout.js` at `62c7b8a4…`, both the owner's current bytes, and the engine's paired text-layout contract holds: every tree page renders. `_dsa-surface/surface-panel.css` (`12582f53…`) and `surface-treatments.css` (`1ab4e3d0…`) are unchanged. **Adoption:** the five tree pages, the SMGI ontology and system-ASK (`D11`) wrap their caption and, where they have one, their legend in `.diagram-info` with About and Legend triggers, add the `illustrative` cue, load `_dsa-surface/surface-panel.css` then `surface-treatments.css`, and load `diagrams-chrome.js` and `diagrams-pointer.js` before `diagrams-fit.js`. Every figure builder, bounded generativity's and SMGI doctrine's included, now requires fit v3 and the controller, passes `balance` and `compactClearance`, and hands its gestures to the controller. The public topology takes the same from its operator shell (below).

**Measured, base ↔ this change**, headless system Chrome 155.0.8059.40 over http at 1440×900: every page that loads the exporter — the five trees, the four figures, the SMGI ontology's `?layout=page` profile and the public topology — × {`PNG page`, `PNG diagram`} × {light, dark} = 44 exports a side, each side exported twice with byte-identical results.
- **Every `PNG diagram` is byte-identical** (22 of 22).
- **Every `PNG page` changes only inside its stamp box** (within x 3161–3741, y 69–148 of 3840×2880; the system-ASK stamp is the widest). Each base page, exported again after its live stamp is rewritten to the new tuple, gives the new page's bytes exactly (22 of 22), so the stamp is the only change in any export.

**Live composition.** On a 390×844 touch screen the seven newly adopting pages open compact, with their panels behind the triggers; one finger pans the drawing 60 px for 60 px of travel and two fingers scale it ×2.0 for ×2.0 with the page held at its own zoom, where before a 60 px drag moved the drawing 20 px and a pinch zoomed the page. Bounded generativity and the SMGI doctrine figure keep their at-rest view at 1440×900, and change it on a narrow or crowded window: at 390×844 each drawing rests about 19% larger, and at 900×820 the SMGI doctrine figure rests about 7% larger while bounded generativity is unchanged. On every page Fit equals the resting view, a second Fit changes nothing, and zooming out by button or wheel never reverses (1440×900, 900×820 and 390×844). The SMGI doctrine figure's live measurements are later loads in one browser, with its viewBox 1749 units wide, while its mirror is a first load (*Committed rasters*, below).

**Stamps.** The first-adoption precedent applies to the seven pages that take the chrome now, so their render advances and their source holds: topology `source-v9 // render-v22` → `render-v23`; intent-artifact ontology `source-v2 // render-v2` → `render-v3`; activation + lifecycle comparison `source-v1 // render-v3` → `render-v4`; relay / feeding / ingestion and relay graph + PTX projection `source-v1 // render-v2` → `render-v3`; SMGI ontology `source-v2 // render-v1` → `render-v2`; system-ASK `D11 // source-v2 // render-v1` → `render-v2`. Bounded generativity `source-v5 // render-v6` → `render-v7` and SMGI doctrine `source-v1 // render-v3` → `render-v4` advance because their at-rest live composition changed. All nine are dated 2026-10-08, and no source advances.

**Committed rasters.** All four dark full-page mirrors are regenerated from the final pages, because each one's stamp changes; the SMGI ontology's comes from its `?layout=page` profile. Beyond the stamp, each new mirror is exactly what a fresh export of the unchanged base gives in the same environment. Against the previous mirrors, system-ASK differs only in the stamp box. Bounded generativity and SMGI doctrine also differ across 57–60% of their pixels by a one-level rendering-environment shift (largest channel difference 70 and 58), and the SMGI ontology by the same shift plus the edge rendering of its central label and the four relation labels around it (largest 190); a fresh export of the unchanged base shows the same differences. The SMGI doctrine mirror is exported with the page as a fresh browser's first load. Its builder sizes the viewBox from the drawn text, so the export depends on whether the webfonts have finished decoding when it measures: 1766 units wide before, 1749 after. A fresh browser's first load measures before; a later load usually, but not always, measures after. The previous mirror matches the 1766-wide composition.

**The public topology**'s generated source, HTML and generation receipt come from the operator package's own generator at its `render-v28` realization and land with that release; this repo does not edit them. The receipt pins the operator shell that carries the chrome and the controller, and the tuple is `source-v13 // render-v28 // 2026-10-08`. Its `PNG diagram` exports are byte-identical, and its `PNG page` changes only in the stamp.

**Re-vendor 2026-09-28 — shared render support to design-system-ASK #169 (`53fa86e5`): responsive diagram chrome and a controlled disclosure trigger. Two figures adopt the chrome; four render stamps advance; the foundation pin above is untouched.** None of these files is a mirror member, so `067691a` and every mirror member — the tokens, Three Functions, the font files and `fonts-embedded.js` — stay exactly as vendored. **Re-vendored byte-identical from the owner:**
- `diagrams-fit.js` `98ffd786…` → `6fbf521f…`: chrome may declare the edge it is anchored to; with nothing declared, the fit reserves exactly the panels it did before.
- `diagrams-static-H-engine.js` `70f23852…` → `dbcebdb2…`: a view stays at Fit until the reader moves it, and only a view at Fit follows a resize.
- `diagrams.css` `049b0268…` → `f6c398a3…`: the chrome's layout, applying only to a page that wraps its panels in `.diagram-info`.
- `export-png.js` `395df1c9…` → `b3e34d95…`: `PNG page` reads the subtitle and stamp wherever they sit, keeps every caption line, and keeps the caption, the legend and the drawn marks apart.
- New: `diagrams-chrome.js` `c4b63393…`, and `_dsa-surface/surface-treatments.css` `1ab4e3d0…`, which supplies the controlled disclosure trigger.

`diagrams-text-layout.js` is unchanged at `62c7b8a4…`, the owner's current bytes, and the re-vendored engine's paired contract holds: its `TARGETS` still name `diagram-static-H`, and every tree page renders. **Adoption:** bounded generativity and the SMGI doctrine figure wrap their caption and legend in `.diagram-info` with About and Legend triggers, load `_dsa-surface/surface-panel.css` then `surface-treatments.css`, and load `diagrams-chrome.js` before `diagrams-fit.js`; their builders follow the tree engine's Fit rules. No other page adopts the chrome or loads a new file.

**Measured, base ↔ this change before the stamp edits**, headless system Chrome 154.0.8037.58 over http at 1440×900: every page that loads the exporter — the six trees, the four bespoke figures and the SMGI ontology's `?layout=page` profile, which the committed mirror comes from — × {`PNG page`, `PNG diagram`} × {light, dark} = 44 exports.
- **38 byte-identical.** Every `PNG diagram` is byte-identical, and so is every `PNG page` except three.
- **SMGI doctrine `PNG page` changes:** its caption panel no longer runs under the legend, and the caption wraps to a third line. The figure, the legend and every caption word are unchanged.
- **Topology and activation `PNG page` change:** each landscape tree started inside the panel band, with its root under the caption panel; each is now fitted below the band, smaller and clear of both panels. Neither has a committed raster.
- **Unchanged:** bounded generativity, the SMGI ontology (both profiles), system-ASK (`D11`), the public topology and the other three trees.

The four stamp edits then change only the stamp region of those four pages' `PNG page` (x 3244–3740, y 69–148 of 3840×2880); the other 36 exports stay byte-identical. On the two adopting pages, `PNG page` is identical whether exported from the wide view, from compact with the panels closed, with About open, or from a short landscape window with Legend open (16 of 16, both themes).

**Stamps.** For this installation a changed live composition counts as a render change, so bounded generativity advances `source-v5 // render-v5` → `source-v5 // render-v6` and SMGI doctrine `source-v1 // render-v2` → `source-v1 // render-v3`. Topology `source-v9 // render-v21` → `source-v9 // render-v22` and activation + lifecycle comparison `source-v1 // render-v2` → `source-v1 // render-v3` advance because their page export changed, as topology's did at `render-v20`. All four are dated 2026-09-28, and no source advances. Every other stamp is held; the tree pages' new Fit behavior is live interaction only.

**Committed rasters.** The bounded-generativity and SMGI doctrine dark full-page mirrors are regenerated from the final pages. The SMGI mirror takes the caption correction and its new stamp; the bounded-generativity mirror takes its new stamp, and its figure and composition are unchanged: beyond the stamp, it differs from the previous mirror only by the edge antialiasing between rendering environments that a fresh export of the unchanged base shows too. The SMGI ontology and system-ASK mirrors are untouched.

**The public topology** keeps its generated source, HTML and generation receipt unchanged. The receipt records the projection exporter, its input manifest, the operator canonical, the HTML shell and the generated outputs; it does not cover these shared files, and all four of its exports are byte-identical.

**Re-sync 2026-09-17 (`colors_and_type.css` `a7c5530` → `067691a`; DS #154 SL3) — A REAL FOUNDATION REBIND, NOT COMMENT-ONLY; MEASURED NEUTRAL IN THIS BUNDLE BECAUSE EVERY PAGE THAT COULD EXPRESS IT ALREADY OVERRIDES `.caption`; ALL DIAGRAM STAMPS HELD AND NO COMMITTED RASTER RE-EXPORTED.** The hop crosses **one** carrier-changing owner event for this file. **SL3** (`31e283e`) adds the tracking token `--tracking-caption: 0.14em` and rebinds the foundation `.caption` role from `var(--tracking-wide)` (0.08em) to it. Those two lines are the entire `a7c5530` → `067691a` diff of this file: no other token value, role name, selector, `@font-face`, theme block or declaration moved (15,463 → 15,496 B). **The owner's coupled half has no carrier here.** SL3 is a pair — in the same commit the interactive-spine pattern pins its own caption band to `--tracking-wide`, because that band is the pattern's own 10px chrome rather than the foundation's 14px Caption role. This bundle vendors no spine: there is no `diagrams-interactive-spine.css` and no interactive-pattern directory in this repo, so the second half has nothing to land against, and nothing was pre-vendored for it. **Neutral here by measured override, not by non-use.** All ten `docs/diagrams/*.html` diagram pages carry exactly one `<div class="caption glass">`, and each loads `_dsa-tokens/colors_and_type.css` **before** `diagrams.css`, whose own `.caption` rule declares `letter-spacing: 0.06em` at the same specificity and later in source order — so the local rule wins the cascade and the foundation rebind never reaches the resolved value. `.caption b` declares `0.14em` there as well. `index.html`, the one page that also loads the `_dsa-surface/` carriers, carries **no** `class="caption"` element at all; its `.card .cls` and `.group-label` labels declare `letter-spacing: 0.14em` literally and read `--fs-caption` for size only. **Measured on this bundle** — all eleven pages in this folder (the ten diagrams plus `index.html`) × {`prefers-reduced-motion: no-preference`, `reduce`} = 22 loads on each side of the change, headless system Chrome 153.0.8010.48 over http with the HTTP cache disabled, computed values read off the live document: `.caption` `letter-spacing` = **0.6px** and `.caption b` = **1.54px** on every diagram page, **identical before and after**; `--tracking-caption` at `:root` moves from unset to `0.14em` on every page, which is what confirms the new token is present and simply not expressed, while `--tracking-wide` stays `0.08em`. A whole-document letter-spacing census — every element whose computed `letter-spacing` is not `normal`, counted by tag and class — is **identical page for page**, so nothing outside `.caption` moved either. Nothing in this bundle reads `var(--tracking-caption)`, and the only `var(--tracking-wide)` consumer is `_dsa-surface/surface-shell.css`, whose token SL3 does not touch. **No raster consequence, and for two independent reasons.** No page's caption tracking changed; and `export-png.js` takes only the caption's **text** and the `--diagram-ink` / `--diagram-muted` color roles from the live DOM, drawing the page caption panel with its own hardcoded tracking, so a live `.caption` tracking change would not reach the page export by that path in any case. The four committed dark full-page mirrors — bounded generativity, SMGI doctrine, SMGI ontology and system-ASK (D11) — are **untouched; no re-export.** **All diagram stamps held:** `method-ASK_topology` `source-v9 // render-v21` · `system-ASK-topology-public` `source-v13 // render-v27` · intent-artifact ontology `source-v2 // render-v2` · activation + lifecycle comparison, relay / feeding / ingestion, relay graph + PTX projection and SMGI doctrine `source-v1 // render-v2` · bounded generativity `source-v5 // render-v5` · SMGI ontology `source-v2 // render-v1` · system-ASK `D11 // source-v2 // render-v1`. **Companion leg, outside this mirror.** The same commit re-vendors the two `_dsa-surface/` carriers `index.html` loads — `surface-action.css` and `surface-panel.css` — from the same owner commit, for **SL4** (`e7f5ec2`, reduced-motion suspension) and **SL7** (`881a996`, which authors the glass recipe once in `surface-panel.css` so the treatment axis classes can share it by selector grouping). Measured on `index.html` in the same runs: at the default motion preference every computed property on its 14 `.surface-panel` and 40 `.surface-action` elements is **identical** before and after, so SL7's regrouping changes nothing a panel resolves. Under `prefers-reduced-motion: reduce` it is a **declared behavior change**: the four `a.surface-panel` and all 40 `.surface-action` controls drop their transition to `none`, their `:active` press scale resolves to `none` instead of animating toward `scale(0.97)`, and the hover / focus paint (0.92 opacity, the magenta attention edge) applies instantly. Static paint is unchanged in every state, so no stamp and no raster follows from that leg either. Those two files are not mirror members and take no pin here — their owner pin is recorded in the commit.

**Re-sync 2026-09-13 (`three-functions.css` `f298678` → `a7c5530`; DS #147, with the owner's #149 clarification) — THE CSS RE-VENDOR IS COMMENT-ONLY AND RENDER-NEUTRAL; THE OWNER'S SEMANTIC GENERATION IS NOT, AND TWO FIGURE SOURCES ADVANCE FOR THAT REASON.** The primitive advances **v0.1 → v0.2** (#147, `85981a7`): a semantic generation that changes **which elements qualify** for `--function-legislative`, not how the role renders once assigned. The owner now separates what **performs** the legislative function — the **source-of-intent / normative-apex role as constitutive legislative source**, and `grammar · brief · rule · grant` as **delegated apparatus where it carries the standard into operative scope** — from what sits around it and takes no role color: standing intent, passive carriage, the aperture and its geometry. #149 (`a7c5530`) then clarified two points inside v0.2, in `three-functions.md` only: an actor envelope that a figure draws separately from the role stays neutral while the role it occupies stays legislative, and a label takes `--fg-1`, or a registered foreground within that registration's scope, never the role hue. **In the CSS file the change is two comment blocks and nothing else:** no token value, role name, selector, cascade or declaration moved, and stripped of comments the file is byte-identical at **440 B (`714dad02…`)** before and after — the same value the 2026-09-06 entry recorded. `three-functions.css` is unchanged between `85981a7` and `a7c5530`. **What is NOT neutral is the conformance the owner change creates in this bundle's figures,** and it is recorded against their authored sources: **bounded generativity `source-v4 // render-v5` → `source-v5 // render-v5`** — its source-of-intent role takes the legislative treatment beside the delegated grammar / brief; **D11 `source-v1 // render-v1` → `source-v2 // render-v1`** — human ASK becomes a neutral actor envelope holding the legislative source-of-intent role and the judicial adjudication gate, the builder's retired apex-neutral rationale is removed, its grants are keyed as delegated apparatus without the aperture they produce, the realization span inside the grant takes the executive treatment, the figure is recomposed on a grid — one ordinary-node size, shared column edges and routed gutters — and its three-functions and edge-grammar keys, with the owner's legend-only divider, are drawn inside the SVG. `render-vN` holds for both: no renderer, exporter, token or font changed. **Both committed dark full-page mirrors are regenerated** from the revised sources. **SMGI doctrine takes no stamp change and no re-export:** it loads this stylesheet but colors only its grammar node, a valid delegated-legislation instance that depicts no apex. The SMGI ontology figure does not load `three-functions.css`.

**Re-sync 2026-09-06 (`three-functions.css` `8fb82b7` → `f298678`, DS #142) — COMMENT-ONLY, RENDER-NEUTRAL; ALL DIAGRAM STAMPS HELD.** The owner revised the primitive's STATUS block: the forward-looking claims that the file was *awaiting first-consumer proving*, that method-ASK *will be* the first consumer, and that asset-pipeline-ASK is *the intended second consumer*, are replaced by a landed-record framing pointing at `CONSUMERS.md` and the worked example in `three-functions.md`, and stating that a landed consumption record is not, by itself, a portability, usability or generality verdict. The forward-looking consumption claims were already stale in this mirror — this repo is a landed consumer. Retiring the *awaiting-proving* wording is the owner's release-posture revision and asserts no completed proving event. **No token value, role name, selector, or declaration changed:** stripped of comments the file is byte-identical at 440 B (`714dad02…`) before and after. The dependency is unchanged rather than absent: the figure builders emit the `fn-leg` / `fn-exe-wash` / `fn-exe-chamber` / `fn-jud` / `fn-jud-ring` / `fn-cut` classes, and the `<style>` blocks of `method-ASK_bounded-generativity.html` and `method-ASK_seed-mediated-generated-interface.html` map those classes to `var(--function-*)` — consumption runs through the classes, and it is the unchanged declarations together with the unchanged consuming code that make this re-vendor neutral. Under §Update cadence none of the refresh triggers is met (no topology or method-altitude structural change, no new doctrine doc landing, and per-PR repo edits do not refresh) and the renderer realization is measurably unchanged: **`source-v4 // render-v5` and `source-v1 // render-v2` both hold, and no committed dark mirror is re-exported.** (The §Lineage `source-v9 // render-v21` tuple describes the topology diagram and is not applied here.) The mirror stays at a **single pin**, advanced `2bbab41` → `f298678`; every other member — `colors_and_type.css`, `fonts-embedded.js` and the six font carriers — was verified byte-identical at both commits, so the advance re-vendors `three-functions.css` alone.

**Re-sync 2026-09-03 (`colors_and_type.css` `28e9318` → `2bbab41`) — REAL CANVAS CHANGE, MEASURED; ALL DIAGRAM STAMPS HELD.** The hop crosses **three** carrier-changing owner events, and unlike the last two re-syncs this one is **not** comment-only and **not** neutral-by-non-use: it changes what the browser paints outside the document. **#129** (`85181c1`) — the value-bearing event: adds the Tier-1 semantic role `--bg-edge` (root-only, binding existing palette values and creating none), sets `color-scheme` on the root, rewrites the base reset's `background` shorthand to the `background-image` **longhand** — the shorthand was resetting `background-color` to transparent, which is what left the canvas with no solid layer to derive an edge from — and adds `html { background-color: var(--bg-edge); }` plus `body { background-color: transparent; }` so the root's solid propagates to the canvas. The selectors match the **root only**, deliberately: a descendant `.theme-dark` resolves dark for its subtree while `html` still owns the canvas, so a descendant match would put dark content inside a light browser edge. **#136** (`b8d1f56`) — rebinds the light edge `--ask-white` → `--ask-lavender-light` (`#E2D3F0`) and extends that token's comment to name its second role. **#137** (`6b513cf`) — comment only within this file (its substance is the surface-shell swipe-to-close runtime), correcting one line of the `--bg-edge` block's prose. **What changes here:** the over-scroll pocket above and below the document, and the scrollbar / form-control rendering, now resolve from the theme instead of from the user agent's default white. **What does not:** the gradient still covers the viewport, so no in-page pixel moves. **Measured on this bundle** — all nine `docs/diagrams/*.html` pages × light + dark, headless system Chrome over http, computed values read off the live document: `html` `background-color` = `rgb(226, 211, 240)` light / `rgb(10, 9, 12)` dark, `--bg-edge` resolving to the same pair, `body` `background-color` = `rgba(0, 0, 0, 0)` on every page, `color-scheme` tracking the emulated preference, zero page or console errors — **18/18**. `diagrams.css` sets `body { background: var(--bg-gradient) }` as a shorthand and so keeps body's own background-color transparent, which is the behavior the new root rule requires; no local override was needed. **All other vendored files byte-identical** between `8fb82b7` and `2bbab41` (`three-functions.css`, `fonts-embedded.js`, four woff2, two OFL texts — verified by hash against both owner commits and against disk), so the mirror moves to the **single pin** `2bbab41`. **No SVG geometry, source data, or committed raster is touched, and every consuming diagram stamp is held** — the change is outside the document, not inside the figure.

**Re-sync 2026-08-14 (`colors_and_type.css` `3d8b113` → `28e9318`) — RENDER-NEUTRAL FOR THIS MIRROR BY NON-USE:** the hop crosses **three** carrier-changing owner events. **#93** (`410b3980`) — comment/contract only: `--fg-high-contrast` moves from a *reserved* value with no approved surface to its **first approved bounded use** (the Class B message-archive ramp); no token value changed. **#103** (`8fbb0c01`) — the **value-bearing** event: `--fg-on-card` is rebound `var(--fg-1)` → `var(--fg-high-contrast)` (`#201D26`) and **both** dark-mode `--fg-on-card: var(--ask-lavender-dark)` overrides (the `[data-theme="dark"]` block and the `prefers-color-scheme` auto-bridge) are **removed**, so the role stops flipping with theme against the fixed `--surface-solid` fill it exists to sit on. **#104** (`28e93188`) — comment/contract only, and the **final vendoring pin**: it retains #103's value unchanged and replaces the bounded-use prose with the central **registered-use and admission-gate contract** for `--fg-high-contrast`. **Render-neutral here by NON-USE — not because the change is comment-only:** this is a real token-behavior change upstream, but **nothing in this bundle reads `var(--fg-on-card)`** (verified across the repo tree) and the carrier itself never consumes it, so no resolved value in any diagram changes. **All other vendored files are byte-identical between `3d8b113` and `28e9318`** — `three-functions.css`, the four fonts, and `fonts-embedded.js` are untouched, and the mirror stays at mixed pins (`colors_and_type.css` @ `28e9318`, everything else @ `8fb82b7`). Only the `colors_and_type.css` sha256 above differs (`246aae65…` → `acd76409…`; 13,022 → 13,375 B). **All consuming diagram stamps held** — no re-export.

**Re-sync 2026-07-23 (`colors_and_type.css` → `3d8b113`) — COMMENT-ONLY, render-neutral:** design-system PR **#88** corrected the tier-model header comment in `colors_and_type.css` — `--ask-*` reclassified from Tier 3 to the canonical **Tier-2 implementation namespace** (travels with Tier 2 by reference); Tier 3 = the ASK name + `logo-ASK` wordmark; the file header names the owner-carrier for **provenance**, not child-instance identity. **No token value, role name, selector, `@font-face`, or theme-behavior change** — non-comment content byte-identical; only the new `colors_and_type.css` sha256 above differs (`bcd11e0e…` → `246aae65…`). `three-functions.css` (@ `8fb82b7`), fonts, `fonts-embedded.js`, and the exporter / engine / helper are **unchanged** — the mirror is now at mixed pins (`colors_and_type.css` @ `3d8b113`, everything else @ `8fb82b7`). The stylesheet is `<link>`ed, not inlined — no committed HTML or raster carries the comment. **All consuming diagram stamps held** — topology `source-v6 // render-v20`; bounded-generativity `source-v4 // render-v5`; SMGI doctrine `source-v1 // render-v2`; SMGI ontology `source-v2 // render-v1` (render-neutral, no re-export).

**Re-vendor + topology render-v20 2026-07-20 — `export-png.js` overlap-gated portrait page composition (design-system PR #80 `2cd4610`); per-surface disposition, not blanket.** The shared static exporter's `PNG page` composition for PORTRAIT diagrams becomes an overlap-gated three-candidate fit (full region if it clears the corner panels / measured centre lane / historical below-band fallback), `max(C, B, A)` with A the prior placement byte-exact — so a portrait can only grow or reproduce the prior placement; the **landscape** page branch and the `PNG diagram` (chrome-free) path are mathematically unchanged. `export-png.js` re-vendored **byte-identical** from DS @ `2cd4610` (blob `2104021d…`; prior on disk `9b043e6f…`, the #72-era exporter). **Measured gate — 4 surfaces × {PNG page, PNG diagram} × {light, dark} = 16 base↔head comparisons (headless system-Chrome exports, decoded + SHA-256):** determined each surface independently.
- **topology** (`method-ASK_topology.html`; diagram body **portrait** 3034×3440) — **PNG page CHANGES materially** both themes: the tree grows and rises into the centre lane (12.1% of pixels differ, high-amplitude, in the **diagram-body** region — not the chrome; visually confirmed larger, header/legend/stamp intact, no clipping). **PNG diagram byte-identical** both themes (the #80 change does not reach the diagram path — as it must not). Topology has **no committed raster** (on-demand only), so nothing is regenerated; its stamp advances **`render-v19 → render-v20`** (source held `source-v5`; date `2026-06-11 → 2026-07-20`) to record the changed on-demand page render — the same portrait-page-composition advance control-surface D01 took at #80.
- **bounded-generativity** (landscape 3428×1494), **SMGI doctrine** (landscape 3440×1560), **SMGI ontology** (landscape 3440×1586) — **all four exports byte-identical** base↔head (page + diagram, light + dark); the landscape page branch is unchanged. Each committed dark full-page mirror is **content-identical** to a fresh head export (cross-environment decode: 99.5%+ of pixels at Δ≤2, **zero** pixels Δ>96 — pure antialiasing, no moved/restyled content; base→committed and head→committed give the same delta, confirming it is PR-independent). **Stamps held** (`bounded-generativity source-v4 // render-v5`; SMGI doctrine + ontology `source-v1 // render-v1`); the three committed rasters are **untouched — no re-render.**
No blanket stamp — each surface dispositioned from its own base↔head result; the only change is the exporter re-vendor plus the topology stamp. The three figure builders, `diagrams-fit.js`, `diagrams-static-H-engine.js`, `diagrams.css`, tokens/fonts/Three Functions, and all source data/doctrine prose are **untouched**. The `_dsa-tokens` foundation pin above (`8fb82b7`) is untouched — `export-png.js` is not a mirror file. Exporter pin (DS `2cd4610`, #80) tracked in the operator consumer-ledger (item 14).

**Re-vendor 2026-07-19 — DS diagram fit contract, interaction floor, and constrained-clearance fix (design-system PR #77 `a7e1d36` · #78 `094aa62` · #79 `99d13e67`); live-canvas fit + interaction only, exporter/raster neutral, all stamps held.** Brings the bundle current with three landed owner changes and repairs the three bespoke figure builders' zoom floors. **Files re-vendored byte-identical from the DS owner:** `diagrams-static-H-engine.js` → **`385f150d…`** (md5 `ac4b66dd`; prior on disk `a47f255d…` md5 `a8b0c19c`, the #77 engine) and `diagrams-fit.js` → **`98ffd786…`** (md5 `9b649a74`; prior `0c993163…` md5 `27710d18`). *(Record correction: `diagrams-fit.js` and the #77 engine `a47f255d…` were first vendored in PR #122 (`c38912f9`, the #77 fit-contract leg) but that PR did not add a MANIFEST entry — this entry brings the log current for all three of #77/#78/#79.)* **What each owner change did:** **#77** extracted the shared `diagrams-fit.js` and made `fit()` reserve the measured caption/legend/HUD glass-panel band (overlap-gated); **#78** made the zoom-out floor track Fit so a panel-aware fit below the historical floor no longer reverses the zoom-out direction; **#79** made clearance degrade continuously on a constrained axis (`effectiveClearance = min(clearance, avail/2)`), fixing an off-canvas discontinuity where a canvas smaller than its clearance drove the scale to ~maxScale. **Bespoke builders repaired (this bundle's own code, not owner files):** `method-ASK_bounded-generativity.figure.js`, `…_seed-mediated-generated-interface.figure.js`, and `…-ontology.figure.js` each carried a FIXED `0.2` zoom-out floor on both the minus button and the wheel — the same reversal class #78 fixed in the DS engines. **Evidence lineage, kept distinct:** the *pre-existing* live reversals (old #77 helper, fixed 0.2 floor) were **bounded-gen 700×600 fit `0.1594`** and **520×460 fit `0.1848`** — both below 0.2, so zoom-out raised the scale. Separately, at **420×380** the old helper produced the `1.0000` off-canvas *catastrophe* (not a below-0.2 reversal at that viewport); #79 corrects that to ≈`0.0877` on-canvas, which is itself below 0.2 — so the combined #79-helper + fixed-0.2-builder would reverse there too unless the floor is repaired. Each builder now tracks `fittedMinScale = Math.min(0.2, latest Fit)`, set from the applied fit so the `document.fonts.ready` refit and every resize refresh it; caller-owned inputs preserved (bounded-gen clearance 90/90, both SMGI 90/20, all maxScale 1.3, zero-origin stage bounds). **LIVE-CANVAS FIT + INTERACTION ONLY** — #77 and #79 change the default live placement geometry; #78 and the builder floors are interaction; the exporter and authored SVG geometry are untouched, which is why stamps hold. `PNG page` + `PNG diagram` verified **byte-identical** to the pre-change builders across the three figures × both modes × both themes (12/12), so the three committed dark rasters are untouched. The formerly anomalous small viewports were re-probed against the **landed** #79 helper: bounded-gen 420×380 → 0.088 on-canvas (was 1.0 off-canvas), doctrine 420×380 → 0.020 (was 0.0091), ontology 420×380 → 0.172 unchanged; all 1440×900 fits unchanged; no `1.0000` fallback and no unexplained `0.0091` near-clearance result remain. **The topology shell (`method-ASK_topology.html`) is the H engine's only consumer here** and was verified separately against base and head: above-floor keeps the 0.15 floor, real below-floor viewports (700×600 `0.0545`, 520×460 `0.022`) track Fit with no minus/wheel reversal, resize across the threshold is deterministic, no chrome collision, `PNG page` + `PNG diagram` byte-identical both themes. (At 420×380 the topology canvas-wrap measures 0 height — the shell chrome consumes the whole 380px window — so `compute()` returns its degenerate-input bail `min(1, maxScale)`; identical in base and new, distinct from the #79 clearance path.) **Live stamp dispositions (all held, no committed raster changes):** `method-ASK_topology` `source-v5 // render-v19` · `bounded-generativity` `source-v4 // render-v5` · SMGI doctrine `source-v1 // render-v1` · SMGI ontology `source-v1 // render-v1`. The `_dsa-tokens` foundation pin above (`8fb82b7`) is untouched — neither the engine nor the helper is a mirror file. Engine + helper pins tracked in the operator consumer-ledger (item 14).

**Re-vendor + topology render-v19 2026-07-17 — `diagrams-static-H-engine.js` renders group notes (design-system PR #74 `bb00558`); topology stamp bump `render-v18 → render-v19` (source held at `source-v3`).** *(Scope note: unlike every entry below, this one concerns `method-ASK_topology.html`, not the bounded-generativity figure — the figure renders from its own `figure.js` and does not load this engine.)* The shared static-H engine measured a `kind: 'group'` note into column width and granted the group the taller 44px box, then the `group` render branch drew rect + label and `continue`d — so the note was **never emitted**: invisible text that still moved layout, under a label centered in a box sized for content that was not there. The landed fix emits the group note (label at `y+16`, note at `y + boxH - 10`, matching the ordinary-node branch) and, in the same commit, stops an unrendered **section** note from buying box height — the vertical half of the width-only fix in DS #32. `diagrams-static-H-engine.js` re-vendored **byte-identical** from DS @ `bb00558` (md5 `c29e43a6`). **NOT render-neutral for this diagram** — the `doctrine docs` group note (*"source-of-intent doctrine cluster + method spine"*) was authored, measured, and unreadable; it now renders, so the stamp bumps to **`render-v19`** (source held at `source-v3` — the tree data is unchanged). This diagram authors no section notes, so the section half is inert here. No committed raster for the topology → nothing to re-export. Gated both themes with real tokens + fonts: note renders inside its 44px box below its label, zero text overflowing the viewBox, and the new note is not involved in any of the 21 pre-existing ~1.3px label/note font-bbox grazes. The `_dsa-tokens` foundation pin above (`8fb82b7`) is untouched — the engine is not a mirror file. Engine pin (DS `bb00558`) tracked in the operator consumer-ledger (item 13).

**Re-vendor + render-v5 2026-07-13 — `export-png.js` direct-`<defs>` carry fix (design-system PR #72 `5674b46`); stamp bump `render-v4 → render-v5` (source held at `source-v4`).** The shared static exporter cloned only the live SVG's direct `<g>` content layers into the raster, never its direct `<defs>` — so this figure's executive-chamber negative-cutout mask (`#exe-holes`, a `userSpaceOnUse` mask in a direct `<defs>`) exported as a **dangling `url(#exe-holes)` reference**: the wash rasterized **unmasked (solid)** and the seven variance marks read as **filled**, while the live browser render stayed correct. The landed fix clones `:scope > defs` into the export content (both the page and diagram paths) so every `url(#id)` reference resolves. `export-png.js` re-vendored **byte-identical** from DS @ `5674b46` (md5 `a91d9548`). **NOT render-neutral for this bundle** — all four committed rasters are regenerated so the cutouts render as holes (page + diagram, both themes); the stamp bumps to **`render-v5`** (source held at `source-v4`, figure geometry unchanged). The `_dsa-tokens` foundation pin above (`8fb82b7`) is untouched — `export-png.js` is not a mirror file. Exporter pin (DS `5674b46`) tracked in the operator consumer-ledger.

**Re-vendor + source-v4 2026-07-12 — positioned exporter (design-system PR #70 `5512b5d`) + figure geometry revision; stamp `source-v3 → source-v4` (render held at `render-v4`).** The shared static exporter gains a larger, lower-anchored **page composition** — the diagram side margin tightens 96→40px and landscape diagrams center in the space *below* the corner panels — re-vendored **byte-identical** from DS @ `5512b5d` (md5 `6b2190b8`); it now carries both this and the #69 semantic-legend fix. The figure **source is revised (`source-v4`)**: even **36px spacing** throughout (frame→grammar, grammar→aperture ↕ arrow, chamber→governance, above/right of governance, frame→governed), the outer frame expanded **+72px split evenly** (36 top / 36 bottom) for vertical breathing room, the aperture `permitted variance` / `aperture` labels **split** with the ↕ arrow passing through the empty gap between them, the grammar and governed-artifact boxes tightened to their text, the chamber compacted, and `source of intent` rewrapped to two subordinate lines. **All four rasters regenerated** — the full-page mirrors (`-{dark,light}.png`, the primary doctrine embed) and the chrome-free diagram assets (`-diagram-{dark,light}.png`). The `_dsa-tokens` foundation pin (`8fb82b7`) is untouched — `export-png.js` is not a mirror file. Exporter pin (DS `5512b5d`) tracked in the operator consumer-ledger.

**Re-vendor 2026-07-12 — `export-png.js` semantic-legend page fidelity (design-system PR #69 `81a6aa7`); doctrine embed → full-page mirror; stamp bump `render-v3 → render-v4`.** The shared static exporter's `PNG page` legend reader was `.row`-only and reduced every swatch to a generic neutral box, so this diagram's now load-bearing Three Functions legend flattened on export — the colored role swatches all read neutral and the dotted divider + downstream heading were dropped. The landed fix reads the legend's direct children as an ordered list of rows / dividers / group headings and draws each swatch from its live **computed** presentation, so the page PNG legend now carries the magenta / theme-neutral / cyan function key and the separated neutral governance row. `export-png.js` re-vendored **byte-identical** from DS @ `81a6aa7` (md5 `313438be`). **NOT render-neutral for this bundle** — the doctrine embed in `bounded-generativity.md` switches from the diagram-only raster to the **full-page** raster (the legend is load-bearing) and both committed page rasters are regenerated, so the stamp bumps to **`render-v4`** (source held at `source-v3`). The chrome-free diagram-only rasters are unchanged by this legend-only fix and are retained as `method-ASK_bounded-generativity-diagram-{dark,light}.png` (the optional `PNG diagram` asset). The `_dsa-tokens` foundation pin above (`8fb82b7`) is untouched — `export-png.js` is not a mirror file. Exporter pin tracked in the operator consumer-ledger.

**Vendor 2026-07-12 — add the Three Functions primitive (design-system PR #67 `8fb82b7`); diagram gains function color (`source-v3 // render-v3`).** Adds `three-functions.css` to this mirror — the landed **ASK Three Functions** opt-in semantic-role primitive (Tier-1 `--function-legislative` / `--function-executive` / `--function-judicial`, bound in Tier-2 to magenta / theme-neutral / cyan). The bounded-generativity diagram now **consumes it by reference** to color the three functions: legislative grammar/brief box, the executive bounded-realization chamber (with variance rendered as **negative cutouts** through the chamber fill), and the judicial selection ring + ratified node — everything else neutral. `colors_and_type.css` / fonts / `export-png.js` are **byte-identical** (the pin bump only ADDS `three-functions.css`; `colors_and_type.css` sha256 above is unchanged). **NOT render-neutral for this diagram** — the diagram source gains color plus the chamber-top alignment, so its stamp bumps to **`source-v3 // render-v3`** and both rasters are regenerated. First public consumer of Three Functions; tracked in the operator consumer-ledger.

**Re-vendor 2026-07-10 — native `file://` export via embedded-font carrier (design-system PR #62 `44c6074`), render-neutral for http, stamp held.** Supersedes #61's *goal* while keeping #61's fail-closed behavior as the floor: a double-clicked (`file://`) diagram now exports a correct PNG with **no server**. **Not exporter-only** — this re-vendor **adds** `fonts-embedded.js` to this mirror (the DS-generated embedded-font carrier + integrity manifest, md5 `ffb61b1e`), and the diagram HTML now loads `<script src="./_dsa-tokens/fonts-embedded.js">` **before** `export-png.js`. `export-png.js` re-vendored **byte-identical** from DS @ `44c6074` (md5 `9cb7a354`): it prefers the carrier (no fetch → works under `file://`), falls back to the http woff2 fetch, and still fails CLOSED — now **manifest-backed**, so an incomplete carrier is caught even under `file://` — if neither fully embeds. `colors_and_type.css` / fonts / the pin above are unchanged (the carrier is generated FROM them). **Render-neutral for http** — the successful http export output is byte-identical (carrier `@font-face` bytes == fetch bytes), so the diagram `render-vN` stamp is **held**. Exporter + carrier pins tracked in the operator consumer-ledger (item 10; item 9 remains the fail-closed floor).

**Re-vendor 2026-07-10 — `export-png.js` fail-closed under `file://` (design-system PR #61 `ed64b42`), render-neutral for http, stamp held.** Follow-up to #60: the exporter now **fails closed** when it can't embed the fonts — under a `file://` page (Chromium blocks the woff2 fetch) or any incomplete embed it blocks the export with a "serve over http" warning instead of silently emitting a fallback-font (clipped) PNG. `export-png.js` re-vendored **byte-identical** from DS @ `ed64b42` (md5 `04aa5177`). **Exporter-only** — tokens/fonts/`diagrams.css`/engine unchanged; the `_dsa-tokens` mirror pin above is untouched. **Render-neutral for this bundle** — the successful http export output is unchanged (this diagram renders over http); the guard only blocks broken `file://` exports, so the `render-vN` stamp is **held**. Exporter pin tracked in the operator consumer-ledger (item 9).

**Re-vendor 2026-07-10 — `export-png.js` font-embed fix (design-system PR #60 `9b05d9a`), render-neutral for this bundle, stamp held.** The shared raster exporter now embeds the page's own `@font-face` faces (base64) into the exported SVG `<defs>` before rasterizing — fixing right-edge node-text clipping in headless / font-absent PNG renders (SVG-as-image is font-isolated from the document's web fonts). `export-png.js` re-vendored **byte-identical** from DS @ `9b05d9a` (the four static copies are byte-identical). **Exporter-only** — tokens, fonts, `diagrams.css`, and the engine are unchanged; the `_dsa-tokens` mirror pin above is untouched. **Render-neutral for this bundle** (no committed raster; visual output is unchanged where the fonts are present, which is how this diagram renders), so the diagram `render-vN` stamp is **held**; the fix corrects only headless / font-absent exports. Exporter pin tracked in the operator consumer-ledger.

**Re-sync 2026-06-26 (`b5d158e` → `1231d03`) — COMMENT-ONLY, render-neutral:** design-system PR #56 corrected two stale **comments** in `colors_and_type.css` (the "five-color core" header summary → "a core identity set"; the "Core 5 — backgrounds + text" block label → "Core set — backgrounds, wordmark, dark-mode text"). **No token value, role name, selector, or behavior change** — only the new `colors_and_type.css` sha256 above differs. Fonts byte-identical; `diagrams.css` / engine / `export-png.js` unchanged. **Diagram `render-vN` stamp held** (no render change).

**Re-sync 2026-06-26 (`2e1ab4c` → `b5d158e`) — RENDER-NEUTRAL conformance:** picks up the light-mode foreground conformance (design-system PR #52) and the diagram foreground-alias de-dup (PR #53). In `colors_and_type.css`: `--ask-white`/`--fg-1` comments corrected (white = wordmark, not body text), `--ask-fg-light` (`#6A637F`) + `--fg-high-contrast` (reserved `#201D26`) added, `--fg-on-card` rebound to `var(--fg-1)`, `.bg-ask-light` text white→`var(--fg-1)`. In `diagrams.css`: the scoped text roles `--diagram-ink/muted/faint` now **alias** `var(--fg-1/-2/-3)` instead of hardcoding the ramp (redundant dark-text redefs dropped; structural strokes stay local). **Resolved values are unchanged in both themes** — this diagram uses none of the rebind-affected roles (`--fg-on-card` / `.bg-ask-light`), and `--fg-1` still resolves to `#6A637F`. Only `colors_and_type.css` + `diagrams.css` changed (new sha256 above); the four font files are byte-identical; the diagram engine / `export-png.js` were already current. **Diagram `render-vN` stamp held** (render-neutral).

| File | Upstream source | Role |
|---|---|---|
| `colors_and_type.css` | `/colors_and_type.css` | Tier 1 + Tier 2 tokens + `@font-face` (light default · `[data-theme="dark"]` · `prefers-color-scheme` auto-bridge) |
| `three-functions.css` | `/three-functions.css` | ASK Three Functions — opt-in semantic function-color primitive (three `--function-*` roles); consumed by the bounded-generativity, system-ASK (D11) and SMGI doctrine diagrams. Layers on `colors_and_type.css` |
| `fonts-embedded.js` | generated from `/colors_and_type.css` + `/fonts/` by `/tools/gen-embedded-fonts.js` | embedded-font carrier (`window.DSA_EMBEDDED_FONTS` + integrity manifest) — enables offline `file://` PNG export; load before `export-png.js` |
| `fonts/InterVariable.woff2` | `/fonts/` | display family |
| `fonts/InterVariable-Italic.woff2` | `/fonts/` | display italic |
| `fonts/JetBrainsMono.woff2` | `/fonts/` | mono family |
| `fonts/JetBrainsMono-Italic.woff2` | `/fonts/` | mono italic |
| `fonts/Inter-OFL.txt`, `fonts/JetBrainsMono-OFL.txt` | `/fonts/` | SIL OFL license texts |

Re-sync this mirror and advance the pin above when the upstream tokens or fonts
change. Then classify the effect on each consuming diagram under its own
`source-vN // render-vN` contract: advance a diagram's `render-vN` stamp, and
regenerate its committed rasters, only when its render actually changes — as the
entries above do. A re-sync or pin advance does not by itself change a render.
