APA Tooling Audit — 2026-03-21¶
Auditor: Jules (COA) Scope: Full APA dev environment readiness for Phases 0–4 (Forge specs → Melody builds → Quinn validates → Jeff tests) Device context: Jeff's Garmin Fenix 8 + iPhone + iPad
✅ READY — Already Installed & Verified¶
| Tool | Version | Notes |
|---|---|---|
| Homebrew | 5.1.0 | ✅ Package manager ready |
| Node.js | v25.8.0 (current) + v22.22.1 LTS (fnm) | ✅ LTS available for Prisma compat |
| npm | 11.11.0 | ✅ |
| pnpm | 10.32.1 | ✅ Monorepo package manager |
| fnm | 1.38.1 | ✅ Node version manager (use instead of nvm) |
| Python | 3.14.3 | ✅ ML service ready |
| Git | 2.50.1 | ✅ |
| GitHub CLI (gh) | 2.78.0 | ✅ Authed as Vivere-Vitalis-LLC |
| Xcode | 26.0.1 | ✅ Full install with CLI tools |
| iOS Simulators | iOS 18.3 + 18.6 | ✅ iPhone 16 Pro, iPad Pro, iPad Air, iPad mini |
| Docker | 29.2.1 | ✅ Running (needed for Supabase local) |
| Cursor Agent CLI | Installed | ✅ Melody's primary build tool |
✅ INSTALLED DURING THIS AUDIT¶
| Tool | Version | Purpose |
|---|---|---|
| Supabase CLI | 2.75.0 | Local PostgreSQL + Auth + Studio |
| Watchman | 2026.03.16.00 | React Native file watcher |
| Turborepo | 2.8.20 | Monorepo build orchestration |
| Vercel CLI | 50.34.3 | Web app deployment |
| EAS CLI | 18.4.0 | Expo Application Services (mobile builds) |
| Stripe CLI | 1.38.1 | Payment integration testing |
| CocoaPods | 1.16.2 | iOS native dependency manager |
| Node 22 LTS | 22.22.1 (via fnm) | Prisma-compatible Node version |
| FastAPI | 0.135.1 (venv tested) | Python ML service framework |
| uvicorn | 0.42.0 (venv tested) | ASGI server for ML service |
| scikit-learn | 1.8.0 (venv tested) | ML model training (Phase 3) |
| XGBoost | 3.2.0 (venv tested) | ML model training (Phase 3) |
❌ MISSING — Requires Jeff's Action¶
1. Android Studio + Java JDK¶
What: Android development environment (for React Native Android builds)
Why missing: No Android Studio installed, no Java runtime detected, ANDROID_HOME not set
Impact: Cannot build/test Android version of APA mobile app
Action needed: Jeff to install via brew install --cask android-studio (~2.5GB download) + JDK via brew install openjdk
Urgency: Phase 1 (TestFlight iOS-only is fine initially; Android needed by Phase 4)
2. Apple Developer Program ($99/yr)¶
What: Required for TestFlight distribution, HealthKit entitlements, App Store Action needed: Jeff enrolls at developer.apple.com/programs/enroll/ Note: D-U-N-S number may take 2+ weeks if enrolling as organization Urgency: Phase 0 blocker — apply NOW
3. Google Play Console ($25 one-time)¶
What: Required for Android app distribution Action needed: Jeff registers at play.google.com/console Urgency: Phase 4 (not blocking until Android builds ship)
4. Garmin Connect Developer Program (FREE)¶
What: API access for Fenix 8 health data (HR, HRV, sleep, Body Battery, stress, running dynamics) Action needed: Jeff applies at developer.garmin.com/gc-developer-program Note: Approval takes 2-4 weeks. This is on the critical path for Phase 1. Urgency: Phase 0 blocker — apply NOW
5. GitHub Repo: vivere-vitalis/apa (private)¶
What: Production monorepo for APA codebase Action needed: Jeff confirms org name and repo creation (or Jules creates it) Urgency: Phase 0 — needed before scaffold
6. Domain Decision¶
What: ascentfitwell.com vs ascentperformanceanalytics.com
Action needed: Jeff decides; Jules registers + configures Cloudflare DNS
Urgency: Phase 0
7. Beat-to-Beat HRV License Decision¶
What: Garmin commercial license for beat-to-beat interval data Action needed: Jeff decides — try standard HRV first for GAP Score v0.1, or apply for license now? Urgency: Phase 1 (standard HRV available free; beat-to-beat costs TBD)
⚠️ NOTES & RECOMMENDATIONS¶
Node Version Strategy¶
- Current system Node is v25.8.0 (bleeding edge). Prisma warns about compatibility.
- Recommendation: Use
fnm use 22for APA development. Node 22 LTS is installed and ready. - Add
.node-versionfile to APA repo root:22
Python Environment Strategy¶
- System Python is 3.14.3 (PEP 668 — won't allow global pip installs).
- Recommendation: APA's
services/ml/should use a dedicated venv. All ML deps install cleanly in venv. - Poetry or pip + venv both work. Spec recommends pyenv but fnm-style approach with venv is cleaner.
Supabase Local Requires Docker¶
- Docker is running ✅.
supabase startwill spin up local PostgreSQL + Auth + Studio. - First run will pull Docker images (~2GB).
CocoaPods UTF-8 Warning¶
- CocoaPods threw a UTF-8 encoding warning. Add to
~/.zshrc:
Expo/EAS Authentication¶
- EAS CLI installed but not yet logged in. Melody will need
eas loginduring Phase 0 scaffold.
Summary Scorecard¶
| Category | Status |
|---|---|
| Core dev tools (Node, npm, pnpm, Git, Python) | ✅ Ready |
| iOS development (Xcode, Simulators, CocoaPods) | ✅ Ready |
| Android development (Android Studio, Java) | ❌ Not installed |
| Database (Supabase CLI, Docker, PostgreSQL) | ✅ Ready |
| Monorepo tooling (Turborepo, pnpm) | ✅ Ready |
| Deployment (Vercel, EAS, Stripe) | ✅ Ready |
| ML/AI service (FastAPI, scikit-learn, XGBoost) | ✅ Ready (venv) |
| React Native (Watchman, Expo, EAS) | ✅ Ready |
| Developer accounts (Apple, Google, Garmin) | ❌ Requires Jeff |
| GitHub repo + domain | ❌ Requires Jeff decision |
Bottom line: ~80% of the local dev environment is ready to go. The blockers are all Jeff-action items (developer accounts, domain decision, Android Studio install). Once those are in, Forge can spec and Melody can build from Day 1 of Phase 0.