Skip to content

Commit ba13e7e

Browse files
committed
v0.2.0: Navigate and State - 6 skills, 2 rules, 6 MCP tools
New skills: mobile-navigation-setup (Expo Router patterns), mobile-state-management (Zustand/Jotai/React Query), mobile-component-patterns (reusable architecture and testing). New rule: mobile-platform-check (flags missing Platform.OS guards). New MCP tools: mobile_generateScreen, mobile_generateComponent, mobile_installDependency. Added Cursor release-process rule for consistent future releases. Made-with: Cursor
1 parent 74c9ece commit ba13e7e

File tree

17 files changed

+1366
-31
lines changed

17 files changed

+1366
-31
lines changed

.cursor-plugin/plugin.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
{
22
"name": "mobile-app-developer-tools",
33
"displayName": "Mobile App Developer Tools",
4-
"version": "0.1.0",
5-
"description": "Mobile app development for Cursor, Claude Code, and MCP-compatible editors. 3 skills covering project setup, environment detection, and device deployment for React Native/Expo - plus 1 rule. Companion MCP server provides 3 tools for environment checks, project scaffolding, and device connection.",
4+
"version": "0.2.0",
5+
"description": "Mobile app development for Cursor, Claude Code, and MCP-compatible editors. 6 skills covering project setup, environment detection, device deployment, navigation, state management, and component patterns for React Native/Expo - plus 2 rules. Companion MCP server provides 6 tools for environment checks, project scaffolding, device connection, screen generation, component generation, and dependency installation.",
66
"author": {
77
"name": "TMHSDigital",
88
"url": "https://github.com/TMHSDigital"

.cursor/rules/release-process.mdc

Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
---
2+
description: Enforce the release checklist when preparing a new version. Ensures all version files, docs, and counts stay in sync.
3+
alwaysApply: false
4+
globs:
5+
- "**/CHANGELOG.md"
6+
- "**/ROADMAP.md"
7+
- "**/.cursor-plugin/plugin.json"
8+
- "**/mcp-server/package.json"
9+
- "**/packages/mobile-dev-tools/package.json"
10+
---
11+
12+
# Release Process
13+
14+
When preparing a release, complete every step below in order. Do not tag or push until all steps pass.
15+
16+
## 1. Version Bump (7 files)
17+
18+
Update the version string in all of these files. They must match exactly.
19+
20+
| File | Field |
21+
| --- | --- |
22+
| `.cursor-plugin/plugin.json` | `version` |
23+
| `mcp-server/package.json` | `version` |
24+
| `mcp-server/src/index.ts` | `version` in `new McpServer({...})` |
25+
| `packages/mobile-dev-tools/package.json` | `version` |
26+
| `packages/mobile-dev-tools/src/index.ts` | `VERSION` constant |
27+
| `CLAUDE.md` | version reference in first paragraph |
28+
| `README.md` | version badge URL (`version-X.Y.Z-`) |
29+
30+
## 2. Update Counts
31+
32+
Update skill, rule, and MCP tool counts in these files to match the actual files on disk:
33+
34+
- `.cursor-plugin/plugin.json` - `description` field
35+
- `mcp-server/package.json` - `description` field
36+
- `CLAUDE.md` - counts in overview paragraph and tables
37+
- `README.md` - counts in header, badge area, section headers, and tables
38+
39+
Count sources:
40+
- Skills: `ls skills/*/SKILL.md | wc -l`
41+
- Rules: `ls rules/*.mdc | wc -l`
42+
- MCP tools: count `register*` calls in `mcp-server/src/index.ts`
43+
44+
## 3. Update CHANGELOG.md
45+
46+
Add a new entry at the top following the existing format:
47+
48+
```markdown
49+
## [X.Y.Z] - YYYY-MM-DD
50+
51+
### Added
52+
- List new skills, rules, and MCP tools
53+
```
54+
55+
## 4. Update ROADMAP.md
56+
57+
Move the `**(current)**` marker from the previous version to the new version in the release plan table and the version detail section.
58+
59+
## 5. Build
60+
61+
```bash
62+
cd mcp-server && npm run build
63+
cd ../packages/mobile-dev-tools && npm run build
64+
```
65+
66+
Both must compile without errors.
67+
68+
## 6. Test
69+
70+
```bash
71+
pytest tests/ -v --tb=short
72+
```
73+
74+
All tests must pass. The test suite validates:
75+
- Plugin manifest structure and referenced paths
76+
- Skill YAML frontmatter (name, description, name matches directory)
77+
- Skill required sections (Trigger, Required Inputs, Workflow, Example Interaction, MCP Usage, Common Pitfalls)
78+
- Rule YAML frontmatter (description, alwaysApply)
79+
- Version consistency across plugin.json, package.json, and index.ts
80+
81+
## 7. Commit
82+
83+
Use this format (no @ mentions):
84+
85+
```
86+
vX.Y.Z: Theme Name - N skills, N rules, N MCP tools
87+
88+
Brief description of what was added.
89+
```
90+
91+
## 8. Tag and Push
92+
93+
```bash
94+
git push origin main
95+
git tag -a vX.Y.Z -m "vX.Y.Z - Theme: N skills, N rules, N MCP tools"
96+
git push origin vX.Y.Z
97+
```
98+
99+
The tag push triggers:
100+
- `.github/workflows/release.yml` - creates GitHub Release with changelog
101+
- `.github/workflows/publish-npm.yml` - publishes to npm

CHANGELOG.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,16 @@
22

33
All notable changes to this project will be documented in this file.
44

5+
## [0.2.0] - 2026-04-03
6+
7+
### Added
8+
9+
- **3 new skills**: `mobile-navigation-setup` (Expo Router patterns), `mobile-state-management` (Zustand, Jotai, React Query), `mobile-component-patterns` (reusable component architecture)
10+
- **1 new rule**: `mobile-platform-check` (flags platform-specific APIs without Platform.OS guards)
11+
- **3 new MCP tools**: `mobile_generateScreen`, `mobile_generateComponent`, `mobile_installDependency`
12+
- Cursor release process rule at `.cursor/rules/release-process.mdc`
13+
- Totals: 6 skills, 2 rules, 6 MCP tools
14+
515
## [0.1.0] - 2026-04-03
616

717
### Added

CLAUDE.md

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,43 +4,50 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
44

55
## Project Overview
66

7-
The **Mobile App Developer Tools** Cursor plugin is at **v0.1.0**. It helps developers go from zero to a running mobile app on their phone. Currently supports React Native/Expo with **3 skills**, **1 rule**, and a companion MCP server exposing **3 tools** for environment checks, project scaffolding, and device deployment. Flutter support is planned for v0.5.0.
7+
The **Mobile App Developer Tools** Cursor plugin is at **v0.2.0**. It helps developers go from zero to a running mobile app on their phone. Currently supports React Native/Expo with **6 skills**, **2 rules**, and a companion MCP server exposing **6 tools** for environment checks, project scaffolding, device deployment, screen generation, component generation, and dependency installation. Flutter support is planned for v0.5.0.
88

99
## Plugin Architecture
1010

1111
```
1212
.cursor-plugin/plugin.json - Plugin manifest
1313
skills/<skill-name>/SKILL.md - AI workflow definitions
1414
rules/<rule-name>.mdc - Code quality and security rules
15-
mcp-server/ - MCP server with 3 tools
15+
mcp-server/ - MCP server with 6 tools
1616
packages/mobile-dev-tools/ - NPM package (stub for name claim)
1717
```
1818

19-
## Skills (3 total)
19+
## Skills (6 total)
2020

2121
| Skill | Purpose |
2222
| --- | --- |
2323
| mobile-project-setup | Guided Expo project creation with TypeScript, file-based routing, ESLint |
2424
| mobile-dev-environment | Cross-platform dependency detection (Node, Watchman, Xcode, Android Studio, Expo CLI) |
2525
| mobile-run-on-device | Running on a physical device via Expo Go, dev builds, QR code, tunnel mode |
26+
| mobile-navigation-setup | Expo Router file-based navigation: tabs, stack, drawer, typed routes, deep linking |
27+
| mobile-state-management | When to use React state vs Zustand vs Jotai vs React Query; patterns and examples |
28+
| mobile-component-patterns | Reusable component architecture, compound components, StyleSheet vs NativeWind, testing |
2629

27-
## Rules (1 total)
30+
## Rules (2 total)
2831

2932
| Rule | Scope | Purpose |
3033
| --- | --- | --- |
3134
| mobile-secrets.mdc | Global | Flags API keys, signing credentials, keystore passwords, Firebase config, EAS tokens |
35+
| mobile-platform-check.mdc | `.ts`, `.tsx` | Flags platform-specific APIs used without Platform.OS or Platform.select() guards |
3236

3337
## Companion MCP Server
3438

3539
Tools use the `mobile_` prefix (for example `mobile_checkDevEnvironment`).
3640

37-
### Tools (3 total)
41+
### Tools (6 total)
3842

3943
| Tool | Description |
4044
| --- | --- |
4145
| mobile_checkDevEnvironment | Detect installed tools, SDKs, simulators; report what is missing |
4246
| mobile_scaffoldProject | Generate a new Expo project from a template with chosen options |
4347
| mobile_runOnDevice | Start dev server and provide instructions for connecting a physical device |
48+
| mobile_generateScreen | Create a new Expo Router screen file with navigation wiring and boilerplate |
49+
| mobile_generateComponent | Create a React Native component with typed props, StyleSheet, and optional tests |
50+
| mobile_installDependency | Install a package via npx expo install with native module detection and warnings |
4451

4552
## Development Workflow
4653

README.md

Lines changed: 25 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
</p>
1010

1111
<p align="center">
12-
<a href="https://github.com/TMHSDigital/Mobile-App-Developer-Tools/releases"><img src="https://img.shields.io/badge/version-0.1.0-0A84FF?style=for-the-badge&logo=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0id2hpdGUiPjxwYXRoIGQ9Ik0xMiAyTDIyIDEyTDEyIDIyTDIgMTJaIi8+PC9zdmc+" alt="Release"></a>
12+
<a href="https://github.com/TMHSDigital/Mobile-App-Developer-Tools/releases"><img src="https://img.shields.io/badge/version-0.2.0-0A84FF?style=for-the-badge&logo=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0id2hpdGUiPjxwYXRoIGQ9Ik0xMiAyTDIyIDEyTDEyIDIyTDIgMTJaIi8+PC9zdmc+" alt="Release"></a>
1313
<a href="https://creativecommons.org/licenses/by-nc-nd/4.0/"><img src="https://img.shields.io/badge/License-CC%20BY--NC--ND%204.0-lightgrey?style=for-the-badge" alt="License"></a>
1414
<a href="https://github.com/TMHSDigital/Mobile-App-Developer-Tools/actions/workflows/ci.yml"><img src="https://img.shields.io/github/actions/workflow/status/TMHSDigital/Mobile-App-Developer-Tools/ci.yml?branch=main&label=CI&logo=githubactions&style=for-the-badge" alt="CI"></a>
1515
<a href="https://github.com/TMHSDigital/Mobile-App-Developer-Tools/actions/workflows/validate.yml"><img src="https://img.shields.io/github/actions/workflow/status/TMHSDigital/Mobile-App-Developer-Tools/validate.yml?branch=main&label=Validate&logo=githubactions&style=for-the-badge" alt="Validate"></a>
@@ -24,7 +24,7 @@
2424
---
2525

2626
<p align="center">
27-
<strong>3 skills</strong> &nbsp;&bull;&nbsp; <strong>1 rule</strong> &nbsp;&bull;&nbsp; <strong>3 MCP tools</strong>
27+
<strong>6 skills</strong> &nbsp;&bull;&nbsp; <strong>2 rules</strong> &nbsp;&bull;&nbsp; <strong>6 MCP tools</strong>
2828
</p>
2929

3030
<p align="center">
@@ -35,7 +35,7 @@
3535

3636
## Overview
3737

38-
Mobile App Developer Tools is a **Cursor** plugin by **TMHSDigital** that packages agent skills, editor rules, and a TypeScript **MCP server** (`mcp-server/`) so you can scaffold, run, and debug mobile apps without leaving the IDE. Currently at **v0.1.0** with three skills, one rule, and three live MCP tools. Flutter support is planned for v0.5.0.
38+
Mobile App Developer Tools is a **Cursor** plugin by **TMHSDigital** that packages agent skills, editor rules, and a TypeScript **MCP server** (`mcp-server/`) so you can scaffold, run, and debug mobile apps without leaving the IDE. Currently at **v0.2.0** with six skills, two rules, and six live MCP tools. Flutter support is planned for v0.5.0.
3939

4040
<br>
4141
<table>
@@ -46,9 +46,9 @@ Mobile App Developer Tools is a **Cursor** plugin by **TMHSDigital** that packag
4646

4747
| Layer | Role |
4848
| --- | --- |
49-
| **Skills** | Guided workflows: project scaffolding, environment setup, device deployment |
50-
| **Rules** | Guardrails: `mobile-secrets` catches hardcoded API keys and signing credentials |
51-
| **MCP** | Three tools for environment checks, project creation, and device connection |
49+
| **Skills** | Guided workflows: project scaffolding, environment setup, device deployment, navigation, state management, component patterns |
50+
| **Rules** | Guardrails: `mobile-secrets` catches hardcoded secrets; `mobile-platform-check` flags missing platform guards |
51+
| **MCP** | Six tools for environment checks, project creation, device connection, screen/component generation, dependency installation |
5252

5353
</td>
5454
<td>
@@ -74,7 +74,7 @@ Mobile App Developer Tools is a **Cursor** plugin by **TMHSDigital** that packag
7474
flowchart LR
7575
A[User asks mobile dev question] --> B[Cursor loads a Skill]
7676
B --> C{MCP server configured?}
77-
C -->|Yes| D["mobile-mcp tools (3)"]
77+
C -->|Yes| D["mobile-mcp tools (6)"]
7878
C -->|No| E[Docs-only guidance]
7979
D --> F[Local env checks / scaffolding]
8080
E --> G[Answer in chat or code edits]
@@ -152,16 +152,19 @@ Open Cursor and ask:
152152

153153
## Skills
154154

155-
All 3 skills are production-ready. Names match the folder under `skills/`.
155+
All 6 skills are production-ready. Names match the folder under `skills/`.
156156

157157
<details>
158-
<summary><strong>All 3 skills</strong></summary>
158+
<summary><strong>All 6 skills</strong></summary>
159159

160160
| Skill | Framework | What it does |
161161
| --- | --- | --- |
162162
| `mobile-project-setup` | Expo | Guided project creation with TypeScript, file-based routing, ESLint |
163163
| `mobile-dev-environment` | Shared | Detect OS, check dependencies (Node, Watchman, Xcode, Android Studio), fix common issues |
164164
| `mobile-run-on-device` | Expo | Step-by-step for physical device via Expo Go, dev builds, QR code, tunnel mode |
165+
| `mobile-navigation-setup` | Expo | Expo Router file-based navigation: tabs, stack, drawer, typed routes, deep linking |
166+
| `mobile-state-management` | Shared | When to use React state vs Zustand vs Jotai vs React Query with code examples |
167+
| `mobile-component-patterns` | Shared | Reusable component architecture, compound components, StyleSheet vs NativeWind, testing |
165168

166169
</details>
167170

@@ -172,19 +175,23 @@ All 3 skills are production-ready. Names match the folder under `skills/`.
172175
| `mobile-project-setup` | "Set up a new Expo project for a camera app" |
173176
| `mobile-dev-environment` | "Is my Mac ready for iOS development?" |
174177
| `mobile-run-on-device` | "My phone can't connect to the dev server - help" |
178+
| `mobile-navigation-setup` | "Add tab navigation with Home, Search, and Profile tabs" |
179+
| `mobile-state-management` | "What state management should I use for my Expo app?" |
180+
| `mobile-component-patterns` | "Create a reusable Card component with header and footer" |
175181

176182
---
177183

178184
## Rules
179185

180-
All 1 rule is production-ready.
186+
Both rules are production-ready.
181187

182188
<details>
183-
<summary><strong>All 1 rule</strong></summary>
189+
<summary><strong>All 2 rules</strong></summary>
184190

185191
| Rule | Scope | What it catches |
186192
| --- | --- | --- |
187193
| `mobile-secrets` | Always on | API keys, signing credentials, keystore passwords, Firebase config, `.p8`/`.p12` files, EAS tokens |
194+
| `mobile-platform-check` | `.ts`, `.tsx` | Platform-specific APIs (BackHandler, ToastAndroid, StatusBar methods) used without `Platform.OS` or `Platform.select()` guards |
188195

189196
</details>
190197

@@ -219,13 +226,16 @@ npx @tmhs/mobile-mcp
219226
```
220227

221228
<details>
222-
<summary><strong>All 3 MCP tools</strong></summary>
229+
<summary><strong>All 6 MCP tools</strong></summary>
223230

224231
| Tool | Purpose |
225232
| --- | --- |
226233
| `mobile_checkDevEnvironment` | Detect installed tools (Node, Expo CLI, Watchman, Xcode, Android Studio, JDK). Report what is missing with install instructions. |
227234
| `mobile_scaffoldProject` | Generate a new Expo project with TypeScript template and recommended config. |
228235
| `mobile_runOnDevice` | Start dev server and provide step-by-step instructions for connecting a physical device. |
236+
| `mobile_generateScreen` | Create a new Expo Router screen file with correct convention, navigation wiring, and boilerplate. |
237+
| `mobile_generateComponent` | Create a React Native component with typed props interface, StyleSheet, and optional test file. |
238+
| `mobile_installDependency` | Install a package via `npx expo install` with native module detection and Expo Go compatibility warnings. |
229239

230240
</details>
231241

@@ -261,7 +271,7 @@ Plugin manifest: [`.cursor-plugin/plugin.json`](.cursor-plugin/plugin.json).
261271

262272
## Configuration
263273

264-
No API keys are required for v0.1.0. All tools work locally.
274+
No API keys are required for v0.2.0. All tools work locally.
265275

266276
Future versions may use:
267277

@@ -279,8 +289,8 @@ Summary aligned with [ROADMAP.md](ROADMAP.md):
279289

280290
| Version | Theme | Highlights | Status |
281291
| --- | --- | --- | --- |
282-
| **v0.1.0** | Zero to Phone | 3 skills, 1 rule, 3 MCP tools | **Current** |
283-
| **v0.2.0** | Navigate & State | Navigation setup, state management, component generation | |
292+
| **v0.1.0** | Zero to Phone | 3 skills, 1 rule, 3 MCP tools | |
293+
| **v0.2.0** | Navigate & State | 6 skills, 2 rules, 6 MCP tools | **Current** |
284294
| **v0.3.0** | Camera & AI | Camera integration, AI features, permissions | |
285295
| **v0.4.0** | Users & Data | Auth, push notifications, local storage, API integration | |
286296
| **v0.5.0** | Flutter | Flutter project setup, navigation, device deploy, state management | |

ROADMAP.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,16 @@
44

55
| Version | Theme | Skills | Rules | MCP Tools | Highlights |
66
|---------|-------|--------|-------|-----------|------------|
7-
| **v0.1.0** | Zero to Phone | 3 | 1 | 3 | Project scaffolding, env check, run-on-device, secrets rule **(current)** |
8-
| **v0.2.0** | Navigate & State | +3 | +1 | +3 | Navigation setup, state management, component generation, platform-check rule |
7+
| **v0.1.0** | Zero to Phone | 3 | 1 | 3 | Project scaffolding, env check, run-on-device, secrets rule |
8+
| **v0.2.0** | Navigate & State | +3 | +1 | +3 | Navigation setup, state management, component generation, platform-check rule **(current)** |
99
| **v0.3.0** | Camera & AI | +3 | +1 | +3 | Camera integration, AI features, permissions skill, image-assets rule |
1010
| **v0.4.0** | Users & Data | +4 | +1 | +3 | Auth, push notifications, local storage, API integration, env-safety rule |
1111
| **v0.5.0** | Flutter | +4 | +1 | +0 | Flutter project setup, navigation, run-on-device, state management, performance rule |
1212
| **v0.6.0** | Ship It | +3 | +1 | +3 | App store prep, iOS submission, Android submission, accessibility rule |
1313
| **v0.7.0** | Grow | +2 | +0 | +3 | Monetization, deep links, build-for-store, screenshots, bundle analysis |
1414
| **v1.0.0** | Stable | +0 | +0 | +0 | Polish, docs, production release: 22 skills, 7 rules, 18 MCP tools |
1515

16-
## v0.1.0 - Zero to Phone (current)
16+
## v0.1.0 - Zero to Phone
1717

1818
**Skills:**
1919
- `mobile-project-setup` - Guided Expo project creation with opinionated defaults
@@ -28,7 +28,7 @@
2828
- `mobile_scaffoldProject` - Generate a new Expo project from templates
2929
- `mobile_runOnDevice` - Start dev server and connect to a device
3030

31-
## v0.2.0 - Navigate & State
31+
## v0.2.0 - Navigate & State (current)
3232

3333
**Skills:**
3434
- `mobile-navigation-setup` (Expo) - Expo Router file-based navigation patterns

mcp-server/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "@tmhs/mobile-mcp",
3-
"version": "0.1.0",
4-
"description": "MCP server for mobile app development - 3 tools for environment checks, project scaffolding, and device deployment.",
3+
"version": "0.2.0",
4+
"description": "MCP server for mobile app development - 6 tools for environment checks, project scaffolding, device deployment, screen generation, component generation, and dependency installation.",
55
"type": "module",
66
"main": "dist/index.js",
77
"bin": {

mcp-server/src/index.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,21 @@ import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"
66
import { register as registerCheckDevEnvironment } from "./tools/checkDevEnvironment.js";
77
import { register as registerScaffoldProject } from "./tools/scaffoldProject.js";
88
import { register as registerRunOnDevice } from "./tools/runOnDevice.js";
9+
import { register as registerGenerateScreen } from "./tools/generateScreen.js";
10+
import { register as registerGenerateComponent } from "./tools/generateComponent.js";
11+
import { register as registerInstallDependency } from "./tools/installDependency.js";
912

1013
const server = new McpServer({
1114
name: "mobile-mcp",
12-
version: "0.1.0",
15+
version: "0.2.0",
1316
});
1417

1518
registerCheckDevEnvironment(server);
1619
registerScaffoldProject(server);
1720
registerRunOnDevice(server);
21+
registerGenerateScreen(server);
22+
registerGenerateComponent(server);
23+
registerInstallDependency(server);
1824

1925
async function main(): Promise<void> {
2026
const transport = new StdioServerTransport();

0 commit comments

Comments
 (0)