Review: Week tab: move property between days
Verdict: READY
Re-review after refinement. Previous verdict was NEEDS_REFINEMENT. Issues resolved: uniqueness AC added, #30 independence clarified, test command fixed.
Template Completeness
- [x] Type
- [x] Lineage
- [x] Repo
- [x] User Story
- [x] Context
- [x] File Targets
- [x] Acceptance Criteria
- [x] Test Expectations
- [x] Constraints
- [x] Checklist
- [x] Related
Traceability
- [x] story:weekly-tracking label — "Track weekly completion across all active properties"
- [x] story note verified — found in project-landscaping-assistant user-stories section
- [x] arch:rails-app label — Rails application component
- [ ] arch note MISSING — [SCOPE] Create architecture note arch-rails-app (platform-wide gap, not blocking for this ticket)
- [x] Forgejo issue — https://forgejo.tail5b443a.ts.net/ldraney/landscaping-assistant/issues/32, open
File Targets
- [x] app/views/weeks/index.html.erb — verified: exists, contains week grid with queued/completed cells (lines 34-44)
- [x] app/controllers/weeks_controller.rb — verified: exists, has index action with work_date logic
- [x] config/routes.rb — verified: exists, currently has
resources :weeks, only: [:index]— needs move route added - [x] app/javascript/controllers/ — verified: directory exists with existing Stimulus controllers (sortable, filter, location, add_location)
- [x] app/assets/stylesheets/application.css — verified: exists
Repo Placement
OK — issue filed on ldraney/landscaping-assistant, all file targets are in the same repo. Single-repo change.
Dependencies
- Parent: #28 "Week tab: move, add, and show unassigned properties" (board item #1263, backlog) — this is a child decomposition
- Sibling: #30 "Week tab: show unassigned properties section" (board item #1264, backlog) — explicitly stated as independent, confirmed: this ticket operates on existing grid cells only
- Sibling: #31 "Week tab: add property to a specific day" (board item #1265, backlog) — independent, different functionality
- No blockers in in_progress column. Dependencies correctly documented in issue Lineage section.
Acceptance Criteria
6 AC total — all testable by an agent:
- Day-picker UI on tap — verifiable via integration test
- work_date update — verifiable via DB assertion
- Grid update (old cell cleared) — verifiable via Turbo Stream response
- Uniqueness error — verifiable: model already has
validates :property_id, uniqueness: { scope: :work_date } - Turbo Stream or Stimulus (no full reload) — verifiable by response format
- Mobile-friendly tap targets — verifiable by CSS assertion (44px minimum)
Test command corrected to
bundle exec rspec — matches Rails project conventions.Blast Radius
- WorkQueueItem model NOT modified (per ticket constraints) — good, uniqueness validation already in place
- Existing Turbo Stream patterns established in work_queue_items (create/update/destroy.turbo_stream.erb) — new move action should follow same pattern
- Existing Stimulus controllers in app/javascript/controllers/ — new controller follows established convention
- No downstream consumers affected — self-contained UI feature
Decomposition Assessment
5 file targets in 1 repo, 6 AC — borderline but acceptable for a single agent pass. The work is cohesive (single action: move), all in one controller/view pair with a Stimulus controller and route. Estimated agent time: 3-4 minutes. No decomposition needed.
Recommendation
No action needed. Ticket is well-scoped and ready for implementation.
Note: The missing arch-rails-app note is a platform-wide gap affecting all rails-app tickets. Non-blocking for this review.