Rebuild spec — pointer
Canonical document:
../Chore_app/docs/rebuild/2026-06-11-clean-rebuild-design-spec.md
(GitHub: rytedesigns/Chore_app → docs/rebuild/)
The spec deliberately lives in the POC repo — it was decided 2026-06-12 to leave it there as the historical record alongside the codebase whose lessons it encodes. This file is the pointer plus a ledger of the decisions already locked in, so a building agent in this repo doesn't re-litigate them.
Decisions locked in (with spec section + POC commit)
| Date | Decision | Where recorded |
|---|---|---|
| 2026-06-11 | Full spec: vision, invariants, domain model, tiers, à-la-carte entitlements, target architecture, 9 POC lessons, build order | whole doc (02de156) |
| 2026-06-12 | No deployed API facade. Cloud adapter talks to Supabase directly (RLS + constraints are the server-side enforcement). Replaceability = the SDK seam + Shorebird code push. Privileged ops → Edge Functions. rewhaven-services deferred behind explicit revival triggers. | §6 "Backend topology decision" (02de156) |
| 2026-06-12 | Fake the adapter, not the facade. client_sdk_testing ships an in-memory adapter + seed factories under the real Service. | §6 faking strategy (8aa97e5) |
| 2026-06-12 | §6.1 repository layout — this repo's structure, infra/ over services/, the reserved-word rule for "service". | §6.1 (69f538a) |
Open items the spec flags
- Verify Shorebird free-tier patch-install limits before mobile beta.
- Conflict story: ledger entries merge (union); mutable entities LWW — needs a
short addendum before
cloud_synclands. - Token-fading decay parameters must be defined before the
TokenBatchschema freezes. - POC data migration vs greenfield-fresh-data: undecided.
When a decision is made in this repo, record it as an ADR under
docs/decisions/ and add a row here only if it amends the spec.