Review: Mobile app: skip landing page, go straight to login/register
Verdict: READY
Template Completeness
- [x] Type -- Feature
- [x] Lineage -- references #355 (landing page redesign)
- [x] Repo -- ldraney/landscaping-assistant
- [x] User Story -- well-formed As a/I want/So that
- [x] Context -- explains why mobile users should not see the marketing landing page
- [x] File Targets -- one modify target, two do-not-touch targets
- [x] Feature Flag -- none (appropriate for this change)
- [x] Acceptance Criteria -- 4 criteria
- [x] Test Expectations -- 2 request specs + run command
- [x] Constraints -- 3 constraints (User-Agent detection, before_action pattern, match both turbo-ios and turbo-android)
- [x] Checklist -- present
- [x] Related -- references project-landscaping-assistant
Traceability
- [x] story:app-store-submission label -- Submit and maintain iOS App Store listing
- [x] story note verified -- found in project-landscaping-assistant user-stories section
- [x] arch:rails-frontend label -- Rails frontend architecture
- [x] arch note verified -- arch-rails-frontend note exists in pal-e-docs. Notably, the arch note explicitly lists "Turbo Native User-Agent check in controller" as a correct example.
- [x] Forgejo issue -- ldraney/landscaping-assistant#356, open
File Targets
- [x]
app/controllers/landing_controller.rb-- verified: exists, containsindexaction with existinglogged_in?redirect andfeature_enabled?(:public_landing)check. Correct file for adding Turbo Native User-Agent detection as a before_action or early return. - [x]
app/views/sessions/new.html.erb-- verified: exists (do-not-touch, login page) - [x]
app/views/landing/index.html.erb-- verified: exists (do-not-touch, landing page) - [x]
spec/requests/landing_spec.rb-- verified: exists, already tests landing page and redirect behavior. New Turbo Native specs will extend this file.
Repo Placement
Correct. Issue filed on ldraney/landscaping-assistant, fix is in that same repo. Single-repo change.
Dependencies
- Board item #1987 ("Landing page: Android badge, hamburger nav, web demo pitch") is related (same story, same arch label, references #355) but is in backlog and not a blocker. These two issues are independent -- #356 redirects mobile users away from the landing page, #355 improves the landing page for web visitors.
- Items #1983 and #1984 (app-store-submission, in qa column) -- not blocking.
- No items in in_progress block this work.
- No undocumented dependencies found.
Acceptance Criteria
All 4 criteria are testable by an agent:
- AC 1-2 (Turbo Native iOS/Android redirect): verifiable via request specs with User-Agent headers containing "Turbo Native"
- AC 3 (web browser sees landing page): existing spec already covers this; new spec can assert non-redirect explicitly
- AC 4 (authenticated mobile users go to dashboard): already handled by existing
logged_in?check in the controller. This is a regression-prevention criterion, not new work -- the existing test suite covers it.
Test run command is valid:
bundle exec rspec spec/requests/landing_spec.rbBlast Radius
Low. The change is isolated to one controller action (LandingController#index). No other services consume the landing page redirect. No Turbo Native User-Agent detection exists elsewhere in the codebase currently, so this introduces the pattern for the first time. The
arch-rails-frontend convention already endorses this exact pattern ("Turbo Native User-Agent check in controller" listed as correct example). Other Rails apps in the ecosystem (believers-elite, botfire, etc.) do not have landing controllers and are not affected.Decomposition Assessment
No decomposition needed. 1 file target, 1 repo, 4 acceptance criteria, estimated agent work well under 5 minutes (add a before_action or early return, write 2 request specs).
Recommendation
No action needed.