Skip to content

Commit 03adaef

Browse files
authored
Merge pull request #2 from TMHSDigital/cursor/v0.7.0-grow-and-measure
v0.7.0: Grow & Measure - 24 skills, 7 rules, 19 MCP tools
2 parents b7c3953 + 3ef6a44 commit 03adaef

File tree

18 files changed

+1699
-31
lines changed

18 files changed

+1699
-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.6.0",
5-
"description": "Mobile app development for Cursor, Claude Code, and MCP-compatible editors. 20 skills covering React Native/Expo and Flutter - project setup through app store submission - plus 6 rules. Companion MCP server provides 15 tools.",
4+
"version": "0.7.0",
5+
"description": "Mobile app development for Cursor, Claude Code, and MCP-compatible editors. 24 skills covering React Native/Expo and Flutter - project setup through app store submission, monetization, analytics, and OTA updates - plus 7 rules. Companion MCP server provides 19 tools.",
66
"author": {
77
"name": "TMHSDigital",
88
"url": "https://github.com/TMHSDigital"

CHANGELOG.md

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

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

5+
## [0.7.0] - 2026-04-03
6+
7+
### Added
8+
9+
- **4 new skills**: `mobile-monetization` (in-app purchases, subscriptions, RevenueCat, StoreKit 2), `mobile-deep-links` (universal links, app links, URL schemes, deferred deep links), `mobile-analytics` (Sentry, Firebase Crashlytics, PostHog, source maps, GDPR), `mobile-ota-updates` (EAS Update, channels, staged rollouts, rollback, Shorebird)
10+
- **1 new rule**: `mobile-bundle-size` (flags large dependencies, unoptimized imports, heavy packages with lighter alternatives)
11+
- **4 new MCP tools**: `mobile_submitToPlayStore`, `mobile_generateScreenshots`, `mobile_analyzeBundle`, `mobile_configureOTA`
12+
- Totals: 24 skills, 7 rules, 19 MCP tools
13+
514
## [0.6.0] - 2026-04-03
615

716
### Added

CLAUDE.md

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ 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.6.0**. It helps developers go from zero to a published app in the stores. Supports React Native/Expo and Flutter with **20 skills**, **6 rules**, and a companion MCP server exposing **15 tools**.
7+
The **Mobile App Developer Tools** Cursor plugin is at **v0.7.0**. It helps developers go from zero to a published app in the stores. Supports React Native/Expo and Flutter with **24 skills**, **7 rules**, and a companion MCP server exposing **19 tools**.
88

99
## Demo App
1010

@@ -16,11 +16,11 @@ The **Mobile App Developer Tools** Cursor plugin is at **v0.6.0**. It helps deve
1616
.cursor-plugin/plugin.json - Plugin manifest
1717
skills/<skill-name>/SKILL.md - AI workflow definitions
1818
rules/<rule-name>.mdc - Code quality and security rules
19-
mcp-server/ - MCP server with 15 tools
19+
mcp-server/ - MCP server with 19 tools
2020
packages/mobile-dev-tools/ - NPM package (stub for name claim)
2121
```
2222

23-
## Skills (20 total)
23+
## Skills (24 total)
2424

2525
### React Native / Expo
2626

@@ -56,8 +56,12 @@ packages/mobile-dev-tools/ - NPM package (stub for name claim)
5656
| Skill | Purpose |
5757
| --- | --- |
5858
| mobile-app-store-prep | App icons, screenshots, metadata, privacy policy, age ratings, review guidelines |
59+
| mobile-monetization | In-app purchases, subscriptions, RevenueCat, StoreKit 2, sandbox testing |
60+
| mobile-deep-links | Universal links, app links, URL schemes, deferred deep links, attribution |
61+
| mobile-analytics | Crash reporting (Sentry, Crashlytics), event tracking (PostHog), source maps |
62+
| mobile-ota-updates | EAS Update channels, runtime versions, staged rollouts, rollback, Shorebird |
5963

60-
## Rules (6 total)
64+
## Rules (7 total)
6165

6266
| Rule | Scope | Purpose |
6367
| --- | --- | --- |
@@ -67,12 +71,13 @@ packages/mobile-dev-tools/ - NPM package (stub for name claim)
6771
| mobile-env-safety.mdc | `.ts`, `.tsx`, `.json` | Flags hardcoded production endpoints, missing EXPO_PUBLIC_ prefix, server-only secrets in client code |
6872
| mobile-performance.mdc | `.ts`, `.tsx`, `.dart` | Flags inline styles, missing list keys, unnecessary re-renders (RN); missing const constructors, inline widgets (Flutter) |
6973
| mobile-accessibility.mdc | `.ts`, `.tsx`, `.dart` | Flags missing a11y labels, small touch targets, images without alt text, color-only indicators |
74+
| mobile-bundle-size.mdc | `.ts`, `.tsx`, `.json`, `.dart` | Flags large dependencies, unoptimized imports, heavy packages with lighter alternatives |
7075

7176
## Companion MCP Server
7277

7378
Tools use the `mobile_` prefix (for example `mobile_checkDevEnvironment`).
7479

75-
### Tools (15 total)
80+
### Tools (19 total)
7681

7782
| Tool | Description |
7883
| --- | --- |
@@ -91,6 +96,10 @@ Tools use the `mobile_` prefix (for example `mobile_checkDevEnvironment`).
9196
| mobile_buildForStore | Create a production build for app store submission via EAS Build |
9297
| mobile_validateStoreMetadata | Check app.json for all required store listing fields (name, bundle ID, icon, etc.) |
9398
| mobile_submitToAppStore | Submit latest iOS production build to App Store Connect via EAS Submit |
99+
| mobile_submitToPlayStore | Submit latest Android production build to Google Play Console via EAS Submit |
100+
| mobile_generateScreenshots | Generate screenshot capture script and list required store dimensions |
101+
| mobile_analyzeBundle | Analyze app bundle for large dependencies, heavy assets, and optimization opportunities |
102+
| mobile_configureOTA | Configure EAS Update for over-the-air JavaScript updates with channels and runtime versions |
94103

95104
## Development Workflow
96105

README.md

Lines changed: 28 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.6.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.7.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>20 skills</strong> &nbsp;&bull;&nbsp; <strong>6 rules</strong> &nbsp;&bull;&nbsp; <strong>15 MCP tools</strong>
27+
<strong>24 skills</strong> &nbsp;&bull;&nbsp; <strong>7 rules</strong> &nbsp;&bull;&nbsp; <strong>19 MCP tools</strong>
2828
</p>
2929

3030
<p align="center">
@@ -35,15 +35,15 @@
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, build, and ship mobile apps without leaving the IDE. Currently at **v0.6.0** with twenty skills (React Native/Expo + Flutter), six rules, and fifteen live MCP tools.
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, build, and ship mobile apps without leaving the IDE. Currently at **v0.7.0** with twenty-four skills (React Native/Expo + Flutter), seven rules, and nineteen live MCP tools.
3939

4040
**What you get**
4141

4242
| Layer | Role |
4343
| --- | --- |
44-
| **Skills** | 20 guided workflows for React Native/Expo and Flutter: project setup through app store submission |
45-
| **Rules** | 6 guardrails: secrets, platform guards, image bloat, env safety, performance, accessibility |
46-
| **MCP** | 15 tools: env checks, scaffolding, device deploy, screen/component gen, permissions, AI, build health, push, deep links, store builds, metadata validation, App Store submission |
44+
| **Skills** | 24 guided workflows for React Native/Expo and Flutter: project setup through monetization, analytics, and OTA updates |
45+
| **Rules** | 7 guardrails: secrets, platform guards, image bloat, env safety, performance, accessibility, bundle size |
46+
| **MCP** | 19 tools: env checks, scaffolding, device deploy, screen/component gen, permissions, AI, build health, push, deep links, store builds, metadata validation, App Store + Play Store submission, screenshots, bundle analysis, OTA config |
4747

4848
**Quick facts**
4949

@@ -61,7 +61,7 @@ Mobile App Developer Tools is a **Cursor** plugin by **TMHSDigital** that packag
6161
flowchart LR
6262
A[User asks mobile dev question] --> B[Cursor loads a Skill]
6363
B --> C{MCP server configured?}
64-
C -->|Yes| D["mobile-mcp tools (15)"]
64+
C -->|Yes| D["mobile-mcp tools (19)"]
6565
C -->|No| E[Docs-only guidance]
6666
D --> F[Local env checks / scaffolding]
6767
E --> G[Answer in chat or code edits]
@@ -144,15 +144,15 @@ Open Cursor and ask:
144144

145145
## Demo App
146146

147-
See the plugin in action: **[SnapLog](https://github.com/TMHSDigital/Demo-Mobile-App)** is a photo journal app built entirely using these skills and MCP tools. It exercises 16 of the 20 skills - from project scaffolding and navigation to camera capture, AI descriptions, local storage, and push notifications.
147+
See the plugin in action: **[SnapLog](https://github.com/TMHSDigital/Demo-Mobile-App)** is a photo journal app built entirely using these skills and MCP tools. It exercises 16 of the 24 skills - from project scaffolding and navigation to camera capture, AI descriptions, local storage, and push notifications.
148148

149149
[![Demo App](https://img.shields.io/badge/demo-SnapLog-0A84FF?style=flat-square&logo=github)](https://github.com/TMHSDigital/Demo-Mobile-App)
150150

151151
---
152152

153153
## Skills
154154

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

157157
<details>
158158
<summary><strong>React Native / Expo skills (15)</strong></summary>
@@ -190,11 +190,15 @@ All 20 skills are production-ready. Names match the folder under `skills/`.
190190
</details>
191191

192192
<details>
193-
<summary><strong>Shared skills (1)</strong></summary>
193+
<summary><strong>Shared skills (5)</strong></summary>
194194

195195
| Skill | What it does |
196196
| --- | --- |
197197
| `mobile-app-store-prep` | App icons, screenshots, metadata, privacy policy, age ratings, review guidelines |
198+
| `mobile-monetization` | In-app purchases, subscriptions, RevenueCat, StoreKit 2, sandbox testing, price localization |
199+
| `mobile-deep-links` | Universal links (iOS), app links (Android), URL schemes, deferred deep links, install attribution |
200+
| `mobile-analytics` | Crash reporting (Sentry, Firebase Crashlytics), event tracking (PostHog), source maps, GDPR compliance |
201+
| `mobile-ota-updates` | EAS Update channels, runtime versions, staged rollouts, rollback, Shorebird for Flutter |
198202

199203
</details>
200204

@@ -223,17 +227,21 @@ All 20 skills are production-ready. Names match the folder under `skills/`.
223227
| `mobile-flutter-navigation` | "Add tab navigation with GoRouter in my Flutter app" |
224228
| `mobile-flutter-run-on-device` | "My Android phone doesn't show up in flutter devices" |
225229
| `mobile-flutter-state-management` | "Should I use Riverpod or Bloc for my Flutter app?" |
230+
| `mobile-monetization` | "Add a monthly subscription with a free trial using RevenueCat" |
231+
| `mobile-deep-links` | "Make shared links like example.com/recipe/42 open in my app" |
232+
| `mobile-analytics` | "Set up crash reporting with Sentry and event tracking with PostHog" |
233+
| `mobile-ota-updates` | "Push a bug fix to production without going through app review" |
226234

227235
</details>
228236

229237
---
230238

231239
## Rules
232240

233-
All 6 rules are production-ready.
241+
All 7 rules are production-ready.
234242

235243
<details>
236-
<summary><strong>All 6 rules</strong></summary>
244+
<summary><strong>All 7 rules</strong></summary>
237245

238246
| Rule | Scope | What it catches |
239247
| --- | --- | --- |
@@ -243,6 +251,7 @@ All 6 rules are production-ready.
243251
| `mobile-env-safety` | `.ts`, `.tsx`, `.json` | Hardcoded production endpoints, missing `EXPO_PUBLIC_` prefix, server-only secrets in client code |
244252
| `mobile-performance` | `.ts`, `.tsx`, `.dart` | Inline styles, missing list keys, ScrollView for long lists (RN); missing const constructors, inline widgets (Flutter) |
245253
| `mobile-accessibility` | `.ts`, `.tsx`, `.dart` | Missing a11y labels on interactive elements, small touch targets, images without alt text, color-only indicators |
254+
| `mobile-bundle-size` | `.ts`, `.tsx`, `.json`, `.dart` | Large dependencies (moment, lodash, aws-sdk), unoptimized imports, heavy packages with lighter alternatives |
246255

247256
</details>
248257

@@ -277,7 +286,7 @@ npx @tmhs/mobile-mcp
277286
```
278287

279288
<details>
280-
<summary><strong>All 15 MCP tools</strong></summary>
289+
<summary><strong>All 19 MCP tools</strong></summary>
281290

282291
| Tool | Purpose |
283292
| --- | --- |
@@ -296,6 +305,10 @@ npx @tmhs/mobile-mcp
296305
| `mobile_buildForStore` | Create a production build for app store submission via EAS Build. Validates app.json before building. |
297306
| `mobile_validateStoreMetadata` | Check app.json for all required store listing fields (name, bundle ID, version, icon, splash, privacy policy). |
298307
| `mobile_submitToAppStore` | Submit the latest iOS production build to App Store Connect via EAS Submit. |
308+
| `mobile_submitToPlayStore` | Submit the latest Android production build to Google Play Console via EAS Submit. |
309+
| `mobile_generateScreenshots` | Generate a screenshot capture helper script and list required store dimensions for iOS and Android. |
310+
| `mobile_analyzeBundle` | Analyze app bundle for large dependencies, heavy assets, and optimization opportunities. |
311+
| `mobile_configureOTA` | Configure EAS Update for over-the-air JavaScript updates with channels and runtime version policy. |
299312

300313
</details>
301314

@@ -357,8 +370,8 @@ Full details in [ROADMAP.md](ROADMAP.md).
357370
| **v0.3.0** | Camera & AI | 9 skills, 3 rules, 9 MCP tools | |
358371
| **v0.4.0** | Users & Data | 13 skills, 4 rules, 12 MCP tools | |
359372
| **v0.5.0** | Flutter | 17 skills, 5 rules, 12 MCP tools | |
360-
| **v0.6.0** | Ship It | 20 skills, 6 rules, 15 MCP tools | **Current** |
361-
| **v0.7.0** | Grow & Measure | 24 skills, 7 rules, 19 MCP tools | |
373+
| **v0.6.0** | Ship It | 20 skills, 6 rules, 15 MCP tools | |
374+
| **v0.7.0** | Grow & Measure | 24 skills, 7 rules, 19 MCP tools | **Current** |
362375
| **v0.8.0** | Test & Automate | 27 skills, 8 rules, 22 MCP tools | |
363376
| **v0.9.0** | Rich Features | 32 skills, 9 rules, 26 MCP tools | |
364377
| **v0.10.0** | Harden | 37 skills, 10 rules, 30 MCP tools | |

ROADMAP.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@
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 |
12-
| **v0.6.0** | Ship It | +3 | +1 | +3 | App store prep, iOS submission, Android submission, accessibility rule **(current)** |
13-
| **v0.7.0** | Grow & Measure | +4 | +1 | +4 | Monetization, deep links, analytics/crash reporting, OTA updates, bundle analysis |
12+
| **v0.6.0** | Ship It | +3 | +1 | +3 | App store prep, iOS submission, Android submission, accessibility rule |
13+
| **v0.7.0** | Grow & Measure | +4 | +1 | +4 | Monetization, deep links, analytics/crash reporting, OTA updates, bundle analysis **(current)** |
1414
| **v0.8.0** | Test & Automate | +3 | +1 | +3 | Unit/E2E testing, CI/CD pipelines, test file generation |
1515
| **v0.9.0** | Rich Features | +5 | +1 | +4 | Animations, maps/location, i18n, forms/validation, real-time/WebSockets |
1616
| **v0.10.0** | Harden | +5 | +1 | +4 | Security, offline-sync, background tasks, debugging, production APM |
@@ -90,7 +90,7 @@
9090
**Rules:**
9191
- `mobile-performance` - Common performance anti-patterns (inline styles, missing keys, heavy re-renders)
9292

93-
## v0.6.0 - Ship It (current)
93+
## v0.6.0 - Ship It
9494

9595
**Skills:**
9696
- `mobile-app-store-prep` (Shared) - Screenshots, descriptions, metadata, review guidelines
@@ -105,7 +105,7 @@
105105
- `mobile_validateStoreMetadata` - Check store listing fields
106106
- `mobile_submitToAppStore` - Trigger iOS submission
107107

108-
## v0.7.0 - Grow & Measure
108+
## v0.7.0 - Grow & Measure (current)
109109

110110
**Skills:**
111111
- `mobile-monetization` (Shared) - In-app purchases, subscriptions, RevenueCat, StoreKit 2

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.6.0",
4-
"description": "MCP server for mobile app development - 15 tools for environment checks, project scaffolding, device deployment, screen/component generation, dependency installation, permissions, AI integration, build health, push notifications, deep links, dev environment reset, store builds, metadata validation, and App Store submission.",
3+
"version": "0.7.0",
4+
"description": "MCP server for mobile app development - 19 tools for environment checks, project scaffolding, device deployment, screen/component generation, dependency installation, permissions, AI integration, build health, push notifications, deep links, dev environment reset, store builds, metadata validation, App Store submission, Play Store submission, screenshot capture, bundle analysis, and OTA update configuration.",
55
"type": "module",
66
"main": "dist/index.js",
77
"bin": {

mcp-server/src/index.ts

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,14 @@ import { register as registerResetDevEnvironment } from "./tools/resetDevEnviron
1818
import { register as registerBuildForStore } from "./tools/buildForStore.js";
1919
import { register as registerValidateStoreMetadata } from "./tools/validateStoreMetadata.js";
2020
import { register as registerSubmitToAppStore } from "./tools/submitToAppStore.js";
21+
import { register as registerSubmitToPlayStore } from "./tools/submitToPlayStore.js";
22+
import { register as registerGenerateScreenshots } from "./tools/generateScreenshots.js";
23+
import { register as registerAnalyzeBundle } from "./tools/analyzeBundle.js";
24+
import { register as registerConfigureOTA } from "./tools/configureOTA.js";
2125

2226
const server = new McpServer({
2327
name: "mobile-mcp",
24-
version: "0.6.0",
28+
version: "0.7.0",
2529
});
2630

2731
registerCheckDevEnvironment(server);
@@ -39,6 +43,10 @@ registerResetDevEnvironment(server);
3943
registerBuildForStore(server);
4044
registerValidateStoreMetadata(server);
4145
registerSubmitToAppStore(server);
46+
registerSubmitToPlayStore(server);
47+
registerGenerateScreenshots(server);
48+
registerAnalyzeBundle(server);
49+
registerConfigureOTA(server);
4250

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

0 commit comments

Comments
 (0)