SPEC v0.3: orchestrator resolutions of the plans' open points

Records D-004 and D-015 to D-025: shells and ownership, server seams
(router middleware, rate_limit layer, tasks::start, AuditWriter and PushQueue
traits, next_occurrence_date in kvitt-domain, M3 owns recurring generation,
M4 lands after M3), OpenAPI parsed-value equality, feature convention and
strings, empty fake scenario and resolveRange exception, shared ledger rows and
editor fields in :core:design, no bundled font, pruning at 04:00, development
infrastructure as M2c-dev built it, M2c-pi allowances, release keystore,
production import procedure. Plans and prompts close their open points;
HANDOFF rewritten to the real state; CLAUDE.md: implementation agents never
edit SPEC.md or docs/decisions.md.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-17 21:23:38 +02:00
parent c885aba313
commit 76ee957f41
45 changed files with 501 additions and 342 deletions
+7 -7
View File
@@ -26,7 +26,7 @@ Read these, in this order, and nothing else before starting. Everything the UX w
- Money format sv `1 234,50 kr` with U+00A0; dates in lists `3 okt.`, detail `lördag 3 oktober 2026`, times `14:02` (§9.8).
- Balance wording: "<Other> owes you X", "You owe <Other> X", "All settled up" (account screens "Settled up") (§9.3); effect lines "You lent", "You borrowed", "Not involved", "Paid for yourself" (§9.2).
- Phase 1 screens per direction: S-4 Home, S-7 Expense editor, S-5 Account detail, S-9 Settle up, S-11 Analytics, S-8 Expense detail with timeline, each light and dark, Swedish, names "Jacob" and "Anna", Swedish shops and amounts, no lorem ipsum (§13.4).
- No external requests except Google Fonts, and only for a font whose licence allows bundling as an Android font resource (§13.4).
- No external requests except Google Fonts (§13.4). The app bundles no font and uses the Material 3 default typeface (D-020); a direction may preview another typeface, but U2's design spec replaces it with the default.
- Suggested starting points "Kvitto", "Skärgård", "Kontor" may be used, replaced or merged; at least two clearly different directions (§13.4).
- The UX agent writes no Kotlin (§13, §13.5).
@@ -42,7 +42,7 @@ Edit nothing outside these paths; a needed change elsewhere is a contract reques
- `docs/ux/directions/README.md`: comparison table (character, strengths, risks, implementation cost in Compose) and the recommendation with reasons.
## 6. Steps
1. Worktree. From the main checkout `/Users/jhag/projects/kvitt`: `git worktree add .claude/worktrees/agent-ux -b agent-ux main`, then in `.claude/worktrees/agent-ux`: `git reset --hard main`. No git-ignored files are needed for this plan; do not copy any. Do not use the old `UX-sprint` branch or any worktree outside `/Users/jhag/projects/kvitt`.
1. Worktree. The owner runs the UX sprint in a separate session in the worktree `~/orca/workspaces/kvitt/UX-sprint` on branch `UX-sprint`; work only there and `git rebase main` before reporting. No git-ignored files are needed for this plan; do not copy any.
2. Read §2 of this plan in order.
3. Choose 2 or 3 directions (start from §13.4's suggestions or replace them) and write one paragraph each in `docs/ux/directions/README.md` before drawing anything.
4. Build the realistic Swedish data set once (shared by all directions): users Jacob and Anna; accounts such as "Vardag", "Huset", "Japan 2027" plus one archived account; expenses at Swedish shops (ICA, Coop, Systembolaget, SJ, Clas Ohlson) with amounts that exercise thousands separators; one recurring expense; a settlement with two allocations; a timeline with create and change lines per AC-12.4 and a pending line per AC-12.5; analytics over `last_6_months` by category.
@@ -51,11 +51,11 @@ Edit nothing outside these paths; a needed change elsewhere is a contract reques
7. Export PNGs of every screen of every direction into `png/`. Use a headless browser already installed on this Mac (check with `command -v`; for example Google Chrome's `--headless --screenshot`). If none is installed, stop and ask; do not install tools without the owner's yes.
8. Write the comparison table and recommendation in `docs/ux/directions/README.md`.
9. Self-check the gate (§7): open each `index.html` (file loads with no external request other than Google Fonts), every screen listed for phase 1 appears in each direction, all copy Swedish, no placeholder text. Grep the HTML for `lorem`, `TODO`, `XXX`, `placeholder`.
10. Commit on `agent-ux` (only files under `docs/ux/`), then `git rebase main`. Never merge, push or remove the worktree.
10. Commit on `UX-sprint` (only files under `docs/ux/`), then `git rebase main`. Never merge, push or remove the worktree.
## 7. Gate
From SPEC §11.2, verbatim: "Files exist and open; every screen of §13.3 appears in each direction; Swedish copy, no placeholder text".
Green means: every deliverable of §5 exists; each `index.html` opens in a browser offline (Google Fonts excepted); each direction shows each phase-1 screen of §13.4 (S-4, S-7, S-5, S-9, S-11, S-8) in light and dark; every visible string is Swedish; a grep for `lorem|TODO|XXX` in `docs/ux/` returns nothing. Note: §11.2 says "every screen of §13.3" while §13.4 lists six screens for phase 1; deliver the six of §13.4 and state in the report how the other screens are covered (see the report's open questions) unless the start prompt says otherwise.
From SPEC §11.2 (v0.3), verbatim: "Files exist and open; each direction shows the six phase-1 screens of §13.4 (S-4, S-7, S-5, S-9, S-11, S-8) in light and dark; Swedish copy, no placeholder text".
Green means: every deliverable of §5 exists; each `index.html` opens in a browser offline (Google Fonts excepted); each direction shows each phase-1 screen of §13.4 (S-4, S-7, S-5, S-9, S-11, S-8) in light and dark; every visible string is Swedish; a grep for `lorem|TODO|XXX` in `docs/ux/` returns nothing.
## 8. HUMAN steps
From SPEC §11.2, verbatim: "Review 2-3 directions, pick one, give comments".
@@ -70,11 +70,11 @@ Where in the flow: after this plan's report, the orchestrator shows the owner th
- M6 design system work and any Android code.
## 10. Report
- Branch `agent-ux` and the head commit hash after rebasing on `main`.
- Branch `UX-sprint` and the head commit hash after rebasing on `main`.
- Gate: the list of files produced (per direction, count of PNGs) and the result of the placeholder grep.
- Fonts chosen per direction with their licence and whether they bundle as Android font resources; any other external dependency.
- The recommendation in one line.
- Open questions and spec gaps with section numbers (including how the "every screen of §13.3" gate wording was handled).
- Open questions and spec gaps with section numbers.
- Numbering used (none expected; say `none`).
- HUMAN step to relay: "Review 2-3 directions, pick one, give comments", with the PNG paths.