mobile-ai-agents 1.0.33 → 1.0.35
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +1 -1
- package/README.md +21 -13
- package/agents/cross-platform/mobile-harness/agent.md +91 -24
- package/docs/getting-started.md +8 -0
- package/docs/mobile-harness.md +44 -0
- package/docs/wiki.md +10 -0
- package/package.json +1 -1
- package/skills/cross-platform/accessibility-audit.md +152 -2
- package/workflows/mobile-harness.md +54 -33
package/AGENTS.md
CHANGED
|
@@ -101,7 +101,7 @@ Use the agent at agents/android/code-reviewer/agent.md to review this file:
|
|
|
101
101
|
| Release Notes Generator | `agents/cross-platform/release-notes-generator/` | All | Git commits → user-facing release notes |
|
|
102
102
|
| CI/CD Pipeline Generator | `agents/cross-platform/ci-cd-generator/` | All | Generates GitHub Actions / Bitrise / Fastlane configs |
|
|
103
103
|
| Store Listing Writer | `agents/cross-platform/store-listing-writer/` | All | Play Store / App Store descriptions optimised for ASO |
|
|
104
|
-
| Mobile Harness | `agents/cross-platform/mobile-harness/` | All |
|
|
104
|
+
| Mobile Harness | `agents/cross-platform/mobile-harness/` | All | Guide beginners from idea and stack choice through one-task implementation, verification, device proof, and memory |
|
|
105
105
|
|
|
106
106
|
---
|
|
107
107
|
|
package/README.md
CHANGED
|
@@ -83,7 +83,7 @@ Mobile AI Agents turns AI coding from one-off prompts into a repeatable mobile e
|
|
|
83
83
|
| 1. Start | Turn a raw idea into starter PRD, design, task, roadmap, and memory docs. | `npx mobile-ai-agents start` |
|
|
84
84
|
| 2. Install | Add the agents, skills, and workflows to your AI coding tool. | `npx mobile-ai-agents install` |
|
|
85
85
|
| 3. Open your app | Use it inside an Android, iOS, Flutter, React Native, KMP, Unity, or Unreal project. | Claude Code · Cursor · Windsurf · Copilot · Codex |
|
|
86
|
-
| 4. Run the loop | Tell Mobile Harness to continue from the generated docs.
|
|
86
|
+
| 4. Run the loop | Tell Mobile Harness to continue from the generated docs. New developers can use `BEGINNER_GUIDED` mode for stack advice and plain-language checkpoints. | `/mobile-harness` |
|
|
87
87
|
| 5. Build with gates | The loop plans, implements, reviews architecture, checks security, audits performance, verifies UI, and runs QA. | `@MOBILE-HARNESS` |
|
|
88
88
|
| 6. Continue later | Project context, decisions, reports, and next tasks are saved so work can continue across sessions. | Mobile Memory |
|
|
89
89
|
|
|
@@ -174,7 +174,9 @@ Not sure where to begin? Pick your situation:
|
|
|
174
174
|
| Build, test, and verify a feature | `@MOBILE-HARNESS` + approved PRD/design/tasks |
|
|
175
175
|
| Prepare a release | `/release-prep` |
|
|
176
176
|
| Generate release notes | `@SCRIBE` + paste your git log |
|
|
177
|
-
|
|
|
177
|
+
| Plan an app without implementing it | `@APPFORGE` + answer the discovery questions |
|
|
178
|
+
| Build a first app with guided stack selection | `@MOBILE-HARNESS` in `BEGINNER_GUIDED` mode |
|
|
179
|
+
| Build an approved app plan through device proof | `@MOBILE-HARNESS` |
|
|
178
180
|
|
|
179
181
|
---
|
|
180
182
|
|
|
@@ -316,7 +318,7 @@ Not sure where to begin? Pick your situation:
|
|
|
316
318
|
| `/store-listing` | Conversation → ASO-optimized listing copy |
|
|
317
319
|
| `/feature-slice` | Epic → independently shippable tickets |
|
|
318
320
|
| `/release-prep` | Full release checklist from freeze to store |
|
|
319
|
-
| `/accessibility-audit` | WCAG 2.1 AA
|
|
321
|
+
| `/accessibility-audit` | WCAG 2.1 AA, reskin contrast, and semantic color-token migration review |
|
|
320
322
|
| `/api-versioning` | API deprecation strategy for mobile clients |
|
|
321
323
|
| `/deeplink-debug` | Diagnoses broken deep links across Android and iOS |
|
|
322
324
|
| `/mobile-mcp-qa` | Run AI-assisted QA on iOS/Android devices, simulators, and emulators |
|
|
@@ -431,20 +433,26 @@ Mobile Harness is the Loop Engineering orchestrator for Mobile AI Agents. It can
|
|
|
431
433
|
|
|
432
434
|
Use it when you want to define the goal once and have the system keep moving through the app-building loop without repeating the same manual prompts at every stage.
|
|
433
435
|
|
|
436
|
+
Use `BEGINNER_GUIDED` mode when this is your first mobile app or you are unsure about the platform or stack. Use APPFORGE alone when you only want planning documents; use Mobile Harness when you want implementation, verification, device proof, memory, and the next task too.
|
|
437
|
+
|
|
434
438
|
### What It Runs
|
|
435
439
|
|
|
436
440
|
```text
|
|
437
441
|
Goal
|
|
438
|
-
->
|
|
439
|
-
->
|
|
440
|
-
->
|
|
441
|
-
->
|
|
442
|
-
->
|
|
443
|
-
->
|
|
444
|
-
->
|
|
445
|
-
->
|
|
446
|
-
|
|
447
|
-
|
|
442
|
+
-> PLAN: choose profile/stack and create or read PRD.md + ROADMAP.md
|
|
443
|
+
-> DESIGN: approve DESIGN.md
|
|
444
|
+
-> TASK: select one small item from TASKS.md
|
|
445
|
+
-> IMPLEMENT: change only that task
|
|
446
|
+
-> VERIFY: review, build, test, and check the PRD
|
|
447
|
+
-> DEVICE PROOF: run Mobile MCP QA when available
|
|
448
|
+
-> MEMORY: update MOBILE_MEMORY.md and the report
|
|
449
|
+
-> NEXT ACTION: continue, fix, or stop at a human gate
|
|
450
|
+
```
|
|
451
|
+
|
|
452
|
+
Beginner prompt:
|
|
453
|
+
|
|
454
|
+
```text
|
|
455
|
+
Use MOBILE-HARNESS in BEGINNER_GUIDED mode. I have an app idea but I am not sure which platform or stack to use. Recommend one with reasons, create PRD.md, DESIGN.md, TASKS.md, DEPENDENCIES.md, ROADMAP.md, and MOBILE_MEMORY.md, then stop for approval before coding.
|
|
448
456
|
```
|
|
449
457
|
|
|
450
458
|
### First Questions It Should Ask
|
|
@@ -29,8 +29,12 @@ Use MOBILE-HARNESS when the user wants one system to manage:
|
|
|
29
29
|
- Performance and accessibility checks
|
|
30
30
|
- Play Store launch preparation
|
|
31
31
|
|
|
32
|
+
Use `BEGINNER_GUIDED` mode when the user has a rough idea, is new to mobile development, does not know which platform or stack to choose, or wants each step explained in plain language. This is a mode of Mobile Harness, not a separate agent, so the same evidence gates still apply.
|
|
33
|
+
|
|
32
34
|
If product artifacts are missing, MOBILE-HARNESS invokes APPFORGE stages internally before allowing code implementation.
|
|
33
35
|
|
|
36
|
+
Use APPFORGE by itself when the user only needs discovery, PRD, design, tasks, or roadmap output. Use Mobile Harness when the user wants those artifacts carried through implementation, verification, device proof, memory, and the next task.
|
|
37
|
+
|
|
34
38
|
---
|
|
35
39
|
|
|
36
40
|
## Autonomy Model
|
|
@@ -57,9 +61,64 @@ Ask the user only when:
|
|
|
57
61
|
|
|
58
62
|
---
|
|
59
63
|
|
|
64
|
+
## Beginner-Guided Mode
|
|
65
|
+
|
|
66
|
+
Beginner mode changes the explanation and defaults, not the engineering bar.
|
|
67
|
+
|
|
68
|
+
Start with only the questions that cannot be inferred:
|
|
69
|
+
|
|
70
|
+
```text
|
|
71
|
+
1. What app do you want to build, and who is it for?
|
|
72
|
+
2. Do you want iPhone, Android, or both? "Not sure" is valid.
|
|
73
|
+
3. Is this your first mobile app, and which languages do you already know?
|
|
74
|
+
4. Do you want the fastest learning prototype, a polished demo, or a production-ready app?
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
Inspect an existing repository before recommending anything. For a new app, recommend one stack and explain the reason in two plain-language sentences:
|
|
78
|
+
|
|
79
|
+
| Situation | Default Recommendation | Reason |
|
|
80
|
+
|---|---|---|
|
|
81
|
+
| Android only | Kotlin + Jetpack Compose | Native Android tooling and direct platform access |
|
|
82
|
+
| iPhone/iPad only | Swift + SwiftUI | Native Apple tooling and direct platform access |
|
|
83
|
+
| Android + iOS, user knows TypeScript/JavaScript | React Native + Expo + TypeScript | Fast cross-platform start with familiar language and managed tooling |
|
|
84
|
+
| Android + iOS, user accepts Dart and wants consistent custom UI | Flutter + Dart | One UI codebase with strong cross-platform rendering |
|
|
85
|
+
| Existing app | Existing stack | Avoid an unnecessary rewrite and preserve project conventions |
|
|
86
|
+
|
|
87
|
+
Document the recommendation, alternatives considered, and tradeoff in `PRD.md` and `ROADMAP.md`. Never imply there is one universally best stack.
|
|
88
|
+
|
|
89
|
+
Create or refresh these artifacts before implementation:
|
|
90
|
+
|
|
91
|
+
- `PRD.md`: user, problem, smallest useful outcome, requirements, edge cases, and open product decisions.
|
|
92
|
+
- `DESIGN.md`: screen flow, states, navigation, visual direction, accessibility, and screenshot plan.
|
|
93
|
+
- `TASKS.md`: small ordered tasks with acceptance criteria, verification command, and definition of done.
|
|
94
|
+
- `DEPENDENCIES.md`: tools, libraries, services, environment variables, and setup blockers.
|
|
95
|
+
- `ROADMAP.md`: milestones, task order, deferred scope, and release checkpoints.
|
|
96
|
+
- `MOBILE_MEMORY.md`: decisions, completed work, current task, blockers, and one next action.
|
|
97
|
+
|
|
98
|
+
Each artifact must start with a short `What this document means` paragraph and avoid unexplained acronyms. Each task should be finishable and verifiable independently; split tasks that mix setup, UI, data, and release work.
|
|
99
|
+
|
|
100
|
+
Use this deterministic loop and show the current stage in every report:
|
|
101
|
+
|
|
102
|
+
```text
|
|
103
|
+
PLAN -> DESIGN -> TASK -> IMPLEMENT -> VERIFY -> DEVICE PROOF -> MEMORY -> NEXT ACTION
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
Human stop gates:
|
|
107
|
+
|
|
108
|
+
- Stop after planning artifacts for approval before the first code change.
|
|
109
|
+
- Stop when two product directions would materially change the MVP.
|
|
110
|
+
- Stop for credentials, signing keys, API keys, account access, or private data.
|
|
111
|
+
- Stop before destructive data/schema changes, irreversible migrations, or deleting user work.
|
|
112
|
+
- Stop before enabling paid services, purchases, billing, or usage that may incur cost.
|
|
113
|
+
- Stop before a public deployment, store submission, production rollout, or release approval.
|
|
114
|
+
|
|
115
|
+
At a stop gate, explain `What is blocked`, `Why a decision is needed`, and `The smallest action the user must take`. Do not bury the request inside a long report.
|
|
116
|
+
|
|
117
|
+
---
|
|
118
|
+
|
|
60
119
|
## First Message
|
|
61
120
|
|
|
62
|
-
|
|
121
|
+
If `BEGINNER_GUIDED` applies, ask the four beginner questions above and infer the remaining details from the repository. Otherwise, collect only the missing fields from this advanced intake:
|
|
63
122
|
|
|
64
123
|
```text
|
|
65
124
|
1. Are we starting from a new app idea or an existing codebase?
|
|
@@ -143,29 +202,21 @@ If the user does not choose, infer a practical default from the app category and
|
|
|
143
202
|
```text
|
|
144
203
|
START
|
|
145
204
|
↓
|
|
146
|
-
SELECT DELIVERY PROFILE
|
|
205
|
+
PLAN: SELECT DELIVERY PROFILE + STACK; CREATE/READ PRD + ROADMAP
|
|
147
206
|
↓
|
|
148
|
-
|
|
207
|
+
DESIGN: APPROVE DESIGN.md
|
|
149
208
|
↓
|
|
150
|
-
|
|
209
|
+
TASK: SELECT ONE SMALL TASK FROM TASKS.md
|
|
151
210
|
↓
|
|
152
|
-
|
|
211
|
+
IMPLEMENT: CHANGE ONLY THAT TASK
|
|
153
212
|
↓
|
|
154
|
-
|
|
213
|
+
VERIFY: REVIEW + BUILD + TEST + /prd-verification
|
|
155
214
|
↓
|
|
156
|
-
|
|
215
|
+
DEVICE PROOF: /mobile-mcp-qa + EVIDENCE
|
|
157
216
|
↓
|
|
158
|
-
|
|
217
|
+
MEMORY: UPDATE MOBILE_MEMORY.md + REPORT
|
|
159
218
|
↓
|
|
160
|
-
|
|
161
|
-
↓
|
|
162
|
-
VERIFY PRD + UI + ACCESSIBILITY
|
|
163
|
-
↓
|
|
164
|
-
RUN MOBILE MCP DEVICE QA
|
|
165
|
-
↓
|
|
166
|
-
UPDATE MOBILE_MEMORY.md
|
|
167
|
-
↓
|
|
168
|
-
CONTINUE NEXT TASK OR LAUNCH PREP
|
|
219
|
+
NEXT ACTION: CONTINUE, FIX, OR STOP AT HUMAN GATE
|
|
169
220
|
```
|
|
170
221
|
|
|
171
222
|
---
|
|
@@ -198,13 +249,16 @@ If an artifact is missing or stale, update it before implementing.
|
|
|
198
249
|
- Work on one task only.
|
|
199
250
|
- Do not modify unrelated files.
|
|
200
251
|
- Read dependencies before implementation.
|
|
252
|
+
- Route the task to the narrowest relevant agent or skill and record that choice in Orchestration State; MOBILE-HARNESS retains ownership of the result.
|
|
253
|
+
- Use `/mobile-app-design` for new screens, redesigns, reskins, navigation changes, and design-system work; require approval of multi-screen reskin plans before editing.
|
|
201
254
|
- Use the platform reviewer after code changes: AXIOM, SWIFT, DART, or BRIDGE.
|
|
202
|
-
- Run
|
|
255
|
+
- Run the configured build, lint/static-analysis, and test checks after every task. If commands are missing, discover safe platform defaults; mark unavailable checks explicitly instead of silently skipping them.
|
|
203
256
|
- Run `/prd-verification` to verify behavior against `PRD.md`, `DESIGN.md`, `TASKS.md`, tests, screenshots, and QA reports.
|
|
204
257
|
- Verify UI against the design artifact, not memory.
|
|
205
258
|
- Use Mobile MCP for device, emulator, or simulator evidence when available.
|
|
206
259
|
- Capture screenshots, element lists, and failures in the report.
|
|
207
260
|
- Update `MOBILE_MEMORY.md` after every approved stage, completed task, blocker, failed QA pass, and end-of-day checkpoint.
|
|
261
|
+
- Run the `mobile-flight-recorder` workflow at the end of each session so changed files, commands, evidence, blockers, and the next action survive the handoff.
|
|
208
262
|
- Run `npx mobile-ai-agents memory checkpoint` when local memory should produce or refresh `MOBILE_MEMORY.md`.
|
|
209
263
|
- Mark task done only when acceptance criteria, tests, UI match, and device QA pass or accepted exceptions are documented.
|
|
210
264
|
|
|
@@ -218,8 +272,15 @@ MOBILE HARNESS REPORT
|
|
|
218
272
|
Platform:
|
|
219
273
|
Task:
|
|
220
274
|
Status: PASS | FAIL | BLOCKED
|
|
221
|
-
Mode: IDEA_TO_STORE | EXISTING_PROJECT | FEATURE_EXECUTION | QA_ONLY
|
|
275
|
+
Mode: BEGINNER_GUIDED | IDEA_TO_STORE | EXISTING_PROJECT | FEATURE_EXECUTION | QA_ONLY
|
|
222
276
|
Delivery Profile: SMALLEST_MVP | DEMO_GRADE_MVP | PRODUCTION_READY_MVP
|
|
277
|
+
Current Loop Stage: PLAN | DESIGN | TASK | IMPLEMENT | VERIFY | DEVICE_PROOF | MEMORY | NEXT_ACTION
|
|
278
|
+
|
|
279
|
+
Beginner Checkpoint:
|
|
280
|
+
- What happened:
|
|
281
|
+
- Why it matters:
|
|
282
|
+
- Decision needed: <plain-language request or "None">
|
|
283
|
+
- What happens next:
|
|
223
284
|
|
|
224
285
|
Artifacts Read:
|
|
225
286
|
| Artifact | Status | Notes |
|
|
@@ -277,18 +338,24 @@ NEXT ACTION:
|
|
|
277
338
|
## System Prompt
|
|
278
339
|
|
|
279
340
|
```text
|
|
280
|
-
You are MOBILE-HARNESS, the autonomous top-level orchestrator for Mobile AI Agents.
|
|
341
|
+
You are MOBILE-HARNESS, the autonomous top-level orchestrator for Mobile AI Agents. Take a mobile app from rough idea to release, or guide an existing project through implementation and evidence-based verification.
|
|
281
342
|
|
|
282
343
|
Coordinate specialized systems:
|
|
283
344
|
- APPFORGE for discovery, PRD, design plan, tasks, dependencies, roadmap, and store prep.
|
|
284
|
-
- Mobile Memory
|
|
285
|
-
- mobile-ai-agents memory commands for local event capture, search, context injection, and MOBILE_MEMORY.md checkpoint generation when terminal access is available.
|
|
345
|
+
- Mobile Memory and mobile-ai-agents memory commands for durable context and checkpoints.
|
|
286
346
|
- AXIOM, SWIFT, DART, or BRIDGE for platform-specific code review.
|
|
287
347
|
- /prd-verification for evidence-based PRD, design, task, test, and UI match checks.
|
|
348
|
+
- /mobile-app-design for screens, navigation changes, redesigns, and reskins.
|
|
288
349
|
- /mobile-mcp-qa for emulator, simulator, or real-device QA evidence.
|
|
289
|
-
-
|
|
350
|
+
- Relevant accessibility, performance, crash, release, and store specialists when required.
|
|
351
|
+
|
|
352
|
+
Require approved PRD, design, task, and dependency context before coding. If missing, create it through APPFORGE and wait for approval. Choose a delivery profile and design direction first.
|
|
353
|
+
|
|
354
|
+
Use BEGINNER_GUIDED mode for a rough idea, a new mobile developer, or an unknown platform/stack. Ask only what cannot be inferred. Recommend one stack with plain-language reasons and tradeoffs. Create beginner-readable PRD.md, DESIGN.md, TASKS.md, DEPENDENCIES.md, ROADMAP.md, and MOBILE_MEMORY.md. Show the current stage in this fixed loop: PLAN -> DESIGN -> TASK -> IMPLEMENT -> VERIFY -> DEVICE PROOF -> MEMORY -> NEXT ACTION. Explain what happened, why it matters, any decision needed, and what happens next.
|
|
355
|
+
|
|
356
|
+
Stop for product approval, credentials, destructive or irreversible actions, paid services, and public release approval. For demos or marketing, default to Demo-grade MVP with seeded data, multiple visible states, screenshot planning, and UI polish.
|
|
290
357
|
|
|
291
|
-
|
|
358
|
+
Work on one task at a time and modify only required files. Use /mobile-app-design for UI work. Then run tests, platform review, UI comparison, /prd-verification, and /mobile-mcp-qa when available. Update MOBILE_MEMORY.md and run mobile-flight-recorder at session end.
|
|
292
359
|
|
|
293
360
|
Never mark done unless acceptance criteria are met or exceptions are explicitly documented. Always produce MOBILE HARNESS REPORT with orchestration state, implementation summary, code review, tests, PRD verification, UI match, Mobile MCP QA, acceptance criteria with source references, Mobile Memory update, remaining issues, and one NEXT ACTION.
|
|
294
361
|
|
package/docs/getting-started.md
CHANGED
|
@@ -16,6 +16,14 @@ npx mobile-ai-agents start
|
|
|
16
16
|
|
|
17
17
|
This creates `PRD.md`, `DESIGN.md`, `TASKS.md`, `ROADMAP.md`, and `MOBILE_MEMORY.md`. After reviewing those files, install the agents and run `/mobile-harness` to continue from the approved plan.
|
|
18
18
|
|
|
19
|
+
If this is your first mobile app or you do not know which stack to choose, start Mobile Harness like this:
|
|
20
|
+
|
|
21
|
+
```text
|
|
22
|
+
Use MOBILE-HARNESS in BEGINNER_GUIDED mode. I have a rough app idea and need a stack recommendation. Explain each checkpoint in plain language, create the planning documents, and stop for approval before coding.
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
APPFORGE is the planning specialist. Mobile Harness uses APPFORGE for planning, then continues through one-task implementation, verification, device proof, memory, and the next action.
|
|
26
|
+
|
|
19
27
|
| I need to... | Start with this loop | Good first tool |
|
|
20
28
|
|---|---|---|
|
|
21
29
|
| Plan an app or feature | Planning | `@APPFORGE` |
|
package/docs/mobile-harness.md
CHANGED
|
@@ -4,6 +4,10 @@ Mobile Harness is the top-level orchestrator for Mobile AI Agents. It can start
|
|
|
4
4
|
|
|
5
5
|
Use it when you want one AI system to manage the full mobile delivery loop with as little human effort as safely possible, while still using specialized agents and skills underneath.
|
|
6
6
|
|
|
7
|
+
Choose `BEGINNER_GUIDED` mode if you have only an app idea, do not know the right mobile stack, or want each checkpoint explained in plain language. It uses the same rigorous build and QA gates as the standard harness.
|
|
8
|
+
|
|
9
|
+
Use APPFORGE alone when you only want planning documents. Use Mobile Harness when you want the plan implemented, verified, tested on a device, saved to memory, and continued task by task.
|
|
10
|
+
|
|
7
11
|
---
|
|
8
12
|
|
|
9
13
|
## Mental Model
|
|
@@ -13,6 +17,7 @@ MOBILE-HARNESS
|
|
|
13
17
|
├── APPFORGE → idea, PRD, design, tasks, roadmap
|
|
14
18
|
├── Mobile Memory → long-term memory across days/weeks
|
|
15
19
|
├── AXIOM/SWIFT/DART/BRIDGE → platform code review
|
|
20
|
+
├── /mobile-app-design → screens, navigation, redesigns, and reskins
|
|
16
21
|
├── /mobile-mcp-qa → emulator/device UI verification
|
|
17
22
|
├── /accessibility-audit → accessibility verification
|
|
18
23
|
├── /perf-audit or PERF → performance verification
|
|
@@ -23,6 +28,42 @@ MOBILE-HARNESS
|
|
|
23
28
|
```
|
|
24
29
|
|
|
25
30
|
APPFORGE plans. Mobile Memory remembers. Mobile Harness orchestrates execution and evidence.
|
|
31
|
+
Mobile Flight Recorder records the end-of-session handoff so another session can resume from the exact next action.
|
|
32
|
+
|
|
33
|
+
The fixed loop is:
|
|
34
|
+
|
|
35
|
+
```text
|
|
36
|
+
PLAN -> DESIGN -> TASK -> IMPLEMENT -> VERIFY -> DEVICE PROOF -> MEMORY -> NEXT ACTION
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## Beginner-Guided Start
|
|
42
|
+
|
|
43
|
+
Mobile Harness asks four simple questions: what the app does and who it serves, whether it targets Android/iPhone/both, which languages you know, and whether you want a learning prototype, polished demo, or production app. It inspects an existing project before recommending a stack.
|
|
44
|
+
|
|
45
|
+
For a new project, its defaults are native Compose for Android, native SwiftUI for Apple platforms, React Native with Expo for cross-platform TypeScript developers, and Flutter for teams that accept Dart and prioritize consistent custom UI. The recommendation includes reasons and tradeoffs; it is not treated as universally correct.
|
|
46
|
+
|
|
47
|
+
Before coding it creates:
|
|
48
|
+
|
|
49
|
+
- `PRD.md` for the user problem and requirements.
|
|
50
|
+
- `DESIGN.md` for screens, states, navigation, accessibility, and screenshot proof.
|
|
51
|
+
- `TASKS.md` for small independently verifiable work items.
|
|
52
|
+
- `DEPENDENCIES.md` for tools, services, keys, and setup.
|
|
53
|
+
- `ROADMAP.md` for milestones and deferred scope.
|
|
54
|
+
- `MOBILE_MEMORY.md` for decisions, progress, blockers, and the next action.
|
|
55
|
+
|
|
56
|
+
It stops for approval before the first code change and before credentials, destructive actions, paid services, irreversible migrations, public deployment, or store release.
|
|
57
|
+
|
|
58
|
+
```text
|
|
59
|
+
Use MOBILE-HARNESS in BEGINNER_GUIDED mode.
|
|
60
|
+
App idea: A simple meal planner for busy parents.
|
|
61
|
+
Target platform: Not sure.
|
|
62
|
+
Experience: I know basic TypeScript and this is my first mobile app.
|
|
63
|
+
Goal: A polished demo.
|
|
64
|
+
|
|
65
|
+
Recommend the stack, explain why, create the planning documents, and stop for approval before coding.
|
|
66
|
+
```
|
|
26
67
|
|
|
27
68
|
---
|
|
28
69
|
|
|
@@ -59,6 +100,7 @@ Mobile Harness verifies against docs, not memory:
|
|
|
59
100
|
| `DESIGN.md` or design plan | Required before UI work | Layout, states, visual target |
|
|
60
101
|
| `TASKS.md` | Required before implementation | Task scope and acceptance criteria |
|
|
61
102
|
| `DEPENDENCIES.md` | Required before implementation | Libraries, APIs, env vars |
|
|
103
|
+
| `ROADMAP.md` | Required for idea-to-app work | Milestones, sequence, deferred scope, release checkpoints |
|
|
62
104
|
| `MOBILE_HARNESS_REPORT.md` | Required after each cycle | Evidence and pass/fail state |
|
|
63
105
|
|
|
64
106
|
If these docs are missing, Mobile Harness routes to APPFORGE first.
|
|
@@ -112,6 +154,8 @@ Platform:
|
|
|
112
154
|
Task:
|
|
113
155
|
Status: PASS | FAIL | BLOCKED
|
|
114
156
|
Mode:
|
|
157
|
+
Current Loop Stage:
|
|
158
|
+
Beginner Checkpoint:
|
|
115
159
|
Artifacts Read:
|
|
116
160
|
Orchestration State:
|
|
117
161
|
Implementation Summary:
|
package/docs/wiki.md
CHANGED
|
@@ -384,6 +384,16 @@ Full guide: [`docs/vscode-copilot-integration.md`](vscode-copilot-integration.md
|
|
|
384
384
|
|
|
385
385
|
**Specify the exact platform:** `Android-Compose`, `Android-XML`, `iOS-SwiftUI`, `iOS-UIKit`, `Flutter`, or `React-Native`. The fixes differ significantly between frameworks.
|
|
386
386
|
|
|
387
|
+
For a reskin or theme migration, run `/accessibility-audit` with the supported themes, theme/token source, affected screens, and resolved foreground/background pairs. It maps by semantic role rather than old hex value, computes WCAG AA contrast for light and dark modes, and reports role collisions where one palette value was incorrectly reused for text, borders, fills, disabled content, or status states. Pair it with `/mobile-app-design` before implementation and `/mobile-mcp-qa` for device screenshots afterward.
|
|
388
|
+
|
|
389
|
+
```text
|
|
390
|
+
/accessibility-audit
|
|
391
|
+
PLATFORM: React Native
|
|
392
|
+
SUPPORTED_THEMES: light, dark
|
|
393
|
+
Audit the Settings reskin and token migration. Report failed pairs with their ratio,
|
|
394
|
+
required ratio, semantic role, theme/state, and recommended token.
|
|
395
|
+
```
|
|
396
|
+
|
|
387
397
|
---
|
|
388
398
|
|
|
389
399
|
## 7. How Skills Work
|
package/package.json
CHANGED
|
@@ -7,7 +7,27 @@
|
|
|
7
7
|
|
|
8
8
|
## Purpose
|
|
9
9
|
|
|
10
|
-
Reviews
|
|
10
|
+
Reviews mobile UI for WCAG 2.1 AA and platform accessibility requirements. It also verifies app reskins and color-token migrations by semantic role so palette replacements do not create invisible text, controls, or status states.
|
|
11
|
+
|
|
12
|
+
## When to Use
|
|
13
|
+
|
|
14
|
+
- Before releasing a new or redesigned mobile screen.
|
|
15
|
+
- After `/mobile-app-design` changes themes, tokens, components, or navigation.
|
|
16
|
+
- When a reskin replaces hardcoded colors or consolidates competing palettes.
|
|
17
|
+
- When `/mobile-mcp-qa` finds unreadable content or a theme-specific regression.
|
|
18
|
+
|
|
19
|
+
## Inputs
|
|
20
|
+
|
|
21
|
+
Provide as much of this evidence as is available:
|
|
22
|
+
|
|
23
|
+
```text
|
|
24
|
+
PLATFORM: Android | iOS | Flutter | React Native
|
|
25
|
+
SUPPORTED_THEMES: light, dark, or named themes
|
|
26
|
+
UI_SOURCE: screen/component and theme/token source files
|
|
27
|
+
COLOR_PAIRS: optional resolved foreground/background pairs by role, theme, and state
|
|
28
|
+
SCREENSHOTS: optional device evidence; never a substitute for computed colors
|
|
29
|
+
RESKIN_PLAN: optional /mobile-app-design screen inventory and token migration plan
|
|
30
|
+
```
|
|
11
31
|
|
|
12
32
|
---
|
|
13
33
|
|
|
@@ -59,5 +79,135 @@ React Native:
|
|
|
59
79
|
- accessibilityHint for non-obvious actions.
|
|
60
80
|
- accessible={false} for decorative elements.
|
|
61
81
|
|
|
62
|
-
|
|
82
|
+
RESKIN AND TOKEN MIGRATION:
|
|
83
|
+
1. Build a usage inventory before changing or approving tokens. Inspect each occurrence as
|
|
84
|
+
body text, large text, muted/secondary text, icon, border, fill/surface, disabled content,
|
|
85
|
+
disabled fill, status content, status fill, or fixed-tone content/fill.
|
|
86
|
+
2. Map colors by semantic role, never by old hex value. If one old hex is used for text,
|
|
87
|
+
borders, and fills, those usages require separate destination tokens. Flag a single
|
|
88
|
+
replacement token across different roles as ROLE_COLLISION.
|
|
89
|
+
3. Resolve the actual foreground and background after aliases, theme selection, state layers,
|
|
90
|
+
opacity, and alpha compositing. Do not infer contrast from token names or visual judgment.
|
|
91
|
+
4. Compute WCAG relative luminance and contrast ratio for every supported theme and relevant
|
|
92
|
+
state. Use (Llighter + 0.05) / (Ldarker + 0.05).
|
|
93
|
+
5. Require at least 4.5:1 for body/normal text and 3:1 for large text, icons, borders,
|
|
94
|
+
focus indicators, and other meaningful non-text UI. Large text is at least 18pt regular
|
|
95
|
+
or 14pt bold. Decorative borders and inactive controls do not need 3:1, but enabled
|
|
96
|
+
control boundaries and state indicators do.
|
|
97
|
+
6. Test these pairs separately in every theme:
|
|
98
|
+
- body text on each surface it appears on
|
|
99
|
+
- muted/secondary text on each surface it appears on
|
|
100
|
+
- icons and meaningful borders against adjacent colors
|
|
101
|
+
- status chips/badges: content on container and container against its surroundings when
|
|
102
|
+
the boundary communicates status
|
|
103
|
+
- disabled content on disabled fill and surrounding surface; disabled state must not rely
|
|
104
|
+
on low contrast or color alone
|
|
105
|
+
- error, success, warning, and info content/containers
|
|
106
|
+
- fixed-tone content on fixed-tone fills, without allowing system theme substitution
|
|
107
|
+
7. Detect invisible-text risks: foreground and background resolving to the same token/value,
|
|
108
|
+
on-color paired with the wrong container, transparent content composited onto a matching
|
|
109
|
+
surface, fixed-tone content replaced by a theme-dependent token, or a missing dark token
|
|
110
|
+
falling back to a light-theme value.
|
|
111
|
+
8. Screenshots may reveal where to inspect, but sampled pixels are not sufficient when text
|
|
112
|
+
has antialiasing, transparency, imagery, or gradients. Use resolved source/runtime colors
|
|
113
|
+
for the computed result and mark unavailable pairs UNVERIFIED.
|
|
114
|
+
|
|
115
|
+
For each accessibility issue include the element, requirement, WCAG criterion, severity,
|
|
116
|
+
evidence, and concrete fix. For color failures, recommend a semantic token, not only a hex.
|
|
117
|
+
|
|
118
|
+
OUTPUT FORMAT:
|
|
119
|
+
ACCESSIBILITY AUDIT
|
|
120
|
+
===================
|
|
121
|
+
Platform:
|
|
122
|
+
Themes audited:
|
|
123
|
+
Evidence:
|
|
124
|
+
Result: PASS | FAIL | PARTIAL | BLOCKED
|
|
125
|
+
|
|
126
|
+
Summary:
|
|
127
|
+
- Critical:
|
|
128
|
+
- High:
|
|
129
|
+
- Medium:
|
|
130
|
+
- Low:
|
|
131
|
+
- Unverified:
|
|
132
|
+
|
|
133
|
+
Role Collision Audit:
|
|
134
|
+
| Old Color/Token | Source Usages | Incorrect Mapping | Required Role Tokens | Result |
|
|
135
|
+
|---|---|---|---|---|
|
|
136
|
+
|
|
137
|
+
Contrast Results:
|
|
138
|
+
| Element/Pair | Role | Theme/State | Foreground | Background | Ratio | Required | Recommended Token | Result |
|
|
139
|
+
|---|---|---|---|---|---:|---:|---|---|
|
|
140
|
+
|
|
141
|
+
Other Findings:
|
|
142
|
+
| Severity | Element | Requirement/WCAG | Evidence | Fix |
|
|
143
|
+
|---|---|---|---|---|
|
|
144
|
+
|
|
145
|
+
Unverified Evidence:
|
|
146
|
+
- Pair or behavior, missing evidence, and exact verification needed.
|
|
147
|
+
|
|
148
|
+
Decision:
|
|
149
|
+
- PASS only when all in-scope themes and states have computed passing pairs and no blocking
|
|
150
|
+
semantic, focus, label, target-size, or announcement failures remain.
|
|
151
|
+
- PARTIAL when available checks pass but required evidence is missing.
|
|
152
|
+
- FAIL when any required pair or accessibility behavior fails.
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
## Example
|
|
156
|
+
|
|
157
|
+
**Input:**
|
|
158
|
+
|
|
159
|
+
```text
|
|
160
|
+
PLATFORM: React Native
|
|
161
|
+
SUPPORTED_THEMES: light, dark
|
|
162
|
+
RESKIN_PLAN: Replace legacy #6B7280 usages with the new secondary token.
|
|
163
|
+
UI_SOURCE:
|
|
164
|
+
- Settings helper text used #6B7280.
|
|
165
|
+
- Card borders used #6B7280.
|
|
166
|
+
- Dark theme maps secondary to #334155 on surface #0F172A.
|
|
63
167
|
```
|
|
168
|
+
|
|
169
|
+
**Output:**
|
|
170
|
+
|
|
171
|
+
```text
|
|
172
|
+
ACCESSIBILITY AUDIT
|
|
173
|
+
===================
|
|
174
|
+
Platform: React Native
|
|
175
|
+
Themes audited: light, dark
|
|
176
|
+
Evidence: resolved theme tokens and Settings source
|
|
177
|
+
Result: FAIL
|
|
178
|
+
|
|
179
|
+
Summary:
|
|
180
|
+
- Critical: 0
|
|
181
|
+
- High: 1
|
|
182
|
+
- Medium: 1
|
|
183
|
+
- Low: 0
|
|
184
|
+
- Unverified: 0
|
|
185
|
+
|
|
186
|
+
Role Collision Audit:
|
|
187
|
+
| Old Color/Token | Source Usages | Incorrect Mapping | Required Role Tokens | Result |
|
|
188
|
+
|---|---|---|---|---|
|
|
189
|
+
| #6B7280 | helper text, card border | color.secondary | color.onSurfaceVariant, color.outline | ROLE_COLLISION |
|
|
190
|
+
|
|
191
|
+
Contrast Results:
|
|
192
|
+
| Element/Pair | Role | Theme/State | Foreground | Background | Ratio | Required | Recommended Token | Result |
|
|
193
|
+
|---|---|---|---|---|---:|---:|---|---|
|
|
194
|
+
| Settings helper/surface | muted text | dark/default | #334155 | #0F172A | 1.72:1 | 4.5:1 | color.onSurfaceVariant | FAIL |
|
|
195
|
+
| Settings card edge/surface | meaningful border | dark/default | #334155 | #0F172A | 1.72:1 | 3:1 | color.outline | FAIL |
|
|
196
|
+
|
|
197
|
+
Other Findings:
|
|
198
|
+
| Severity | Element | Requirement/WCAG | Evidence | Fix |
|
|
199
|
+
|---|---|---|---|---|
|
|
200
|
+
| HIGH | Settings helper | 1.4.3 contrast | Dark token migration makes text nearly invisible | Map text to color.onSurfaceVariant and verify >= 4.5:1 |
|
|
201
|
+
| MEDIUM | Settings card | 1.4.11 non-text contrast | Border no longer communicates grouping | Map border to color.outline and verify >= 3:1 |
|
|
202
|
+
|
|
203
|
+
Unverified Evidence:
|
|
204
|
+
- None.
|
|
205
|
+
|
|
206
|
+
Decision:
|
|
207
|
+
- FAIL. Split the legacy value by semantic role, recompute both dark-mode pairs, and rerun
|
|
208
|
+
`/mobile-mcp-qa` for Settings in light and dark themes.
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
## Composition
|
|
212
|
+
|
|
213
|
+
Use `/mobile-app-design` to define the reskin and token plan, this skill to compute accessibility results, and `/mobile-mcp-qa` to capture device evidence in every supported theme.
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
**Type:** Top-level mobile delivery orchestration
|
|
4
4
|
**Agents Used:** MOBILE-HARNESS, APPFORGE, Mobile Memory, AXIOM / SWIFT / DART / BRIDGE, CRASHER, PERF, LAUNCHPAD, SCRIBE, PIPELINE
|
|
5
|
-
**Skills Used:** /mobile-mcp-qa, /accessibility-audit, /perf-audit, /mobile-memory-save, /release-prep, /store-listing
|
|
5
|
+
**Skills Used:** /mobile-app-design, /prd-verification, /mobile-mcp-qa, /accessibility-audit, /perf-audit, /mobile-memory-save, /release-prep, /store-listing
|
|
6
6
|
|
|
7
7
|
---
|
|
8
8
|
|
|
@@ -10,6 +10,10 @@
|
|
|
10
10
|
|
|
11
11
|
Use this workflow when a user wants one orchestrator that can manage the complete mobile app lifecycle: idea, planning, implementation, verification, multi-session memory, device QA, and launch preparation.
|
|
12
12
|
|
|
13
|
+
Use `BEGINNER_GUIDED` mode when the user is new to mobile development, has only a rough idea, or does not know which platform or stack to choose. Do not create a separate beginner agent: Mobile Harness already owns the full lifecycle and can route planning work to APPFORGE.
|
|
14
|
+
|
|
15
|
+
Use APPFORGE alone when the requested deliverable stops at discovery, PRD, design, tasks, or roadmap. Use Mobile Harness when the user wants the plan executed and proved on an emulator, simulator, or device.
|
|
16
|
+
|
|
13
17
|
This workflow is intentionally strict. It prevents the common AI failure mode of building code without proving it matches the product plan, design, and real-device behavior.
|
|
14
18
|
|
|
15
19
|
The goal is near-zero human effort. MOBILE-HARNESS should do routine product, engineering, QA, documentation, and release-prep work itself. The user should mainly provide the initial goal, approve major gates, and supply credentials or business decisions that cannot be inferred safely.
|
|
@@ -44,38 +48,47 @@ Ask the user only for:
|
|
|
44
48
|
## Lifecycle Map
|
|
45
49
|
|
|
46
50
|
```text
|
|
47
|
-
|
|
48
|
-
|
|
51
|
+
PLAN -> DESIGN -> TASK -> IMPLEMENT -> VERIFY -> DEVICE PROOF -> MEMORY -> NEXT ACTION
|
|
52
|
+
```
|
|
49
53
|
|
|
50
|
-
|
|
51
|
-
↓ Smallest MVP, Demo-grade MVP, or Production-ready MVP
|
|
54
|
+
The eight stages are deterministic. Full QA and launch preparation happen as tasks inside the same loop rather than bypassing it.
|
|
52
55
|
|
|
53
|
-
|
|
54
|
-
↓ Clean utility, polished consumer, playful gamified, premium wellness, dense dashboard, enterprise/admin, or custom reference
|
|
56
|
+
---
|
|
55
57
|
|
|
56
|
-
|
|
57
|
-
↓ Load or create MOBILE_MEMORY.md
|
|
58
|
+
## Beginner-Guided Defaults
|
|
58
59
|
|
|
59
|
-
|
|
60
|
-
↓ APPFORGE discovery, PRD.md, design plan, TASKS.md, DEPENDENCIES.md
|
|
60
|
+
Ask only what cannot be discovered from the repository: app idea and audience, target platform, existing language experience, and delivery goal. `Not sure` is a valid answer.
|
|
61
61
|
|
|
62
|
-
|
|
63
|
-
↓ Select exactly one task
|
|
64
|
-
↓ Implement only that task
|
|
65
|
-
↓ Platform review
|
|
66
|
-
↓ Tests
|
|
67
|
-
↓ PRD verification
|
|
68
|
-
↓ UI match review
|
|
69
|
-
↓ Mobile MCP QA
|
|
70
|
-
↓ Update MOBILE_MEMORY.md
|
|
62
|
+
Recommend one stack with a plain-language explanation and record the tradeoff:
|
|
71
63
|
|
|
72
|
-
|
|
73
|
-
|
|
64
|
+
| Need | Recommended Stack |
|
|
65
|
+
|---|---|
|
|
66
|
+
| Android only | Kotlin + Jetpack Compose |
|
|
67
|
+
| iPhone/iPad only | Swift + SwiftUI |
|
|
68
|
+
| Android + iOS with TypeScript/JavaScript experience | React Native + Expo + TypeScript |
|
|
69
|
+
| Android + iOS with highly consistent custom UI | Flutter + Dart |
|
|
70
|
+
| Existing app | Keep the existing stack |
|
|
74
71
|
|
|
75
|
-
|
|
76
|
-
|
|
72
|
+
Before implementation, create beginner-readable `PRD.md`, `DESIGN.md`, `TASKS.md`, `DEPENDENCIES.md`, `ROADMAP.md`, and `MOBILE_MEMORY.md`. Explain each document's purpose, keep tasks independently shippable, and give every task acceptance criteria plus a verification command.
|
|
73
|
+
|
|
74
|
+
At the end of every stage, state:
|
|
75
|
+
|
|
76
|
+
```text
|
|
77
|
+
What happened:
|
|
78
|
+
Why it matters:
|
|
79
|
+
Decision needed: None | <one explicit request>
|
|
80
|
+
What happens next:
|
|
77
81
|
```
|
|
78
82
|
|
|
83
|
+
Stop at these human gates:
|
|
84
|
+
|
|
85
|
+
- Approval of PRD, design, and task order before the first implementation.
|
|
86
|
+
- Product choices that materially change the MVP.
|
|
87
|
+
- Credentials, keys, certificates, account access, or private data.
|
|
88
|
+
- Destructive operations, irreversible migrations, or deletion of user data/work.
|
|
89
|
+
- Paid services, purchases, billing changes, or cost-incurring usage.
|
|
90
|
+
- Public deployment, store submission, production rollout, or release approval.
|
|
91
|
+
|
|
79
92
|
---
|
|
80
93
|
|
|
81
94
|
## Delivery Profiles
|
|
@@ -203,15 +216,17 @@ For each task:
|
|
|
203
216
|
4. Read `TASKS.md`.
|
|
204
217
|
5. Read `DEPENDENCIES.md`.
|
|
205
218
|
6. Select exactly one task.
|
|
206
|
-
7.
|
|
207
|
-
8.
|
|
208
|
-
9. Run
|
|
209
|
-
10.
|
|
210
|
-
11. Verify
|
|
211
|
-
12.
|
|
212
|
-
13.
|
|
213
|
-
14.
|
|
214
|
-
15.
|
|
219
|
+
7. Select the narrowest specialist agent or skill and record why it fits the task.
|
|
220
|
+
8. Use `/mobile-app-design` first when the task creates or changes screens, navigation, visual identity, or a reskin; then implement only that task.
|
|
221
|
+
9. Run platform reviewer.
|
|
222
|
+
10. Run the configured build, lint/static-analysis, and test commands. Discover safe platform defaults when commands are missing and record any unavailable check.
|
|
223
|
+
11. Verify behavior against `PRD.md`.
|
|
224
|
+
12. Verify UI against design.
|
|
225
|
+
13. Run `/mobile-mcp-qa` if device automation is available.
|
|
226
|
+
14. Produce `DEVICE_QA_REPORT.md` with the `device-proof-report` workflow when screenshots or device proof are required.
|
|
227
|
+
15. Write `MOBILE_HARNESS_REPORT.md`.
|
|
228
|
+
16. Update `MOBILE_MEMORY.md`.
|
|
229
|
+
17. At session end, run `mobile-flight-recorder` to preserve changed files, commands, evidence, blockers, and the next action.
|
|
215
230
|
|
|
216
231
|
After a task passes, continue to the next safe task automatically when the user has approved autonomous execution for the project. Stop only at human gates defined in the Autonomy Contract.
|
|
217
232
|
|
|
@@ -307,6 +322,12 @@ Start from scratch:
|
|
|
307
322
|
Use MOBILE-HARNESS. Start from a new app idea and orchestrate APPFORGE, Mobile Memory, implementation, QA, and launch prep.
|
|
308
323
|
```
|
|
309
324
|
|
|
325
|
+
Beginner-guided start:
|
|
326
|
+
|
|
327
|
+
```text
|
|
328
|
+
Use MOBILE-HARNESS in BEGINNER_GUIDED mode. I have an app idea but need help choosing the platform and stack. Explain each checkpoint in plain language, create the planning documents, and stop for approval before the first code change.
|
|
329
|
+
```
|
|
330
|
+
|
|
310
331
|
Resume multi-day feature:
|
|
311
332
|
|
|
312
333
|
```text
|