Add SPEC-020 User Onboarding, extracted from SPEC-005
Onboarding was already specified as PRD F2.1 and owned by SPEC-005, so
this extracts and expands it rather than filling a gap. 31 business
rules, 21 acceptance criteria, 8 logged decisions.
The flow spans auth, import, fixed income and wallets; leaving it inside
a spec about parsing three file formats made that spec responsible for
four others' surfaces. SPEC-020 owns sequence, gating, progress and
empty states; step mechanics stay with their owning specs.
Two things it does not do, both deliberate:
stores almost nothing -- every step's completion is a query, for the
same reason positions derive from the ledger. One persisted column,
users.onboarding_dismissed_at, because a dismissal is the only
onboarding fact that is not derivable.
ships no screenshots of investidor.b3.com.br -- R2 already says B3
changes things, and the redesign that breaks a parser silently
invalidates a screenshot, which then walks the user to a control that
moved. Project-authored diagrams with a visible "verified as of" date,
re-checked whenever a parser changes.
Two things the request named that did not exist: there is no CSV path
(xlsx only; CSV is out of scope in SPEC-005) and there is no
registration data to complete (BR-001-05 caps personal data at what
Google supplies). "Required" now means the gates that actually block a
correct portfolio -- unread fixed-income rates and unclassified movement
types -- surfaced in the existing "Needs attention" queue.
Amendments:
SPEC-005 cedes FR-2.1-2.3 and the guided-onboarding AC
SPEC-001 hands off to SPEC-020 rather than SPEC-005
PRD F10 (FR-11.1-11.22), milestone M8, R1 mitigation updated,
F2.1 marked as owned elsewhere with its IDs kept stable
M8 is scheduled ahead of further feature work: R1 rates import friction
High/High and names guided onboarding as its mitigation, with >70%
signup-to-first-import as the exit criterion.
Coverage: 278 requirements, 0 uncovered. Template compliance: 20/20.
Add SPEC-017/018/019 and the amendments they force
Three features specified: wallet balancing, buy/sell opportunity, wallet
goals. 80 business rules, 52 acceptance criteria, 24 logged decisions.
None of them is additive-only, so the reversals are recorded where the
original decision lives rather than left to contradict it silently:
PRD Q6 answered yes after being open since the PRD was written
SPEC-015 target allocation removed from Out of Scope; DL-015-03
superseded in part -- the advice risk is mitigated by
requiring every threshold to originate with the user,
not by omitting the feature. BR-015-06 stands.
SPEC-010 BR-010-02 promoted from descriptive to calculated
SPEC-004 consent basis extended to opportunity and goal email
SPEC-002 four config keys added
SPEC-008 unchanged -- rules are held-assets-only, so DL-008-06
and the quote ceiling stand untouched
PRD gains F7 (FR-7.x), F8 (FR-9.x) and F9 (FR-10.x), milestone M7, and
three traceability rows. FR-8.x is skipped deliberately: section 8 owns
that range and renumbering it would invalidate citations in four specs.
Coverage check: 256 requirements, 0 uncovered. Template compliance:
19/19 specs at 5/5 sections.
Publish PRD and 16 specifications
PRD and specs become the wiki's source of truth for product documents.
Engineering guidelines remain in the repository alongside the code.
Adds Home index, sidebar navigation and a spec template page.