Review: Properties tab: proximity-based default sort order
Verdict: READY
Re-review after refinement. Previous review
review-1451-2026-06-13 found one [BODY] issue: app/controllers/work_queue_items_controller.rb was missing from the do-not-touch list. That has been fixed.Template Completeness
- [x] Type -- Feature
- [x] Lineage -- present
- [x] Repo -- ldraney/landscaping-assistant
- [x] User Story -- present, well-formed
- [x] Context -- present, explains paper schedule mental model
- [x] File Targets -- present, 3 modify targets + 3 do-not-touch
- [x] Feature Flag -- present, set to "none" with rationale
- [x] Acceptance Criteria -- present, 5 criteria
- [x] Test Expectations -- present, 3 test cases + run command
- [x] Constraints -- present, 4 constraints
- [x] Checklist -- present
- [x] Related -- present
Traceability
- [x] story:property-crud label -- "Add/edit/delete client properties"
- [x] story note verified -- found in project-landscaping-assistant user-stories section (key: property-crud, role: Landscaper)
- [x] arch:rails-app label -- Rails application component
- [ ] arch note MISSING -- [SCOPE] Create architecture note arch-rails-app for the Rails application component (non-blocking, shared across many board items)
- [x] Forgejo issue -- https://forgejo.tail5b443a.ts.net/ldraney/landscaping-assistant/issues/205, open
File Targets
- [x]
app/controllers/properties_controller.rb-- verified: line 10 sorts byLOWER(client_name), :address_linein themanageaction - [x]
app/controllers/weeks_controller.rb-- verified: line 10 sorts byLOWER(client_name)in theindexaction - [x]
app/models/property.rb-- verified: noby_proximityscope exists yet;latitudeandlongitudefloat columns confirmed in schema (db/schema.rb lines 70-71) - [x] Do-not-touch:
db/schema.rb-- correct, lat/lng columns already exist - [x] Do-not-touch:
app/models/work_queue_item.rb-- correct, queue ordering is user-defined - [x] Do-not-touch:
app/controllers/work_queue_items_controller.rb-- verified: line 16 sorts byupdated_at: :descfor add-to-queue dropdown, intentionally different. FIX FROM PREVIOUS REVIEW CONFIRMED.
Repo Placement
OK -- issue is filed on ldraney/landscaping-assistant and all file targets are in the same repo. Single-repo change.
Dependencies
No blocking dependencies found on the board. The
latitude and longitude columns already exist in the schema. The Add Location feature (already shipped) populates these fields. No other board items block or are blocked by this ticket.Acceptance Criteria
All 5 criteria are testable and well-scoped. The "deterministic" criterion is important -- nearest-neighbor chains can produce different results depending on the starting point, so the base point must be fixed. The test expectations provide clear unit and request test guidance with a concrete run command (
bundle exec rspec spec/models/property_spec.rb spec/requests/properties_spec.rb).Blast Radius
Full controller grep confirms only 3 locations load and sort properties:
PropertiesController#manage(line 10) -- IN SCOPE, will change to proximity sortWeeksController#index(line 10) -- IN SCOPE, will change to proximity sortWorkQueueItemsController#index(line 16) -- correctly listed in do-not-touch, sorts byupdated_at: :desc
No other controllers reference Property sorting. No downstream consumers affected.
Decomposition Assessment
3 file targets in 1 repo, 5 acceptance criteria, straightforward greedy nearest-neighbor algorithm. Estimated agent work well under 5 minutes. No decomposition needed.
Recommendation
[SCOPE]Create architecture notearch-rails-appfor the Rails application component (shared across many board items, not blocking for this ticket)
No other action needed. The sole
[BODY] issue from the previous review has been resolved.