Review: Day detail page: controller, route, and basic show view
Verdict: NEEDS_REFINEMENT
Template Completeness
- [x] Type -- Feature
- [x] Lineage -- Decomposed from #233 (1 of 4)
- [x] Repo -- ldraney/landscaping-assistant
- [x] User Story -- present
- [x] Context -- present, well-written
- [x] File Targets -- present, includes create/modify/NOT-touch
- [x] Feature Flag -- none (with rationale)
- [x] Acceptance Criteria -- 5 items
- [x] Test Expectations -- 6 items with run command
- [x] Constraints -- present
- [x] Checklist -- present
- [x] Related -- present
Traceability
- [x] story:weekly-tracking label -- present on board item
- [x] story note verified -- "weekly-tracking" found in project-landscaping-assistant user-stories table: "Track weekly completion across all active properties"
- [x] arch:rails-app label -- present on board item
- [ ] arch note MISSING -- [SCOPE] No
arch-rails-appnote found in pal-e-docs. This label is used across 30+ board items. Create architecture notearch-rails-appfor the Rails application component. - [x] Forgejo issue -- #234, state: open
File Targets
- [x]
app/controllers/days_controller.rb-- TO CREATE: does not exist yet (correct) - [x]
app/views/days/show.html.erb-- TO CREATE: does not exist yet (correct) - [x]
spec/requests/days_spec.rb-- TO CREATE: does not exist yet (correct) - [x]
config/routes.rb-- TO MODIFY: exists, currently has no days route (confirmed) - [x]
app/views/weeks/index.html.erb-- TO MODIFY: exists (117 lines), line 81 confirmed:link_to work_queue_items_path(date: day)exactly as described - [x]
app/controllers/work_queue_items_controller.rb-- NOT TOUCH: exists (confirmed) - [x]
app/views/work_queue_items/-- NOT TOUCH: exists (confirmed)
Repo Placement
OK -- issue filed on ldraney/landscaping-assistant, all file targets are in the same repo.
Dependencies
- Parent: #233 (decomposed parent, open) -- correctly documented
- Siblings on board: #235 (item 1473), #236 (item 1474), #237 (item 1475) -- all in backlog, all depend on this ticket landing first
- No blockers for this ticket -- correctly documented
- The
WorkQueueItemmodel exists withwork_datefield andbelongs_to :property-- query pattern in ticket is valid
Acceptance Criteria
- [x] All 5 AC are testable by an agent via request specs
- [x] Test expectations map well to acceptance criteria
- [ ] ISSUE: AC says "requires authentication" in test expectations but the ticket's Constraints section says "auth via
authenticate_user!, role gating viarequire_role" without specifying WHICH roles. The user story says "crew lead or admin" but the Week tab (where day links originate) is gated to:admin, :super_adminonly. Crew leads cannot see the Week tab. The DaysController role gating needs clarification. [BODY] Add explicit role list to Constraints: specifyrequire_role :admin, :super_adminto match Week tab access, OR intentionally broaden to:lead, :admin, :super_adminwith a note that crew leads can access day pages via direct URL even though they cannot see the Week tab.
Blast Radius
- Only one location in the codebase links from weeks to today with a date param (line 81 of weeks/index.html.erb) -- correctly identified in ticket
- Other
work_queue_items_path(date:)references are in work_queue_items views (Today tab internals) and should NOT be changed -- correctly excluded - New route
/days/:datedoes not conflict with any existing routes - No CSS or JS blast radius -- ticket specifies matching existing patterns
Decomposition Assessment
3 files to create + 2 files to modify = 5 file targets, all in one repo. 5 acceptance criteria + 6 test expectations. Estimated agent work: 3-4 minutes. No decomposition needed.
Recommendations
- [BODY] Fix "Blocks" references in Related section: "#234-2, #234-3, #234-4" are not valid Forgejo issue references. Replace with "#235, #236, #237" for proper traceability.
- [BODY] Add explicit role gating to Constraints or File Targets: specify which roles the DaysController should allow. Current user story says "crew lead or admin" but Week tab is admin-only. Either narrow user story to "admin" or explicitly state
require_role :lead, :admin, :super_adminand accept that crew leads reach day pages via direct URL only. - [SCOPE] Create architecture note
arch-rails-appfor the Rails application component. This label is used across 30+ board items and has no backing note.