SailScan / Alex’s development guide

Your place to experiment.
A clear path to review.

Use Claude Desktop or Terminal to work on SailScan. Keep each idea on its own branch, test it, and send Nate a preview before release.

Implementation ticket · SAIL-178 ↗
Setup in progress — cloud workspace not deployed.
Alex’s Cloudflare account must enable Workers Paid before Containers can run. Terminal SSH passed on Nate’s Mac. Desktop reached SSH but its remote runtime initialization stalled; a successful Desktop task is not yet verified. This page is an instruction guide, not a live project dashboard.

1. Create your own accounts

  1. Create a free GitHub account, verify your email and enable two-factor authentication. Save recovery codes in your password manager.
  2. Give Nate your GitHub username. He invites that account to the private SailScan repository. Accept the invitation in GitHub notifications. You never need to share your password.
  3. Install Claude Desktop, sign into your own Claude account and open the Code tab. Your plan must include Claude Code.
  4. For remote Cloudflare access, sign into your own Cloudflare account and enroll your laptop’s public SSH key. Keep the private key on your laptop. Nate supplies the tested connection file after provisioning.

The accompanying alex-onboarding.sh wizard walks you through these steps. It saves only your GitHub username and commit email locally.

2. Connect from Desktop or Terminal

Claude Desktop

  1. Open Code.
  2. Open the environment dropdown → Add SSH connection.
  3. Name: SailScan Dev.
  4. SSH host: sailscan-dev, after installing the connection file.
  5. Choose project folder /workspace/boats.

Terminal

ssh sailscan-dev
cd /workspace/boats
claude

Both interfaces work on the remote files. Finish or checkpoint one task before starting another interface on the same branch.

For Nate’s current local test only: SSH host sailscan-dev-local. The dedicated SSH configuration is installed on Nate’s Mac and uses the isolated test key and Docker transport. This connection runs in Docker on Nate’s Mac; it does not prove Cloudflare connectivity.

3. Sign into GitHub inside the workspace

Run these once after connecting. GitHub gives you a device code and a browser address; sign into your own account there.

gh auth login --hostname github.com --git-protocol https --web
gh auth setup-git
git config --global user.name "Alex"
git config --global user.email "YOUR_VERIFIED_GITHUB_EMAIL"
git clone https://github.com/natemcguire/boats.git /workspace/boats
cd /workspace/boats

Replace the email placeholder with your verified address or the noreply address from GitHub’s email settings. If the checkout already exists, skip cloning. “Repository not found” usually means the invitation has not been accepted or you signed into a different account.

4. Do one small task

cd /workspace/boats
sail-task SAIL-178 onboarding-test
claude

First prompt:

Create docs/alex-onboarding-check.md on this task branch.
Write one sentence confirming which machine and branch you are using.
Do not modify application behavior or deploy anything.
Show me the diff, commit only that file, and open a draft PR for Nate.

Use a real task number for subsequent work. Claude can run tests and push your branch using your own GitHub login. A draft PR is a review request, not a release. Nate reviews and controls production deployment.

Opening a PR manually

git status
git add docs/alex-onboarding-check.md
git commit -m "docs: verify Alex workspace"
git push -u origin HEAD
gh pr create --draft --base master

Where each kind of work runs

WorkDevelopment and testing
Model experimentsCloudflare coding workspace; separate GPU jobs when needed. Model Lab is planned, not live.
Scanner, labeler and backendLinux workspace with explicit development API and data; private previews require setup.
iOS / Android sourceEdit in the workspace and run JavaScript tests.
iOS builds / Xcode debuggingNate’s Mac, GitHub macOS or Expo EAS for builds. Xcode and local iOS Simulator need a Mac.
Android buildsLinux or Expo EAS; no Mac required.
Camera, GPS and upload acceptancePhysical iPhone and Android phone. A browser preview is not device validation.

Current repo caveat: the EAS preview profile uses production. Do not treat it as a staging test build until the profile is corrected.

Save before you leave

Cloudflare container files can disappear when a container stops. A Git push saves committed work; a workspace checkpoint must also save unfinished edits. Never paste secrets into source files.

Current limitation: cloud checkpoint/restore still needs a real deployment test. Automatic checkpoints and a safe pause button are not implemented. Do not use the cloud prototype as the only copy of important unfinished work.

After a restart, GitHub and Claude may require another login. Production deploy keys, customer database credentials, and Nate’s personal configuration do not belong in this workspace.