Fix native app architecture: turbo-ios, not Capacitor #2

Merged
ldraney merged 2 commits from 1-fix-ios-architecture-docs into main 2026-06-19 01:51:28 +00:00
Owner

Summary

  • Replace Capacitor references with turbo-ios / Hotwire Native pattern from landscaping-assistant-ios
  • Architecture doc now reflects native Swift shell + WKWebView + Keycloak OAuth (PKCE) + Fastlane
  • User stories updated to match actual iOS distribution workflow

Changes

  • docs/architecture.md: Replaced "Future: Native App (Capacitor)" section with turbo-ios architecture, updated Mermaid diagram to show ASWebAuthenticationSession + WKWebView flow, added bullet points on Fastlane distribution and web-change-without-rebuild pattern
  • docs/user-stories.md: Replaced Capacitor references in Phase 3 user stories with turbo-ios shell and Fastlane distribution

Test Plan

  • Mermaid diagrams render correctly on Forgejo
  • No broken markdown links
  • Architecture matches landscaping-assistant-ios pattern

Review Checklist

  • Passed automated review-fix loop
  • No secrets committed
  • No unnecessary file changes
  • Commit messages are descriptive
  • Feature flag needed? No — docs only
  • Closes #1
  • my-vibes-world — project this work belongs to
## Summary - Replace Capacitor references with turbo-ios / Hotwire Native pattern from landscaping-assistant-ios - Architecture doc now reflects native Swift shell + WKWebView + Keycloak OAuth (PKCE) + Fastlane - User stories updated to match actual iOS distribution workflow ## Changes - `docs/architecture.md`: Replaced "Future: Native App (Capacitor)" section with turbo-ios architecture, updated Mermaid diagram to show ASWebAuthenticationSession + WKWebView flow, added bullet points on Fastlane distribution and web-change-without-rebuild pattern - `docs/user-stories.md`: Replaced Capacitor references in Phase 3 user stories with turbo-ios shell and Fastlane distribution ## Test Plan - [ ] Mermaid diagrams render correctly on Forgejo - [ ] No broken markdown links - [ ] Architecture matches landscaping-assistant-ios pattern ## Review Checklist - [ ] Passed automated review-fix loop - [ ] No secrets committed - [ ] No unnecessary file changes - [ ] Commit messages are descriptive - [ ] Feature flag needed? No — docs only ## Related Notes - Closes #1 - `my-vibes-world` — project this work belongs to
Replace Capacitor references with the actual iOS pattern from
landscaping-assistant-ios: native Swift shell using turbo-ios /
Hotwire Native with WKWebView, Keycloak OAuth (PKCE), and
Fastlane for distribution.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Author
Owner

PR #2 Review

DOMAIN REVIEW

Tech stack identified: Markdown documentation with Mermaid diagrams. No application code changes.

Mermaid syntax: The updated flowchart TD in docs/architecture.md is syntactically valid. Node definitions use correct bracket notation, edge labels use pipe syntax properly, and the flow Link -> App -> Auth -> WKWebView -> Page is logically sound for a turbo-ios + Keycloak PKCE pattern.

Technical accuracy: The architecture now correctly reflects a Hotwire Native / turbo-ios pattern -- native Swift shell with WKWebView rendering server-driven HTML, ASWebAuthenticationSession for OAuth, and Fastlane for distribution. This is consistent with the landscaping-assistant-ios reference.

Cross-file consistency: Both docs/architecture.md and docs/user-stories.md now reference turbo-ios, WKWebView, and Fastlane consistently. No orphaned Capacitor references remain anywhere in the repository (verified via grep).

Scope: +15/-7 lines across exactly 2 docs files. Tightly scoped to the issue intent -- replacing Capacitor with turbo-ios references. No scope creep.

BLOCKERS

None.

NITS

  1. Minor wording tension in docs/architecture.md: The intro line says "native Swift shell wrapping WKWebView" while a bullet below says "not a web wrapper." These are technically compatible (turbo-ios is a native shell that uses WKWebView, distinct from a pure web-wrapper like Capacitor), but the juxtaposition could confuse readers unfamiliar with Hotwire Native. Consider rewording the intro to "native Swift shell powered by WKWebView" to avoid any ambiguity.

  2. Android dropped without comment: The old text mentioned "Android App Links" alongside iOS Universal Links. The new text is iOS-only (turbo-ios, ASWebAuthenticationSession, Fastlane/TestFlight). This is presumably intentional since turbo-ios is iOS-specific, but a brief note like "Android TBD" or removing Android scope explicitly would make the decision visible.

SOP COMPLIANCE

  • PR body has ## Summary, ## Changes, ## Test Plan, ## Related
  • No secrets committed
  • No unnecessary file changes (2 files, both in scope)
  • Commit messages are descriptive (branch name 1-fix-ios-architecture-docs matches issue)
  • Closes #1 referenced in PR body

PROCESS OBSERVATIONS

  • Low-risk docs-only change. No deployment failure risk.
  • Change correctly aligns documentation with actual platform patterns (landscaping-assistant-ios).
  • The PR body's Test Plan includes "Architecture matches landscaping-assistant-ios pattern" -- good cross-reference practice.

VERDICT: APPROVED

## PR #2 Review ### DOMAIN REVIEW **Tech stack identified:** Markdown documentation with Mermaid diagrams. No application code changes. **Mermaid syntax:** The updated `flowchart TD` in `docs/architecture.md` is syntactically valid. Node definitions use correct bracket notation, edge labels use pipe syntax properly, and the flow `Link -> App -> Auth -> WKWebView -> Page` is logically sound for a turbo-ios + Keycloak PKCE pattern. **Technical accuracy:** The architecture now correctly reflects a Hotwire Native / turbo-ios pattern -- native Swift shell with WKWebView rendering server-driven HTML, ASWebAuthenticationSession for OAuth, and Fastlane for distribution. This is consistent with the landscaping-assistant-ios reference. **Cross-file consistency:** Both `docs/architecture.md` and `docs/user-stories.md` now reference turbo-ios, WKWebView, and Fastlane consistently. No orphaned Capacitor references remain anywhere in the repository (verified via grep). **Scope:** +15/-7 lines across exactly 2 docs files. Tightly scoped to the issue intent -- replacing Capacitor with turbo-ios references. No scope creep. ### BLOCKERS None. ### NITS 1. **Minor wording tension** in `docs/architecture.md`: The intro line says "native Swift shell wrapping WKWebView" while a bullet below says "not a web wrapper." These are technically compatible (turbo-ios is a native shell that *uses* WKWebView, distinct from a pure web-wrapper like Capacitor), but the juxtaposition could confuse readers unfamiliar with Hotwire Native. Consider rewording the intro to "native Swift shell powered by WKWebView" to avoid any ambiguity. 2. **Android dropped without comment:** The old text mentioned "Android App Links" alongside iOS Universal Links. The new text is iOS-only (turbo-ios, ASWebAuthenticationSession, Fastlane/TestFlight). This is presumably intentional since turbo-ios is iOS-specific, but a brief note like "Android TBD" or removing Android scope explicitly would make the decision visible. ### SOP COMPLIANCE - [x] PR body has ## Summary, ## Changes, ## Test Plan, ## Related - [x] No secrets committed - [x] No unnecessary file changes (2 files, both in scope) - [x] Commit messages are descriptive (branch name `1-fix-ios-architecture-docs` matches issue) - [x] Closes #1 referenced in PR body ### PROCESS OBSERVATIONS - Low-risk docs-only change. No deployment failure risk. - Change correctly aligns documentation with actual platform patterns (landscaping-assistant-ios). - The PR body's Test Plan includes "Architecture matches landscaping-assistant-ios pattern" -- good cross-reference practice. ### VERDICT: APPROVED
- Resolve wording tension: "native Swift app with embedded WKWebView"
  instead of conflicting "wrapping" vs "not a wrapper" language
- Acknowledge Android App Links as future consideration rather than
  silently dropping cross-platform scope

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
ldraney deleted branch 1-fix-ios-architecture-docs 2026-06-19 01:51:28 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
ldraney/my-vibes-world!2
No description provided.