Add iOS dev builds documentation #218

Merged
ldraney merged 5 commits from docs/testflight-and-direct-install into main 2026-06-15 12:21:07 +00:00
Owner

Summary

  • New docs/ios-dev-builds.md covering TestFlight, wireless Xcode, and USB install methods
  • Documents Fastlane setup, when rebuilds are needed vs web-only deploys, and troubleshooting
  • Added new doc to README documentation table

Closes #108

Changes

  • docs/ios-dev-builds.md: new doc -- three install methods, comparison table, Fastlane lanes, troubleshooting
  • README.md: added iOS Dev Builds row to documentation table

Test Plan

  • Doc renders correctly on Forgejo
  • No regressions in existing docs

Review Checklist

  • Passed automated review-fix loop
  • No secrets committed
  • No unnecessary file changes
  • Commit messages are descriptive
  • Feature flag needed? No -- docs only
  • ldraney/landscaping-assistant #108 -- Turbo Native iOS project
  • landscaping-assistant -- project this work belongs to
## Summary - New `docs/ios-dev-builds.md` covering TestFlight, wireless Xcode, and USB install methods - Documents Fastlane setup, when rebuilds are needed vs web-only deploys, and troubleshooting - Added new doc to README documentation table Closes #108 ## Changes - `docs/ios-dev-builds.md`: new doc -- three install methods, comparison table, Fastlane lanes, troubleshooting - `README.md`: added iOS Dev Builds row to documentation table ## Test Plan - [ ] Doc renders correctly on Forgejo - [ ] No regressions in existing docs ## 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 - `ldraney/landscaping-assistant #108` -- Turbo Native iOS project - `landscaping-assistant` -- project this work belongs to
Add iOS dev builds doc and CLAUDE.md symlink
Some checks failed
CI / scan_ruby (pull_request) Waiting to run
CI / scan_js (pull_request) Waiting to run
CI / lint (pull_request) Waiting to run
ci/woodpecker/push/woodpecker Pipeline failed
ci/woodpecker/pr/woodpecker Pipeline failed
d0408ab581
Document the three methods for getting the app on a phone (TestFlight,
wireless Xcode, USB), Fastlane setup, and when rebuilds are needed vs
web-only deploys. Add CLAUDE.md as a symlink to README for Claude Code
context.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Merge branch 'main' into docs/testflight-and-direct-install
Some checks failed
CI / scan_ruby (pull_request) Waiting to run
CI / scan_js (pull_request) Waiting to run
CI / lint (pull_request) Waiting to run
ci/woodpecker/push/woodpecker Pipeline failed
ci/woodpecker/pr/woodpecker Pipeline failed
3701518796
Merge branch 'main' into docs/testflight-and-direct-install
Some checks failed
CI / scan_ruby (pull_request) Waiting to run
CI / scan_js (pull_request) Waiting to run
CI / lint (pull_request) Waiting to run
ci/woodpecker/push/woodpecker Pipeline failed
ci/woodpecker/pr/woodpecker Pipeline failed
ea572ee7fb
Merge main into docs/testflight-and-direct-install
Some checks failed
CI / scan_ruby (pull_request) Waiting to run
CI / scan_js (pull_request) Waiting to run
CI / lint (pull_request) Waiting to run
ci/woodpecker/push/woodpecker Pipeline failed
ci/woodpecker/pr/woodpecker Pipeline failed
7413f7bcdd
Resolve README.md conflict: keep both iOS Dev Builds and Local Dev
Setup rows in the documentation table.

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

PR #218 Review

DOMAIN REVIEW

Tech stack: Documentation only (Markdown). No application code changes. The PR adds docs/ios-dev-builds.md (155 lines) covering TestFlight, wireless Xcode installs, and USB installs, and adds the doc to the README documentation table.

Content quality: The doc is well-structured -- three install methods with clear prerequisites, step-by-step instructions, a comparison table, Fastlane lane definitions, and a troubleshooting section. The "When you need a new build" section is a valuable addition that will save repeated questions about web-only vs native rebuilds.

Accuracy concern: The Fastfile example shows increment_build_number without specifying a xcodeproj parameter. If the iOS project has a non-standard name or path, this may fail silently or increment the wrong target. Minor since this is documentation, not executable code in this repo.

BLOCKERS

CLAUDE.md symlink missing from diff: The PR title, summary, and changes section all claim a CLAUDE.md symlink to README.md was added, but the diff contains only 2 changed files (README.md and docs/ios-dev-builds.md). The symlink is either not committed or was dropped before push. The PR description does not match the actual content.

This is a BLOCKER because it represents a gap between stated deliverables and actual changes. Either:

  1. Add the CLAUDE.md symlink to the branch and push, or
  2. Remove the CLAUDE.md references from the PR title/body to match what was actually delivered.

NITS

  1. README table ordering: The new row is inserted between Multi-Database and a missing Local Dev Setup entry. On the current main branch, the row after Multi-Database is Testing Strategy. The diff shows Local Dev Setup below the new row, but that entry does not exist on main today. This suggests the PR branch may be based on a stale or different state of main, or there are uncommitted/missing changes. Worth verifying the branch is rebased on current main.

  2. Apple Team ID in docs: HAY64YD5PX is included in the doc. While Team IDs are semi-public (visible in App Store metadata), consider whether this belongs in a repo that may become more widely shared. Not a blocker for a private repo.

  3. SSH command style: ssh macbook "cd ~/landscaping-assistant-ios && fastlane beta" assumes a hostname alias macbook. Consider adding a note that this requires SSH config or substituting the actual host.

SOP COMPLIANCE

  • PR body has Summary, Changes, Test Plan, Related sections
  • No secrets committed (Team ID is semi-public, no API keys or tokens)
  • No unnecessary file changes -- the CLAUDE.md symlink claimed but not present creates ambiguity
  • Commit messages are descriptive

PROCESS OBSERVATIONS

  • Deployment risk: Zero -- docs-only change, no application code affected.
  • Documentation gap: This PR closes #108 (Turbo Native iOS project). If #108 covers the full iOS project setup, this docs-only PR may be a partial close. Verify that the iOS app code itself was delivered in a separate PR or repo before closing #108.
  • CLAUDE.md pattern: Symlinking CLAUDE.md to README.md is a good pattern for giving Claude Code project context. Worth standardizing across repos once the symlink is actually committed.

VERDICT: NOT APPROVED

Single blocker: the CLAUDE.md symlink is described in the PR but absent from the diff. Fix the discrepancy (either add the symlink or update the PR description), then re-request review.

## PR #218 Review ### DOMAIN REVIEW **Tech stack**: Documentation only (Markdown). No application code changes. The PR adds `docs/ios-dev-builds.md` (155 lines) covering TestFlight, wireless Xcode installs, and USB installs, and adds the doc to the README documentation table. **Content quality**: The doc is well-structured -- three install methods with clear prerequisites, step-by-step instructions, a comparison table, Fastlane lane definitions, and a troubleshooting section. The "When you need a new build" section is a valuable addition that will save repeated questions about web-only vs native rebuilds. **Accuracy concern**: The Fastfile example shows `increment_build_number` without specifying a `xcodeproj` parameter. If the iOS project has a non-standard name or path, this may fail silently or increment the wrong target. Minor since this is documentation, not executable code in this repo. ### BLOCKERS **CLAUDE.md symlink missing from diff**: The PR title, summary, and changes section all claim a `CLAUDE.md` symlink to `README.md` was added, but the diff contains only 2 changed files (`README.md` and `docs/ios-dev-builds.md`). The symlink is either not committed or was dropped before push. The PR description does not match the actual content. This is a BLOCKER because it represents a gap between stated deliverables and actual changes. Either: 1. Add the CLAUDE.md symlink to the branch and push, or 2. Remove the CLAUDE.md references from the PR title/body to match what was actually delivered. ### NITS 1. **README table ordering**: The new row is inserted between Multi-Database and a missing `Local Dev Setup` entry. On the current main branch, the row after Multi-Database is `Testing Strategy`. The diff shows `Local Dev Setup` below the new row, but that entry does not exist on main today. This suggests the PR branch may be based on a stale or different state of main, or there are uncommitted/missing changes. Worth verifying the branch is rebased on current main. 2. **Apple Team ID in docs**: `HAY64YD5PX` is included in the doc. While Team IDs are semi-public (visible in App Store metadata), consider whether this belongs in a repo that may become more widely shared. Not a blocker for a private repo. 3. **SSH command style**: `ssh macbook "cd ~/landscaping-assistant-ios && fastlane beta"` assumes a hostname alias `macbook`. Consider adding a note that this requires SSH config or substituting the actual host. ### SOP COMPLIANCE - [x] PR body has Summary, Changes, Test Plan, Related sections - [x] No secrets committed (Team ID is semi-public, no API keys or tokens) - [ ] No unnecessary file changes -- the CLAUDE.md symlink claimed but not present creates ambiguity - [x] Commit messages are descriptive ### PROCESS OBSERVATIONS - **Deployment risk**: Zero -- docs-only change, no application code affected. - **Documentation gap**: This PR closes #108 (Turbo Native iOS project). If #108 covers the full iOS project setup, this docs-only PR may be a partial close. Verify that the iOS app code itself was delivered in a separate PR or repo before closing #108. - **CLAUDE.md pattern**: Symlinking CLAUDE.md to README.md is a good pattern for giving Claude Code project context. Worth standardizing across repos once the symlink is actually committed. ### VERDICT: NOT APPROVED Single blocker: the CLAUDE.md symlink is described in the PR but absent from the diff. Fix the discrepancy (either add the symlink or update the PR description), then re-request review.
ldraney changed title from Add iOS dev builds doc and CLAUDE.md symlink to Add iOS dev builds documentation 2026-06-14 14:00:29 +00:00
Author
Owner

PR #218 Review

DOMAIN REVIEW

Tech stack: Documentation only (Markdown). 2 files changed, +156 lines, 0 deletions.

Scope: New docs/ios-dev-builds.md covering three iPhone install methods (TestFlight, wireless Xcode, USB) plus Fastlane setup and troubleshooting. README updated to add the doc to the documentation table.

Content quality: The doc is well-structured with clear section hierarchy, a useful comparison table, actionable commands, and a practical troubleshooting section. The "When you need a new build" section is particularly valuable -- it clarifies the web-only vs native-rebuild boundary, which is the most common question for turbo-ios projects.

Cross-reference consistency issue: The existing docs/pipeline.md uses ~/landscaping-ios as the local project path (lines 95, 113, 122), while this new doc uses ~/landscaping-assistant-ios throughout. One of these is wrong. Recommend aligning to whichever path is actually in use on the MacBook. This is a nit since the doc is instructional and the reader will adapt, but inconsistency across docs creates confusion.

Overlap with pipeline.md: Sections 3 and 4 of docs/pipeline.md already cover iOS dev builds and TestFlight/App Store. The new doc duplicates and expands on this content. This is acceptable -- pipeline.md gives the overview while ios-dev-builds.md is the hands-on reference -- but neither doc cross-references the other. Adding a "See also" line in each would prevent them from diverging silently.

BLOCKERS

None. This is a docs-only PR with no code changes, no secrets, and no security surface.

NITS

  1. Path inconsistency: ~/landscaping-assistant-ios (this doc) vs ~/landscaping-ios (pipeline.md). Pick one and update both docs.

  2. Missing cross-references: ios-dev-builds.md does not link to docs/pipeline.md (which covers the same iOS flows at a higher level). pipeline.md does not link to this new doc. A ## Related section in the new doc and a line in pipeline.md would help.

  3. Apple Team ID in plain text: HAY64YD5PX on line 8 of the new doc. This is semi-public (visible in provisioning profiles and App Store metadata), so it is not a secret, but consider whether you want it in a public-facing doc. If the repo is private, this is a non-issue.

  4. README table ordering: The iOS Dev Builds row is inserted between Multi-Database and Local Dev Setup. Alphabetical or thematic grouping would place it closer to Pipeline and Infrastructure. Minor -- the PR branch appears to already include the expanded table from PR #221, so ordering may have been intentional.

SOP COMPLIANCE

  • PR body has Summary, Changes, Test Plan, Related sections
  • No secrets committed (Team ID and bundle ID are public identifiers, not credentials)
  • No unnecessary file changes (2 files, both on-topic)
  • Commit messages are descriptive (PR title is clear: "Add iOS dev builds documentation")
  • PR body updated to remove stale CLAUDE.md symlink references (per re-review context)
  • Test plan appropriate for docs-only change

PROCESS OBSERVATIONS

Docs-only PRs are low-risk for change failure. The duplication overlap with pipeline.md is worth tracking -- if either doc is updated in the future, the other should be checked for consistency. The path inconsistency (landscaping-ios vs landscaping-assistant-ios) should be resolved before merge to avoid confusing future readers (or agents).

VERDICT: APPROVED

## PR #218 Review ### DOMAIN REVIEW **Tech stack:** Documentation only (Markdown). 2 files changed, +156 lines, 0 deletions. **Scope:** New `docs/ios-dev-builds.md` covering three iPhone install methods (TestFlight, wireless Xcode, USB) plus Fastlane setup and troubleshooting. README updated to add the doc to the documentation table. **Content quality:** The doc is well-structured with clear section hierarchy, a useful comparison table, actionable commands, and a practical troubleshooting section. The "When you need a new build" section is particularly valuable -- it clarifies the web-only vs native-rebuild boundary, which is the most common question for turbo-ios projects. **Cross-reference consistency issue:** The existing `docs/pipeline.md` uses `~/landscaping-ios` as the local project path (lines 95, 113, 122), while this new doc uses `~/landscaping-assistant-ios` throughout. One of these is wrong. Recommend aligning to whichever path is actually in use on the MacBook. This is a nit since the doc is instructional and the reader will adapt, but inconsistency across docs creates confusion. **Overlap with pipeline.md:** Sections 3 and 4 of `docs/pipeline.md` already cover iOS dev builds and TestFlight/App Store. The new doc duplicates and expands on this content. This is acceptable -- `pipeline.md` gives the overview while `ios-dev-builds.md` is the hands-on reference -- but neither doc cross-references the other. Adding a "See also" line in each would prevent them from diverging silently. ### BLOCKERS None. This is a docs-only PR with no code changes, no secrets, and no security surface. ### NITS 1. **Path inconsistency:** `~/landscaping-assistant-ios` (this doc) vs `~/landscaping-ios` (pipeline.md). Pick one and update both docs. 2. **Missing cross-references:** `ios-dev-builds.md` does not link to `docs/pipeline.md` (which covers the same iOS flows at a higher level). `pipeline.md` does not link to this new doc. A `## Related` section in the new doc and a line in pipeline.md would help. 3. **Apple Team ID in plain text:** `HAY64YD5PX` on line 8 of the new doc. This is semi-public (visible in provisioning profiles and App Store metadata), so it is not a secret, but consider whether you want it in a public-facing doc. If the repo is private, this is a non-issue. 4. **README table ordering:** The iOS Dev Builds row is inserted between Multi-Database and Local Dev Setup. Alphabetical or thematic grouping would place it closer to Pipeline and Infrastructure. Minor -- the PR branch appears to already include the expanded table from PR #221, so ordering may have been intentional. ### SOP COMPLIANCE - [x] PR body has Summary, Changes, Test Plan, Related sections - [x] No secrets committed (Team ID and bundle ID are public identifiers, not credentials) - [x] No unnecessary file changes (2 files, both on-topic) - [x] Commit messages are descriptive (PR title is clear: "Add iOS dev builds documentation") - [x] PR body updated to remove stale CLAUDE.md symlink references (per re-review context) - [x] Test plan appropriate for docs-only change ### PROCESS OBSERVATIONS Docs-only PRs are low-risk for change failure. The duplication overlap with `pipeline.md` is worth tracking -- if either doc is updated in the future, the other should be checked for consistency. The path inconsistency (`landscaping-ios` vs `landscaping-assistant-ios`) should be resolved before merge to avoid confusing future readers (or agents). ### VERDICT: APPROVED
Fix iOS repo path and add cross-references between pipeline and iOS docs
Some checks failed
ci/woodpecker/pr/woodpecker Pipeline failed
ci/woodpecker/push/woodpecker Pipeline failed
CI / scan_ruby (pull_request) Has been cancelled
CI / scan_js (pull_request) Has been cancelled
CI / lint (pull_request) Has been cancelled
a633b9c859
pipeline.md used ~/landscaping-ios but the actual directory is
~/landscaping-assistant-ios. Added mutual cross-references between
pipeline.md and ios-dev-builds.md to prevent silent divergence.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
ldraney deleted branch docs/testflight-and-direct-install 2026-06-15 12:21:07 +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/landscaping-assistant!218
No description provided.