Tracks PRP-40 implementation per PRPs/PRP-40-showcase-planning-knowledge-lifecycle.md.
Scope
Adds two new phases to the in-process /showcase demo pipeline (the showcase_rich scenario only):
- Planning (2 steps):
scenario_simulate_and_save, multi_plan_compare
- Knowledge (3 steps):
embedding_provider_probe, rag_index_subset, rag_retrieve_probe
Inserts both phases BEFORE the verify phase using relative anchors so PRP-39 (sibling, parallel) rebases cleanly.
Additive backend change: IndexProjectDocsRequest.path_prefix: str | None = None on app/features/rag/schemas.py so the showcase can index only the curated 5-file docs/user-guide corpus.
Acceptance (C1..C6)
- C1 —
/visualize/planner shows showcase-price-cut-10pct + showcase-holiday-uplift after a green showcase_rich run; multi-plan compare row ranks by revenue_delta.
- C2 —
/knowledge lists the 5 curated user-guide docs with non-zero chunk counts; UI semantic search returns hits.
- C3 — With every embedding provider unreachable, the 3 knowledge steps SKIP (not FAIL); pipeline still green.
- C4 — showcase_rich e2e wall-clock <= 240 s on dev host.
- C5 — Backend
_phase_table() and frontend PHASE_DEFS.ts stay in lockstep.
- C6 — All five validation gates green.
Related
Tracks PRP-40 implementation per PRPs/PRP-40-showcase-planning-knowledge-lifecycle.md.
Scope
Adds two new phases to the in-process
/showcasedemo pipeline (theshowcase_richscenario only):scenario_simulate_and_save,multi_plan_compareembedding_provider_probe,rag_index_subset,rag_retrieve_probeInserts both phases BEFORE the
verifyphase using relative anchors so PRP-39 (sibling, parallel) rebases cleanly.Additive backend change:
IndexProjectDocsRequest.path_prefix: str | None = Noneonapp/features/rag/schemas.pyso the showcase can index only the curated 5-filedocs/user-guidecorpus.Acceptance (C1..C6)
/visualize/plannershowsshowcase-price-cut-10pct+showcase-holiday-upliftafter a green showcase_rich run; multi-plan compare row ranks by revenue_delta./knowledgelists the 5 curated user-guide docs with non-zero chunk counts; UI semantic search returns hits._phase_table()and frontendPHASE_DEFS.tsstay in lockstep.Related