project_nav_current_project_context_prd.md 2.1 KB

name: project-nav-current-project-context-prd description: PRD "导航栏『当前项目』上下文(项目名+任务状态摘要)" reviewed 2026-08-06 for internal contradictions — none found metadata:

type: project

Reviewed the Planner-stage PRD titled "导航栏『当前项目』上下文(项目名 + 任务状态摘要)" (nav bar current-project display FR-1/2, clickable task-status-count summary FR-3/4, query-string parsing fix in frontend/app.js's render() FR-5, refresh-on-route-change FR-6; explicitly scoped out a new backend aggregation endpoint and nav-bar WebSocket live refresh) for internally contradictory requirements. Found none — the backend-endpoint scope-out is reasoned (existing no-pagination precedent + documented revisit threshold) and the route-change-only refresh (FR-6) doesn't conflict with skipping WebSocket live refresh (discrete-refresh vs push-refresh are different, compatible mechanisms).

Why: worth recording because a sibling PRD in the same pipeline (the v_graph_console Graph page PRD, see frontend/.graphlemon/runs/7400d876-a797-4d87-bcff-4e59a3befba1/prd.md) did have a real self-contradiction in its v1 draft (claimed both "shared render code with v_task_detail" and "v_task_detail's click behavior unaffected" with no reconciliation mechanism) that got caught by this same consistency-review step and fixed in v2 via an opt-in enableNodeClick parameter — so this check is not pro forma, it has caught a real issue before in this codebase.

How to apply: existing baseline in docs/sdd/02-V-界面与交互.md §nav only documents "当前项目名 + 切换项目链接" — no task-status-count summary yet. That's an SDD gap this PRD fills, not a contradiction. If this PRD proceeds to SDD stage, frontend/app.js's actual render() (line 118) only does hash-path regex routing (TASK_DETAIL_RE etc.) — no query-string (?key=value) parsing exists there at all today, so FR-5 ("fix") is really "add"; flag that wording precisely if it recurs at SDD/Coder stage (accuracy issue, not a contradiction, so it wasn't in-scope for this consistency review).