Mark
8d1c8fb0cc
docs(01-12): create Plan 01-12 (Design Integration; R2 Lora unblocks; 7 waves)
Final designer reply received 2026-05-19 unblocks Plan 01-12: R2
substitution — replace Newsreader with Lora (OFL, Cyreal foundry, full
Cyrillic-Latin parity, variable wght 400-700). All 9 brand decisions
now resolved; R2 displaces Newsreader from `--mks-font-display`.
Plan structure: 7 waves, 10 tasks.
- Wave 0 (TDD scaffolds): 6 RED unit tests — tokens-adopted,
fonts-present, icons-present, no-remote-fonts, manifest-i18n,
locale-parity. Each RED until its corresponding artifact wave lands.
- Wave 1: Self-host OFL font bundle (Lora variable normal + italic,
Plex Sans ×4, Plex Mono ×2) at src/shared/fonts/ via pyftsubset
(Latin + Cyrillic basic subset); land src/shared/tokens.css canonical
(Google Fonts @import → 7 local @font-face rules; Newsreader → Lora
per R2; .mks-word class added per RESEARCH §8 + lockup SVG line 21).
- Wave 2: Rasterize Loom mark to icons/icon{16,48,128}.png via
rsvg-convert; overwrite Bug A placeholders; 8-bit RGBA at all sizes.
- Wave 3: Land _locales/{en,ru}/messages.json (12 keys: 8 Brief §02
operator strings + 4 supporting keys); manifest.json → __MSG_extName__
+ __MSG_extDesc__ + default_locale 'en' + action.default_title.
extName='Mokosh — Session Capture' per D-07 user override; extDesc per
D-08 brand-decisions-v1.md wording.
- Wave 4: src/popup/ + src/background/ adopt tokens.css (loom palette)
+ chrome.i18n.getMessage at every operator-facing copy site; replace
hex literals with var(--mks-*) references; BADGE_REC_COLOR madder
'#b2543d' (= --mks-madder-600 per D-04 + RESEARCH §10 Open Q A7).
- Wave 5: Welcome page conditional migration (if 01-10 landed, swap
welcome-tokens.css → @import canonical tokens.css; migrate copy.ts
shim to chrome.i18n.getMessage fallback); add __VITE_DEV__ define
per RESEARCH §12 D-09 spirit; scripts/README.md smoke-isolation note.
- Wave 6: UAT harness A18-A22 (font reachability via document.styleSheets
walk + fetch + byteLength; icon-not-placeholder via fingerprint diff;
manifest:name === 'Mokosh — Session Capture'; --mks-font-display
resolves to Lora via getComputedStyle; welcome tokens loaded
conditional on 01-10). Tier-1 forbidden-strings UNCHANGED at 10.
- Wave 7: Operator empirical brand-fit checkpoint (last Phase 1 gate);
SUMMARY + STATE.md + ROADMAP.md sync.
ROADMAP.md Phase 1 plan list extended from 7 → 13 entries (gap noted in
01-13 SUMMARY's known-limitations now closed).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-19 14:59:59 +02:00
..
2026-05-17 16:05:17 +02:00
2026-05-15 17:07:49 +02:00
2026-05-15 17:19:48 +02:00
2026-05-15 16:49:59 +02:00
2026-05-15 17:28:49 +02:00
2026-05-15 17:07:49 +02:00
2026-05-15 17:42:21 +02:00
2026-05-15 17:07:49 +02:00
2026-05-15 17:54:04 +02:00
2026-05-15 17:07:49 +02:00
2026-05-15 18:07:07 +02:00
2026-05-15 17:07:49 +02:00
2026-05-15 18:17:43 +02:00
2026-05-15 16:50:32 +02:00
2026-05-15 22:02:11 +02:00
2026-05-17 09:19:22 +02:00
2026-05-17 09:29:26 +02:00
2026-05-19 10:50:13 +02:00
2026-05-17 15:49:24 +02:00
2026-05-19 14:23:56 +02:00
2026-05-18 14:02:38 +02:00
2026-05-17 17:42:40 +02:00
2026-05-18 14:02:38 +02:00
2026-05-19 14:59:59 +02:00
2026-05-17 21:23:27 +02:00
2026-05-18 14:28:04 +02:00
2026-05-19 13:46:49 +02:00
2026-05-17 09:19:22 +02:00
2026-05-15 15:40:44 +02:00
2026-05-15 16:37:45 +02:00
2026-05-15 16:50:40 +02:00
2026-05-16 11:06:48 +02:00
2026-05-15 22:35:00 +02:00
2026-05-16 18:57:48 +02:00
2026-05-15 16:10:12 +02:00
2026-05-16 11:12:52 +02:00