Review: Sprint planning UI -- controller, views, routes for wave planner
Verdict: READY
Template Completeness
- [x] Type -- Feature
- [x] Lineage -- references paldocs#50 upstream dependency
- [x] Repo -- ldraney/paldocs
- [x] User Story -- well-formed As/I want/So that
- [x] Context -- clear explanation of sprint workflow and relationship to #50
- [x] File Targets -- 6 files to create, 3 exclusions listed with reasons
- [x] Feature Flag -- "none" with rationale (new routes, no impact)
- [x] Acceptance Criteria -- 6 testable criteria
- [x] Test Expectations -- controller tests + system test + run command
- [x] Constraints -- dependency, Hotwire requirement, "functional first" noted
- [x] Checklist -- standard items present
- [x] Related -- project, story, arch, upstream/downstream all listed
Traceability
- [x] story:sprint-orchestration label -- present on board item
- [x] story note verified -- story-paldocs-sprint-orchestration exists in pal-e-docs (note #2093) AND listed in project-paldocs user-stories section
- [x] arch:rails-views label -- present on board item
- [ ] arch note MISSING -- arch-rails-views not found in pal-e-docs. However, this is a soft gap: the ticket is self-contained enough to execute without the arch note. The arch note should document ERB/Hotwire patterns used in paldocs. [SCOPE] Create architecture note arch-rails-views for the Rails views component.
- [x] Forgejo issue -- ldraney/paldocs#56, state: open
File Targets
- [x] app/controllers/sprint_planning_controller.rb -- verified: does NOT exist yet (correct, new file)
- [x] app/views/sprint_planning/index.html.erb -- verified: directory does not exist yet (correct, new files)
- [x] app/views/sprint_planning/show.html.erb -- verified: new file
- [x] app/views/sprint_planning/_wave.html.erb -- verified: new file (partial)
- [x] config/routes.rb -- verified: exists, currently has resources for projects/notes/boards/board_items. Sprint routes will be added.
- [x] app/views/layouts/application.html.erb -- verified: exists, navbar has only brand link. Sprint planning nav link to be added.
- [x] Exclusions verified: db/migrate/, app/models/, db/structure.sql correctly excluded (owned by paldocs#50)
Dependency Verification
- [x] paldocs#50 (sprint schema) -- Forgejo issue CLOSED, commit 25dcc57 merged to main. Sprint model, SprintProject model, board_items.sprint_id column all present on main branch.
- [x] Models verified on main: Sprint (with statuses: planning/active/complete, has_many sprint_projects/board_items), SprintProject (belongs_to sprint/project), BoardItem (belongs_to sprint, optional: true)
- [x] Board item #1560 for paldocs#50 is in validation column -- merged but awaiting post-merge validation. This does NOT block #56 since the code is on main.
Repo Placement
Correct. Issue filed on ldraney/paldocs, all file targets are in the paldocs repo. Single-repo ticket.
Dependencies
- paldocs#50 (sprint schema) -- SATISFIED. Merged to main.
- No other board items block this ticket.
- Downstream: this ticket enables sprint planning for waves 2-4 of the consolidation work.
Acceptance Criteria
6 criteria, all agent-verifiable:
- Nav link presence -- checkable via system test or controller test
- Sprint creation with project selection -- CRUD action testable
- Board items grouped by column -- query and view testable
- Side-by-side project boards -- view structure testable
- Wave staging (sprint_id + wave_number) -- model update testable
- Wave grouping with point totals -- view rendering testable
Test expectations include controller tests (3) and a system test (1). Run command: bundle exec rspec. All reasonable.
Blast Radius
Low. All new files except two append-only modifications:
- config/routes.rb -- adding sprint_planning resource routes (no modification to existing routes)
- application.html.erb -- adding one nav link to header (no modification to existing layout structure)
No sibling services affected. No shared components modified. Existing kanban board, project pages, and notes views are untouched.
Decomposition Assessment
6 file targets in 1 repo. 6 acceptance criteria. Estimated agent work: 3-5 minutes (standard Rails controller + views + routes). All within a single pass for a 3pt ticket. No decomposition needed.
Recommendation
- [SCOPE] Create architecture note arch-rails-views documenting ERB template patterns, Hotwire (Turbo + Stimulus) conventions, and view directory structure used in paldocs. This is a soft gap -- the ticket is executable without it, but the note should exist for traceability.
No other action needed. Ticket is well-scoped, dependency is satisfied, and all file targets are verified.