mobile-ai-agents 1.0.23

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.
Files changed (194) hide show
  1. package/AGENTS.md +228 -0
  2. package/CLAUDE.md +236 -0
  3. package/LICENSE +21 -0
  4. package/README.md +652 -0
  5. package/agents/android/android-crash-analyzer/README.md +134 -0
  6. package/agents/android/android-crash-analyzer/agent.md +206 -0
  7. package/agents/android/android-crash-analyzer/example-input.md +138 -0
  8. package/agents/android/android-crash-analyzer/example-output.md +225 -0
  9. package/agents/android/anr-investigation/README.md +78 -0
  10. package/agents/android/anr-investigation/agent.md +117 -0
  11. package/agents/android/anr-investigation/example-input.md +62 -0
  12. package/agents/android/anr-investigation/example-output.md +103 -0
  13. package/agents/android/axiom/agent.md +197 -0
  14. package/agents/android/code-reviewer/README.md +108 -0
  15. package/agents/android/code-reviewer/agent.md +210 -0
  16. package/agents/android/code-reviewer/example-input.md +116 -0
  17. package/agents/android/code-reviewer/example-output.md +115 -0
  18. package/agents/android/compose-navigation/README.md +76 -0
  19. package/agents/android/compose-navigation/agent.md +121 -0
  20. package/agents/android/compose-navigation/example-input.md +49 -0
  21. package/agents/android/compose-navigation/example-output.md +325 -0
  22. package/agents/android/compose-screen-builder/README.md +95 -0
  23. package/agents/android/compose-screen-builder/agent.md +170 -0
  24. package/agents/android/compose-screen-builder/example-input.md +40 -0
  25. package/agents/android/compose-screen-builder/example-output.md +568 -0
  26. package/agents/android/compose-ui-reviewer/README.md +73 -0
  27. package/agents/android/compose-ui-reviewer/agent.md +253 -0
  28. package/agents/android/compose-ui-reviewer/example-input.md +84 -0
  29. package/agents/android/compose-ui-reviewer/example-output.md +102 -0
  30. package/agents/android/crash-analyzer/README.md +53 -0
  31. package/agents/android/crash-analyzer/agent.md +295 -0
  32. package/agents/android/memory-leak-analyzer/README.md +79 -0
  33. package/agents/android/memory-leak-analyzer/agent.md +116 -0
  34. package/agents/android/memory-leak-analyzer/example-input.md +78 -0
  35. package/agents/android/memory-leak-analyzer/example-output.md +128 -0
  36. package/agents/cross-platform/accessibility-auditor/README.md +47 -0
  37. package/agents/cross-platform/accessibility-auditor/agent.md +268 -0
  38. package/agents/cross-platform/accessibility-auditor/example-input.md +84 -0
  39. package/agents/cross-platform/accessibility-auditor/example-output.md +132 -0
  40. package/agents/cross-platform/appforge/agent.md +303 -0
  41. package/agents/cross-platform/ci-cd-generator/README.md +65 -0
  42. package/agents/cross-platform/ci-cd-generator/agent.md +422 -0
  43. package/agents/cross-platform/ci-cd-generator/example-input.md +69 -0
  44. package/agents/cross-platform/ci-cd-generator/example-output.md +261 -0
  45. package/agents/cross-platform/crasher/agent.md +221 -0
  46. package/agents/cross-platform/figma/agent.md +247 -0
  47. package/agents/cross-platform/launchpad/agent.md +330 -0
  48. package/agents/cross-platform/mobile-harness/agent.md +422 -0
  49. package/agents/cross-platform/mobile-memory/agent.md +429 -0
  50. package/agents/cross-platform/perf/agent.md +261 -0
  51. package/agents/cross-platform/pipeline/agent.md +288 -0
  52. package/agents/cross-platform/release-notes-generator/README.md +63 -0
  53. package/agents/cross-platform/release-notes-generator/agent.md +218 -0
  54. package/agents/cross-platform/release-notes-generator/example-input.md +71 -0
  55. package/agents/cross-platform/release-notes-generator/example-output.md +96 -0
  56. package/agents/cross-platform/scribe/agent.md +180 -0
  57. package/agents/cross-platform/security-scanner/README.md +61 -0
  58. package/agents/cross-platform/security-scanner/agent.md +287 -0
  59. package/agents/cross-platform/security-scanner/example-input.md +77 -0
  60. package/agents/cross-platform/security-scanner/example-output.md +141 -0
  61. package/agents/cross-platform/sentinel/agent.md +217 -0
  62. package/agents/cross-platform/store-listing-writer/README.md +58 -0
  63. package/agents/cross-platform/store-listing-writer/agent.md +380 -0
  64. package/agents/cross-platform/store-listing-writer/example-input.md +67 -0
  65. package/agents/cross-platform/store-listing-writer/example-output.md +131 -0
  66. package/agents/flutter/bloc-feature-builder/README.md +101 -0
  67. package/agents/flutter/bloc-feature-builder/agent.md +225 -0
  68. package/agents/flutter/bloc-feature-builder/example-input.md +47 -0
  69. package/agents/flutter/bloc-feature-builder/example-output.md +838 -0
  70. package/agents/flutter/dart/agent.md +223 -0
  71. package/agents/flutter/widget-generator/README.md +66 -0
  72. package/agents/flutter/widget-generator/agent.md +264 -0
  73. package/agents/flutter/widget-generator/example-input.md +71 -0
  74. package/agents/flutter/widget-generator/example-output.md +163 -0
  75. package/agents/gaming/forge/agent.md +197 -0
  76. package/agents/gaming/unreal/agent.md +200 -0
  77. package/agents/ios/crash-analyzer/README.md +69 -0
  78. package/agents/ios/crash-analyzer/agent.md +300 -0
  79. package/agents/ios/crash-analyzer/example-input.md +83 -0
  80. package/agents/ios/crash-analyzer/example-output.md +126 -0
  81. package/agents/ios/swift/agent.md +206 -0
  82. package/agents/ios/swift-reviewer/README.md +68 -0
  83. package/agents/ios/swift-reviewer/agent.md +231 -0
  84. package/agents/ios/swift-reviewer/example-input.md +100 -0
  85. package/agents/ios/swift-reviewer/example-output.md +127 -0
  86. package/agents/react-native/bridge/agent.md +212 -0
  87. package/agents/react-native/performance-optimizer/README.md +81 -0
  88. package/agents/react-native/performance-optimizer/agent.md +284 -0
  89. package/agents/react-native/performance-optimizer/example-input.md +104 -0
  90. package/agents/react-native/performance-optimizer/example-output.md +132 -0
  91. package/agents/unity/shader-generator/README.md +77 -0
  92. package/agents/unity/shader-generator/agent.md +270 -0
  93. package/agents/unity/shader-generator/example-input.md +70 -0
  94. package/agents/unity/shader-generator/example-output.md +160 -0
  95. package/agents/unreal/blueprint-advisor/README.md +71 -0
  96. package/agents/unreal/blueprint-advisor/agent.md +311 -0
  97. package/agents/unreal/blueprint-advisor/example-input.md +73 -0
  98. package/agents/unreal/blueprint-advisor/example-output.md +217 -0
  99. package/cli/index.js +1091 -0
  100. package/docs/agent-guide.md +138 -0
  101. package/docs/chatgpt-integration.md +219 -0
  102. package/docs/core-loops.md +143 -0
  103. package/docs/cursor-integration.md +143 -0
  104. package/docs/getting-started.md +132 -0
  105. package/docs/index.html +711 -0
  106. package/docs/installation.md +271 -0
  107. package/docs/mobile-harness.md +160 -0
  108. package/docs/mobile-mcp.md +172 -0
  109. package/docs/mobile-memory.md +349 -0
  110. package/docs/release-process.md +85 -0
  111. package/docs/releases/release-v1.0.0.md +165 -0
  112. package/docs/roadmap/github-issues.md +239 -0
  113. package/docs/skill-categories.md +125 -0
  114. package/docs/vscode-copilot-integration.md +104 -0
  115. package/docs/wiki.md +615 -0
  116. package/install.sh +507 -0
  117. package/mobile-karpathy.md +79 -0
  118. package/package.json +57 -0
  119. package/skills/android/README.md +31 -0
  120. package/skills/android/android-tdd.md +89 -0
  121. package/skills/android/anr-investigation.md +251 -0
  122. package/skills/android/code-review.md +98 -0
  123. package/skills/android/compose-migration.md +48 -0
  124. package/skills/android/compose-review.md +78 -0
  125. package/skills/android/kotlin-modernize.md +51 -0
  126. package/skills/android/memory-leak-investigation.md +256 -0
  127. package/skills/android/proguard-rules.md +48 -0
  128. package/skills/cross-platform/accessibility-audit.md +63 -0
  129. package/skills/cross-platform/api-versioning.md +59 -0
  130. package/skills/cross-platform/clean-code-audit.md +239 -0
  131. package/skills/cross-platform/crash-triage.md +53 -0
  132. package/skills/cross-platform/deeplink-debug.md +57 -0
  133. package/skills/cross-platform/feature-slice.md +48 -0
  134. package/skills/cross-platform/grill-mobile.md +64 -0
  135. package/skills/cross-platform/mobile-mcp-qa.md +193 -0
  136. package/skills/cross-platform/mobile-memory-graph.md +179 -0
  137. package/skills/cross-platform/mobile-memory-save.md +210 -0
  138. package/skills/cross-platform/mobile-memory-search.md +154 -0
  139. package/skills/cross-platform/perf-audit.md +61 -0
  140. package/skills/cross-platform/prd-verification.md +324 -0
  141. package/skills/cross-platform/release-prep.md +64 -0
  142. package/skills/cross-platform/security-audit.md +281 -0
  143. package/skills/cross-platform/store-listing.md +75 -0
  144. package/skills/flutter/README.md +32 -0
  145. package/skills/flutter/dart-modernize.md +47 -0
  146. package/skills/flutter/flutter-review.md +59 -0
  147. package/skills/flutter/flutter-tdd.md +73 -0
  148. package/skills/flutter/widget-extract.md +41 -0
  149. package/skills/flutter/widget-gen.md +131 -0
  150. package/skills/gaming/blueprint-to-cpp.md +51 -0
  151. package/skills/gaming/game-perf.md +54 -0
  152. package/skills/gaming/shader-gen.md +44 -0
  153. package/skills/gaming/unity-tdd.md +85 -0
  154. package/skills/ios/README.md +45 -0
  155. package/skills/ios/data-persistence.md +151 -0
  156. package/skills/ios/ios-tdd.md +90 -0
  157. package/skills/ios/networking.md +139 -0
  158. package/skills/ios/performance.md +122 -0
  159. package/skills/ios/swift-concurrency.md +57 -0
  160. package/skills/ios/swift-review.md +124 -0
  161. package/skills/ios/swiftui-review.md +49 -0
  162. package/skills/ios/swiftui-state.md +122 -0
  163. package/skills/ios/unit-testing.md +144 -0
  164. package/skills/ios/xcode-warnings.md +37 -0
  165. package/skills/react-native/README.md +42 -0
  166. package/skills/react-native/bridge-audit.md +104 -0
  167. package/skills/react-native/expo-optimize.md +55 -0
  168. package/skills/react-native/new-arch-migrate.md +53 -0
  169. package/skills/react-native/performance.md +124 -0
  170. package/skills/react-native/rn-review.md +53 -0
  171. package/skills/react-native/rn-tdd.md +76 -0
  172. package/skills/shared/README.md +46 -0
  173. package/skills/shared/accessibility-audit.md +132 -0
  174. package/skills/shared/crash-analysis.md +110 -0
  175. package/skills/shared/security-scan.md +149 -0
  176. package/skills/unity/README.md +31 -0
  177. package/skills/unity/shader-review.md +110 -0
  178. package/templates/agent-template.md +88 -0
  179. package/templates/prompt-template.md +50 -0
  180. package/templates/skill-template.md +64 -0
  181. package/templates/workflow-template.md +48 -0
  182. package/workflows/app-launch.md +66 -0
  183. package/workflows/appforge-workflow.md +232 -0
  184. package/workflows/ci-setup.md +77 -0
  185. package/workflows/crash-to-fix.md +71 -0
  186. package/workflows/feature-ship.md +61 -0
  187. package/workflows/game-level.md +72 -0
  188. package/workflows/mobile-harness.md +319 -0
  189. package/workflows/mobile-mcp-qa.md +228 -0
  190. package/workflows/mobile-memory-workflow.md +243 -0
  191. package/workflows/new-project-setup.md +93 -0
  192. package/workflows/new-screen.md +68 -0
  193. package/workflows/perf-sprint.md +78 -0
  194. package/workflows/release-cycle.md +71 -0
package/install.sh ADDED
@@ -0,0 +1,507 @@
1
+ #!/bin/bash
2
+
3
+ # Mobile AI Agents — One-command installer
4
+ # Usage: ./install.sh [--platform android|ios|flutter|rn|gaming|all] [--tool claude|cursor|windsurf|copilot|codex|all]
5
+
6
+ set -e
7
+
8
+ PLATFORM="all"
9
+ TOOL="claude"
10
+ CLAUDE_AGENTS_DIR="$HOME/.claude/agents"
11
+ CLAUDE_COMMANDS_DIR="$HOME/.claude/commands"
12
+
13
+ # Parse args
14
+ while [[ "$#" -gt 0 ]]; do
15
+ case $1 in
16
+ --platform) PLATFORM="$2"; shift ;;
17
+ --tool) TOOL="$2"; shift ;;
18
+ android|ios|flutter|rn|gaming) PLATFORM="$1" ;;
19
+ *) echo "Unknown parameter: $1"; exit 1 ;;
20
+ esac
21
+ shift
22
+ done
23
+
24
+ echo ""
25
+ echo "Mobile AI Agents Installer"
26
+ echo "Platform: $PLATFORM | Tool: $TOOL"
27
+ echo ""
28
+
29
+ # ---------------------------------------------------------------------------
30
+ # Helpers
31
+ # ---------------------------------------------------------------------------
32
+
33
+ # Copy a file to a destination, print a dot on success
34
+ _cp() {
35
+ local src="$1" dst="$2"
36
+ if [[ -f "$src" ]]; then
37
+ cp "$src" "$dst"
38
+ else
39
+ echo " [WARN] missing: $src"
40
+ fi
41
+ }
42
+
43
+ # Build list of agent source paths for the current platform selection
44
+ # Outputs: "<name> <src_path>" lines
45
+ _agent_lines() {
46
+ # Cross-platform (always)
47
+ for agent in appforge crasher launchpad sentinel pipeline scribe perf figma \
48
+ mobile-harness mobile-memory \
49
+ accessibility-auditor ci-cd-generator release-notes-generator \
50
+ security-scanner store-listing-writer; do
51
+ src="agents/cross-platform/$agent/agent.md"
52
+ [[ -f "$src" ]] && echo "$agent $src"
53
+ done
54
+
55
+ if [[ "$PLATFORM" == "android" || "$PLATFORM" == "all" ]]; then
56
+ echo "anr-investigation agents/android/anr-investigation/agent.md"
57
+ echo "axiom agents/android/axiom/agent.md"
58
+ echo "android-crash-analyzer agents/android/android-crash-analyzer/agent.md"
59
+ echo "android-code-reviewer agents/android/code-reviewer/agent.md"
60
+ echo "compose-navigation agents/android/compose-navigation/agent.md"
61
+ echo "compose-screen-builder agents/android/compose-screen-builder/agent.md"
62
+ echo "compose-ui-reviewer agents/android/compose-ui-reviewer/agent.md"
63
+ echo "android-crash-analyzer-v2 agents/android/crash-analyzer/agent.md"
64
+ echo "memory-leak-analyzer agents/android/memory-leak-analyzer/agent.md"
65
+ fi
66
+
67
+ if [[ "$PLATFORM" == "ios" || "$PLATFORM" == "all" ]]; then
68
+ echo "swift agents/ios/swift/agent.md"
69
+ echo "ios-crash-analyzer agents/ios/crash-analyzer/agent.md"
70
+ echo "swift-reviewer agents/ios/swift-reviewer/agent.md"
71
+ fi
72
+
73
+ if [[ "$PLATFORM" == "flutter" || "$PLATFORM" == "all" ]]; then
74
+ echo "dart agents/flutter/dart/agent.md"
75
+ echo "bloc-feature-builder agents/flutter/bloc-feature-builder/agent.md"
76
+ echo "widget-generator agents/flutter/widget-generator/agent.md"
77
+ fi
78
+
79
+ if [[ "$PLATFORM" == "rn" || "$PLATFORM" == "all" ]]; then
80
+ echo "bridge agents/react-native/bridge/agent.md"
81
+ echo "rn-performance-optimizer agents/react-native/performance-optimizer/agent.md"
82
+ fi
83
+
84
+ if [[ "$PLATFORM" == "gaming" || "$PLATFORM" == "all" ]]; then
85
+ echo "forge agents/gaming/forge/agent.md"
86
+ echo "unreal agents/gaming/unreal/agent.md"
87
+ echo "shader-generator agents/unity/shader-generator/agent.md"
88
+ echo "blueprint-advisor agents/unreal/blueprint-advisor/agent.md"
89
+ fi
90
+ }
91
+
92
+ # Build list of skill source paths for the current platform selection
93
+ # Outputs: "<slug> <src_path>" lines
94
+ _skill_lines() {
95
+ # Cross-platform skills (always)
96
+ echo "grill-mobile skills/cross-platform/grill-mobile.md"
97
+ echo "crash-triage skills/cross-platform/crash-triage.md"
98
+ echo "perf-audit skills/cross-platform/perf-audit.md"
99
+ echo "clean-code-audit skills/cross-platform/clean-code-audit.md"
100
+ echo "security-audit skills/cross-platform/security-audit.md"
101
+ echo "store-listing skills/cross-platform/store-listing.md"
102
+ echo "release-prep skills/cross-platform/release-prep.md"
103
+ echo "feature-slice skills/cross-platform/feature-slice.md"
104
+ echo "mobile-mcp-qa skills/cross-platform/mobile-mcp-qa.md"
105
+ echo "mobile-memory-save skills/cross-platform/mobile-memory-save.md"
106
+ echo "mobile-memory-graph skills/cross-platform/mobile-memory-graph.md"
107
+ echo "mobile-memory-search skills/cross-platform/mobile-memory-search.md"
108
+ echo "accessibility-audit skills/cross-platform/accessibility-audit.md"
109
+ echo "api-versioning skills/cross-platform/api-versioning.md"
110
+ echo "deeplink-debug skills/cross-platform/deeplink-debug.md"
111
+ echo "crash-analysis skills/shared/crash-analysis.md"
112
+ echo "security-scan skills/shared/security-scan.md"
113
+ echo "shared-accessibility-audit skills/shared/accessibility-audit.md"
114
+
115
+ if [[ "$PLATFORM" == "android" || "$PLATFORM" == "all" ]]; then
116
+ echo "anr-investigation skills/android/anr-investigation.md"
117
+ echo "android-tdd skills/android/android-tdd.md"
118
+ echo "compose-review skills/android/compose-review.md"
119
+ echo "compose-migration skills/android/compose-migration.md"
120
+ echo "kotlin-modernize skills/android/kotlin-modernize.md"
121
+ echo "memory-leak-investigation skills/android/memory-leak-investigation.md"
122
+ echo "android-code-review skills/android/code-review.md"
123
+ echo "proguard-rules skills/android/proguard-rules.md"
124
+ fi
125
+
126
+ if [[ "$PLATFORM" == "ios" || "$PLATFORM" == "all" ]]; then
127
+ echo "ios-tdd skills/ios/ios-tdd.md"
128
+ echo "swiftui-review skills/ios/swiftui-review.md"
129
+ echo "swift-review skills/ios/swift-review.md"
130
+ echo "swiftui-state skills/ios/swiftui-state.md"
131
+ echo "swift-concurrency skills/ios/swift-concurrency.md"
132
+ echo "data-persistence skills/ios/data-persistence.md"
133
+ echo "ios-networking skills/ios/networking.md"
134
+ echo "ios-performance skills/ios/performance.md"
135
+ echo "ios-unit-testing skills/ios/unit-testing.md"
136
+ echo "xcode-warnings skills/ios/xcode-warnings.md"
137
+ fi
138
+
139
+ if [[ "$PLATFORM" == "flutter" || "$PLATFORM" == "all" ]]; then
140
+ echo "flutter-tdd skills/flutter/flutter-tdd.md"
141
+ echo "flutter-review skills/flutter/flutter-review.md"
142
+ echo "dart-modernize skills/flutter/dart-modernize.md"
143
+ echo "widget-extract skills/flutter/widget-extract.md"
144
+ echo "widget-gen skills/flutter/widget-gen.md"
145
+ fi
146
+
147
+ if [[ "$PLATFORM" == "rn" || "$PLATFORM" == "all" ]]; then
148
+ echo "rn-tdd skills/react-native/rn-tdd.md"
149
+ echo "rn-review skills/react-native/rn-review.md"
150
+ echo "bridge-audit skills/react-native/bridge-audit.md"
151
+ echo "expo-optimize skills/react-native/expo-optimize.md"
152
+ echo "new-arch-migrate skills/react-native/new-arch-migrate.md"
153
+ echo "rn-performance skills/react-native/performance.md"
154
+ fi
155
+
156
+ if [[ "$PLATFORM" == "gaming" || "$PLATFORM" == "all" ]]; then
157
+ echo "shader-gen skills/gaming/shader-gen.md"
158
+ echo "game-perf skills/gaming/game-perf.md"
159
+ echo "blueprint-to-cpp skills/gaming/blueprint-to-cpp.md"
160
+ echo "unity-tdd skills/gaming/unity-tdd.md"
161
+ echo "shader-review skills/unity/shader-review.md"
162
+ fi
163
+ }
164
+
165
+ # Build list of workflow source paths (always all)
166
+ # Outputs: "<name> <src_path>" lines
167
+ _workflow_lines() {
168
+ for wf in feature-ship release-cycle game-level crash-to-fix ci-setup \
169
+ new-screen new-project-setup app-launch perf-sprint mobile-memory-workflow \
170
+ appforge-workflow mobile-mcp-qa mobile-harness; do
171
+ echo "$wf workflows/$wf.md"
172
+ done
173
+ }
174
+
175
+ # ---------------------------------------------------------------------------
176
+ # Install: Claude Code
177
+ # ---------------------------------------------------------------------------
178
+ install_claude() {
179
+ mkdir -p "$CLAUDE_AGENTS_DIR"
180
+ mkdir -p "$CLAUDE_COMMANDS_DIR"
181
+
182
+ echo "→ Installing agents..."
183
+ while IFS=" " read -r name src; do
184
+ name=$(echo "$name" | xargs) # trim whitespace
185
+ src=$(echo "$src" | xargs)
186
+ _cp "$src" "$CLAUDE_AGENTS_DIR/$name.md"
187
+ _cp "$src" "$CLAUDE_COMMANDS_DIR/$name.md"
188
+ done < <(_agent_lines)
189
+
190
+ echo "→ Installing skills..."
191
+ while IFS=" " read -r slug src; do
192
+ slug=$(echo "$slug" | xargs)
193
+ src=$(echo "$src" | xargs)
194
+ _cp "$src" "$CLAUDE_COMMANDS_DIR/$slug.md"
195
+ done < <(_skill_lines)
196
+
197
+ echo "→ Installing workflows..."
198
+ while IFS=" " read -r name src; do
199
+ name=$(echo "$name" | xargs)
200
+ src=$(echo "$src" | xargs)
201
+ _cp "$src" "$CLAUDE_COMMANDS_DIR/$name.md"
202
+ done < <(_workflow_lines)
203
+
204
+ echo ""
205
+ echo "Installed to:"
206
+ echo " Agents → $CLAUDE_AGENTS_DIR"
207
+ echo " Commands → $CLAUDE_COMMANDS_DIR"
208
+ echo ""
209
+ echo " Slash commands available:"
210
+ echo ""
211
+ echo " Cross-platform agents:"
212
+ echo " /appforge /crasher /sentinel /mobile-harness /mobile-memory"
213
+ echo " /scribe /pipeline /perf /launchpad /figma"
214
+ echo " /accessibility-auditor /ci-cd-generator /release-notes-generator"
215
+ echo " /security-scanner /store-listing-writer"
216
+ echo ""
217
+ echo " Cross-platform skills:"
218
+ echo " /grill-mobile /clean-code-audit /security-audit /crash-triage"
219
+ echo " /perf-audit /store-listing /release-prep"
220
+ echo " /feature-slice /mobile-mcp-qa /mobile-memory-save /mobile-memory-graph"
221
+ echo " /mobile-memory-search"
222
+ echo " /accessibility-audit"
223
+ echo " /api-versioning /deeplink-debug"
224
+ echo " /crash-analysis /security-scan /shared-accessibility-audit"
225
+ echo ""
226
+ echo " Workflows:"
227
+ echo " /feature-ship /release-cycle /crash-to-fix /ci-setup /new-screen"
228
+ echo " /new-project-setup /app-launch /perf-sprint /game-level"
229
+ echo " /mobile-memory-workflow /appforge-workflow /mobile-mcp-qa /mobile-harness"
230
+ if [[ "$PLATFORM" == "android" || "$PLATFORM" == "all" ]]; then
231
+ echo ""
232
+ echo " Android agents:"
233
+ echo " /anr-investigation /axiom /android-crash-analyzer"
234
+ echo " /android-crash-analyzer-v2"
235
+ echo " /android-code-reviewer /compose-navigation"
236
+ echo " /compose-screen-builder /compose-ui-reviewer"
237
+ echo " /memory-leak-analyzer"
238
+ echo " Android skills:"
239
+ echo " /anr-investigation /android-tdd /compose-review /compose-migration"
240
+ echo " /kotlin-modernize /memory-leak-investigation"
241
+ echo " /android-code-review /proguard-rules"
242
+ fi
243
+ if [[ "$PLATFORM" == "ios" || "$PLATFORM" == "all" ]]; then
244
+ echo ""
245
+ echo " iOS agents:"
246
+ echo " /swift /ios-crash-analyzer /swift-reviewer"
247
+ echo " iOS skills:"
248
+ echo " /ios-tdd /swiftui-review /swift-review /swiftui-state /swift-concurrency"
249
+ echo " /data-persistence /ios-networking /ios-performance /ios-unit-testing"
250
+ echo " /xcode-warnings"
251
+ fi
252
+ if [[ "$PLATFORM" == "flutter" || "$PLATFORM" == "all" ]]; then
253
+ echo ""
254
+ echo " Flutter agents:"
255
+ echo " /dart /bloc-feature-builder /widget-generator"
256
+ echo " Flutter skills:"
257
+ echo " /flutter-tdd /flutter-review /dart-modernize /widget-extract /widget-gen"
258
+ fi
259
+ if [[ "$PLATFORM" == "rn" || "$PLATFORM" == "all" ]]; then
260
+ echo ""
261
+ echo " React Native agents:"
262
+ echo " /bridge /rn-performance-optimizer"
263
+ echo " React Native skills:"
264
+ echo " /rn-tdd /rn-review /bridge-audit /expo-optimize /new-arch-migrate"
265
+ echo " /rn-performance"
266
+ fi
267
+ if [[ "$PLATFORM" == "gaming" || "$PLATFORM" == "all" ]]; then
268
+ echo ""
269
+ echo " Gaming agents:"
270
+ echo " /forge /unreal /shader-generator /blueprint-advisor"
271
+ echo " Gaming skills:"
272
+ echo " /shader-gen /game-perf /blueprint-to-cpp /unity-tdd /shader-review"
273
+ fi
274
+ echo ""
275
+ }
276
+
277
+ # ---------------------------------------------------------------------------
278
+ # Install: Cursor (.cursor/rules/*.mdc)
279
+ # ---------------------------------------------------------------------------
280
+ install_cursor() {
281
+ local rules_dir=".cursor/rules"
282
+ mkdir -p "$rules_dir"
283
+ echo "→ Installing for Cursor ($rules_dir/)..."
284
+
285
+ while IFS=" " read -r name src; do
286
+ name=$(echo "$name" | xargs)
287
+ src=$(echo "$src" | xargs)
288
+ if [[ -f "$src" ]]; then
289
+ cp "$src" "$rules_dir/$name.mdc"
290
+ fi
291
+ done < <(_agent_lines)
292
+
293
+ while IFS=" " read -r slug src; do
294
+ slug=$(echo "$slug" | xargs)
295
+ src=$(echo "$src" | xargs)
296
+ if [[ -f "$src" ]]; then
297
+ cp "$src" "$rules_dir/$slug.mdc"
298
+ fi
299
+ done < <(_skill_lines)
300
+
301
+ while IFS=" " read -r name src; do
302
+ name=$(echo "$name" | xargs)
303
+ src=$(echo "$src" | xargs)
304
+ if [[ -f "$src" ]]; then
305
+ cp "$src" "$rules_dir/$name.mdc"
306
+ fi
307
+ done < <(_workflow_lines)
308
+
309
+ echo " $rules_dir/ created — reference agents with @axiom, @flutter-review, @crash-to-fix etc."
310
+ echo ""
311
+ }
312
+
313
+ # ---------------------------------------------------------------------------
314
+ # Install: Windsurf (.windsurfrules)
315
+ # ---------------------------------------------------------------------------
316
+ install_windsurf() {
317
+ echo "→ Installing for Windsurf (.windsurfrules)..."
318
+ {
319
+ echo "# Mobile AI Agents — AI dev team for mobile engineers"
320
+ echo ""
321
+
322
+ while IFS=" " read -r name src; do
323
+ name=$(echo "$name" | xargs)
324
+ src=$(echo "$src" | xargs)
325
+ if [[ -f "$src" ]]; then
326
+ echo "## AGENT: $name"
327
+ echo ""
328
+ cat "$src"
329
+ echo ""
330
+ echo "---"
331
+ echo ""
332
+ fi
333
+ done < <(_agent_lines)
334
+
335
+ while IFS=" " read -r slug src; do
336
+ slug=$(echo "$slug" | xargs)
337
+ src=$(echo "$src" | xargs)
338
+ if [[ -f "$src" ]]; then
339
+ echo "## SKILL: $slug"
340
+ echo ""
341
+ cat "$src"
342
+ echo ""
343
+ echo "---"
344
+ echo ""
345
+ fi
346
+ done < <(_skill_lines)
347
+
348
+ while IFS=" " read -r name src; do
349
+ name=$(echo "$name" | xargs)
350
+ src=$(echo "$src" | xargs)
351
+ if [[ -f "$src" ]]; then
352
+ echo "## WORKFLOW: $name"
353
+ echo ""
354
+ cat "$src"
355
+ echo ""
356
+ echo "---"
357
+ echo ""
358
+ fi
359
+ done < <(_workflow_lines)
360
+ } > .windsurfrules
361
+
362
+ echo " .windsurfrules created in current directory"
363
+ echo ""
364
+ }
365
+
366
+ # ---------------------------------------------------------------------------
367
+ # Install: GitHub Copilot (.github/copilot-instructions.md)
368
+ # ---------------------------------------------------------------------------
369
+ install_copilot() {
370
+ local out_dir=".github"
371
+ local out_file="$out_dir/copilot-instructions.md"
372
+ mkdir -p "$out_dir"
373
+ echo "→ Installing for GitHub Copilot ($out_file)..."
374
+ {
375
+ echo "# Mobile AI Agents — AI dev team for mobile engineers"
376
+ echo ""
377
+ echo "Use the agent and skill definitions below to guide code generation, review, and"
378
+ echo "refactoring across Android, iOS, Flutter, React Native, and gaming platforms."
379
+ echo ""
380
+
381
+ while IFS=" " read -r name src; do
382
+ name=$(echo "$name" | xargs)
383
+ src=$(echo "$src" | xargs)
384
+ if [[ -f "$src" ]]; then
385
+ echo "## AGENT: $name"
386
+ echo ""
387
+ cat "$src"
388
+ echo ""
389
+ echo "---"
390
+ echo ""
391
+ fi
392
+ done < <(_agent_lines)
393
+
394
+ while IFS=" " read -r slug src; do
395
+ slug=$(echo "$slug" | xargs)
396
+ src=$(echo "$src" | xargs)
397
+ if [[ -f "$src" ]]; then
398
+ echo "## SKILL: $slug"
399
+ echo ""
400
+ cat "$src"
401
+ echo ""
402
+ echo "---"
403
+ echo ""
404
+ fi
405
+ done < <(_skill_lines)
406
+
407
+ while IFS=" " read -r name src; do
408
+ name=$(echo "$name" | xargs)
409
+ src=$(echo "$src" | xargs)
410
+ if [[ -f "$src" ]]; then
411
+ echo "## WORKFLOW: $name"
412
+ echo ""
413
+ cat "$src"
414
+ echo ""
415
+ echo "---"
416
+ echo ""
417
+ fi
418
+ done < <(_workflow_lines)
419
+ } > "$out_file"
420
+
421
+ echo " $out_file created"
422
+ echo ""
423
+ }
424
+
425
+ # ---------------------------------------------------------------------------
426
+ # Install: Codex / OpenAI (AGENTS.md)
427
+ # ---------------------------------------------------------------------------
428
+ install_codex() {
429
+ local out_file="AGENTS.md"
430
+ echo "→ Installing for Codex/OpenAI ($out_file)..."
431
+ {
432
+ echo "# Mobile AI Agents — AI dev team for mobile engineers"
433
+ echo ""
434
+ echo "Full system prompts, skills, and workflows for Android, iOS, Flutter,"
435
+ echo "React Native, Unity, and Unreal development."
436
+ echo ""
437
+
438
+ while IFS=" " read -r name src; do
439
+ name=$(echo "$name" | xargs)
440
+ src=$(echo "$src" | xargs)
441
+ if [[ -f "$src" ]]; then
442
+ echo "## AGENT: $name"
443
+ echo ""
444
+ cat "$src"
445
+ echo ""
446
+ echo "---"
447
+ echo ""
448
+ fi
449
+ done < <(_agent_lines)
450
+
451
+ while IFS=" " read -r slug src; do
452
+ slug=$(echo "$slug" | xargs)
453
+ src=$(echo "$src" | xargs)
454
+ if [[ -f "$src" ]]; then
455
+ echo "## SKILL: $slug"
456
+ echo ""
457
+ cat "$src"
458
+ echo ""
459
+ echo "---"
460
+ echo ""
461
+ fi
462
+ done < <(_skill_lines)
463
+
464
+ while IFS=" " read -r name src; do
465
+ name=$(echo "$name" | xargs)
466
+ src=$(echo "$src" | xargs)
467
+ if [[ -f "$src" ]]; then
468
+ echo "## WORKFLOW: $name"
469
+ echo ""
470
+ cat "$src"
471
+ echo ""
472
+ echo "---"
473
+ echo ""
474
+ fi
475
+ done < <(_workflow_lines)
476
+ } > "$out_file"
477
+
478
+ echo " $out_file created in current directory"
479
+ echo ""
480
+ }
481
+
482
+ # ---------------------------------------------------------------------------
483
+ # Dispatch
484
+ # ---------------------------------------------------------------------------
485
+ if [[ "$TOOL" == "claude" || "$TOOL" == "all" ]]; then
486
+ install_claude
487
+ fi
488
+
489
+ if [[ "$TOOL" == "cursor" || "$TOOL" == "all" ]]; then
490
+ install_cursor
491
+ fi
492
+
493
+ if [[ "$TOOL" == "windsurf" || "$TOOL" == "all" ]]; then
494
+ install_windsurf
495
+ fi
496
+
497
+ if [[ "$TOOL" == "copilot" || "$TOOL" == "all" ]]; then
498
+ install_copilot
499
+ fi
500
+
501
+ if [[ "$TOOL" == "codex" || "$TOOL" == "all" ]]; then
502
+ install_codex
503
+ fi
504
+
505
+ echo "Mobile AI Agents installed. Happy shipping."
506
+ echo " → github.com/salmanashraf/mobile-agency"
507
+ echo ""
@@ -0,0 +1,79 @@
1
+ # Mobile Engineer's CLAUDE.md
2
+
3
+ 4 rules that stop AI agents shipping broken mobile apps.
4
+
5
+ Copy this into your project's CLAUDE.md to apply them automatically.
6
+
7
+ ---
8
+
9
+ ## Rule 1 — Ask the API level before assuming
10
+
11
+ Never assume minimum SDK, OS version, or API availability.
12
+
13
+ Before writing any platform API call:
14
+ - Android: "What's your minSdkVersion?" (APIs differ wildly between API 21 and 35)
15
+ - iOS: "What's your deployment target?" (async/await requires iOS 15+, SwiftUI differs by version)
16
+ - Flutter: "What's your Dart SDK constraint?" (null safety, records, sealed classes are version-gated)
17
+ - React Native: "Old Architecture or New Architecture?" (bridge vs JSI changes every native call)
18
+
19
+ **The wrong API on the wrong SDK version crashes silently in production on one device model.**
20
+
21
+ ---
22
+
23
+ ## Rule 2 — Check for existing platform components first
24
+
25
+ Before generating a custom component, check whether a native or framework equivalent already exists.
26
+
27
+ - Android: Material3 components (M3Button, TopAppBar, NavigationBar, DatePicker)
28
+ - iOS: SF Symbols for icons, SwiftUI built-in sheets, alerts, and pickers
29
+ - Flutter: Material3 / Cupertino widgets, provider package for state
30
+ - React Native: react-navigation for routing, react-native-paper for Material UI
31
+
32
+ Building custom when standard exists is always wrong:
33
+ 1. It takes 10× longer
34
+ 2. It won't handle accessibility by default
35
+ 3. It won't handle dark mode / dynamic type automatically
36
+ 4. You will maintain it forever
37
+
38
+ **Ask "does this already exist?" before generating any UI component.**
39
+
40
+ ---
41
+
42
+ ## Rule 3 — Never touch what wasn't asked
43
+
44
+ Mobile codebases are deeply interconnected.
45
+
46
+ - A ViewModel change can break a Fragment
47
+ - A widget rebuild can cascade through the entire tree
48
+ - A dependency update can introduce a transitive conflict
49
+ - A Gradle change can break the build for every module
50
+
51
+ **Before touching any file:**
52
+ 1. State the blast radius: which files/classes could this change affect?
53
+ 2. Change ONLY the specific function, class, or file that was asked about
54
+ 3. Do not refactor surrounding code, fix unrelated warnings, or "clean up while you're in there"
55
+ 4. If the fix requires touching multiple files, list them all and confirm before proceeding
56
+
57
+ **Unauthorized side effects are the #1 source of "it was working before you changed it" incidents.**
58
+
59
+ ---
60
+
61
+ ## Rule 4 — Performance is a feature, not an afterthought
62
+
63
+ Before generating any UI code, ask:
64
+
65
+ *"Will this run at 60fps on a mid-range Android device from 3 years ago?"*
66
+
67
+ If the answer is unclear, say so. Then apply these rules:
68
+
69
+ - Never generate synchronous network or disk operations on the main thread
70
+ - Never generate unbounded lists (ScrollView + .map()) — always use LazyColumn / FlatList / ListView.builder
71
+ - Never generate `GlobalScope.launch` — use `viewModelScope` or lifecycle-scoped coroutines
72
+ - Never generate `GetComponent<T>()` in Unity's `Update()` — cache in `Awake()`
73
+ - Never generate `GetAllActorsOfClass` in Unreal's `Tick()` — cache in `BeginPlay()`
74
+
75
+ **A feature that ships at 40fps is a bug. Mention performance constraints before generating, not after.**
76
+
77
+ ---
78
+
79
+ *Part of the [mobile-dev-skills](https://github.com/salmanashraf/mobile-dev-skills) toolkit.*
package/package.json ADDED
@@ -0,0 +1,57 @@
1
+ {
2
+ "name": "mobile-ai-agents",
3
+ "version": "1.0.23",
4
+ "description": "AI agents, skills, and Loop Engineering workflows for building, testing, auditing, and releasing mobile apps.",
5
+ "bin": {
6
+ "mobile-ai-agents": "cli/index.js",
7
+ "mobile-agency": "cli/index.js"
8
+ },
9
+ "files": [
10
+ "AGENTS.md",
11
+ "CLAUDE.md",
12
+ "agents/",
13
+ "cli/",
14
+ "docs/",
15
+ "install.sh",
16
+ "mobile-karpathy.md",
17
+ "skills/",
18
+ "templates/",
19
+ "workflows/"
20
+ ],
21
+ "keywords": [
22
+ "mobile",
23
+ "mobile-ai-agents",
24
+ "mobile-agents",
25
+ "mobile-development",
26
+ "android",
27
+ "ios",
28
+ "flutter",
29
+ "react-native",
30
+ "unity",
31
+ "unreal",
32
+ "claude",
33
+ "claude-code",
34
+ "ai",
35
+ "ai-agents",
36
+ "agents",
37
+ "skills",
38
+ "loop-engineering",
39
+ "mobile-harness",
40
+ "llm",
41
+ "cursor",
42
+ "windsurf"
43
+ ],
44
+ "author": "Salman Ashraf",
45
+ "license": "MIT",
46
+ "repository": {
47
+ "type": "git",
48
+ "url": "git+https://github.com/salmanashraf/mobile-agency.git"
49
+ },
50
+ "homepage": "https://github.com/salmanashraf/mobile-agency",
51
+ "bugs": {
52
+ "url": "https://github.com/salmanashraf/mobile-agency/issues"
53
+ },
54
+ "engines": {
55
+ "node": ">=18.0.0"
56
+ }
57
+ }
@@ -0,0 +1,31 @@
1
+ # Android Skills
2
+
3
+ Reusable skill prompt modules for Android (Kotlin / Jetpack Compose) code reviews and analysis. Compose with agents or use standalone in any LLM session.
4
+
5
+ ## Index
6
+
7
+ | Skill | File | When to Use |
8
+ |---|---|---|
9
+ | Android ANR Investigation | [anr-investigation.md](anr-investigation.md) | Classify ANRs, trace blocking dependencies, propose a safe fix, and define verification |
10
+ | Android Code Review | [code-review.md](code-review.md) | Quick inline review of Kotlin files — coroutines, Clean Architecture, Compose, DI |
11
+ | Android Memory Leak Investigation | [memory-leak-investigation.md](memory-leak-investigation.md) | Trace GC-root ownership, find lifecycle leaks, propose a focused fix, and verify collection |
12
+
13
+ ## Usage
14
+
15
+ Paste a skill prompt at the start of any LLM session, then paste your Kotlin code:
16
+
17
+ ```
18
+ # Quick review session
19
+ [paste skill prompt from code-review.md]
20
+
21
+ Now review this ViewModel: [paste code]
22
+ ```
23
+
24
+ ## Composable With
25
+
26
+ - [`agents/android/code-reviewer`](../../agents/android/code-reviewer/) — full structured review using these rules
27
+ - [`agents/android/compose-ui-reviewer`](../../agents/android/compose-ui-reviewer/) — Compose-specific depth
28
+
29
+ ## Contributing
30
+
31
+ New skills should cover one focused concern (e.g., "Hilt injection patterns", "Room query optimization"). Copy `templates/skill-template.md` and open a PR.