|
| 1 | +# PAPER-00 · Master Tracker · Paper & Graphite, Ember Edition Overhaul |
| 2 | + |
| 3 | +## Thesis |
| 4 | + |
| 5 | +Adopt the **Paper & Graphite, Ember Edition** visual + interaction system across the Taskdeck frontend. The system encodes the product's core thesis — capture → review → apply with no silent mutations — directly in materials (cream paper, hairline rules, italic serif, single seal-red ember accent) rather than helper labels. Trust signals are physical: applied stamps emboss, undo windows literally erase as the 6-hour grace closes. |
| 6 | + |
| 7 | +Source of truth: `design_handoff_taskdeck_paper/` checked into the repo (README + JSX prototypes + `paper/tokens.css`). |
| 8 | + |
| 9 | +## Strategic intent |
| 10 | + |
| 11 | +- Replace the current Obsidian-toned shell across all primary surfaces with Paper-Light as canonical, Paper-at-Night as the dark companion (strict mirror of metaphor). |
| 12 | +- Make Review the centerpiece: implement the *deep* version with provenance, side-effects, conflicts, history, confidence dial, undo timeline, similar-past decisions. |
| 13 | +- Replace every `loading…` / spinner state in LLM flows with **Ink Bleed** — a 5-phase, 4.6s motion that dries to a stamp. |
| 14 | +- Keep behavior unchanged: this is presentation + interaction polish, not a backend rewrite. All capture / proposal / approval semantics remain the same. |
| 15 | + |
| 16 | +## Non-goals |
| 17 | + |
| 18 | +- No backend changes beyond what surface needs require (e.g., new fields the dossier needs). |
| 19 | +- No new product features beyond what the design implies (e.g., "Seal day", "A line for tomorrow", undo timer). |
| 20 | +- No removal of the existing `--td-*` token system in this overhaul. Paper sits parallel under `.paper` / `.paper-night` scope until migration is ready to flip canonical. |
| 21 | +- Multiplayer/CRDT explicitly out of scope. |
| 22 | + |
| 23 | +## Phasing |
| 24 | + |
| 25 | +### Phase 1 · Foundation (must land first, blocks everything else) |
| 26 | +- **PAPER-01** Tokens + theme classes + fonts + paper substrate |
| 27 | +- **PAPER-02** Component primitives (Stamp, HLBtn, Tagstamp, Card, kbd, hairline icons) |
| 28 | + |
| 29 | +### Phase 2 · Shell |
| 30 | +- **PAPER-03** Sidebar + TopBar in Paper |
| 31 | + |
| 32 | +### Phase 3 · Surfaces (parallelizable after Phase 1+2) |
| 33 | +- **PAPER-04** Home / morning reset |
| 34 | +- **PAPER-05** Board / kanban with index card variant |
| 35 | +- **PAPER-06** Review *deep* — central surface |
| 36 | +- **PAPER-07** Inbox / capture (composer + nib) |
| 37 | +- **PAPER-08** Today / end-of-day dossier |
| 38 | +- **PAPER-09** Misc surfaces (Card detail, ⌘K palette, Shortcuts overlay, Toasts, Empty states) |
| 39 | + |
| 40 | +### Phase 4 · Motion + responsive + dark |
| 41 | +- **PAPER-10** Ink Bleed motion system (signature LLM thinking state) |
| 42 | +- **PAPER-11** Narrow companions (375 phone, 768 tablet) |
| 43 | +- **PAPER-12** Paper at Night dark theme verification across all surfaces |
| 44 | + |
| 45 | +## Acceptance gates per slice |
| 46 | + |
| 47 | +Every slice must: |
| 48 | +- Land behind the Paper feature flag (or `.paper` body class scope) so existing Obsidian surfaces remain green during migration. |
| 49 | +- Ship vitest unit/component tests for new primitives + DOM-level assertions for view changes. |
| 50 | +- Pass `npm run typecheck` + `npm run lint` (max 20 warnings) + backend `dotnet build` if backend touched. |
| 51 | +- Pass an adversarial review pass that explicitly checks: token misuse, ember-accent overuse (must remain ≤5% of any surface's surface area), serif italic in non-decision copy, missing reduced-motion fallback for any animation, focus rings replacing browser default, hairlines surviving zoom 200%. |
| 52 | +- Update `docs/STATUS.md` if user-visible behavior changes; cross-link the master tracker. |
| 53 | + |
| 54 | +## Risk register |
| 55 | + |
| 56 | +- **Token collision** — `--td-*` and Paper variables both define ember/paper hues. Mitigation: scope all Paper variables under `.paper`/`.paper-night` and namespace anything new (`--td-paper-*`). |
| 57 | +- **Serif loading** — Fraunces is heavy and italic-variable. Self-host with `font-display: swap` to avoid FOUC; pre-cache critical weights. |
| 58 | +- **Density** — Paper is a high-density system. 200-card boards must remain frame-stable. Re-verify the perf budget (`docs/PERFORMANCE_BUDGETS.md`). |
| 59 | +- **Accent overuse** — single-pigment metaphor breaks if ember leaks into incidental UI. Linter rule: ember class allow-list per surface. |
| 60 | +- **Motion accessibility** — Ink Bleed is bold motion. `@media (prefers-reduced-motion)` must reduce to a 200ms opacity fade, no exceptions. |
| 61 | + |
| 62 | +## Reference |
| 63 | + |
| 64 | +- README: `design_handoff_taskdeck_paper/README.md` (canonical spec) |
| 65 | +- Tokens: `design_handoff_taskdeck_paper/paper/tokens.css` |
| 66 | +- Components: `design_handoff_taskdeck_paper/paper/components.jsx` |
| 67 | +- Surfaces: `design_handoff_taskdeck_paper/paper/surface-*.jsx` |
| 68 | +- Prototype entry: open `design_handoff_taskdeck_paper/Taskdeck Paper Edition.html` in a browser |
| 69 | + |
| 70 | +## Definition of done for the whole tracker |
| 71 | + |
| 72 | +- All PAPER-01 .. PAPER-12 closed and merged behind the Paper flag. |
| 73 | +- A `/styleguide?theme=paper` (and `paper-night`) page renders every component primitive + every surface. |
| 74 | +- A workspace toggle promotes Paper to canonical; a follow-up tracker decommissions Obsidian. |
| 75 | +- Adversarial review on the integrated experience signs off on accent discipline and motion accessibility. |
| 76 | + |
| 77 | +--- |
| 78 | + |
| 79 | +## Child issues |
| 80 | + |
| 81 | +| Phase | Issue | Title | |
| 82 | +|---|---|---| |
| 83 | +| 1 | #997 | PAPER-01 · Foundation — tokens, theme, fonts, substrate | |
| 84 | +| 1 | #998 | PAPER-02 · Component primitives | |
| 85 | +| 2 | #999 | PAPER-03 · Sidebar + TopBar shell | |
| 86 | +| 3 | #1000 | PAPER-04 · Home / Reset | |
| 87 | +| 3 | #1001 | PAPER-05 · Board / Kanban | |
| 88 | +| 3 | #1002 | PAPER-06 · Review (Deep) | |
| 89 | +| 3 | #1003 | PAPER-07 · Inbox / Capture | |
| 90 | +| 3 | #1004 | PAPER-08 · Today / End-of-day dossier | |
| 91 | +| 3 | #1005 | PAPER-09 · Misc surfaces | |
| 92 | +| 4 | #1006 | PAPER-10 · Ink Bleed motion | |
| 93 | +| 4 | #1007 | PAPER-11 · Narrow companions | |
| 94 | +| 4 | #1008 | PAPER-12 · Paper at Night | |
0 commit comments