Review: Port graph page (pal-e-app#74)
Verdict: NEEDS_REFINEMENT
Template Completeness
- [x] All 11 required sections present.
Traceability
- [x] story:reader-browse — [x] arch:frontend — [x] Forgejo issue pal-e-app#74, open
File Targets
- [x]
src/routes/graph/+page.svelte— CORRECT. Does not exist yet. New route. Playground graph.html exists as source. - [ ]
src/routes/graph/+page.ts— DOES NOT FIT PATTERN. No +page.ts files in the app. Wrong file target.
Dependencies
- #68 resolved.
- Ticket says "note links API" — need to verify REST endpoint exists (MCP has get_note_links, but agent needs a REST route).
Acceptance Criteria
4 criteria, testable. SVG force-directed layout is the most complex port. Playground graph.html has ~200+ lines of JS for force simulation. Borderline for 5-minute rule but feasible as copy-paste port.
Blast Radius
- New route — low blast radius.
- Sidebar in +layout.svelte may need a /graph nav link added. Ticket doesn't mention this.
Recommendation
- Remove +page.ts from file targets.
- Verify note-links REST API endpoint exists in pal-e-api.
- Add sidebar nav link update to scope (or create discovered-scope issue).
- Note: force-directed layout JS may need Svelte adaptation.