Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

290 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PrepAI

Private wellness intelligence that turns your patterns into a clear plan for today.

PrepAI is an iPhone-first wellness app for people who have health data but still do not know what to do today. It combines Apple Health, manual records, goals, and a brief check-in with a deterministic Rust engine to produce explainable movement, meal, recovery, and preparation guidance. The core experience requires no account, keeps health processing on device, works without a model, and never pretends to diagnose or replace care.

The release wedge is deliberately narrow: open the app, understand what matters, take one useful action, and return with better context tomorrow. Optional on-device AI can improve reviewed wording; it never owns scores, factors, actions, provenance, safety limitations, purchases, writes, or sharing.

What ships in the MVP

  • Today Guidance: readiness band, confidence, strongest factors, source dates, personal baselines, and a practical movement/recovery plan.
  • Flexible Meals: one useful meal action plus an optional seven-day plan, shopping list, and prep schedule. Reviewed deterministic templates remain available without a model.
  • Clinician Prep: a local PDF or text summary of recorded trends, coverage, notes, limitations, and questions to discuss.
  • Progress and sample mode: personal guidance history plus a clearly labeled, read-only sample profile that never contaminates personal history.
  • PrepAI Plus: a one-time lifetime purchase through RevenueCat. The optional seven-day local trial never charges automatically.
  • Local-first reliability: Apple Health, SQLite, backup/import, offline fallbacks, and consent-gated health-free diagnostics.

PrepAI summarizes recorded wellness patterns and helps users prepare better questions for care. It does not diagnose, treat, prescribe, provide emergency advice or injury clearance, or replace a clinician.

Release dashboard

Status is generated from docs/shipaton/roadmap.json. As of 2026-08-09, canonical release shipaton-2026-ios-mvp, verified starting-point commit 61ca480. The launch target is 2026-08-16; the Shipaton deadline is September 30, 2026 at 11:45 p.m. PDT.

Evidence is cumulative and never inferred upward:

Level Meaning
R0 Requirement only
R1 Source present
R2 Automated checks pass
R3 Manual or physical-device evidence
R4 Signed distributable artifact
R5 Store-processed build
R6 Publicly available

Done

Capability Evidence Current truth
Today Guidance R2 Deterministic readiness, factors, provenance, confidence, and practical daily actions are implemented and automatically checked.
Movement and meal planning R2 Movement adaptation, meal actions, seven-day plans, shopping lists, and deterministic fallbacks are implemented.
Clinician Prep R2 Local PDF/text summaries with limitations and questions are implemented.
Apple Health and sample mode R2 Apple Health ingestion and an isolated read-only sample experience are implemented; device permission evidence remains open.
Lifetime Plus and local trial R2 RevenueCat lifetime entitlement and a non-renewing seven-day local trial are implemented and configured.
Backup and opt-in diagnostics R2 Transactional local backup and consent-gated, health-free diagnostics are implemented.
Store-processed iOS candidate R5 EAS build 219 is the signed App Store artifact from commit 3435b14; App Store Connect processed it as VALID and it is in internal beta testing.
Automated delivery controls R2 GitHub Actions is enabled, protected main requires CI (Fast), PR 25 merged through the required gate, Cloudflare production deployed merge 61ca480 after CI, and staging telemetry passed migration, deployment-SHA, hidden-route, and authenticated-canary checks.
Store-processed build 212 R5 App Store Connect processed build 212 as VALID on August 8; it is preserved as historical evidence.

Implemented but still needs evidence or external completion

Capability Evidence Current truth
Public US App Store release R0 The public App Store URL returns 404; release and IAP approval are not complete.
Real purchase and restore R2 Source and automated checks exist; production/sandbox device purchase, restore, refund, and revocation evidence is open.
Physical-device release matrix R2 Cold launch, HealthKit, accessibility, offline, low-storage, model lifecycle, and unfamiliar-user gates need dated device evidence.
Final Shipaton assets R1 The editable PrepAI Devpost draft exists at https://devpost.com/software/prepai-ngaocs with the verified 1024x1024 icon; final screenshots, device demo, public-store URL, judge access, and signed-out link verification remain open.
Production TelemetryEnvelopeV2 R2 Source, contract tests, isolated staging resources, live staging SHA, hidden routes, and canary pass. Production approval remains intentionally open until a V2 client binary and Cloudflare Access team/audience configuration exist.

Preserved for later, disabled in this release

Capability Evidence Current truth
Android and Health Connect R1 Source is retained but the Shipaton release manifest disables Android.
watchOS R1 Research and source are retained; watch delivery is disabled for this release.
Food vision, supplements, labs, and symptom inference R1 Source and requirements remain preserved behind release guards pending separate safety and delivery gates.
RAG, tool agents, speculative decoding, and fine-tuning R0 PocketSage research inputs are intentionally deferred until after Shipaton.

Build and store state

Build Version Source Evidence Status Source commit
212 1.0.0 App Store Connect R5 VALID not recorded
213 1.0.0 local archive R4 signed, not uploaded 3435b14
219 1.0.0 EAS production R5 VALID, internal beta testing 3435b14

A signed build is not a public release. The App Store URL is not considered live until it is independently verified as R6.

Weekly ship → customers → iterate roadmap

2026-08-09 — release system: Establish truth and unblock delivery

Status: in progress

Features

  • Consolidated documentation dashboard with evidence levels
  • First-party telemetry deployment corrected without exposing reads
  • Build 219 recorded as the v1.0 signed candidate

Release deliverables

  • Generate README status and roadmap from this file
  • Append build 219 and telemetry deployment evidence without rewriting builds 212/213
  • Enable Actions and protect main with CI (Fast)
  • Repair Cloudflare Pages and EAS workflow triggers
  • Create an editable, truthful Devpost entry

Customer and growth work

  • Start the three-post weekly BuildInPublic cadence: product decision, technical proof, tester learning
  • Prepare one public acquisition-channel taxonomy without identity or tracking tokens

Expected tests

  • Documentation, roadmap, release-manifest, platform, monetization, build, and disabled-feature alignment
  • Telemetry source/live deployment SHA, 404 routes, exact acceptance/rejection, and storage visibility
  • Responsive website smoke: one phone, menu close paths, links, legal pages, and overflow
  • Build 219 version, commit, artifact, entitlement, and native configuration

Exit gate

  • Hosted Actions execute
  • Web production follows CI (Fast)
  • Telemetry no longer drops accepted events or exposes reads
  • Build 219 is uploaded or a dated blocker is recorded
  • README matches evidence

Evidence and detail: README.md, docs/shipaton/release-evidence.md, docs/shipaton/devpost-draft.md, src/content/release-manifest.json, .github/workflows/ci.yml, .eas/workflows/maestro-e2e.yml.

2026-08-10–2026-08-16 — 1.0.0: Public eligibility and trust

Status: planned

Features

  • Stable existing MVP: Today, movement, meals, Clinician Prep, sample, Apple Health, lifetime Plus, local trial, backup, and aligned light/dark themes
  • First arrival offers immediate sample value without account, payment, diagnostics, Health permission, or model download
  • TelemetryEnvelopeV2 and protected internal measurement surface

Release deliverables

  • Approve IAP metadata and complete final screenshots
  • Verify privacy, support, terms, store, website, and in-app copy parity
  • Complete production purchase and restore
  • Point the website CTA to the public App Store listing
  • Release publicly in the United States by August 16

Customer and growth work

  • Run a two-minute unfamiliar-user rehearsal
  • Publish launch promise, technical privacy proof, and first tester learning

Expected tests

  • 20 consecutive physical-iPhone cold launches and 10 background/foreground cycles
  • HealthKit full, partial, denied, revoked, and sample/personal isolation
  • Purchase, restore, reinstall, offline entitlement, local-trial expiry, refund/revocation, and localized price
  • VoiceOver, accessibility text sizes, Reduce Motion, contrast, 44-point targets, and chart summaries
  • Airplane mode, low storage, interrupted model download, backup round trip, privacy proxy, and first-party request inspection
  • Full iOS Maestro suite and all automated release gates

Exit gate

  • R6 public US App Store listing
  • Approved lifetime IAP
  • Successful real purchase and restore
  • Working website CTA
  • Secure telemetry
  • No P0 or P1 defects

Evidence and detail: docs/shipaton/release-evidence.md, MVP_RELEASE_CHECKLIST.md, docs/frd/production-readiness.md, docs/frd/stability-performance-telemetry.md.

2026-08-17–2026-08-23 — 1.0.1: Activation and customer understanding

Status: planned

Features

  • Highest-impact first-run, copy, navigation, and accessibility fixes from observation
  • Structured useful/not-useful signal with reviewed reason enums
  • Support-email path for optional user-authored free text; free text never enters telemetry
  • Activation scorecard by build and public channel

Release deliverables

  • Run at least 15 uncoached fresh-install sessions across sample and personal routes
  • Document the baseline, main blocker, decision, and resulting release
  • Test one acquisition message at a time across campaign links, website, direct outreach, and BuildInPublic

Customer and growth work

  • Identify the strongest acquisition message using qualified activations, not clicks alone
  • Record consented-subset and estimate labels on every scorecard metric

Expected tests

  • Onboarding interruption, restart, and migration at every step
  • Sample route succeeds 15/15 without coaching and personal route at least 13/15
  • Personal time-to-value p50 is 90 seconds or less
  • Telemetry unknown, declined, consented, revoked, and corrupt-storage states with zero pre-consent requests
  • Feedback allowlist and support-email privacy handling

Exit gate

  • Activation baseline is dated
  • Main comprehension blocker is fixed
  • Strongest acquisition message has reproducible evidence

Evidence and detail: docs/prd/prepai-first-run-activation-prd.md, docs/prd/prepai-growth-launch-retention-prd.md, docs/shipaton/build-in-public-log.md.

2026-08-24–2026-08-30 — 1.1.0: Weekly return value

Status: planned

Features

  • WeeklyReviewV1 with coverage, meaningful changes, completed/adapted actions, limitations, provenance, and one manageable adjustment
  • Sufficient-history gate and strict sample/personal isolation
  • Accessible text summary for each visual
  • Contextual local reminder only after demonstrated value and explicit permission

Release deliverables

  • Publish the retention hypothesis, observed tester result, and product change
  • Begin D1/D7 milestone measurement without persistent identifiers

Customer and growth work

  • Interview users about the concrete reason they would return next week
  • Use the weekly review as the sole retention hypothesis for this cycle

Expected tests

  • Seven-day thresholds, sparse/stale history, missing domains, timezone/DST, week boundaries, and migration
  • Sample/personal separation and local-only persistence
  • Notification denied, rescheduled, cancelled, and reinstall behavior
  • VoiceOver summaries, offline rendering, and deterministic-copy safety review

Exit gate

  • Users can name a concrete reason to return
  • D1/D7 milestone data begins accumulating without linkable identities

Evidence and detail: docs/prd/prepai-growth-launch-retention-prd.md, docs/requirements/functional-requirements.md.

2026-08-31–2026-09-06 — 1.2.0: Bounded on-device explainer

Status: planned

Features

  • Four guided questions: why intensity, what changed, how to adapt, and missing data
  • Answers grounded only in the validated deterministic guidance packet
  • Optional on-device wording cannot alter canonical facts, actions, limitations, or provenance
  • Deterministic complete fallback for unsupported, absent, declined, interrupted, invalid, or slow model states
  • Visible support, size, integrity, progress, pause/resume/cancel/delete, and failure states

Release deliverables

  • Expose the explainer as a contextual Plus outcome while keeping free/trial and judge access useful
  • Apply the September 4 kill rule if safety, memory, or latency gates fail

Customer and growth work

  • Test whether explanation clarity—not novelty—increases useful-action completion
  • Demonstrate deterministic ownership as the technical differentiator

Expected tests

  • Golden deterministic responses and runtime schema validation
  • Property tests proving model wording cannot change canonical facts or introduce provenance
  • Diagnosis, treatment, injury-clearance, emergency, and overconfidence safety corpus
  • Single-flight, cancellation, timeout, corruption, low-storage, offline, and fallback paths
  • Loaded-model first-token p95 under 5 seconds, completion under 20 seconds, and 10 sequential generations without jetsam on the oldest supported device

Exit gate

  • All safety invariants pass
  • Physical-device memory and latency pass, or generative mode remains disabled and deterministic guided explanations ship

Evidence and detail: docs/frd/local_ai_health_context_engine_spec.md, docs/frd/ai-model-fallback-resilience.md, docs/frd/bugfix-background-model-downloads.md.

2026-09-07–2026-09-13 — 1.3.0: Safe sharing and earned acquisition

Status: planned

Features

  • Preview-first Today-plan and shopping-list artifacts
  • Allowlisted general action, optional user-selected non-sensitive intent, PrepAI branding, and public App Store URL
  • Static recipient page with sample result, promise, privacy boundary, and store CTA
  • Restrained App Store review request after repeated successful use

Release deliverables

  • Begin small creator/community tests with a reproducible 30-second workflow and disclosure-safe media kit
  • Never request a review after negative feedback, an error, purchase, or first session

Customer and growth work

  • Evaluate qualified users/testers from at least two channels
  • Share only through explicit preview and system share confirmation

Expected tests

  • Allowlist/property tests excluding health values, readiness, dates, identity, entitlement, and tracking tokens
  • Preview-versus-generated artifact snapshots
  • Share cancellation creates no network request or repeated prompt
  • Recipient page, deep link, offline, text scaling, VoiceOver, and theme regressions
  • Review prompt frequency, version, and negative-feedback suppression

Exit gate

  • At least two channels produce qualified users or testers
  • Sharing privacy inspection finds zero sensitive-field defects

Evidence and detail: docs/prd/prepai-growth-launch-retention-prd.md, src/content/release-manifest.json.

2026-09-14–2026-09-20 — 1.4.0: Traction, monetization, and hardening

Status: planned

Features

  • Only high-impact activation, retention, purchase, support, crash, performance, and accessibility fixes
  • Plus page refined around the best-evidenced outcome with pay-once, no automatic charge, restore, free-core, and trial terms explicit

Release deliverables

  • Freeze native dependencies, database schema, release claims, and core navigation on September 20
  • Complete production performance evidence, scorecard, category proof, screenshots, and creator/store assets
  • Concentrate acquisition on the two best demonstrated channels

Customer and growth work

  • Targets—not achieved claims: 100 public installs, 15 structured sessions, 20 non-founder lifetime purchases or comparable verified revenue
  • Target measurable weekly improvement and three substantive BuildInPublic posts per week

Expected tests

  • Full physical-device, accessibility, privacy, offline, purchase/restore/revocation, backup, and performance matrices
  • Crash-free launch and telemetry canary by build
  • Claim parity across store, website, README, and Devpost
  • Fresh-install regression and two-minute unfamiliar-reviewer test
  • Zero open P0/P1 defects

Exit gate

  • Native and claim freeze is active
  • Zero P0/P1 defects
  • All traction and revenue claims are dated and reproducible

Evidence and detail: MVP_RELEASE_CHECKLIST.md, docs/shipaton/release-evidence.md, docs/shipaton/assets-manifest.json.

2026-09-21–2026-09-27 — public distributed build: Submission conversion

Status: planned

Features

  • No net-new product scope

Release deliverables

  • Record a 1:55 demo from the public distributed build
  • Capture final unframed 1179x2556 screenshots and 1024x1024 icon provenance
  • Finalize Devpost copy, technical proof, traction definitions, post-launch growth story, BuildInPublic archive, and categories
  • Submit the final editable Devpost entry by September 27

Customer and growth work

  • Primary category: Yoga & Fitness Influencer Award
  • Cross-cutting categories: RevenueCat Design, Peace Prize, #BuildInPublic, and Grand Prize
  • Submit HAMM only with verified production purchase/restore and credible conversion evidence

Expected tests

  • All public App Store, website, video, repository, privacy, support, and evidence links work signed out
  • Trial or judge access unlocks demonstrated premium behavior
  • First 15 seconds identify user/problem/product; core value before 60 seconds; category proof before 1:55
  • Every claim maps to the public build and archived evidence
  • Two unfamiliar reviewers understand the submission using only video, screenshots, and text

Exit gate

  • Final entry is submitted by September 27
  • All claims and assets reproduce the distributed build
  • Judge access works

Evidence and detail: docs/shipaton/devpost-draft.md, docs/shipaton/video-runbook.md, docs/shipaton/assets-manifest.json, docs/shipaton/build-in-public-log.md.

2026-09-28–2026-09-30 — submission lock: Failure buffer

Status: planned

Features

  • No planned feature development

Release deliverables

  • Monitor store, RevenueCat, telemetry, website, video, Devpost, and judge access
  • Recheck rules 48 and 12 hours before the deadline
  • Permit only P0 fixes, low-risk copy, broken-link, or administrative corrections
  • Preserve the last-known-good binary, site, worker, video, and Devpost copy for rollback

Customer and growth work

  • No new campaign experiments; preserve reliable acquisition and support paths

Expected tests

  • Signed-out link sweep
  • Public US app and approved IAP availability
  • RevenueCat and judge access
  • Worker health/schema and website deployment
  • Final claim and metric reproduction

Exit gate

  • Submission is complete before September 30 at 11:45 p.m. PDT
  • Public app and IAP remain available
  • All links and judge access work
  • No P0/P1 defect remains
  • Every metric and claim is dated and reproducible

Evidence and detail: docs/shipaton/release-evidence.md, docs/shipaton/devpost-draft.md.

Shipping cadence and quality guardrails

The operating loop is ship → acquire customers → measure → iterate. Each weekly release has one customer problem, one bounded hypothesis, explicit automated and physical tests, and an exit gate. A release that misses its gate waits; calendar pressure never turns incomplete evidence into a claim.

  • Monday: choose one customer problem and publish the hypothesis.
  • Tuesday–Wednesday: implement behind pure contracts and add automated evidence.
  • Thursday: run physical-device and unfamiliar-user verification.
  • Friday: release only if the exit gate passes.
  • Weekend: run customer sessions, review the private scorecard, and decide the next smallest high-impact change.

P0/P1 defects, medical overclaiming, privacy regressions, purchase/restore failures, broken accessibility, or failed deterministic fallbacks block release. Native dependencies, the database schema, core navigation, and public claims freeze on September 20. Emergency OTA updates are JS-only, reviewed behavior only, and receive the same test/approval/evidence treatment as a binary.

Architecture

Apple Health / local SQLite / read-only sample fixture
                         |
              versioned HealthSnapshot
                         |
       Rust deterministic Daily Guidance engine
                         |
      validated factors, actions, and safety copy
                         |
 React Native Today / Move / Meals / Progress / Export
  • Expo SDK 57 and React Native 0.86
  • TypeScript with runtime validation at native and model boundaries
  • SQLite with versioned migrations and transactional backup import
  • Rust static library exposed through a C FFI and Swift Expo module
  • Optional ExecuTorch narrative and meal generation with consent, storage/network checks, cancellation, and deterministic fallback
  • RevenueCat non-consumable lifetime entitlement

The product follows explicit capability states and confirmation-by-default for side effects. Purchases, Health writes, exports, imports, model deletion, and external sharing require a user action with preview or confirmation; unknown side effects fail closed. Model support, size, integrity, progress, pause/resume/cancel/delete, and fallback state remain visible rather than implicit.

Privacy and measurement boundary

HealthKit values, readiness, goals, check-ins, dietary choices, free text, prompts, generated content, photos, exact routes, advertising identifiers, persistent install/session identifiers, IP addresses, and RevenueCat customer identifiers are not product analytics. No account is required.

After explicit opt-in, PrepAI may send only versioned, enumerated operational events with release/build, OS major, coarse device tier, public acquisition channel, feature surface, reviewed result/error enum, and duration bucket. D1/D7/D30 milestones are computed locally and sent as unlinkable aggregate milestones. App Store Connect remains authoritative for downloads; RevenueCat remains authoritative for transactions.

Background app networking is limited to purchase/restore, optional model downloads, app delivery, and consented first-party diagnostics. User-composed support mail and OS sharing are separate explicit side effects: the user previews/confirms them, and PrepAI adds neither an automatic health payload nor hidden tracking. The canonical feature and claim contract is src/content/release-manifest.json.

Development

bun install
bun run dev
bun run verify:docs
bun run roadmap:check
bun run typecheck
bun run test -- --runInBand
bun run verify:shipaton

Build the checked-in iOS Rust archive with:

./scripts/build-rust-ios.sh

The release archive hash, target, crate version, and required native symbols are verified in CI.

Useful release commands:

bun run export:web
bun run test:web
bun run test:telemetry
bun run verify:shipaton:fast
bun run verify:shipaton:final   # requires external credentials/evidence

Automated delivery

  • CI (Fast): every pull request and main push; roadmap/docs, TypeScript, lint, Jest, Rust fmt/clippy/tests/artifact, release surface, native/store configuration, Expo Doctor, Knip, telemetry contracts, and workflow validation.
  • CI (Full): a release-candidate label or manual dispatch; production iOS/web exports, performance and bundle evidence, final release guards, and uploaded artifacts.
  • Web: same-repository pull requests receive previews; production follows successful CI (Fast) on main; desktop/mobile smoke covers the single phone demo, menu dismissal, legal/support links, CTAs, and horizontal overflow.
  • Diagnostics: contract tests and Wrangler dry-run on pull requests; staging D1 verification precedes approved production deploy; /healthz proves schema/deployment only.
  • Native: official EAS build, Maestro, approval, and TestFlight jobs retain visible state and emit version/build/commit/fingerprint evidence.

Automated scorecards and BuildInPublic drafts remain private until a person reviews them. No workflow auto-posts health claims, customer quotes, metrics, or social content.

Shipaton strategy

The primary category is Yoga & Fitness Influencer Award. RevenueCat Design, Peace Prize, #BuildInPublic, and the Grand Prize are supported by the same product and post-launch evidence. HAMM is conditional on verified production purchase/restore and credible conversion evidence. PrepAI will not add ads, OneSignal, Layers, Android/Galaxy, a nutrition repositioning, or sponsor SDKs merely to chase unrelated categories.

Targets such as 100 public installs, 15 structured sessions, 20 non-founder lifetime purchases or equivalent verified revenue, week-over-week improvement, and three substantive BuildInPublic posts per week are targets—not achieved traction claims.

Documentation map

The consolidated authority and complete preserved 2-PRD/61-FRD registry begin at docs/README.md. No useful requirement, audit, build record, or conflict note is replaced by this dashboard.

License

PrepAI is public source under the MIT license. Health and safety behavior is still governed by the release manifest, reviewed content boundaries, platform policy, and the evidence gates above.

About

Private, offline health intelligence. On-device AI + clinical knowledge graph. YOUR best doctor in your pocket. No account. No cloud.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages