Files
investor-flow/docs/adr/0010-mirror-math-not-advice.md
T

16 lines
1.5 KiB
Markdown
Raw Normal View History

# ADR-0010: Mirror module outputs replication math, not advice (M21)
The Primary Rule (ADR-0007) forbids buy/sell/hold advice, yet the Mirror Portfolio module (M21) computes exact buy/sell quantities and pushes them as alerts. This is a deliberate, scoped carve-out: the module is a calculator for a **user-stated replication goal**, not a recommendation engine. The user declares the intent ("mirror Alpine Fox"); the app computes the math to satisfy it — the same "math, not instructions" posture as the SizingEngine. Every M21 string that would read "you should buy X because the fund did" is lint-blocked; the actionable alert uses mechanical framing ("to match your mirror target, the delta is N shares").
**Status:** accepted (2026-07-28, grilling session).
**Considered Options**
- Tracker-only module (facts without mirror math) — rejected: loses the module's core job (what/when/how-much replication).
- Mirror without alerts (surface-only) — rejected: the diff stays hidden from the "close tabs" mobile loop the user asked for.
- Mirror output as advice-with-disclaimer — rejected: the Primary Rule is a posture, not a disclaimer regime.
**Consequences**
- The actionable mirror alert is the closest Investor Flow comes to instructions; the mechanical-string lint is mandatory on every M21 string.
- The module never renders a judgment on the fund's moves (option-2 reconciliation: computed, displayed, no verdicts).
- Future features must not let the mirror drift into "you should mirror this fund" framing; the intent must always originate with the user.