Review: Hours tab: daily/weekly summary (re-review)

review-1939-2026-07-27-r2 Review

review needs-refinement

Verdict: NEEDS_REFINEMENT

Re-review of board item #1939 after refinement. Previous review: review-1939-2026-07-27. 2 of 3 issues resolved; 1 remains.

Previous Review Issues -- Status

  • [x] Lineage updated -- FIXED. Lineage now reads: "Depends on #332 (TimeEntry data model + API, sprint:6) and #333 (Hours tab UI, sprint:7)." Both upstream tickets explicitly listed.
  • [x] Files annotated with "(created by #NNN)" -- FIXED. All three upstream-created files now annotated:
  • [ ] User story on project page -- NOT FIXED. crew-time-tracking entry is still absent from the project-landscaping-assistant user-stories section. The section contains 15 story rows; none is crew-time-tracking.

Template Completeness

  • [x] Type -- Feature
  • [x] Lineage -- present, references parent #331 and dependencies #332, #333
  • [x] Repo -- ldraney/landscaping-assistant
  • [x] User Story -- present, well-formed (crew member/lead perspective)
  • [x] Context -- present, references BusyBusy UX pattern
  • [x] File Targets -- present with create/modify/do-not-touch sections, upstream annotations
  • [x] Feature Flag -- present (time_tracking, registered by #332)
  • [x] Acceptance Criteria -- 6 criteria present
  • [x] Test Expectations -- present with run command
  • [x] Constraints -- present (Mon-Sun, duration format, no pagination)
  • [x] Checklist -- present
  • [x] Related -- present

Traceability

  • [x] story:crew-time-tracking label -- present on board item
  • [ ] story note MISSING -- [SCOPE] No crew-time-tracking entry in project-landscaping-assistant user-stories section. This was flagged in the first review and remains unresolved.
  • [x] arch:rails label -- present
  • [x] arch note verified -- arch-rails note exists in pal-e-docs (associated with Prediction Assistant project, not landscaping-assistant, but architecture note exists)
  • [x] Forgejo issue -- #334, open

File Targets

  • [x] app/views/hours/_daily_entries.html.erb -- to create (new file, OK)
  • [x] app/views/hours/_weekly_summary.html.erb -- to create (new file, OK)
  • [x] app/views/hours/index.html.erb (created by #333) -- correctly annotated; does not exist yet (expected, #333 is in backlog)
  • [x] app/controllers/hours_controller.rb (created by #332) -- correctly annotated; verified #332 creates this controller. Does not exist yet (expected, #332 is in backlog)
  • [x] app/models/time_entry.rb (created by #332) -- correctly annotated; does not exist yet (expected, #332 is in backlog)
  • [x] app/assets/stylesheets/application.css -- verified, exists
  • [x] Referenced pattern work_queue_items/_queue_item.html.erb -- verified, exists in codebase

Repo Placement

OK. Issue filed on ldraney/landscaping-assistant, all file targets within the same repo. No cross-repo concerns.

Dependencies

  • #332 "TimeEntry data model + API + flag" (sprint:6, backlog) -- creates TimeEntry model, hours_controller.rb, time_tracking feature flag. Explicitly listed in Lineage. Correctly referenced in file annotations.
  • #333 "Hours tab: clock in/out/break UI" (sprint:7, backlog) -- creates hours/index.html.erb, adds nav tab, timer widget. Explicitly listed in Lineage. Correctly referenced in file annotations.
  • #331 "Time Tracking: Hours Tab (parent)" (backlog) -- umbrella/parent issue. Listed in Lineage.
  • Execution order: #332 (sprint:6) -> #333 and #334 (sprint:7). Sprint ordering is correct.
  • All dependencies documented in the issue body.

Acceptance Criteria

6 criteria, all concrete and agent-verifiable:
  • AC 1-4: view-level checks -- verifiable via request specs checking response body
  • AC 5: break subtraction logic -- verifiable via model spec
  • AC 6: Turbo Stream update after clock out -- verifiable; Turbo Stream patterns exist in codebase
Test commands are real (bundle exec rspec). Test expectations cover request and model specs with specific file paths.

Blast Radius

Low. Net-new feature adding views and scopes to a new model/controller pair. No existing TimeEntry, for_date, for_week, or total_duration patterns in the codebase. Only modifies application.css (additive styles). No downstream consumers affected.

Decomposition Assessment

6 file targets across 1 repo. 6 acceptance criteria (borderline on the >5 AC rule). Work is highly cohesive: all changes serve a single UI feature (daily/weekly summary views). Estimated agent time: ~4-5 minutes. No decomposition needed.

Recommendation

  • [SCOPE] Create user story entry crew-time-tracking on project-landscaping-assistant user-stories section. This is the sole remaining issue from the first review. Suggested row: Key=crew-time-tracking, Role=Crew member/lead, Summary="Clock in/out, view daily and weekly hour totals", Success Metric="Timer widget, daily entries list, weekly summary with break deductions"