7 Commits
Author SHA1 Message Date
araharah-executor 7d6845a05b fix(01-04): wire theme gallery script — repair root delegate per 01-01 contract
- root 'npm run gallery' delegate pointed at a missing theme script since wave 1
  (01-01 contract: plan 04 wires the 'gallery' slot; tasks 1-2 wired audit/capture only)
- gallery = one-command DSGN-02 review loop: build -> capture -> serve theme/ on :8123
  (fresh-checkout safe: dist + captures regenerate; fallback contract intact per D-06)
- verified: JSON valid in both manifests; resolution from root + theme; build 114ms;
  CAPTURE OK 6/6 non-blank (sheet + basemap byte-identical to approved set, mockups
  <=107B render variance, zero fallbacks); AUDIT CLEAN (354 declarations, 0 off-token);
  serve link proven live (basemap:preview serving gallery.html 200 on :8123)
2026-10-22 08:53:22 +08:00
araharah-executor b462936678 feat(01-04): Playwright capture toolchain + DSGN-02 approval gallery (D-14, D-12)
- screenshot.mjs: committed real-browser capture tool — tiny node static
  server (theme/ docroot), sheet fullPage capture (390px), 4 mockup captures
  via file:// (network CDN renders; committed screen.png fallback on failure —
  mockups never edited, D-06), basemap capture gated on the proof page's
  RAMS-BASEMAP-READY console signal + 2s tile settle (1280x800); blank gate
  >=10KB per capture; wired as root+theme `capture`
- gallery.html: the DSGN-02 mechanism template — 4 mockup-vs-sheet comparison
  rows + basemap direction row + token ledger (13 typography specimens + 6 hero
  color swatches, names only per D-07) + approval scope strip; CDN-free, built
  from dist/rams.css + var()-only page shell; every later UI phase extends
  this same page
- audit.mjs: gallery.html registered as an implementation page — audit
  covers its <style> block + style attributes + class harvest (354
  declarations, still 0 off-token)
- verified: CAPTURE OK 6/6 (45KB-1.2MB), gallery render check 0 failed
  requests / all 6 images decode, AUDIT CLEAN
2026-10-22 08:31:14 +08:00
araharah-executor b39317de64 feat(01-04): automated off-token audit (GREEN) — D-13
- audit.mjs: zero-dep rendered-CSS scanner — flags off-token hex/rgb()/hsl()
  literals, non-sanctioned font families, non-zero border-radius, box-shadow,
  backdrop-filter, blur/drop-shadow; violations printed as file:line: declaration
- drift guards (exit 2): <40 color tokens, any non-zero --radius-* token,
  missing token sheet / registered page / CSS input — no silent passes (T-1-07)
- scope adjudication: framework layers + @property --tw-* skipped; @layer
  utilities audited only for classes used by implementation pages (mockup
  vocabulary is reference material, D-06; sheet/basemap pages are the registry)
- token-hue+alpha 8-digit forms sanctioned; rounded-full sanctioned as circle
  primitive (spec geometry — puck/medallion signets); 50% radius stays flagged
- wired: theme npm audit + test scripts (root audit delegate resolves)
2026-10-22 08:26:57 +08:00
araharah-executor 2332779ad6 feat(01-design-tokens-rams-foundation-03): browser proof page — Rams basemap + signal-orange route placeholder at KL metro
- index.html: MapLibre GL v4 viewer loading ./liberty-rams.json at the KLCC anchor (101.6958, 3.1513, zoom 13); page chrome token-only (var(--color-*) via ../dist/rams.css, self-hosted Geist/Space Grotesk per D-10/D-16)
- placeholder route vector: 6px signal-orange polyline + 1px matte-black dashed centerline (mockup route ribbon), color read from the token package at runtime (var(--color-signal-orange)); route layers added LAST (accent lives above grayscale, never inside it); README comment marks the vector as consumed by Phase 5
- basemap:preview script: python3 -m http.server 8123 (cwd=theme serves /basemap/ + /dist/rams.css + /fonts within one docroot — plan's cd-variant was doubly broken; open http://localhost:8123/basemap/)
- real-browser render proof (scratch, plan 04 owns committed capture tooling): 8/8 checks pass — maplibre style validation clean, zero failed requests/non-200s, 296 sampled orange route pixels, 0 saturated non-red-hue pixels (grayscale grounding proven pixel-level), 100% warm-gray map area, header chrome rgb(26,26,26)
2026-10-22 08:10:05 +08:00
araharah-executor 891caa1c5f feat(01-design-tokens-rams-foundation-03): Rams cartography basemap — liberty fork derived from token package
- build.mjs: fetches OpenFreeMap liberty style, parses theme/src/tokens.css, derives the full role palette in-script via desaturate(tokenHex, satMultiplier, lightnessPerRole) — no hand-tuned cartography hex (D-09)
- liberty-rams.json (110 layers): grayscale/muted land + water, desaturated roads (hierarchy by weight only), muted matte-black labels at reduced opacity, zero-radius aesthetic enforced (halo-blur zeroed, building-3d faux-3D removed) (D-08)
- accent guard: build fails if #EB8008/#ED3F1C/#736B1E (or rgb forms) leak into layers — route accent reserved for Phase 5
- D-10 font fallback: Space Grotesk/Geist probed on glyphs endpoint (404) → Noto Sans Bold/Regular substituted, recorded in style.metadata rams-font-substitutions
- raster relief desaturated (raster-saturation -1); derivation provenance embedded in style.metadata rams-cartography
- theme/package.json: basemap script
2026-10-22 08:05:54 +08:00
araharah-executor e95f4043b9 feat(01-design-tokens-rams-foundation-02): rendered component sheet — all mockup-derived families via token package
- sheet.html: typography specimen (all 13 scale entries), buttons, inputs, chips (CONGESTION / CRASH / BLOCK / POLICE RADAR), telemetry card (SEC-04 // SPEED), maneuver banner, checkbox + two-way toggle
- consumes built dist/rams.css only; markup uses component classes, no utility soup; inline SVG icons (no icon-font CDN, D-16); shell consumes --shell-bg/--shell-on-surface slots (D-04)
- package.json: sheet script (build + open hint)
- real-browser computed-style audit: 41/41 checks render from tokens; woff2 fonts verified loaded
2026-10-22 07:52:56 +08:00
araharah-executor 8dea270bbe chore(01-design-tokens-rams-foundation-01): scaffold npm workspace + theme package
- Root package.json: araharah, private, type module, workspaces [theme], scripts delegating to theme (build/sheet/gallery/audit/capture)
- theme/package.json: @araharah/theme with tailwindcss v4 + @tailwindcss/cli v4 devDeps, playwright dep (plan 03/04 captures), build + send scripts (D-15, D-17 local-only)
2026-10-22 07:33:18 +08:00