-
Notifications
You must be signed in to change notification settings - Fork 0
Closed
Labels
enhancementNew feature or requestNew feature or requestmilestone:M10M10 LENS — Composable View ProjectionsM10 LENS — Composable View Projectionswave:1Wave 1 — Foundation (lenses + context + contracts)Wave 1 — Foundation (lenses + context + contracts)
Description
LNS-004: Implement 5 Core Lenses
Parent: #227 (M10 LENS)
What
Implement 5 core lenses using DAG utilities from LNS-001:
- incomplete — filter to nodes missing status:done/status:closed (needs properties)
- frontier — filter to leaf nodes (no outgoing edges in the filtered set)
- critical-path — filter to longest dependency chain (uses topoSort + chain walking)
- blocked — filter to nodes with unresolved incoming
blocksedges - parallel — filter to nodes with no mutual dependency (can execute concurrently)
Why
These are the most immediately useful projections for task/project management workflows.
Acceptance Criteria
- Each lens registered via
defineLensfrom LNS-002 - Each lens uses DAG utilities from
src/dag.js(LNS-001) -
incompletecorrectly checks node properties for status -
frontierfinds leaves in the filtered subgraph -
critical-pathreturns the longest chain -
blockedchecksblocksedge type specifically -
parallelidentifies independent nodes - Comprehensive tests for each lens with fixture graphs
- Edge cases: empty graph, single node, cycles (critical-path should handle gracefully)
Dependencies
- LNS-001 (DAG utilities)
- LNS-002 (lens registry)
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or requestmilestone:M10M10 LENS — Composable View ProjectionsM10 LENS — Composable View Projectionswave:1Wave 1 — Foundation (lenses + context + contracts)Wave 1 — Foundation (lenses + context + contracts)