diff --git a/data/outstanding-issues-snapshot.json b/data/outstanding-issues-snapshot.json
index a73d39cbd1..1585339fbc 100644
--- a/data/outstanding-issues-snapshot.json
+++ b/data/outstanding-issues-snapshot.json
@@ -10,7 +10,7 @@
"p2": 49,
"p3": 31,
"queued": 7,
- "pending": 9,
+ "pending": 17,
"resolved": 431
},
"queue": [
@@ -824,12 +824,30 @@
}
],
"pending": [
+ {
+ "request_id": "17e26e25-5180-4ed4-9391-834ec456d605",
+ "action": "done",
+ "summary": "#G693BZ: Verified PanelSection extracted in panel-primitives.tsx and adopted across routes, documentation, test-health, review-state, and ledger pages.",
+ "created_at": "2026-08-27"
+ },
+ {
+ "request_id": "2f077536-00d5-46da-a7c2-63ad9d0221e5",
+ "action": "done",
+ "summary": "#76GGRG: Standardized Useful actions to role=group disclosure model with plain buttons and added Escape handling for mode picker.",
+ "created_at": "2026-08-27"
+ },
{
"request_id": "39bc43fc-7bd7-4088-a7e4-4d29d3d418d5",
"action": "done",
"summary": "#4AM8Z0: Added Ramipril and Simvastatin to medication catalogue with full interaction, dosing, and contraindication profiles; rebuilt interaction index and asserted in tests/medication-badges.test.ts",
"created_at": "2026-08-27"
},
+ {
+ "request_id": "3ac44d1e-88b8-4676-97e5-aa83d615fc98",
+ "action": "done",
+ "summary": "#XKS6FD: Added first-class mode live to Freshness type and resolveLiveFreshness helper displaying read live status.",
+ "created_at": "2026-08-27"
+ },
{
"request_id": "44e5f87c-d30f-4334-9184-75c1544773ef",
"action": "done",
@@ -848,6 +866,12 @@
"summary": "/calculators/search keeps a 2px residual scroll range at 1280x1200 after the dead-scroll sweep",
"created_at": "2026-08-27"
},
+ {
+ "request_id": "74818f95-4e71-4808-bec2-ff7ffb233ac1",
+ "action": "done",
+ "summary": "#Y0BDBJ: Implemented ReviewStateTable with 50-item responsive pagination reducing HTML payload from 1.73 MB to <100 KB.",
+ "created_at": "2026-08-27"
+ },
{
"request_id": "8324c7e4-18fb-4073-ba6b-ae46920f768d",
"action": "update",
@@ -866,6 +890,18 @@
"summary": "Ward Flow pinned-clock fix is committed only to an unpushed local branch, and the Phase 6 morning page still carries the defect, its workaround, and an untested D5 branch",
"created_at": "2026-08-27"
},
+ {
+ "request_id": "a6215b70-c84e-41b3-8828-b170c00a1b49",
+ "action": "done",
+ "summary": "#FDST2Q: Implemented formatRelativeAge formatting sub-60-minute durations as just now or < 1 hour ago instead of 0 hours ago.",
+ "created_at": "2026-08-27"
+ },
+ {
+ "request_id": "af496d9a-fd58-4984-b216-efcf2495fd67",
+ "action": "done",
+ "summary": "#WG24JB: Wired confirmed-today and predicted-today headline cards in CapacityView to /mockups/ward-flow/discharges with tests.",
+ "created_at": "2026-08-27"
+ },
{
"request_id": "af8b8fb0-3930-43a6-8d06-c897866a86b9",
"action": "add",
@@ -877,6 +913,18 @@
"action": "done",
"summary": "#DTSABC: Authored Form 12A statutory Authority and Criteria prose from committed PDF and asserted in tests/forms.test.ts",
"created_at": "2026-08-27"
+ },
+ {
+ "request_id": "dece668d-e5da-4d9f-bf44-d3abed47e492",
+ "action": "done",
+ "summary": "#HX1KSZ: Codified 3-way component-metric boundary rule in docs/design-system/GATES.md section 3 prohibition table without value conversions.",
+ "created_at": "2026-08-27"
+ },
+ {
+ "request_id": "fed7ba66-652e-4081-8845-3c3b70496507",
+ "action": "done",
+ "summary": "#ZW43ZT: Bypassed GlobalMockupSearchShell for /mockups/development in MockupsLayoutClient to eliminate duplicate dev main landmark collisions.",
+ "created_at": "2026-08-27"
}
]
}
diff --git a/data/repo-awareness-snapshot.json b/data/repo-awareness-snapshot.json
index 537bc0f14e..a412a5ca64 100644
--- a/data/repo-awareness-snapshot.json
+++ b/data/repo-awareness-snapshot.json
@@ -1,8 +1,8 @@
{
"version": "repo-awareness-snapshot-v1",
"captured_revision": {
- "sha": "f36f94da025fa080d71ace0dce6672a9907a122c",
- "committed_at": "2026-08-28T01:34:34+08:00"
+ "sha": "79611b0ce313799d9332fcd4ae30d9bfcd3b6027",
+ "committed_at": "2026-08-27T19:57:02+00:00"
},
"routes": {
"modes": [
diff --git a/docs/design-system/GATES.md b/docs/design-system/GATES.md
index 0414812bcd..7387ca9b74 100644
--- a/docs/design-system/GATES.md
+++ b/docs/design-system/GATES.md
@@ -146,34 +146,35 @@ theme-list parity, and remote design-project publication remain separate concern
## 3 · The prohibition table
-| Never do this | Gate | Status |
-| -------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| Reintroduce `.ckb-v2:not(.dark)` | Cascade computed-style test (PR 1) + contract-test selector filter update | implemented-blocking — landed #1538; contract parser + dark-ink regression guard |
-| Add `prefers-color-scheme` rules to the v2 layer | — (users pin a theme against OS preference) | **manual** |
-| Paint a numeral with a status colour; use amber/red decoratively | `check:design-system-contract` — `statusColouredNumerals` + `colourOnlyStatusIndicators` | **implemented-blocking** — both metrics and their per-path baselines are pinned at **0**; see §5 |
-| Put `--decoration-soft`/`--text-soft` on a text node | Tier pinned both sides in the token contract; recipe AST (`decoration-on-text.contract.test.ts`) | implemented-blocking (recipes); broader AST follow-on |
-| Uppercase a dose unit | `Quantity` pins `normal-case` + unit test | implemented-blocking (branch) |
-| Invert a PDF, diagram or clinical image in any theme | `check:design-system-contract` — `imageInversions`, pinned at **zero**, not ratcheted | **implemented-blocking** (9 Aug 2026) — CSS `filter`/`backdrop-filter` plus the Tailwind `invert`/`hue-rotate` utilities; see §5 |
-| Border **and** ring on one surface, or a 1px spread in a drop shadow | `check:design-system-contract` — `edgeOwnershipConflicts` (6) + `onePixelShadowSpreads` (0) | **implemented-blocking for new use** — AST/CSS ratchets with per-path pins; the recorded debt itself is Gate 8's remaining half |
-| A child shadow heavier than its parent's | Gate 7 | implemented-partial |
-| Use `--shadow-tight`/any alias in new code | `check:design-system-contract` — `legacyShadowAliases`, ratcheted at 34 with per-path pins | **implemented-blocking for new use** — a new alias in any file fails. `--shadow-tight` itself is retired onto `--e1` and additionally pinned by a tracked-tree sweep in `tests/design-token-contract.test.ts` (it was silently reverted once by the `acf78bf` merge); the remaining 34 are the other six aliases after the e2 (`--shadow-card`/`--shadow-soft`) family pay-down, still `#262` |
-| Raw pixel size, padding, radius, gap or line-height in markup | `check:design-system-contract` — `rawPaddingLiterals` (52), `rawRadiusLiterals` (20), `rawGapLiterals` (25), `rawMarginLiterals` (74), `rawLineHeightLiterals` (0) | **implemented-blocking for new use** (9 Aug 2026) — per-path ratchets over both the utility and the CSS-declaration spelling, so a literal cannot move into `globals.css` to escape. Values containing a CSS function (`env(`, `clamp(`, `max(`, `calc(`) are sanctioned computed forms and exempt. Raw _size_ is still covered only for tap/shadow/colour |
-| Animate `width`, `height`, `grid-template-*`, `top`, `left`, `gap` | `check:design-system-contract` — `layoutTransitionExceptions`, ratcheted at 11 with per-path pins | **implemented-blocking for new use** — `SAFE_TRANSITION_PROPERTIES` carries the compositor-only allowlist; phone chrome's deliberate `grid-template-rows` is in the recorded 11 |
-| Hardcode a transition duration | `check:design-system-contract` — `hardcodedMotionClasses` (**zero**) + `hardcodedCssMotionDurations` (41) | **implemented-blocking** for the Tailwind `duration-*`/`delay-*`/`transition-all` form; the CSS form is a ratchet, so its 41 are debt |
-| A `z-[N]` literal outside the named rungs, in JS/TS only | `require-z-index-ladder` (ESLint) | implemented-blocking. Scope: `z-[N]` literals in JS/TS AST nodes. Plain `z-30` utilities and every `.css` / `.module.css` declaration are invisible to an ESLint rule - `sidebar-live-shell.module.css` carries an off-ladder `z-index: var(--z-sidebar-flyout, 50)` this cannot see. |
-| Ship a registered component without a direct publication test | Gate 12 | implemented-blocking |
-| Lower a production tap target below 48px | `check:design-system-contract` — `interactiveTapFloorDeclarations` (9) + Gate 2's phone-viewport `ui-style-contract` audit + `ui-smoke` flake history | **implemented-blocking for new use** (15 Aug 2026) — a new interactive control declaring a sub-floor `min-h-*`, including comparable arbitrary values and any reachable conditional branch, fails on both the total and its own path; the 9 recorded sites remain debt. Component-wrapper tags such as `` are a known blind spot |
-| Construct an enabled control with no action, destination or name | PR 4 discriminated unions + DOM contracts; `require-button-wiring` covers raw `