Skip to content

Commit 4acfcdd

Browse files
dadachiclaude
andauthored
v0.1 release polish: Demo section + dual-edition docs (#52)
Three doc updates reflecting what the session validated end-to-end: README.md Demo section Replaced the "coming after hackathon wrap" placeholder with the validated story: three demo specs across both adapt + replace paths, all four validation layers green (Layer 1 3/3 · Layer 2 3/3 · Layer 3 2/2 · Reviewer PASS for each), real iPhone 17 simulator + Android emulator captures, Layer 2 in build mode (real xcodebuild + gradle assemble), Layer 3 via Opus 4.7 vision judge with median-of-3 sampling. Two captured screenshots committed to docs/images/ — iOS and Android welcome screens post-rename for "Vet Clinic Queue". CLAUDE.md substrate section Removed the "MIT-licensed free edition only — never reach into the paid repos" guardrail. That was a hackathon-week scope rule; reality is the agent's same code path handles both editions. Documented which repos the env vars target for free vs paid, and noted that paid-only concepts (Account / Member / Invitation) aren't in the rename plan and survive the generation intact. ROADMAP.md Track 2 — Hosted Updated the paid-edition path bullet from theoretical to "validated end-to-end during v0.1 development." The Track-2-hosted product surface is mechanically ready; what remains is the chat interface + infra, not agent core changes. Tests: 19/19 npm run ci green. No source changes — docs and captured-asset commits only. Out of scope (separate PR): - Tag v0.1.0 — done after this PR merges, pointing at the merge commit. Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent d1b6cb5 commit 4acfcdd

5 files changed

Lines changed: 26 additions & 7 deletions

File tree

CLAUDE.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,13 +30,13 @@ Project-wide Claude Code instructions. Keep this file short — it's loaded into
3030

3131
## Substrate (what the agent operates on)
3232

33-
MIT-licensed free edition only — never reach into the paid repos. The three substrate repos can live anywhere on the developer's machine; point the agent at them via environment variables:
33+
The agent works on either the free (MIT-licensed) edition or the paid edition — the same code path handles both, validated end-to-end. Pick which substrate to use by pointing the env vars at the corresponding repos:
3434

35-
- `$NATIVEAPPTEMPLATE_API` — Rails 8.1 API repo (`nativeapptemplateapi`, Ruby 7,687 LOC)
36-
- `$NATIVEAPPTEMPLATE_IOS` — SwiftUI iOS repo (`NativeAppTemplate-Free-iOS`, Swift 15,311 LOC, iOS 26.2+)
37-
- `$NATIVEAPPTEMPLATE_ANDROID` — Jetpack Compose Android repo (`NativeAppTemplate-Free-Android`, Kotlin 19,521 LOC, API 26+)
35+
- `$NATIVEAPPTEMPLATE_API` — Rails 8.1 API repo (`nativeapptemplateapi`, single repo serves both editions; multi-tenancy + invitations are conditional features)
36+
- `$NATIVEAPPTEMPLATE_IOS` — SwiftUI iOS repo. Free: `NativeAppTemplate-Free-iOS` (Swift 15,311 LOC). Paid: `NativeAppTemplate` (Swift 23,003 LOC, adds org switching, invitations, role permissions).
37+
- `$NATIVEAPPTEMPLATE_ANDROID` — Jetpack Compose Android repo. Free: `NativeAppTemplate-Free-Android` (Kotlin 19,521 LOC). Paid: `NativeAppTemplate` (Kotlin 28,401 LOC).
3838

39-
Combined ~42.5k LOC of application code. Shared JSON:API contract between all three.
39+
The renamer's substitution rules (Shop / Shopkeeper / ItemTag / NativeAppTemplate) apply identically to both editions. Paid-only concepts (Account, Member, Invitation) aren't in the rename plan, so paid features survive the generation intact. Both editions hit the same Rails OpenAPI server, so the reviewer's three-way diff works against either.
4040

4141
**Substrate repos are read-only from the agent's perspective.** The agent never commits, pushes, edits, or runs destructive commands inside the substrate directories. To customize, the agent copies the substrate into `./out/<spec-slug>/{rails,ios,android}/` as fresh git-initialized project directories, and works exclusively inside `./out/` thereafter. Treat the substrate paths the same way you'd treat a read-only mount.
4242

README.md

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,26 @@ It will:
3939

4040
## Demo
4141

42-
*90-second end-to-end run — coming after the hackathon wrap on 2026-04-27.*
42+
Three demo specs, both adapt and replace paths, all four validation layers green end-to-end:
43+
44+
| Spec | Domain entity (post-rename) | Path | Result |
45+
|---|---|---|---|
46+
| `"a walk-in clinic queue for small veterinary practices"` | `ItemTag → Patient`, `Shop → Clinic`, `Shopkeeper → Vet` | adapt | Layer 1 3/3 · Layer 2 3/3 · Layer 3 2/2 · Reviewer PASS |
47+
| `"a restaurant waitlist for casual dining"` | `Shop → Restaurant`, `Shopkeeper → Host` | adapt | Layer 1 3/3 · Layer 2 3/3 · Layer 3 2/2 · Reviewer PASS |
48+
| `"a personal task tracker with due dates"` | `ItemTag → Todo` (replaces queue entry entirely) | replace | Layer 1 3/3 · Layer 2 3/3 · Layer 3 2/2 · Reviewer PASS |
49+
50+
Layer 2 ran in build mode — real `xcodebuild build` and `./gradlew assembleDebug`, full app builds installed on iPhone 17 simulator and Android emulator. Layer 3 captured the home-screen via `xcrun simctl io booted screenshot` / `adb exec-out screencap` and judged against the rubric using Opus 4.7 vision (median of 3 samples per criterion).
51+
52+
The agent works on either the **free (MIT) edition** or the **paid edition** without code changes — the same pipeline handles both substrates; multi-tenant features (org switching, invitations, role permissions) survive the rename pipeline when targeting paid.
53+
54+
<table>
55+
<tr>
56+
<td align="center"><img src="docs/images/demo-ios-vet-clinic-queue.png" width="300"><br><sub>iOS — Vet Clinic Queue welcome screen</sub></td>
57+
<td align="center"><img src="docs/images/demo-android-vet-clinic-queue.png" width="300"><br><sub>Android — Vet Clinic Queue welcome screen</sub></td>
58+
</tr>
59+
</table>
60+
61+
Both screenshots are real captures from the booted iOS Simulator and Android emulator post-`./gradlew assembleDebug` / `xcodebuild build`, after the agent installed and launched the generated app.
4362

4463
## Architecture
4564

ROADMAP.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ This track is permanent. It is not a free trial of a commercial product — it i
3939

4040
A chat interface on nativeapptemplate.com that runs the agent for paying users, with two things the open-source CLI doesn't give them:
4141

42-
1. A path to the **paid-edition substrate**, so generated apps include multi-tenancy, invitations, and role-based access without any extra wiring.
42+
1. A path to the **paid-edition substrate**, so generated apps include multi-tenancy, invitations, and role-based access without any extra wiring. **Validated end-to-end during v0.1 development** — the agent's same code path handles both free and paid substrates by choosing which repos the env vars point at; multi-tenant features (org switching, invitations, role permissions) survive the rename pipeline intact.
4343
2. Convenience features that come from running on our infrastructure — generation history, shareable results, priority execution.
4444

4545
The hosted version is a natural follow-on, not the primary product. It's the option for people who want the paid substrate and don't want to manage the agent themselves.
84.3 KB
Loading
165 KB
Loading

0 commit comments

Comments
 (0)