Design for review · 11 / 11

Proposed architecture. Pilot products, privacy policy and cost-risk acceptance remain open.

Readiness, verification and sources

Build order

  1. Close pilot-card, terms, retention and residual-billing decisions. Run bounded compatibility and forwarding spikes with synthetic or explicitly redacted inputs.
  2. Ravi drafts the proto and versioned engine input/output shapes. Kai and Mira review the contract. Do not start with screen-specific response calculators.
  3. Generate contract mocks and fixtures. Mira builds UI against those mocks while Ravi builds intake, ledger and evaluation modules.
  4. Integrate real backend in testing. Reconcile chart/list/sheet totals, verify authorization, run failure and duplicate cases, and test all applicable product operators.
  5. Tester signs off acceptance evidence. Kai reviews contract, migrations, infra, caching, budgets and security, then approves a tagged production release.

No engineer work is assigned by this document alone. The Owner's request authorizes preparing the technical design, not provisioning new paid services.

Requirement traceability

PRD Design responsibility Required behaviour check
F-01 Session and tenant boundary Signed-out deep link; two-account ID/cursor attacks; immediate sign-out
F-02 Product catalogue and dated settings Ambiguous products; missing artwork; exact product and last four
F-03 Intake, parser and outbox Six-bank/provider matrix; changed-MIME duplicates; setup failures
F-04 Ledger and period resolver Singapore boundaries; short months; refunds; unknown FX
F-05 Versioned evaluator Every applicable Appendix A operator, including ordering and conditional gates
F-06 Snapshot and allowance contract Minimum versus cap; independent allowances; unknown capacity
F-07 Transaction facts/results Reach all rows; code provenance; mixed portions and explanations
F-08 Correction command and sheet Cancel; error preserves entries; optimistic conflict; focus trap/restore
F-09 Period projection and revisions Actual previous/next periods; filters; late alert; persistent uncertainty
F-10 Disjoint portions and purchase denominator Zero purchases; credits; cap crossing; no double-covered amount
F-11 Priority and evidence comparator Tie-breaking; no incomparable-unit best-card claim
F-12 Frontend design and accessibility 360px fit; 44px actions; DM Sans; text states beyond colour

The current mockup PASS proves reviewed static visual states only. It does not prove keyboard focus, persistence, banking rules, reliable alert delivery or this architecture.

Open gates and decision owners

Gate Owner Evidence needed
Q1 exact pilot cards Owner + Pia Participant products and required settings
Q2/Q3 alert evidence Backend, reviewed by Kai Redacted real alerts via Gmail and Outlook for planned issuers; MCC and authentication provenance
Q4/Q11 exact rewards Product terms research + Kai Complete dated terms, posting/rounding/refund/cap-order fixtures
Q5 effort/cost Kai + Owner This estimate reviewed; deployed resource measurements; account budget headroom
Q6 retention/deletion Owner + Kai + privacy reviewer Policy approval, location/processor review, deletion and restore drill
Q7 artwork Pia Usage rights or plain-card fallback
Q8 proactive alerts Pia + Owner Separate product decision; no push implementation now
Q9 understanding Pia + Tester Pilot tasks distinguish minimum, cap and unknown portions
Q10/Q12 UI completeness Pia + Tester Reconcile v0.17 coverage with error, empty, refund, correction and account-condition states
Runtime portability Backend + Frontend Connect/auth/MIME/D1 spike and pinned dependency versions
Residual Cloudflare exposure Owner Explicit risk decision before paid live intake
Documentation hosting Existing publication task Verified upload/deployment route; publishing a document does not close app readiness

Spike acceptance plans

  • Runtime spike: make a same-origin Connect GET, protected command and OIDC callback run in deployed Workers; record versions, CPU, failures and D1 batch conflict handling.
  • Forwarding spike: cover expected and malformed provider confirmations, original/forwarded authentication headers, duplicate formats, recurring/instalment/refund/FX examples and ambiguous last-four matches. No supported-bank claim without fixtures.
  • Reward spike: compare hand-calculated official-term fixtures to evaluator results, including period-boundary cases and S$5/S$1 rounding order. Keep unsupported operators unavailable.
  • Capacity spike: run the proposed cohort's reads and write bursts; report p95, errors, row scans, bytes and CPU. Demonstrate quotas fail closed, retries terminate and no partial revision publishes.
  • Privacy drill: delete an account during queued intake, prove no resurrection, restore isolated recovery data and replay deletion markers before traffic.

Source register

Product baseline: PRD v1.1, dated 2 November 2026. The local source is preserved in the bundle. No issuer facts have been independently re-certified by this technical design; enabling a card requires the PRD's exact-product gates.

Channel decisions: Google-first (D4), tagged forwarding (D2), honest reward estimates (D5/D6), month/cycle history (D1/D8/D10), corrections in sheets (D11) and covered-share refinements (D12/D14). Mockup v0.17 revision 3 PASS is channel sequence 281. Open pilot/retention recommendations are sequence 258. CI ownership and merge rules come from Kai's standing AGENTS.md dated 2 November 2026.

Platform sources checked 2 November 2026:

No private customer data, access tokens or real email samples belong in these public documentation pages.