Skip to content

epic(forecast): Forecast Intelligence roadmap (PRP-35/36/37) #295

@w7-mgfcode

Description

@w7-mgfcode

Umbrella tracking issue — Forecast Intelligence roadmap

Tracks the docs-only roadmap landed by docs/forecast-intelligence-prps and the three downstream execution PRPs that follow.

Scope

Planning + PRP authoring for a three-slice initiative:

  • PRP-35 — Feature Frame V2 (PRPs/PRP-35-forecast-intelligence-A-feature-frame-v2.md)

    • V1 builders frozen; V2 ships as separate siblings (rows_v2.py); dispatch lives at the service layer only
    • Legacy bundles default feature_frame_version=1 via bundle.metadata.get(..., 1)
    • Adds FeatureGroup enum + sidecar data contract; load-bearing leakage spec at test_leakage_v2.py
  • PRP-36 — Model Zoo + Backtesting (PRPs/PRP-36-forecast-intelligence-B-model-zoo-backtesting.md) — hard-depends on PRP-35

    • New target-only baselines (weighted_moving_average, seasonal_average, optional trend_regression_baseline, random_forest)
    • Backtesting adds rmse + horizon_bucket_metrics (h_1_7 / h_8_14 / h_15_28 / h_29_plus)
    • Registry _find_duplicate + new find_comparable_runs predicate gain feature_frame_version to match key
    • Ops adds StaleReason.FEATURE_FRAME_VERSION_MISMATCH
  • PRP-37 — Interactive UI (PRPs/PRP-37-forecast-intelligence-C-interactive-ui.md) — hard-depends on PRP-35 + PRP-36

    • New components under frontend/src/components/forecast-intelligence/
    • Modifies 5 pages: /visualize/{forecast,backtest,planner,batch}.tsx, /explorer/{run-detail,run-compare}.tsx, /ops.tsx
    • Uses shadcn@4.7.0 pin + per-component @radix-ui/react-X imports (per .claude/rules/shadcn-ui.md + memory)
    • Partial-execution gates ([gate:PRP-35] / [gate:PRP-36] / [gate:always]); Task 1 = Contract Probe

Execution gating

PRPs are dependency-chained. Each downstream PRP starts with a contract-verification gate (Task 1) that produces a snapshot report before any code is written:

  • PRP-36 Task 1 = Contract Refresh — imports FEATURE_FRAME_VERSION_V2 / FeatureGroup / V2 builders, snapshots to PRPs/ai_docs/prp-35-final-contract-snapshot.md, patches PRP-36 in-place if drift
  • PRP-37 Task 1 = Contract Probe — reads app/features/**/schemas.py directly, produces PRPs/ai_docs/contract-probe-report.md with PRESENT/ABSENT + file:line for every probed field

Tracking

  • Land docs PR (this issue) — docs/forecast-intelligence-prpsdev
  • PRP-35 execution — branch feat/forecast-feature-frame-v2
  • PRP-36 execution — branch feat/forecast-model-zoo-and-backtesting (gated on PRP-35 merged)
  • PRP-37 execution — branch feat/forecast-ui-interactive-workflow (gated on PRP-35 merged; PRP-36 may be in-flight)

Confidence ratings (per PRP-create skill)

  • PRP-35: not re-rated this session
  • PRP-36: 7/10 (depends on unmerged PRP-35; field-name drift risk)
  • PRP-37: 6.5/10 (depends on PRP-35 + PRP-36; same drift cascade)

Metadata

Metadata

Assignees

Labels

docsDocumentation changescope:forecastTouches the forecast area (commit-format scope)

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions