Review: Sprint planning UI -- controller, views, routes for wave planner

review-1566-2026-06-22 Review

review needs-refinement

Verdict: NEEDS_REFINEMENT

Template Completeness

  • [x] Type -- Feature
  • [x] Lineage -- depends on paldocs#50
  • [x] Repo -- ldraney/paldocs
  • [x] User Story -- well-formed As/I want/So that
  • [x] Context -- clear motivation and workflow description
  • [x] File Targets -- 6 files to create/modify, 3 exclusions documented
  • [x] Feature Flag -- none (appropriate, new routes with no impact)
  • [x] Acceptance Criteria -- 6 criteria
  • [x] Test Expectations -- 4 tests + run command (bundle exec rspec)
  • [x] Constraints -- dependency, Hotwire requirement, polish scope
  • [x] Checklist -- present
  • [x] Related -- project, story, arch, upstream/downstream noted
All required sections present. Template is complete.

Traceability

  • [x] story:sprint-orchestration label -- sprint planning UI for cross-project wave staging and dispatch
  • [x] story note verified -- found in project-paldocs user-stories section (story-paldocs-sprint-orchestration entry)
  • [x] arch:rails-views label -- Rails views component
  • [ ] arch note MISSING -- [SCOPE] Create architecture note arch-rails-views for the Rails views component
  • [x] Forgejo issue -- https://forgejo.tail5b443a.ts.net/ldraney/paldocs/issues/56, open

File Targets

  • [x] app/controllers/sprint_planning_controller.rb -- to be created. No existing controller conflicts. Follows existing pattern (see boards_controller.rb).
  • [x] app/views/sprint_planning/index.html.erb -- to be created. Directory does not exist yet (expected).
  • [x] app/views/sprint_planning/show.html.erb -- to be created. Will need to reference Sprint/SprintProject models from paldocs#50.
  • [x] app/views/sprint_planning/_wave.html.erb -- to be created. Wave partial for grouped items.
  • [x] config/routes.rb -- verified exists. Currently has resources for projects, notes, boards, board_items. Sprint routes will be added.
  • [x] app/views/layouts/ -- verified exists. application.html.erb has a navbar with a brand link. Nav link will be added here.
All file targets are valid. New files have no conflicts. Existing files are correctly identified.

Repo Placement

OK. Issue is filed on ldraney/paldocs, all file targets are in paldocs. Single-repo scope. Correct.

Dependencies

  • paldocs#50 (Sprint schema -- migrations + models for wave planning) -- board item #1560, currently in todo column, issue is OPEN. This is a hard dependency: Sprint, SprintProject models and board_items.sprint_id/wave_number columns do not exist yet. The ticket correctly documents this dependency in both Lineage and Constraints sections.
  • No other board dependencies found. The ticket is not blocking other items.
  • Board item #1559 (Schema ownership transfer, paldocs#49) is in in_progress -- this is upstream of #50, so transitively upstream of this ticket as well.

Acceptance Criteria

6 criteria, all follow the When/Then pattern. All are agent-verifiable:
  • Navigation link -- verifiable via system test or view inspection
  • Sprint creation with project selection -- verifiable via controller test
  • Board items grouped by column -- verifiable via controller test
  • Side-by-side multi-project view -- verifiable via system test
  • Wave staging with sprint_id/wave_number -- verifiable via controller test (depends on schema from #50)
  • Wave display with grouped items and points -- verifiable via view rendering
Test expectations match: 3 controller tests + 1 system test + run command. Run command (bundle exec rspec) is correct -- repo uses RSpec (spec/ directory confirmed with existing request specs).

Blast Radius

Low risk. New controller and views with new routes -- no modification to existing controllers or views. The only existing file modified is config/routes.rb (adding routes) and the layout (adding a nav link). No existing tests or functionality affected.
The kanban_controller.js Stimulus controller and boards views use drag-and-drop patterns that this ticket's wave staging may want to reuse, but the issue correctly says "keep it functional first, polish later" -- no blast radius concern.

Decomposition Assessment

6 file targets in 1 repo. 6 acceptance criteria (slightly exceeds the 5-AC guideline). However, all files are tightly coupled -- one controller with its views and a route entry. Decomposing would create artificial boundaries. Estimated agent work: ~3-4 minutes. No decomposition needed.

Recommendation

  • [SCOPE] Create architecture note arch-rails-views in pal-e-docs for the Rails views component. This note is referenced by multiple board items (this ticket and others with the arch:rails-views label) but does not exist.