Skip to content

feat(api,ui): showcase pipeline — richer data + V1/V2 modeling foundation (PRP-38) #309

@w7-mgfcode

Description

@w7-mgfcode

Scope

PRP-38 — Showcase Rich Demo Control Center A: Data + V1/V2 Modeling Foundation
(file: PRPs/PRP-38-showcase-data-modeling-lifecycle.md)

Foundation slice of the four-PRP /showcase rich-demo epic
(PRPs/INITIAL/INITIAL-showcase-rich-demo-control-center.md). Turns the flat
11-step baseline-only /showcase into a phase-grouped, scenario-aware
operator demo that:

  • Renders 6 phase cards (data / modeling / decision / verify / agent / cleanup) as a shadcn accordion that auto-expands the running phase.
  • Adds a scenario picker (shadcn Select) with demo_minimal (default), showcase_rich (new), sparse.
  • Adds a showcase_rich preset (5 stores × 15 products × 180 days) wired through SeederConfig.from_scenario.
  • Adds data-phase enrichment steps (phase2_enrichment + historical_backfill) via two new /seeder/* endpoints.
  • Adds ONE V2 prophet_like run in the modeling phase (registers with full artifacts/models/... artifact_uri — R1).
  • Evolves backtest to feature-aware with bucket metrics (h_1_7/h_8_14/h_15_28/h_29_plus) shown inline.
  • Per-step Inspect deep links for train, v2_train, register, backtest.

Non-goals (deferred to PRP-39/40/41)

  • Champion-compat compare, stale-alias trigger, safer-Promote dialog, portfolio batch (PRP-39).
  • Scenario simulate/save/compare, RAG corpus indexing, embedding-provider probe (PRP-40).
  • Agent HITL, ops snapshot KPI strip, Inspect-Artifacts post-run panel, localStorage run history, Stop button, walkthrough docs polish (PRP-41).

Acceptance gates

  • Task 1 (Contract Probe) committed at PRPs/ai_docs/prp-38-contract-probe-report.md with every cited field marked PRESENT.
  • Backend _phase_table() and frontend PHASE_DEFS lockstep enforced by paired tests.
  • /seeder/phase2-enrichment + /seeder/historical-activity route tests (2xx + RFC 7807 error path).
  • ScenarioPreset.SHOWCASE_RICH non-NaN backtest WAPE invariant.
  • step_v2_train writes artifact_uri = train_response["model_path"] (FULL path — R1) + runtime_info_extras.feature_frame_version=2.
  • step_backtest on SHOWCASE_RICH posts include_baselines=true + feature-aware model_config_main; response's bucketed_aggregated_metrics non-empty.
  • /showcase default still ≤ 90 s; scenario=showcase_rich ≤ 240 s soft / ≤ 300 s hard.
  • All five validation gates green (ruff + ruff format + mypy + pyright + pytest unit+integration + migration-check); pnpm lint && pnpm tsc --noEmit -p tsconfig.app.json && pnpm test --run green; vertical-slice grep guards empty; no radix-ui barrel imports.

Branch: feat/showcase-38-data-modeling-lifecycle
PRP: PRPs/PRP-38-showcase-data-modeling-lifecycle.md
Epic INITIAL: PRPs/INITIAL/INITIAL-showcase-rich-demo-control-center.md

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions