Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,12 @@ npx nativeapptemplate-agent "a walk-in clinic queue for small veterinary practic
npx nativeapptemplate-agent "a restaurant waitlist for casual dining"
npx nativeapptemplate-agent "a personal task tracker with due dates"

# Name the project explicitly (sets display name + output slug, independent of the
# domain rename). The plugin/MCP path accepts the same intent in plain language —
# "…detection. project name is Sentova." — mapped to the projectName argument.
npx nativeapptemplate-agent "a two-device home monitor for household pest detection" --project-name="Sentova"
# → out/sentova/ · Sentova.xcodeproj · "Sentova API"; adapts ItemTag (e.g. Shop→Household, ItemTag→Sighting)

# Generated output appears under ./out/<slug>/
tree ./out/clinic-queue/
# ├── rails/ ← Rails 8.1 API, git-initialized, buildable
Expand Down
2 changes: 1 addition & 1 deletion docs/SPEC.md
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ The agent performs three clean operations against this substrate.

**Operation 2 — Adapt or replace the domain module.**

- *Adapt path* (walk-in-queue variants like clinic queue, restaurant waitlist, salon walk-ins): keep `ItemTag`, rename to the variant's terminology, preserve the two-state toggle (`Idled` ↔ `Completed`) and its transition logic. Variants that genuinely need a three-state lifecycle (e.g., a clinic queue wanting a distinct "in-service" state) extend the state machine rather than replace it — the planner decides whether to preserve, extend, or replace the states based on the NL spec.
- *Adapt path* (walk-in-queue variants like clinic queue, restaurant waitlist, salon walk-ins, household pest-sighting log): keep `ItemTag`, rename to the variant's terminology, preserve the two-state toggle (`Idled` ↔ `Completed`) and its transition logic. Variants that genuinely need a three-state lifecycle (e.g., a clinic queue wanting a distinct "in-service" state) extend the state machine rather than replace it — the planner decides whether to preserve, extend, or replace the states based on the NL spec.
- *Replace path* (non-queue SaaS like task tracker, simple CRM, inventory): strip `ItemTag` end-to-end, insert a new primary resource with equivalent coverage (migration + model + controller + policy + serializer + iOS/Android screens + state transitions if applicable).

The planner sub-agent decides which path to run based on the NL spec.
Expand Down
17 changes: 17 additions & 0 deletions plugin/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,23 @@ Then in the session:
/nativeapptemplate-agent:generate-app a walk-in queue for a barbershop
```

The two skills compose end-to-end — generate, then walk what you generated. A
full session, including a **custom project name passed in plain language**:

```
/nativeapptemplate-agent:generate-app a two-device home monitor for household pest detection. project name is Sentova.
/nativeapptemplate-agent:walk-app sentova ios
/nativeapptemplate-agent:walk-app sentova android
```

The `project name is Sentova` clause sets the display name and output slug
(`out/sentova/`, `Sentova.xcodeproj`, `Sentova API`) independently of the domain
rename the planner chooses. This spec is an **adapt** of the queue toggle — it
keeps `ItemTag` and renames it (one run: `Shop → Household`, `Shopkeeper →
Resident`, `ItemTag → Sighting`, states `Idled → Active` / `Completed →
Resolved`); the planner's exact targets vary run to run. Verified 2026-05-25
(agent 0.2.1): both specs generate with overall PASS, walked on iOS + Android.

After editing plugin files, run `/reload-plugins` to pick up changes. Confirm the
skill is loaded via `/help` and the MCP server via `/mcp`.

Expand Down
Loading