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).