version: 1
ssot: spec/SSOT-v3.0.md
policy:
  mandatory_traceability: true
  silent_deferral_forbidden: true
requirements:
  - id: REQ-MKT-001
    title: Market isolation
    mandatory: true
    acceptance: TASI and S&P 500 rankings, portfolios, benchmarks and schedules remain separate.
  - id: REQ-PIT-001
    title: Point-in-time correctness
    mandatory: true
    acceptance: No analysis or replay can consume evidence unavailable at the decision timestamp.
  - id: REQ-LEDGER-001
    title: Immutable recommendation ledger
    mandatory: true
    acceptance: Issued recommendations and evidence snapshots cannot be overwritten; corrections append linked records.
  - id: REQ-STRAT-001
    title: Multiple strategy profiles
    mandatory: true
    acceptance: Investment and Swing work independently in Slice 0; architecture supports additional SSOT strategies.
  - id: REQ-REC-001
    title: Actionable recommendation
    mandatory: true
    acceptance: Recommendation includes action, score, confidence, target, exit/invalidation, horizon, reasons and evidence.
  - id: REQ-RULE-001
    title: Rule-cited decisions
    mandatory: true
    acceptance: Every recommendation, simulation action and deliberate non-action cites versioned rules and reasons.
  - id: REQ-SIM-001
    title: Real-money-discipline simulation
    mandatory: true
    acceptance: User-configured virtual budget is managed autonomously under deterministic risk/execution rules with no brokerage calls.
  - id: REQ-OBS-001
    title: Daily Observer accountability
    mandatory: true
    acceptance: Observer compares immutable predictions with realized outcomes and produces structured right/wrong/open findings and causes.
  - id: REQ-LEARN-001
    title: Gated learning loop
    mandatory: true
    acceptance: Daily findings may inform analysis but engine changes require isolated challenger validation and promotion gate.
  - id: REQ-EMAIL-001
    title: Pre-open executive email
    mandatory: true
    acceptance: Luxury responsive HTML report is produced exactly two hours before enabled market open, with plain-text fallback and idempotent delivery.
  - id: REQ-EMAIL-002
    title: Post-close accountability email
    mandatory: true
    acceptance: Luxury responsive HTML report evaluates morning recommendations after verified close data and cites reasons/evidence/rules.
  - id: REQ-DATA-001
    title: Provider abstraction and provenance
    mandatory: true
    acceptance: Market facts retain provider, timestamps, raw hash, normalization version, freshness and quality/conflict state.
  - id: REQ-DATA-002
    title: TASI provider hierarchy
    mandatory: true
    acceptance: SAHMK is evaluated as primary; Tadawul public disclosures are authoritative evidence; Yahoo is fallback/validation, not sole truth.
  - id: REQ-REPLAY-001
    title: As-of replay
    mandatory: true
    acceptance: A historical run can reproduce the information set, rules and engine version available at its decision timestamp.
  - id: REQ-UX-001
    title: Executive graphical UX
    mandatory: true
    acceptance: Market-filtered visual UI is understandable without financial background while expert evidence remains accessible one level deeper.
  - id: REQ-OPS-001
    title: Production observability
    mandatory: true
    acceptance: Scheduled runs, provider failures, analysis failures, email delivery, simulation and data-quality gates are observable and auditable.
  - id: REQ-SCOPE-001
    title: Mechanical scope gate
    mandatory: true
    acceptance: CI fails when a mandatory requirement lacks implementation and test traceability.
