Review: Person icon: route to My Profile / My Property views
Verdict: READY
Board item #1363 on board-landscaping-assistant (backlog, 3 points)
Forgejo issue: ldraney/landscaping-assistant#137
Labels: type:feature, arch:rails-app, story:auth, phase:2
Forgejo issue: ldraney/landscaping-assistant#137
Labels: type:feature, arch:rails-app, story:auth, phase:2
Template Completeness
- [x] Type -- Feature
- [x] Lineage -- Discovered during PR #136 review
- [x] Repo -- ldraney/landscaping-assistant
- [x] User Story
- [x] Context
- [x] File Targets (create + modify + NOT touch)
- [x] Acceptance Criteria
- [x] Out of Scope
- [x] Test Expectations
- [x] Constraints
- [x] Checklist
- [x] Related
All required sections for Feature type are present and filled.
Traceability
- [x] story:auth label present
- [ ] story note MISSING -- no "auth" entry in project-landscaping-assistant user-stories section. Known systemic gap, deferred -- not blocking.
- [x] arch:rails-app label present
- [ ] arch note MISSING -- no arch-rails-app note in pal-e-docs. Known systemic gap, deferred -- not blocking.
- [x] Forgejo issue -- ldraney/landscaping-assistant#137, open
File Targets
Files to create (confirmed do NOT exist yet):
- [x]
app/controllers/person_controller.rb-- does not exist, ready to create - [x]
app/views/person/index.html.erb-- does not exist, ready to create - [x]
spec/requests/person_spec.rb-- does not exist, ready to create
Files to modify (confirmed exist with expected content):
- [x]
app/views/layouts/application.html.erb-- line 64 confirmed:link_to root_pathfor Person icon. Platform sub-nav at lines 69-74 confirmed for super_admin. - [x]
config/routes.rb-- no person route exists yet.resources :person, only: [:index]verified to generateperson_index GET /person person#indexwith helperperson_index_path. - [x]
app/assets/stylesheets/application.css-- exists, ready for Person view styles
Files NOT to touch (confirmed exist and working):
- [x]
app/controllers/platform/feature_flags_controller.rb-- exists - [x]
app/views/platform/feature_flags/index.html.erb-- exists - [x]
app/controllers/sessions_controller.rb-- exists - [x]
app/controllers/application_controller.rb-- exists, role helpers confirmed:current_user_has_role?,visible_tabs,current_userreturning session hash with:username,:email,:roleskeys
Repo Placement
OK -- issue filed on ldraney/landscaping-assistant, all file targets are in this repo. Single-repo change.
Dependencies
- #107 / PR #136 (5-slot nav with Person placeholder) -- done, merged
- #130 / PR #144 (Platform feature flags UI under Person) -- done, merged
- #123 (Client request UI / My Property detail) -- correctly listed as out of scope / future
- #117 (Crew tab) -- sibling phase:2 work, no dependency
No blockers. All prerequisites are complete.
Acceptance Criteria
7 acceptance criteria, all testable by an agent:
- Person icon navigation -- verifiable via request spec checking redirect/response
- Profile section content -- verifiable via response body assertions
- Crew join form placeholder -- verifiable via response body assertions
- My Property client-only visibility -- verifiable via role-based request specs
- Platform link super_admin-only -- verifiable via role-based request specs
- All-role access -- verifiable with 5-role parameterized specs
- Dev mode graceful degradation -- verifiable by running specs without KEYCLOAK_URL
6 test expectations with specific run command:
bundle exec rspec spec/requests/person_spec.rb. Existing request spec patterns in spec/requests/ (12 files) provide clear templates to follow.Blast Radius
Minimal. Only change to existing views is updating one
link_to target on line 64 of the layout (root_path -> person_index_path). The Platform sub-nav (lines 69-74) remains untouched. No other files reference "person" in a way that would conflict. The is-active logic on the Person tab will need updating to check controller_name == 'person' instead of the current work_queue_items fallback -- this is implicit in the ticket but not explicitly called out as an AC. The implementing agent should handle this naturally.Decomposition Assessment
3 files to create + 3 files to modify = 6 file targets, all in one repo. 7 AC (at the threshold). The work is cohesive: one controller, one view, one route entry, one CSS section, one link update, and one spec file. Estimated agent work: ~4 minutes. No decomposition needed.
Recommendation
No action needed. Ticket is well-scoped and ready for implementation.
Note: The two systemic gaps (missing story:auth user story on project page, missing arch-rails-app note) are known and deferred per reviewer instructions. These should be addressed as a separate housekeeping pass across all story:auth / arch:rails-app tickets.