The graphlemon Work Node (planner) workflow completed. It produced an SDD for fixing the "Planner 产出总览" panel bug in frontend/app.js: clicking a doc/code artifact list item currently does nothing because renderArtifactSummaryList() renders bare
  • elements with no data-* attributes or click handlers. Design (reuses the existing, working v_artifact_browser / c_artifact_get mechanism, no new preview logic): 1. Add data-artifact-id to each
  • , wire a click handler in mountArtifactsOverviewPanel() to navigate to #/artifacts/. 2. Add one new route regex ARTIFACT_DETAIL_RE (#/artifacts/:id), matching the existing TASK_DETAIL_RE/SKILL_AUDIT_RE pattern. 3. Give mountArtifactBrowser() an optional initialArtifactId param, feeding the existing selectedArtifactId fallback logic (which already handles invalid/missing ids gracefully). Explicitly out of scope: backend changes, generic query-string routing, changes to "查看全部" links, filter presets. Scoped as a single Development Unit (DU-1) since the three edits only have value together. Test plan: a stdlib Python structural-assertion test against frontend/app.js text (repo has no JS test framework/build step) plus a manual browser walkthrough for actual click behavior. The planner's self-review found no blocking unknowns — ready to hand off to the Coder stage.