A shipped, App Store health-and-medication tracking app for GLP-1 treatment journeys — built end to end by AI coding agents (OpenAI Codex and Claude Code) working under an explicit, governed engineering contract.
On the App Store: https://apps.apple.com/app/id6775155354
Gaurava ("dignity, respect, weight") is a calm, private care journal: log your weight, injections, doses, side-effects and mood; see your schedule and trend; and keep it all on-device with iCloud sync. It ships an iPhone app, an Apple Watch companion with complications, home-screen and watch widgets, App Intents, Apple Health (HealthKit) weight import, and full Hindi / Tamil / Telugu localization alongside English.
This repository is a history-free public snapshot of the private product repo. All sample, preview, and test data is fictional — see Synthetic data.
Gaurava was designed, implemented, tested, localized, and shipped to the App Store by coding agents operating as governed contributors, not by hand. The repository is published as a real-world reference for agent-built software at product scale: how a non-trivial multi-target Apple app (app + watch + widgets + App Intents + CloudKit) can be produced by Codex and Claude Code when they are held to a written operating contract, a TDD gate, and repeatable verification commands.
The agent contract lives in AGENTS.md and
CLAUDE.md.
- Treatment tracking — weight history, injections/doses, titration, and a schedule engine that computes due / overdue / paused states from a single source of truth.
- Log & mood — per-day side-effect capture, mood, all-clear, and freeform notes.
- Apple Watch app — schedule + latest weight at a glance, plus watch complications and watch widgets that respect a privacy floor (never surface a value the owner chose to hide).
- Home-screen widgets & App Intents — quick glance and quick-add surfaces.
- HealthKit import — pull weight readings from Apple Health with provenance.
- Local-first + CloudKit — data lives on device and syncs privately via the user's own iCloud; no third-party backend.
- Localization — English, Hindi (hi), Tamil (ta), Telugu (te), with every in-app label switching through the app's own language picker.
- Clinician export — a shareable, structured summary for a care provider.
- SwiftUI app UI across iOS and watchOS targets.
- SwiftData persistence with a single
ModelWriteServicesave choke point. - CloudKit private-database sync (container
iCloud.com.nags.gaurava). - TreatmentMath / TreatmentScheduleEngine — pure, testable derivations shared by the app, widgets, and watch glance so every surface agrees.
- WatchConnectivity — a compact, privacy-aware snapshot transport to the watch.
- Targets:
Gaurava(app),GauravaWatch,GauravaWidgets,GauravaWatchWidgets,GauravaOnboarding, plusGauravaTests,GauravaUITests, andGauravaSurfaceSnapshots.
The Xcode project is generated from project.yml with
XcodeGen, so the source of truth is text.
Prerequisites: Xcode (with an iOS Simulator), make, and
XcodeGen (brew install xcodegen).
# build and run the unit-test suite on a simulator (no signing / Apple account needed)
make test-unitThe repo ships a generated Gaurava.xcodeproj. If you change project.yml,
regenerate it with xcodegen generate.
Simulator builds require no code signing. Signing is intentionally unset in
the tracked files — to run on a physical device or archive, put your values in
an untracked Makefile.local at the repo root (picked up automatically,
gitignored — never committed):
APPLE_TEAM_ID := XXXXXXXXXX # your Apple Developer Team IDOne-off env vars work too (APPLE_TEAM_ID=YOURTEAMID make ...), or set
DEVELOPMENT_TEAM in project.yml and regenerate. The TestFlight/App Store
lanes additionally expect the maintainer's provisioning-profile UUIDs and App
Store Connect IDs in Makefile.local — forks distributing their own build
supply their own. Run make with no target to print the full list of commands.
This project treats coding agents as contributors that must earn trust through a repeatable gate rather than ad-hoc prompting:
- A written operating contract (
AGENTS.md/CLAUDE.md) — build/test commands, conventions, and guardrails the agent must follow. - Test-first correctness gate —
make test-unitfor the fast loop; the fullmake agent-verifygate builds every target, runs unit + UI suites, and lints localization and screenshot policy before any handoff. - Dual-runtime parity — the same contract drives both OpenAI Codex (incl.
the Build iOS Apps plugin: simulator, SwiftUI previews, hot reload) and Claude
Code, via mirrored hooks under
.codex/and.claude/. - Session-journal discipline — a lightweight per-session log convention (published standalone at dctmfoo/session-journal) keeps a resumable trail of intent and decisions.
Every sample, preview, screenshot, and test fixture in this repository uses
fictional data — round placeholder weights, verification@example.com, and
generic device fixtures. No real personal health data is present. The medication
names the app tracks (e.g. tirzepatide, semaglutide) are the public GLP-1 drug
classes the product supports, not anyone's treatment record.
Other agent-built projects by the same author:
- withful — shipped App Store app (family moments).
- intelli-expense — receipt / expense app with an agent write bridge.
- stepback — coaching app with an agent write bridge.
- workspace-bootstrap — the agent-governance pattern (running Codex and Claude Code in parity).
MIT © 2026 dctmfoo