docs: D1-A recorded (glyph buckets, boundary channel completed, primitives)
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QJs13VsyiSKYQP6rj3NNmc
This commit is contained in:
@@ -873,6 +873,37 @@
|
||||
> `enabled:false`) → **D6 large surface builds** (Offseason trio · S3 article media · The Report email
|
||||
> + archive · the S2 primitive set, with the crown ALSO held by measurement).
|
||||
|
||||
> ## 🎨 D1-A SHIPPED 2026-07-31 — glyphs · boundary channel · reaction primitives · READ-FAB
|
||||
> Additive frontend/visual. **Backend untouched** (`git diff src/` empty) — no grade, model,
|
||||
> classifier or ledger change. **41→74 registry expansion HELD for D1-B.**
|
||||
> **REVIEW ZERO — classifier coverage bounded the wiring, and the computation took THREE passes to
|
||||
> get right:** the frontend keys `GLYPHS` by **archetype name** while the backend keys `glyph:` by
|
||||
> **shape name**, and most registry keys are **unquoted identifiers** — my first two parses mis-read
|
||||
> both and produced spurious buckets. Correct result: **(a) 38 already wired · (b) 6 classifier-backed
|
||||
> with a package SVG, NOT wired → WIRED HERE · (c) 39 package SVGs with no classifier → HELD for D1-B
|
||||
> (wiring them renders nothing) · (d) 2 classifier-backed with NO package SVG (`dual threat`,
|
||||
> `paint boss`) → a DESIGN gap, not a build gap, flagged for D1-B.**
|
||||
> **THE 6 WIRED = MMA/combat archetypes** (striker · grappler · pressure · counter · grinder ·
|
||||
> finisher) that were rendering **EMOJI fallbacks** (`✦ ⊗ ➤ ◊`) where the package ships real 24-grid
|
||||
> duotone marks. GLYPHS **38 → 44 keys**, deliberately far short of the package's 83.
|
||||
> **BOUNDARY CHANNEL COMPLETED.** The `--priced-out` token set already existed and was applied on
|
||||
> `NoMarketState` + the scan void box — but **PriceTriplet's `NO_MODEL` ("line not priced") still
|
||||
> rendered in neutral text**, so the third colour law was applied inconsistently. It now renders in
|
||||
> the channel → **every boundary state, or none**. Token-only: no hex fallback AND no hex in prose
|
||||
> (PriceTriplet's own no-literal-hex test caught both).
|
||||
> **REACTION PRIMITIVES** — new `web/src/lib/reactions.js` + globals.css keyframes at the **exact
|
||||
> HANDOFF timings: flash .75s ease-out · boot stagger 60ms steps · reactions gated 1.5s · WIRE hold
|
||||
> 6s**. **`nudge()` REFUSES a no-op** (null/absent direction → no flash) so it cannot be attached to
|
||||
> an idle loop — *a flash without a new datum is the UI lying about the feed*. Reduced-motion honoured.
|
||||
> **READ-FAB** aligned to exact package geometry: **50px circle · translateY(-14px) · 6px void ring**
|
||||
> (was 46px / marginTop −16 / 3px).
|
||||
> **AUDIT CORRECTION: the `#0E0E14` card token was ALREADY tokenised** as `--bg-1`/`--card` — the
|
||||
> audit's "1 file" counted the raw hex, not the token. No change needed.
|
||||
> **FLOOR: 317 suites / 3,946 tests green (16 new), web build exit 0.**
|
||||
> **⚠️ NOT DONE THIS ORDER (reported, not silently dropped): row-hover rationale +
|
||||
> IntersectionObserver reveal (Phase 3.8) and team-gradient chips (Phase 4.10)** — both need the
|
||||
> System artboard's row anatomy ported, which is a larger job than the rest of D1-A. They stay in D1.
|
||||
|
||||
- **Redirect EXISTS + WIRED:** `closingCapture.buildCaptureRows`→`closing_captures` (append-only,
|
||||
provenance: captured_at/book/line_type/both-prices/missed_reason) via `intradayRefreshService:221`
|
||||
+ internal endpoint; `ledgerService.attachClosingProb`→`closing_prob` (de-vigs both raw sides,
|
||||
|
||||
Reference in New Issue
Block a user