Skip to content

docs(prp): add forecast intelligence planning docs#296

Merged
w7-mgfcode merged 1 commit into
devfrom
docs/forecast-intelligence-prps
May 26, 2026
Merged

docs(prp): add forecast intelligence planning docs#296
w7-mgfcode merged 1 commit into
devfrom
docs/forecast-intelligence-prps

Conversation

@w7-mgfcode
Copy link
Copy Markdown
Owner

Summary

Lands the docs-only Forecast Intelligence roadmap — 4 INITIAL planning docs + 3 dependency-chained PRPs (35/36/37). No production code in this PR. Tracked by epic issue #295.

What's included

File Lines Purpose
PRPs/INITIAL/INITIAL-forecast-intelligence-index.md 217 Roadmap index linking A/B/C
PRPs/INITIAL/INITIAL-forecast-intelligence-A-feature-frame-v2.md 245 INITIAL for Feature Frame V2
PRPs/INITIAL/INITIAL-forecast-intelligence-B-model-zoo-backtesting.md 233 INITIAL for Model Zoo + Backtesting
PRPs/INITIAL/INITIAL-forecast-intelligence-C-interactive-ui.md 280 INITIAL for Interactive UI
PRPs/PRP-35-forecast-intelligence-A-feature-frame-v2.md 1,103 Backend PRP — V2 contract + sidecar
PRPs/PRP-36-forecast-intelligence-B-model-zoo-backtesting.md 1,356 Backend PRP — model zoo + bucket metrics
PRPs/PRP-37-forecast-intelligence-C-interactive-ui.md 1,221 Frontend PRP — operator workflow surfaces

Total: 7 files, +4,655 lines, all under PRPs/.

PRP shape

  • PRP-35 Feature Frame V2 — V1 builders frozen; V2 ships as separate _v2 siblings in rows_v2.py; dispatch lives EXCLUSIVELY at the service layer (forecasting/backtesting/scenarios). Legacy bundles default feature_frame_version=1 via bundle.metadata.get(..., 1). New FeatureGroup enum + sidecar contract. Load-bearing leakage spec at test_leakage_v2.py.
  • PRP-36 Model Zoo + Backtesting — hard-depends on PRP-35 merged. 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. Confidence 7/10.
  • PRP-37 Interactive UI — hard-depends on PRP-35 + PRP-36 merged. 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). Partial-execution gates [gate:PRP-35] / [gate:PRP-36] / [gate:always]. Confidence 6.5/10.

Execution gating

Each downstream PRP starts with a contract-verification gate (Task 1):

  • PRP-36 Task 1 = Contract Refresh → snapshots PRP-35's shipped contract to PRPs/ai_docs/prp-35-final-contract-snapshot.md, patches PRP-36 in-place if drift surfaces before any code is written
  • PRP-37 Task 1 = Contract Probe → reads app/features/**/schemas.py, produces PRPs/ai_docs/contract-probe-report.md with PRESENT/ABSENT + file:line for every probed field; ABSENT field → task DEFERRED, never scaffolded with a placeholder

Excluded (intentionally separate)

The following local-tree items are not part of this PR — they belong to separate fix branches per the prior session HANDOFF:

  • app/features/rag/models.py (modified — RAG embedding-dim work)
  • app/shared/seeder/generators/facts.py (modified — seeder price-history fix)
  • uv.lock (modified — incidental)
  • alembic/versions/a2b3c4d5e6f7_rag_embedding_dim_2560_qwen3.py (untracked — pairs with the rag/models.py change)
  • scripts/seed_historical_activity.py / seed_phase2_only.py / seed_registry_from_jobs.py (untracked — local demo-DB tooling)

Test plan

Docs-only — no code paths exercised. Validation:

  • Files render as markdown (PRPs follow PRPs/templates/prp_base.md shape)
  • No production code touched (git diff --cached --stat confirms all 7 paths under PRPs/)
  • Commit message follows type(scope): description (#issue) with the umbrella issue #295
  • CI green (ruff / mypy / pyright / pytest / migration-check — should pass trivially, no code under their scope)

Next steps (post-merge)

  1. PRP-35 execution → branch feat/forecast-feature-frame-v2
  2. PRP-36 execution (gated on PRP-35 merged) → branch feat/forecast-model-zoo-and-backtesting
  3. PRP-37 execution (gated on PRP-35 merged; PRP-36 may be in-flight) → branch feat/forecast-ui-interactive-workflow

Lands the docs-only Forecast Intelligence roadmap — 4 INITIAL docs + 3
PRPs, no production code. Dependency-chained execution: PRP-35 first,
PRP-36 + PRP-37 follow. Tracked by epic issue #295.

- INITIAL roadmap (A/B/C + index)
- PRP-35 Feature Frame V2 — V1 frozen, V2 ships as sibling builders,
  dispatch at service layer only, load-bearing leakage spec
- PRP-36 Model Zoo + Backtesting — new baselines, per-horizon-bucket
  metrics, comparable-runs with feature_frame_version key
- PRP-37 Interactive UI — partial-execution gates, shadcn@4.7.0 pin,
  per-component @radix-ui/react-X imports
Copy link
Copy Markdown

@sourcery-ai sourcery-ai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry @w7-mgfcode, your pull request is larger than the review limit of 150000 diff characters

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 26, 2026

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: f0f5fd9b-c460-426b-b9a2-b725021de409

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch docs/forecast-intelligence-prps

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@w7-mgfcode w7-mgfcode merged commit 8ca0831 into dev May 26, 2026
8 checks passed
@w7-mgfcode w7-mgfcode deleted the docs/forecast-intelligence-prps branch May 26, 2026 03:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant