Files
kvitt/prompts
jacobh2 6dce4c73a9 SPEC v0.4: M2a and M2b decisions, handoff to the real state
Records the decisions proposed in the M2a (fdf2093) and M2b (fad6fc9)
reports: D-005 OpenAPI equality normalisations and CommonRules, D-006
bp_sum_not_10000 token, D-007 per-crate no-unwrap deny, D-010 Roborazzi,
D-011 IncompleteCustomRangeException, D-012 Room 3 with M2b's entities and
1.json as a contract file, D-013 JDK 25 Robolectric flags, D-014
failOnNoDiscoveredTests (D-008, D-009 unused). Clarifications in §6, §8.2,
§8.6, §9.6, §10.3, §10.4, §11, §14.2, §14.3, §14.5, §14.7, §14.8 and
AC-11.7. PLAN-M5 builds on the existing entities; v0.4 readings added to
PLAN-M3, M5, M7b to M7f. HANDOFF rewritten: next free D-040, spec v0.5,
server schema 2, Room schema 2.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 21:40:42 +02:00
..

Start prompts

One ready-to-paste start prompt per plan (PLAN-<id>.md at the repository root), plus ORCHESTRATOR-prompt.md. Before pasting, the orchestrator fills {{NEXT_DECISION}}, {{SPEC_VERSION}}, {{SCHEMA_VERSION}} (disjoint ranges for agents that run in parallel, CLAUDE.md › Numbering) and {{ORCHESTRATOR_NOTES}} (answers to the plan's open points, phone assignment, overrides). U2.md also takes {{OWNER_PICK_AND_COMMENTS}}. U1 and U2 run in the owner's own Claude session in ~/orca/workspaces/kvitt/UX-sprint on branch UX-sprint. The numbers are for proposed entries in agents' reports: implementation agents never edit SPEC.md or docs/decisions.md; a docs agent records what the orchestrator accepts (CLAUDE.md › Orchestration).

Dependencies follow SPEC §11.1 and §11.2 (v0.4). Status as of 2026-10-17: M0 done, M1 landed (c6df2ab), M2c-dev landed (c885aba), M2a landed (fdf2093), M2b landed (fad6fc9); M3 and M5 in flight; U1 in the owner's session. The plans' open points are resolved in SPEC v0.3 and recorded in each plan's §4; v0.4 records the M2a and M2b decisions (D-005 to D-014).

Dependency order and waves

Plans in the same wave can run in parallel (they own disjoint paths, SPEC §14.7). Android agents share one Gradle build at a time (tools/gradle-serial.sh) and one agent on the phone at a time.

Wave Plan Prompt Depends on Parallel with
0 M1 Contracts and vectors M1.md M0 done (c6df2ab)
0 U1 UX directions U1.md M0 everything in waves 0 to 2 (owner's session)
1 M2a Server skeleton and kvitt-domain M2a.md M1 done (fdf2093)
1 M2b Android skeleton and :domain M2b.md M1 done (fad6fc9); installDebug on the phone outstanding
1 M2c-dev Infra for development M2c-dev.md M0 (its health check needs M2a's image) done (c885aba)
1 U2 UX design spec U2.md U1 and the owner's pick M2a, M2b, M2c-dev, wave 2
2 M3 Server core API M3.md M2a M4 (M4 lands after M3), M5, M6
2 M4 Server sync, audit, push, scheduler M4.md M2a; lands after M3 (D-015) M3, M5, M6
2 M5 Android data layer M5.md M1, M2b M3, M4, M6
2 M6 Design system M6.md U2 approved, M2b, the §9.7 colour spec change M3, M4, M5
3 M7a Feature onboarding M7a.md M6 M7b to M7f, M9
3 M7b Feature home and account M7b.md M6 M7a, M7c to M7f, M9
3 M7c Feature expense M7c.md M6 M7a, M7b, M7d to M7f, M9
3 M7d Feature settle M7d.md M6 M7a to M7c, M7e, M7f, M9
3 M7e Feature analytics M7e.md M6 M7a to M7d, M7f, M9
3 M7f Feature settings M7f.md M6 M7a to M7e, M9
3 M9 Splitwise importer M9.md M2a, M4 M5, M6, M7a to M7f
4 M8 App integration M8.md M3, M4, M5, M7a to M7f, M2c-dev M9 if still running
5 M2c-pi Infra on the Pi M2c-pi.md M2c-dev, M8; OQ-3 answered none needed
6 M10 First release M10.md M2c-pi, M3, M4, M8 none
7 M11 Import history M11.md M9, M10 none

Constraints the orchestrator must keep in mind

  • M3 and M4 (D-015): M2a provides next_occurrence_date, the AuditWriter/PushQueue traits with no-op implementations and tasks::start; M3 writes the recurring generation function and calls the traits; M4 replaces the implementations, its scheduler calls M3's function, and M4 lands after M3.
  • M2a and M2b create shell files and modules in later milestones' paths (D-004); ownership passes on when they land.
  • M7a to M7f follow the feature convention of SPEC §6.2 (D-017) and take the ledger rows and expense editor fields from M6's :core:design (D-019).
  • M6 starts only after the §9.7 colour change from U2's proposal has landed in SPEC (§11.1).
  • Phone: M2b (one installDebug), M5 (only if instrumented tests), M8 and M10 use the phone; only one at a time, named in the notes.
  • Outside the repository: M2c-dev (D-022, done), M2c-pi (the Kvitt Pi, the Home Assistant Pi, Gitea, Drive: allowances requested at the start of that sprint, D-023), M8 (dev server on the Mac), M10 and M11 (production) need the owner's allowance in the notes.