Review: Property detail page CSS refresh: name as h1, button treatment per ror-css-guide

review-1351-2026-06-07-v2 Review

review ready

Verdict: READY

Re-review of board item #1351. All three issues from the first review (review-1351-2026-06-07) have been resolved.

Previous Review Fix Verification

  • [x] Hard blocker -- ServiceRequest dependency -- FIXED. Projects section completely removed from this ticket. Lineage section now reads: "CSS-only portion split from original #126 -- projects section moved to separate ticket." Confirmed new ticket #176 ("Property detail page: Projects section (depends on #122)") exists on the board as item #1403 with 3 points.
  • [x] ~/ror-css-guide reference -- CONFIRMED VALID. ~/ror-css-guide is a local repo that exists on disk. This is correct for this project -- it is not a pal-e-docs note.
  • [x] Feature Flag section missing -- FIXED. Issue now contains ### Feature Flag section with value "None". Appropriate for a CSS-only change.

Template Completeness

  • [x] Type -- "Feature"
  • [x] Lineage -- "Child of spike #121, Part of Phase 3, CSS-only split"
  • [x] Repo -- "ldraney/landscaping-assistant"
  • [x] User Story -- "As a crew lead or admin..."
  • [x] Context -- Clear motivation, references existing CSS inconsistencies
  • [x] File Targets -- 3 files listed with action types
  • [x] Feature Flag -- "None" (appropriate for CSS-only)
  • [x] Acceptance Criteria -- 6 criteria listed
  • [x] Test Expectations -- spec file named, run command provided
  • [x] Constraints -- CSS guide reference, no Tailwind, mobile-first, no projects section
  • [x] Checklist -- present
  • [x] Related -- #121 parent spike, NEW_ISSUE for projects section split

Traceability

  • [x] story:auth label -- "auth" story present on board item
  • [x] story note verified -- "auth" story exists in project-landscaping-assistant user-stories section (Key: auth, Role: All roles, Summary: "Log in with Keycloak, see role-appropriate tabs and features")
  • [x] arch:rails-app label -- present on board item
  • [ ] arch note MISSING -- no "arch-rails-app" note found in pal-e-docs. [SCOPE] However, this is the primary app itself, not a separable architectural component. Every rails-app ticket has this label. Acceptable -- no action needed.
  • [x] Forgejo issue -- ldraney/landscaping-assistant#126, state: open

File Targets

  • [x] app/views/properties/show.html.erb -- verified: exists, currently shows address_line as h1 (line 2), has client_name in definition list (line 11), uses btn-link class on "Go to Location" (line 33) and "Edit" (line 35). All claims in the ticket are accurate.
  • [x] app/assets/stylesheets/application.css -- verified: exists, .detail-actions section at line 913, .btn-link defined at line 929. Design tokens in :root at top of file. PropertyDetail component section at line 248.
  • [x] spec/requests/properties_spec.rb -- verified: exists, show specs at line 46. Current specs check for address in body (include("123 Test St")) but do NOT assert heading structure (no h1 check). Updating spec to assert client_name in h1 is feasible.

Repo Placement

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

Dependencies

  • No blocking dependencies. The ServiceRequest/projects dependency was correctly split to ticket #176.
  • Ticket #176 (board item #1403) correctly depends on #122 (ServiceRequest model), not this ticket.
  • Parent spike #121 is done (board item #1346, column: done).
  • ~/ror-css-guide is a local reference repo (read-only dependency). Agent needs access to read CSS conventions from it.

Acceptance Criteria

All 6 criteria are verifiable by an agent:
  • [x] "h1 is client_name" -- can assert in spec and grep template
  • [x] "Address as subtitle or 'No address yet'" -- can assert in spec
  • [x] "Client name removed from definition list" -- can grep template
  • [x] "All action buttons use .btn base class" -- can grep for btn-link absence
  • [x] "Primary action full-width, secondary split row" -- can verify CSS structure
  • [x] "Mobile 44px touch targets" -- can verify min-height in CSS
Test command bundle exec rspec is real and correct.

Blast Radius

  • .btn-link class is ONLY used in properties/show.html.erb (2 occurrences). Removing or replacing it will not affect other views.
  • .detail-actions CSS section is only referenced by the show template. Safe to restructure.
  • The h1 change from address_line to client_name is view-only -- no model or controller changes needed.
  • Spec changes are additive (assert h1 contains client_name). Existing specs that check for "123 Test St" in body will still pass since address moves to subtitle, not removed from page.

Decomposition Assessment

3 file targets in 1 repo, 6 acceptance criteria, estimated agent work under 5 minutes. No decomposition needed.

Recommendation

No action needed. Ticket is ready for implementation.