Skip to content
Rafael Queiroz edited this page Oct 9, 2026 · 5 revisions

AllMyWallet — Specification Index

Twenty-two specs decomposing the PRD into implementable units. Each follows the same template: Description → Business rules → Acceptance Criteria → Out of Scope → Decision Logs.

Business rules are numbered BR-<spec>-<n> and trace back to PRD requirement IDs. Decisions are numbered DL-<spec>-<n>.

Adding a spec? Start from TEMPLATE.md — it carries the template, the numbering conventions, and the two verification scripts (PRD coverage and template compliance) to run afterwards.

Specs

# Spec Milestone Depends on
001 Authentication & Account M0 003, 002
002 Configuration Layer M0 —
003 Tenant Isolation & Security M0 001
004 LGPD & Data Subject Rights M6 (part in M1) 001, 003, 005
005 B3 Extract Import & Reconciliation M1 003, 006, 004
006 Transaction Ledger M2 003
007 Position & Cost Basis Engine M2 006
008 Market Data Service M4 002, 003
009 Valuation Engine M4 007, 008
010 Wallets & Allocation M3 006, 007
011 Reporting Framework M5 009, 010
012 Performance Report M5 009, 011
013 Portfolio Value Report M5 009, 011
014 Earnings Report M5 006, 011
015 Composition Report M5 009, 011
016 Platform: Performance, Availability & Accessibility M0 → continuous 002
017 Wallet Balancing M7 002, 009, 010, 011
018 Buy/Sell Opportunity M7 002, 004, 007, 008
019 Wallet Goals M7 009, 010, 013, 014
020 User Onboarding M8 001, 005, 009, 010
021 Personal Deployment M9 002, 003, 008, 009, 016, 018
022 Interface Design & Navigation M10 001, 002, 004, 005, 010, 011, 016, 018, 020

Build order

M0   001 Auth ── 002 Config ── 003 Isolation
                     │
M1   005 B3 Import ──┤  (+ CPF stripping from 004, pulled forward)
                     │
M2   006 Ledger ── 007 Cost Basis
                     │
M3   010 Wallets ────┤
                     │
M4   008 Market Data ── 009 Valuation
                     │
M5   011 Framework ── 012 Performance
                   ├── 013 Portfolio Value
                   ├── 014 Earnings
                   └── 015 Composition
M6   004 LGPD (remainder)

M7   017 Balancing ── needs 009 valuation + 010 wallets
     018 Opportunity ── needs 008 quotes + 004 consent
     019 Goals ── needs 013 portfolio value + 014 earnings

M8   020 Onboarding ── extracted from 005; needs 001, 005, 009, 010
                       taken ahead of further features (PRD R1)

M9   021 Personal deployment ── loopback personal production; needs 002, 003, 008, 009, 016, 018

M10  022 Interface redesign ── prototype first; regroups every existing screen, adds no calculation

     016 Platform qualities ── budgets set in M0, enforced continuously

Three cross-spec invariants

These are asserted in more than one spec because they are the checks most likely to catch a real defect:

  1. Rebuild equals incremental. Positions and valuation snapshots recomputed from the ledger must exactly match the incrementally-maintained state — SPEC-006, SPEC-007, SPEC-009.
  2. Totals are invariant across groupings. Switching a report's grouping must never change a total — SPEC-011, and every report spec.
  3. Reports agree with each other. Composition's total = Portfolio Value's endpoint; Earnings' total = Portfolio Value's earnings driver — SPEC-013, SPEC-014, SPEC-015. From M7 this extends to goals: a current-value growth goal must equal Portfolio Value for the same wallet and date, and a year's goal income must equal the Earnings report's total for that wallet and year — SPEC-019.

Two ordering constraints worth respecting

  • SPEC-002 blocks SPEC-008. The market data service must change its own polling cadence at runtime under budget pressure, which is unimplementable if the interval is a constant.
  • CPF stripping (SPEC-004, BR-004-02) belongs in M1, not M6. Every other LGPD control can be retrofitted; this one cannot. Once a CPF reaches a database and a backup, "we never stored it" is retroactively false.

Open questions

Carried from PRD §11 and unresolved at spec level: Q1 aggregator path, Q2 investment funds, Q3 IR/tax reporting, Q4 IR/IOF net values, Q5 sector data source, Q6 target allocations, Q7 when to upgrade the quote tier, Q8 forward-looking dividend calendar.

Clone this wiki locally