Living Specs — Index¶
This index lists every active and historical "living spec" in ftl-docs/architecture/specs/.
A living spec describes one product or system domain as it is today. It is rewritten
in place when behavior changes; we do not branch it into versions. The decision trail behind
each spec lives in architecture/decisions/ (the ADRs).
See CHANGE-MANAGEMENT.md at the repo root for the protocol, and _TEMPLATE.md for the
required structure.
Active specs¶
| Spec | Domain | Owner | Last updated | ADRs |
|---|---|---|---|---|
| event-ingestion | Durable, lossless event capture: inplay ingest, PG timeline + exactly-once bump log, L1–L7 fallback ladder | @amalkrsihna | 2026-06-07 | 0019, 0023, 0024, 0025 |
| leaderboard | Equity-based ROI% ranking (global + district), evaluator feed, close-path write, tiebreaker order | @amalkrsihna | 2026-06-03 | 0014 |
| amm-pricing | CFD-style margin trading: pricing curve, position lifecycle, FT auto-exit, post-match scoring | @amalkrsihna | 2026-06-03 | 0002, 0004, 0005, 0006, 0011, 0012, 0013, 0016, 0017, 0018, 0019, 0020, 0021 |
| cfd-pricing-and-wallet | CFD position lifecycle, slippage, idempotency, SL/TP, error codes, permanent-impact formula | @amalkrsihna | 2026-06-03 | 0004, 0005, 0006, 0012, 0013, 0016, 0017, 0019, 0020 |
| wallet-and-margin | Balance / Equity / Used Margin / Free Margin / Margin Level definitions, washout policy, SL/TP semantics | @amalkrsihna | 2026-06-03 | 0004, 0006, 0015, 0020 |
| signup-and-onboarding | Google OAuth → registration → OTP → profile completion, coming-soon gate, tutorial sequencing | @amalkrsihna | 2026-05-22 | 0007, 0008, 0010 |
| referrals | v2 attribution (referrer-only, on first trade), ?ref= + ?invite= capture, payout economics, copy requirements |
@amalkrsihna | 2026-05-22 | 0008, 0009 |
Deprecated specs¶
(none yet)
Adding a new spec¶
- Pick a kebab-case domain name (
auth-flow,referral,leaderboard, …). Once chosen, don't rename — the path is referenced from code anchors. - Copy
_TEMPLATE.mdto<domain>.mdand fill in every section. - Add a row to the Active specs table above.
- If the new spec encodes a decision, add the matching ADR in
architecture/decisions/in the same PR.