Review: Weekly tracking + property active/inactive

review-1250-2026-05-24 Review

review needs-refinement

Verdict: NEEDS_REFINEMENT

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
All required sections present per template-issue-feature.

Traceability

  • [x] story:weekly-tracking label present on board item
  • [ ] story note MISSING — weekly-tracking not found in project-landscaping-assistant user-stories table. Only address-lookup, property-crud, service-tracking, and special-notes exist. [SCOPE] Create user story entry weekly-tracking on project-landscaping-assistant user-stories section.
  • [x] arch:rails-app label present on board item
  • [ ] arch note MISSING — search for arch-rails-app returned no results. [SCOPE] Create architecture note arch-rails-app in pal-e-docs.
  • [x] Forgejo issue — ldraney/landscaping-assistant#8, state: open

File Targets

  • [x] app/models/property.rb — verified: exists, no active scope yet, has_many :work_queue_items present
  • [x] app/controllers/properties_controller.rb — verified: exists, has update action already, would need active toggle logic
  • [x] app/views/layouts/application.html.erb — verified: exists, currently has 2-tab nav (New, Today), needs expansion to 4 tabs
  • [x] app/views/work_queue_items/index.html.erb — verified: exists, has "All Properties" section that queries all properties (needs active filter)
  • [x] config/routes.rb — verified: exists, currently has properties and work_queue_items resources
  • [x] app/assets/stylesheets/application.css — verified: exists, uses design token system
  • [x] db/migrate/xxx_add_active_to_properties.rb — to be created (new migration)
  • [x] app/controllers/weeks_controller.rb — to be created (new controller, does not exist yet)
  • [x] app/views/weeks/index.html.erb — to be created (new view, directory does not exist yet)
  • [x] app/views/properties/manage.html.erb — to be created (new view, does not exist yet)
All existing file targets verified. New files correctly identified as needing creation. Schema confirms work_queue_items has work_date, property_id, and completed columns — weekly aggregation query is feasible without new tables as stated in constraints.

Repo Placement

OK. Issue filed on ldraney/landscaping-assistant, all file targets are in this same repo. Single-repo change.

Dependencies

  • Extends work from issue #5 (Add navigation and daily work queue) — board item #1248, currently in done column. No blocker.
  • Issue #7 (Drag-to-reorder work queue, board item #1249) is in backlog — independent, no dependency conflict.
  • Issue #2 (Wire up Solid Cache, Queue, Cable, board item #1232) is in backlog — independent infrastructure work.
  • No blocking dependencies detected.

Acceptance Criteria

8 acceptance criteria + 3 test expectations. Criteria are concrete and verifiable:
  • AC 1-4 cover week view (migration, view, navigation, summary)
  • AC 5-6 cover properties management (toggle, visual dimming)
  • AC 7 covers filtering (inactive excluded from Week + Today)
  • AC 8 covers nav (4-tab layout)
Test expectations reference bundle exec rspec — valid, spec directory exists with model and request specs already in place. Tests are verifiable by an agent.

Blast Radius

  • WorkQueueItemsController#index line 5 queries Property.includes(:services, :work_queue_items).order(updated_at: :desc) without any active filter — this is the "All Properties" list in the Today view that needs to filter to active only. Blast radius is contained.
  • PropertiesController#resolve uses Property.find_or_create_by! — could create a property that was previously marked inactive. The ticket does not address what happens when a GPS lookup matches an inactive property. Minor gap but not a blocker for scoping.
  • No sibling services or downstream consumers — this is a standalone Rails app.

Decomposition Assessment

NEEDS DECOMPOSITION.
  • 10 file targets in 1 repo — exceeds the 3-file guideline for a single pass
  • 8 acceptance criteria — exceeds the 5 AC threshold
  • Work spans: migration + model scope + new controller + 2 new views + nav refactor + existing view filter + CSS + routes + specs
  • Estimated agent time: 10-15 minutes — well beyond the 5-minute rule
  • Natural decomposition: (1) migration + model + active scope, (2) week controller + view, (3) properties management view + toggle, (4) nav refactor + active filtering in existing views
[DECOMPOSE] Route to skill-decompose-ticket with 4-phase breakdown.

Recommendation

  • [SCOPE] Create user story entry weekly-tracking on project-landscaping-assistant user-stories section
  • [SCOPE] Create architecture note arch-rails-app in pal-e-docs
  • [DECOMPOSE] 10 file targets, 8 AC — route to skill-decompose-ticket for sub-board creation. Suggested phases: (1) Active/inactive migration + model scope, (2) Week view controller + template, (3) Properties management view + toggle, (4) Nav expansion + active filtering in Today view