diff --git a/workplans/RREG-WP-0011-dependency-graph-exploration-polish.md b/workplans/RREG-WP-0011-dependency-graph-exploration-polish.md new file mode 100644 index 0000000..6e53213 --- /dev/null +++ b/workplans/RREG-WP-0011-dependency-graph-exploration-polish.md @@ -0,0 +1,141 @@ +--- +id: RREG-WP-0011 +type: workplan +title: "Dependency Graph Exploration Polish" +domain: capabilities +repo: repo-scoping +status: active +owner: codex +topic_slug: foerster-capabilities +created: "2026-05-04" +updated: "2026-05-04" +state_hub_workstream_id: "b36e365e-e09f-4910-8d92-7d0ee7909db4" +--- + +# Dependency Graph Exploration Polish + +This workplan follows RREG-WP-0010 and tightens the dependency graph for daily +curation use. The first visualization pass added layered metadata, display +states, manual overrides, view profiles, and filtering. This follow-up focuses +on graph legibility, saved-profile ergonomics, review-state filtering, hover +inspection, and reducing redundant document-derived nodes. + +## Review State Filtering + +```task +id: RREG-WP-0011-T01 +status: todo +priority: high +state_hub_task_id: "8cca41a1-ddf2-4136-9707-70c7b8481a48" +``` + +Add filters for accepted versus candidate graph state. + +Acceptance criteria: +- Graph nodes and edges expose a stable review state where applicable, including + at least `accepted` and `candidate`. +- Filter rules can match review state for nodes and edges. +- The UI exposes structured controls for accepted/candidate filtering without + requiring raw JSON. +- API tests cover review-state filtering and confirm existing approved graph + behavior remains backward compatible. + +## Blurred Node Edge Treatment + +```task +id: RREG-WP-0011-T02 +status: todo +priority: medium +state_hub_task_id: "3759013b-8a78-45fb-afa5-5ff1f6644070" +``` + +Make edges connected to blurred nodes visually recede. + +Acceptance criteria: +- Edges connected to one or more blurred nodes receive a derived display hint or + class. +- The Cytoscape style renders those edges as very light gray with reduced + opacity. +- Selected or hovered blurred-context edges remain inspectable. +- Tests or contract assertions cover the derived edge state. + +## Confidence And Strength-Based Sizing + +```task +id: RREG-WP-0011-T03 +status: todo +priority: medium +state_hub_task_id: "087a550f-a9f7-403c-9853-a04f5847211d" +``` + +Scale node size and edge width based on confidence or strength. + +Acceptance criteria: +- Nodes with confidence metadata derive a bounded visual size from confidence. +- Edges derive width from strength while preserving same-layer and stale/change + styling. +- Missing confidence or unknown strength falls back to stable defaults. +- The UI remains readable on dense graphs and mobile widths. + +## Hover Detail Popups + +```task +id: RREG-WP-0011-T04 +status: todo +priority: medium +state_hub_task_id: "eac6ccd7-7c99-46f9-bf12-c3916b03f041" +``` + +Show a compact detail popup when hovering over graph nodes or edges. + +Acceptance criteria: +- Hovering a node shows its kind, layer, name, display state, confidence, + freshness, ownership, and primary source path when available. +- Hovering an edge shows dependency type, strength, source, same-layer flag, and + source/target names. +- The popup follows or anchors near the hovered element without obscuring the + cursor target. +- Keyboard selection and the existing side panel remain available for full + detail inspection. + +## Last Saved Profile Default + +```task +id: RREG-WP-0011-T05 +status: todo +priority: high +state_hub_task_id: "d63489fc-5c08-486c-addc-53af84218028" +``` + +Apply the most recently saved profile automatically when opening the dependency +graph for a repository. + +Acceptance criteria: +- When no `profile_id` URL parameter is present, the graph endpoint and UI load + the repository's most recently updated profile if one exists. +- Explicit `profile_id` URL parameters continue to take precedence. +- Users can still return to an unsaved full exploration state from the UI. +- API and UI tests cover repositories with no profiles, one profile, multiple + profiles, and explicit profile selection. + +## Document Node De-Duplication + +```task +id: RREG-WP-0011-T06 +status: todo +priority: high +state_hub_task_id: "5477cfdd-7bd4-428f-a329-6255c4c58803" +``` + +Remove or merge unnecessary duplicate document-derived nodes, especially +`README.md` and `SCOPE.md` cases. + +Acceptance criteria: +- The graph builder identifies why duplicate README/SCOPE-like nodes are being + emitted. +- Derived `SCOPE.md` context is not shown as an independent fact node when it + only restates generated scope. +- README-derived facts are merged or represented once when they point to the + same document-level evidence. +- Regression tests cover repositories with README and SCOPE documents and assert + no unnecessary duplicate document nodes appear.