Skip to content

Overview

This plan implements the List View Component project as defined in the Design Document. The project ports grid infrastructure from the extras library to canary, creates two new cell types (memo, color), and validates the result by swapping vendored components in canary-refactor stories.

The plan follows the General Workflow (steps 1-8) with the Porting Strategy waves (0-3b) nested inside step 4.

PhaseNameDescriptionDeliverablesDepends On
0SetupClean slate, clone stories, VRT baselineCanary-refactor stories, VRT specs, ESLint rules
1Shared FoundationPort types, utilities, styles (Wave 0)PaginationData, formatters, ag-theme-arda.css in canaryPhase 0
2Cell AtomsPort 5 cell types + create 2 new types (Wave 1)14 cell components + tests + storiesPhase 1
3Data Grid MoleculePort DataGrid, SortMenuHeader, useColumnPersistence (Wave 2)DataGrid<T> molecule + tests + storiesPhases 1, 2
4Entity Data GridPort factory + hooks (Waves 3a + 3b)createEntityDataGrid<T>(), createEntityDataGridShim<T>(), useDirtyTracking<T>(), ActionCellRenderer<T>Phase 3
5IntegrationSwap stories, barrel exports, cleanup, VRTUpdated canary-refactor stories, canary.ts barrel, VRT passPhase 4
6Report & ChangelogCompletion report, CHANGELOG updatecompletion-report.md, CHANGELOG entryPhase 5

Per Planning Question PQ1, the project is assessed for single-agent vs team execution.

Assessment: This project has a linear dependency chain (Phase 0 → 1 → 2 → 3 → 4 → 5). The only parallelism opportunity is within Phase 2 (7 cell types are independent of each other) and within Phase 4 (Waves 3a and 3b are sequential, but ActionCellRenderer can be built in parallel with 3a). The total estimated scope is ~30 new/ported files + ~30 test/story files.

Recommendation: Single agent working sequentially. The linear dependency chain means a team would serialize anyway. Phase 2 could benefit from parallelism (7 independent cell types), but the overhead of worktree setup and coordination exceeds the time saved for components of this size (~50-100 lines each).

Each phase has entry criteria (checked via artifact inspection, not by re-running builds) and an exit gate (the commands that must succeed). The entry criteria for phase N are derived from the exit gate of phase N-1. Agents should verify entry criteria by inspecting files and checking prior terminal output — never re-run lint, tsc, or test just to confirm a previous phase succeeded.

PhaseEntry Verification (artifact inspection)Exit Gate (commands to run)
0Clean branch, node_modules presentnpm run lint + npm run build:lib + npm run test. VRT baseline captured.
1Canary-refactor stories exist, VRT baselines present, ESLint rule confirmednpx tsc --noEmit + npm run lint. Formatter unit tests pass.
2pagination.ts, formatters.ts, ag-theme-arda.css exist in canary. Phase 1 lint/tsc success confirmed.npm run lint + npm run test. All 7 cell type stories render.
37 cell type directories present in canary/atoms/grid/. Phase 2 lint/test success confirmed.npm run lint + npm run test. DataGrid stories render with all cell atoms.
4DataGrid molecule directory complete (data-grid.tsx, sort-menu-header.tsx, barrel). Phase 3 lint/test success confirmed.npm run lint + npm run test. Entity data grid stories render.
5Tier 3a + 3b factories, ActionCellRenderer, canary-refactor stories all present. Phase 4 lint/test success confirmed.npm run lint + npm run build:lib + npm run test. VRT passes.
6Phase 5 exit gate passed (lint + build + test + VRT). Barrel exports updated. Placeholders removed.completion-report.md exists with all 3 sections. CHANGELOG updated.