Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions docs/branch-review-ledger.md
Original file line number Diff line number Diff line change
Expand Up @@ -855,3 +855,4 @@ Records before 2026-07-28 were written by hand and had drifted: 146 lines carrie
| 2026-08-09 | PR #1782 / cursor/fix-document-open-scroll-e5bf | 5709f2cc7a954197e02107c96d7896d8d13445c3 | document-viewer open-at-top | ship: remove chunk mount scrollIntoView so document opens stay at overview top | document-viewer-shell.dom 7 pass; document-section-summary.dom 8 pass; verify:pr-local dry-run |
| 2026-08-09 | cursor/fix-document-open-scroll-e5bf (PR #1782) | 98029875db7d640d3e699829249bb33892296bff | PR #1782 unblock | before: static-pr+coverage failed on stale adoption-manifest (document-viewer-shell testFiles drift), merge-tree clean 0 behind, auto-merge armed, 1 advisory CodeRabbit waitFor thread; after: regenerated adoption-manifest, hardened scroll negative assertion, pre-commit+handoff adoption sync to prevent recurrence; CodeRabbit dispositioned as fixed by sync assert | check:design-system-adoption PASS; vitest design-system-adoption+document-viewer-shell+docs-inventory 63/63 PASS; format; no provider-backed checks |
| 2026-08-09 | cursor/fix-document-open-scroll-e5bf (PR #1782) | 86698228533ebe10452c10c1bd7a3e1610d891ae | PR #1782 unblock | merged origin/main (behind-but-clean); fixed static-pr TS2322 on document-viewer-shell chunk fixture; fixed Production UI DSM compare remove stall via location.assign + DOM proof; prior adoption-manifest drift already fixed | tsc clean for changed files; vitest document-viewer-shell+dsm-compare-remove+design-system-adoption 59/59 PASS; check:design-system-adoption PASS; format; no provider-backed checks |
| 2026-08-10 | PR #1797 / claude/codex-m4a-retire-dead-type-8wq9ta | 6bf3c7b2a0600021290e165302fd07d721af6592 | retire the dead --text-2xl-compact type step (ledger #297): globals.css @theme, twMerge config, two test lists, the design-system-contract exemption, TOKENS.md/GATES.md | Executed the recorded next action on outstanding-issues #297. The step had zero class-utility and zero var(--text-*) consumers, so the deletion renders identically; UNUSED_TYPE_STEP_EXEMPTIONS is now empty and the declared-but-unconsumed gate holds the line with no carve-out. One test fixture using the token as a synthetic var() consumer was repointed at --text-2xl-minus. GATES.md corrected to eight non-standard steps; the 705-consumer total is unchanged because this step contributed 0. No clinical, RAG-ranking or operational risk paths touched (classifyPullRequestFiles: all false). | check:design-system-contract PASS (705 production files); check:type-scale --strict PASS; lint exit 0; typecheck exit 0; npm run build after rm -rf .next exit 0 (Compiled successfully in 63s); check:outstanding-issues PASS; verify:pr-local completed through typecheck then failed at test on a PRE-EXISTING root-permission failure in tests/pr-handoff-stop.test.ts that reproduces on clean d812c76 (5993 passed, 1 failed); build and check:rag:fixtures run/assessed separately. No UI gate: no rendered output can change. No provider-backed check run. |
20 changes: 12 additions & 8 deletions docs/design-system/GATES.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,10 +45,12 @@ flagged.
**Partly enforced, corrected 9 Aug 2026.** The decidable half of step _selection_ now ships
inside `check:design-system-contract`: a step declared in the `globals.css` `@theme` block
that no production surface selects fails the build, naming the step. It found one on the day
it landed — `--text-2xl-compact`, zero consumers, carried as a documented exemption with its
retirement tracked as `#297`. The exemption itself is gated: the build also fails if an
exempted step stops being declared or gains a consumer (class utility or direct
`var(--text-*)` across walked production sources), so the list cannot rot.
it landed — `--text-2xl-compact`, zero consumers — which was carried as a documented exemption
with its retirement tracked as `#297`, and **retired from `@theme` on 10 Aug 2026**, closing
that row. The exemption list is empty now and that is its intended resting state; it is still
gated from both sides, so the build fails if an exempted step stops being declared or gains a
consumer (class utility or direct `var(--text-*)` across walked production sources), and the
list cannot rot.

**Still not enforced:** which of the _existing_ steps a component picks. Nothing stops a
surface choosing `text-sm-minus` over `text-sm`, and nothing mechanical can — that is a
Expand All @@ -58,11 +60,13 @@ already ships.

⚠️ **The "1 318 call sites" figure this section used to quote was a repo-wide grep including
`src/app/mockups/**`, which every one of these gates excludes** — 1 360 at `7aaf9349c`.
Production consumers of the nine non-standard steps total **705** **[verified: AST class-root
Production consumers of the eight non-standard steps total **705** **[verified: AST class-root
pass over the contract check's own walk, 9 Aug 2026]**: `text-2xs` 421, `sm-minus` 160,
`base-minus` 57, `3xs` 42, `2xl-minus` 9, `3xl-minus` 9, `lg-minus` 6, `hero` 1,
`2xl-compact` 0. A third figure of 733 has also circulated; that one counts the `@theme`
declarations and doc comments as if they were usages. Nine steps, not eight.
`base-minus` 57, `3xs` 42, `2xl-minus` 9, `3xl-minus` 9, `lg-minus` 6, `hero` 1. A third
figure of 733 has also circulated; that one counts the `@theme` declarations and doc comments
as if they were usages. The count was nine steps until 10 Aug 2026, when the ninth —
`2xl-compact`, the one with 0 consumers — was retired; the total is unchanged precisely
because it contributed nothing.

## 2 · The twelve system gates, labelled

Expand Down
18 changes: 9 additions & 9 deletions docs/design-system/TOKENS.md
Original file line number Diff line number Diff line change
Expand Up @@ -109,15 +109,15 @@ The v2 layer _references_ or _depends on_ these; their values stay in `live` / `

## 6 · Deprecations and deletions

| Token | Disposition | Gate |
| ---------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- |
| `--text-soft` | Deprecated alias of `--decoration-soft`; both resolve identically during the window. Delete when zero references remain outside the alias declaration. | Contract test pins the tier from both sides; a lint for `--text-soft`/`--decoration-soft` on text-bearing nodes is planned (GATES §1). |
| `--shadow-focus` | **Delete** (PR 9) — encodes a companion focus ring the conventions forbid; a trap for the next person who greps "focus". | Planned lint after deletion. |
| `--shadow-lift` | Retire into the `--eN` ladder (PR 9). | Planned. |
| `--shadow-card`, `--shadow-soft` | Aliases of a ladder step; retire **inside the recipes first**, then delete. | Planned. |
| `--spring-bouncy` + two other dead springs | Delete (PR 9); byte-duplicate and unused curves. | Planned. |
| `--quantity-unit-scale` (design side) | Never lands; superseded per §1. | Next design sync removes it. |
| Legacy type steps (`text-2xs`/`3xs`, `sm-minus`, `base-minus`, `2xl-minus`, `lg-minus`, `3xl-minus`, `2xl-compact`, `3xl/4xl/5xl`) | Retired **last of all** — ≈663 call sites; `--text-md` arrives additively first. ⚠️ `Quantity` currently consumes `text-base-minus` — fix in the retirement tranche. | Contract ratchet extension, planned. |
| Token | Disposition | Gate |
| ------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- |
| `--text-soft` | Deprecated alias of `--decoration-soft`; both resolve identically during the window. Delete when zero references remain outside the alias declaration. | Contract test pins the tier from both sides; a lint for `--text-soft`/`--decoration-soft` on text-bearing nodes is planned (GATES §1). |
| `--shadow-focus` | **Delete** (PR 9) — encodes a companion focus ring the conventions forbid; a trap for the next person who greps "focus". | Planned lint after deletion. |
| `--shadow-lift` | Retire into the `--eN` ladder (PR 9). | Planned. |
| `--shadow-card`, `--shadow-soft` | Aliases of a ladder step; retire **inside the recipes first**, then delete. | Planned. |
| `--spring-bouncy` + two other dead springs | Delete (PR 9); byte-duplicate and unused curves. | Planned. |
| `--quantity-unit-scale` (design side) | Never lands; superseded per §1. | Next design sync removes it. |
| Legacy type steps (`text-2xs`/`3xs`, `sm-minus`, `base-minus`, `2xl-minus`, `lg-minus`, `3xl-minus`, `3xl/4xl/5xl`) | Retired **last of all** — ≈663 call sites; `--text-md` arrives additively first. ⚠️ `Quantity` currently consumes `text-base-minus` — fix in the retirement tranche. `--text-2xl-compact` left this list early (`#297`): it had zero consumers, so retiring it needed no tranche and rendered identically. | Contract ratchet extension, planned. |

## 7 · Usage rules — allowed and forbidden, per group

Expand Down
Loading
Loading