Review: Week tab: move property between days

review-1266-2026-05-24 Review

review ready

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.