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.
- package/AGENTS.md +228 -0
- package/CLAUDE.md +236 -0
- package/LICENSE +21 -0
- package/README.md +652 -0
- package/agents/android/android-crash-analyzer/README.md +134 -0
- package/agents/android/android-crash-analyzer/agent.md +206 -0
- package/agents/android/android-crash-analyzer/example-input.md +138 -0
- package/agents/android/android-crash-analyzer/example-output.md +225 -0
- package/agents/android/anr-investigation/README.md +78 -0
- package/agents/android/anr-investigation/agent.md +117 -0
- package/agents/android/anr-investigation/example-input.md +62 -0
- package/agents/android/anr-investigation/example-output.md +103 -0
- package/agents/android/axiom/agent.md +197 -0
- package/agents/android/code-reviewer/README.md +108 -0
- package/agents/android/code-reviewer/agent.md +210 -0
- package/agents/android/code-reviewer/example-input.md +116 -0
- package/agents/android/code-reviewer/example-output.md +115 -0
- package/agents/android/compose-navigation/README.md +76 -0
- package/agents/android/compose-navigation/agent.md +121 -0
- package/agents/android/compose-navigation/example-input.md +49 -0
- package/agents/android/compose-navigation/example-output.md +325 -0
- package/agents/android/compose-screen-builder/README.md +95 -0
- package/agents/android/compose-screen-builder/agent.md +170 -0
- package/agents/android/compose-screen-builder/example-input.md +40 -0
- package/agents/android/compose-screen-builder/example-output.md +568 -0
- package/agents/android/compose-ui-reviewer/README.md +73 -0
- package/agents/android/compose-ui-reviewer/agent.md +253 -0
- package/agents/android/compose-ui-reviewer/example-input.md +84 -0
- package/agents/android/compose-ui-reviewer/example-output.md +102 -0
- package/agents/android/crash-analyzer/README.md +53 -0
- package/agents/android/crash-analyzer/agent.md +295 -0
- package/agents/android/memory-leak-analyzer/README.md +79 -0
- package/agents/android/memory-leak-analyzer/agent.md +116 -0
- package/agents/android/memory-leak-analyzer/example-input.md +78 -0
- package/agents/android/memory-leak-analyzer/example-output.md +128 -0
- package/agents/cross-platform/accessibility-auditor/README.md +47 -0
- package/agents/cross-platform/accessibility-auditor/agent.md +268 -0
- package/agents/cross-platform/accessibility-auditor/example-input.md +84 -0
- package/agents/cross-platform/accessibility-auditor/example-output.md +132 -0
- package/agents/cross-platform/appforge/agent.md +303 -0
- package/agents/cross-platform/ci-cd-generator/README.md +65 -0
- package/agents/cross-platform/ci-cd-generator/agent.md +422 -0
- package/agents/cross-platform/ci-cd-generator/example-input.md +69 -0
- package/agents/cross-platform/ci-cd-generator/example-output.md +261 -0
- package/agents/cross-platform/crasher/agent.md +221 -0
- package/agents/cross-platform/figma/agent.md +247 -0
- package/agents/cross-platform/launchpad/agent.md +330 -0
- package/agents/cross-platform/mobile-harness/agent.md +422 -0
- package/agents/cross-platform/mobile-memory/agent.md +429 -0
- package/agents/cross-platform/perf/agent.md +261 -0
- package/agents/cross-platform/pipeline/agent.md +288 -0
- package/agents/cross-platform/release-notes-generator/README.md +63 -0
- package/agents/cross-platform/release-notes-generator/agent.md +218 -0
- package/agents/cross-platform/release-notes-generator/example-input.md +71 -0
- package/agents/cross-platform/release-notes-generator/example-output.md +96 -0
- package/agents/cross-platform/scribe/agent.md +180 -0
- package/agents/cross-platform/security-scanner/README.md +61 -0
- package/agents/cross-platform/security-scanner/agent.md +287 -0
- package/agents/cross-platform/security-scanner/example-input.md +77 -0
- package/agents/cross-platform/security-scanner/example-output.md +141 -0
- package/agents/cross-platform/sentinel/agent.md +217 -0
- package/agents/cross-platform/store-listing-writer/README.md +58 -0
- package/agents/cross-platform/store-listing-writer/agent.md +380 -0
- package/agents/cross-platform/store-listing-writer/example-input.md +67 -0
- package/agents/cross-platform/store-listing-writer/example-output.md +131 -0
- package/agents/flutter/bloc-feature-builder/README.md +101 -0
- package/agents/flutter/bloc-feature-builder/agent.md +225 -0
- package/agents/flutter/bloc-feature-builder/example-input.md +47 -0
- package/agents/flutter/bloc-feature-builder/example-output.md +838 -0
- package/agents/flutter/dart/agent.md +223 -0
- package/agents/flutter/widget-generator/README.md +66 -0
- package/agents/flutter/widget-generator/agent.md +264 -0
- package/agents/flutter/widget-generator/example-input.md +71 -0
- package/agents/flutter/widget-generator/example-output.md +163 -0
- package/agents/gaming/forge/agent.md +197 -0
- package/agents/gaming/unreal/agent.md +200 -0
- package/agents/ios/crash-analyzer/README.md +69 -0
- package/agents/ios/crash-analyzer/agent.md +300 -0
- package/agents/ios/crash-analyzer/example-input.md +83 -0
- package/agents/ios/crash-analyzer/example-output.md +126 -0
- package/agents/ios/swift/agent.md +206 -0
- package/agents/ios/swift-reviewer/README.md +68 -0
- package/agents/ios/swift-reviewer/agent.md +231 -0
- package/agents/ios/swift-reviewer/example-input.md +100 -0
- package/agents/ios/swift-reviewer/example-output.md +127 -0
- package/agents/react-native/bridge/agent.md +212 -0
- package/agents/react-native/performance-optimizer/README.md +81 -0
- package/agents/react-native/performance-optimizer/agent.md +284 -0
- package/agents/react-native/performance-optimizer/example-input.md +104 -0
- package/agents/react-native/performance-optimizer/example-output.md +132 -0
- package/agents/unity/shader-generator/README.md +77 -0
- package/agents/unity/shader-generator/agent.md +270 -0
- package/agents/unity/shader-generator/example-input.md +70 -0
- package/agents/unity/shader-generator/example-output.md +160 -0
- package/agents/unreal/blueprint-advisor/README.md +71 -0
- package/agents/unreal/blueprint-advisor/agent.md +311 -0
- package/agents/unreal/blueprint-advisor/example-input.md +73 -0
- package/agents/unreal/blueprint-advisor/example-output.md +217 -0
- package/cli/index.js +1091 -0
- package/docs/agent-guide.md +138 -0
- package/docs/chatgpt-integration.md +219 -0
- package/docs/core-loops.md +143 -0
- package/docs/cursor-integration.md +143 -0
- package/docs/getting-started.md +132 -0
- package/docs/index.html +711 -0
- package/docs/installation.md +271 -0
- package/docs/mobile-harness.md +160 -0
- package/docs/mobile-mcp.md +172 -0
- package/docs/mobile-memory.md +349 -0
- package/docs/release-process.md +85 -0
- package/docs/releases/release-v1.0.0.md +165 -0
- package/docs/roadmap/github-issues.md +239 -0
- package/docs/skill-categories.md +125 -0
- package/docs/vscode-copilot-integration.md +104 -0
- package/docs/wiki.md +615 -0
- package/install.sh +507 -0
- package/mobile-karpathy.md +79 -0
- package/package.json +57 -0
- package/skills/android/README.md +31 -0
- package/skills/android/android-tdd.md +89 -0
- package/skills/android/anr-investigation.md +251 -0
- package/skills/android/code-review.md +98 -0
- package/skills/android/compose-migration.md +48 -0
- package/skills/android/compose-review.md +78 -0
- package/skills/android/kotlin-modernize.md +51 -0
- package/skills/android/memory-leak-investigation.md +256 -0
- package/skills/android/proguard-rules.md +48 -0
- package/skills/cross-platform/accessibility-audit.md +63 -0
- package/skills/cross-platform/api-versioning.md +59 -0
- package/skills/cross-platform/clean-code-audit.md +239 -0
- package/skills/cross-platform/crash-triage.md +53 -0
- package/skills/cross-platform/deeplink-debug.md +57 -0
- package/skills/cross-platform/feature-slice.md +48 -0
- package/skills/cross-platform/grill-mobile.md +64 -0
- package/skills/cross-platform/mobile-mcp-qa.md +193 -0
- package/skills/cross-platform/mobile-memory-graph.md +179 -0
- package/skills/cross-platform/mobile-memory-save.md +210 -0
- package/skills/cross-platform/mobile-memory-search.md +154 -0
- package/skills/cross-platform/perf-audit.md +61 -0
- package/skills/cross-platform/prd-verification.md +324 -0
- package/skills/cross-platform/release-prep.md +64 -0
- package/skills/cross-platform/security-audit.md +281 -0
- package/skills/cross-platform/store-listing.md +75 -0
- package/skills/flutter/README.md +32 -0
- package/skills/flutter/dart-modernize.md +47 -0
- package/skills/flutter/flutter-review.md +59 -0
- package/skills/flutter/flutter-tdd.md +73 -0
- package/skills/flutter/widget-extract.md +41 -0
- package/skills/flutter/widget-gen.md +131 -0
- package/skills/gaming/blueprint-to-cpp.md +51 -0
- package/skills/gaming/game-perf.md +54 -0
- package/skills/gaming/shader-gen.md +44 -0
- package/skills/gaming/unity-tdd.md +85 -0
- package/skills/ios/README.md +45 -0
- package/skills/ios/data-persistence.md +151 -0
- package/skills/ios/ios-tdd.md +90 -0
- package/skills/ios/networking.md +139 -0
- package/skills/ios/performance.md +122 -0
- package/skills/ios/swift-concurrency.md +57 -0
- package/skills/ios/swift-review.md +124 -0
- package/skills/ios/swiftui-review.md +49 -0
- package/skills/ios/swiftui-state.md +122 -0
- package/skills/ios/unit-testing.md +144 -0
- package/skills/ios/xcode-warnings.md +37 -0
- package/skills/react-native/README.md +42 -0
- package/skills/react-native/bridge-audit.md +104 -0
- package/skills/react-native/expo-optimize.md +55 -0
- package/skills/react-native/new-arch-migrate.md +53 -0
- package/skills/react-native/performance.md +124 -0
- package/skills/react-native/rn-review.md +53 -0
- package/skills/react-native/rn-tdd.md +76 -0
- package/skills/shared/README.md +46 -0
- package/skills/shared/accessibility-audit.md +132 -0
- package/skills/shared/crash-analysis.md +110 -0
- package/skills/shared/security-scan.md +149 -0
- package/skills/unity/README.md +31 -0
- package/skills/unity/shader-review.md +110 -0
- package/templates/agent-template.md +88 -0
- package/templates/prompt-template.md +50 -0
- package/templates/skill-template.md +64 -0
- package/templates/workflow-template.md +48 -0
- package/workflows/app-launch.md +66 -0
- package/workflows/appforge-workflow.md +232 -0
- package/workflows/ci-setup.md +77 -0
- package/workflows/crash-to-fix.md +71 -0
- package/workflows/feature-ship.md +61 -0
- package/workflows/game-level.md +72 -0
- package/workflows/mobile-harness.md +319 -0
- package/workflows/mobile-mcp-qa.md +228 -0
- package/workflows/mobile-memory-workflow.md +243 -0
- package/workflows/new-project-setup.md +93 -0
- package/workflows/new-screen.md +68 -0
- package/workflows/perf-sprint.md +78 -0
- package/workflows/release-cycle.md +71 -0
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
# Skill — /mobile-memory-save
|
|
2
|
+
|
|
3
|
+
**Platform:** Cross-Platform
|
|
4
|
+
**Slash Command:** `/mobile-memory-save`
|
|
5
|
+
**Composable With:** Mobile Memory, AXIOM, CRASHER, SWIFT, DART, BRIDGE, PERF
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Purpose
|
|
10
|
+
|
|
11
|
+
Create a compact `MOBILE_MEMORY.md` checkpoint fast. Use this when the session is getting long, a major decision was made, or you need to switch AI tools without losing progress.
|
|
12
|
+
|
|
13
|
+
This skill does not require activating the full Mobile Memory agent. It produces a smaller file with only:
|
|
14
|
+
|
|
15
|
+
- `INSTANT RESUME`
|
|
16
|
+
- `Progress`
|
|
17
|
+
- `NEXT ACTION`
|
|
18
|
+
- `Code State`
|
|
19
|
+
- Resume instructions
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Input Format
|
|
24
|
+
|
|
25
|
+
```text
|
|
26
|
+
COMMAND: /mobile-memory-save
|
|
27
|
+
PROJECT: <project name>
|
|
28
|
+
PLATFORM: <Android/iOS/Flutter/RN/Unity/Unreal>
|
|
29
|
+
CURRENT TASK:
|
|
30
|
+
<what we are doing>
|
|
31
|
+
DECISIONS:
|
|
32
|
+
<bullet list of decisions made>
|
|
33
|
+
PROGRESS:
|
|
34
|
+
<done / in progress / blocked>
|
|
35
|
+
CODE STATE:
|
|
36
|
+
<files changed, files mid-edit, important snippets if needed>
|
|
37
|
+
NEXT ACTION:
|
|
38
|
+
<one executable instruction>
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
If the user does not provide fields, infer them from the conversation and mark uncertain items as `AMBIGUOUS`.
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## Skill Prompt
|
|
46
|
+
|
|
47
|
+
```text
|
|
48
|
+
Create a compact MOBILE_MEMORY.md checkpoint from the current session.
|
|
49
|
+
|
|
50
|
+
Rules:
|
|
51
|
+
1. Capture only what a future AI needs to continue without asking the user to repeat context.
|
|
52
|
+
2. Do not summarize away decisions, blockers, or file names.
|
|
53
|
+
3. Produce exactly one NEXT ACTION. It must be executable, concrete, and free of assumed context.
|
|
54
|
+
4. Include code state for any file mid-edit or any snippet that would be lost between sessions.
|
|
55
|
+
5. Use the compact MOBILE_MEMORY.md format below. Do not add extra sections.
|
|
56
|
+
|
|
57
|
+
Compact MOBILE_MEMORY.md format:
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
# Mobile Memory
|
|
61
|
+
**Project:** [name]
|
|
62
|
+
**Platform:** [Android/iOS/Flutter/RN/Unity/Unreal]
|
|
63
|
+
**Stack:** [language, framework, key libraries]
|
|
64
|
+
**Architecture:** [pattern]
|
|
65
|
+
**Saved:** [date]
|
|
66
|
+
**Compatible:** Claude Code · Cursor · Windsurf · ChatGPT · Gemini · Copilot
|
|
67
|
+
**Token reduction:** [X× vs reading raw files]
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
## ⚡ INSTANT RESUME
|
|
72
|
+
[2-4 self-contained sentences covering project, task, decisions, progress, and next move.]
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
## 🎯 Session Context
|
|
77
|
+
|
|
78
|
+
### Current Task
|
|
79
|
+
[Exact task in one paragraph]
|
|
80
|
+
|
|
81
|
+
### Decisions Made
|
|
82
|
+
| Decision | Reason | Rejected |
|
|
83
|
+
|---|---|---|
|
|
84
|
+
|
|
85
|
+
### Progress
|
|
86
|
+
✅ Done: [list]
|
|
87
|
+
🔄 In Progress: [exact state of anything mid-edit]
|
|
88
|
+
⏭️ NEXT ACTION: [specific, executable, no assumed context]
|
|
89
|
+
🚧 Blocked: [list or "Nothing"]
|
|
90
|
+
|
|
91
|
+
### Open Questions
|
|
92
|
+
- [question 1]
|
|
93
|
+
- [question 2]
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
## 📄 Code State
|
|
98
|
+
[For any file mid-edit, paste current state here]
|
|
99
|
+
|
|
100
|
+
---
|
|
101
|
+
|
|
102
|
+
## 🔄 Resume Instructions
|
|
103
|
+
|
|
104
|
+
**Claude Code:**
|
|
105
|
+
Start new session → paste INSTANT RESUME → paste full MOBILE_MEMORY.md → say "Continue"
|
|
106
|
+
|
|
107
|
+
**Cursor/Windsurf:**
|
|
108
|
+
Save as MOBILE_MEMORY.md in project root → next prompt: "Read MOBILE_MEMORY.md and continue"
|
|
109
|
+
|
|
110
|
+
**ChatGPT/Gemini:**
|
|
111
|
+
Paste full file as first message → "Resume from NEXT ACTION"
|
|
112
|
+
|
|
113
|
+
**Same tool, new session:**
|
|
114
|
+
Paste full file → /mobile-memory restore
|
|
115
|
+
---
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
## Output Format
|
|
121
|
+
|
|
122
|
+
Return a single Markdown document named `MOBILE_MEMORY.md` using the compact format in the prompt.
|
|
123
|
+
|
|
124
|
+
---
|
|
125
|
+
|
|
126
|
+
## Example
|
|
127
|
+
|
|
128
|
+
### Input
|
|
129
|
+
|
|
130
|
+
```text
|
|
131
|
+
COMMAND: /mobile-memory-save
|
|
132
|
+
PROJECT: PayTrack
|
|
133
|
+
PLATFORM: Flutter
|
|
134
|
+
CURRENT TASK: Replace setState checkout form with Riverpod StateNotifier.
|
|
135
|
+
DECISIONS:
|
|
136
|
+
- Keep checkout validation in CheckoutController.
|
|
137
|
+
- Use AsyncValue for submit state.
|
|
138
|
+
- Keep navigation in the widget after successful submit.
|
|
139
|
+
PROGRESS:
|
|
140
|
+
- Done: controller skeleton created.
|
|
141
|
+
- In progress: widget still calls setState in _submit().
|
|
142
|
+
- Blocked: none.
|
|
143
|
+
CODE STATE:
|
|
144
|
+
lib/checkout/checkout_page.dart has old _submitting bool.
|
|
145
|
+
NEXT ACTION: Replace _submitting bool with ref.watch(checkoutControllerProvider).isLoading and call controller.submit(orderId).
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
### Output
|
|
149
|
+
|
|
150
|
+
```markdown
|
|
151
|
+
---
|
|
152
|
+
# Mobile Memory
|
|
153
|
+
**Project:** PayTrack
|
|
154
|
+
**Platform:** Flutter
|
|
155
|
+
**Stack:** Dart, Flutter, Riverpod
|
|
156
|
+
**Architecture:** Feature-first MVVM with StateNotifier controllers
|
|
157
|
+
**Saved:** 2026-06-06
|
|
158
|
+
**Compatible:** Claude Code · Cursor · Windsurf · ChatGPT · Gemini · Copilot
|
|
159
|
+
**Token reduction:** 18× vs reading raw files
|
|
160
|
+
|
|
161
|
+
---
|
|
162
|
+
|
|
163
|
+
## ⚡ INSTANT RESUME
|
|
164
|
+
PayTrack is a Flutter app refactoring checkout from local setState to a Riverpod StateNotifier. The session decided validation belongs in CheckoutController, submit state should use AsyncValue, and navigation remains in the widget after success. The controller skeleton exists, but checkout_page.dart still uses a local _submitting bool. Continue by replacing _submitting with provider state and routing submit through CheckoutController.submit(orderId).
|
|
165
|
+
|
|
166
|
+
---
|
|
167
|
+
|
|
168
|
+
## 🎯 Session Context
|
|
169
|
+
|
|
170
|
+
### Current Task
|
|
171
|
+
Replace the checkout page's local setState submit flow with a Riverpod StateNotifier while preserving existing navigation behavior.
|
|
172
|
+
|
|
173
|
+
### Decisions Made
|
|
174
|
+
| Decision | Reason | Rejected |
|
|
175
|
+
|---|---|---|
|
|
176
|
+
| Keep validation in CheckoutController | Makes submit logic testable | Validation inside widget callbacks |
|
|
177
|
+
| Use AsyncValue for submit state | Represents loading, success, and error cleanly | Separate bool and error fields |
|
|
178
|
+
| Keep navigation in widget | UI owns navigation after controller success | Controller using BuildContext |
|
|
179
|
+
|
|
180
|
+
### Progress
|
|
181
|
+
✅ Done: CheckoutController skeleton created.
|
|
182
|
+
🔄 In Progress: checkout_page.dart still owns _submitting and _submit().
|
|
183
|
+
⏭️ NEXT ACTION: Replace _submitting bool in lib/checkout/checkout_page.dart with ref.watch(checkoutControllerProvider).isLoading and call ref.read(checkoutControllerProvider.notifier).submit(orderId) from the submit button.
|
|
184
|
+
🚧 Blocked: Nothing
|
|
185
|
+
|
|
186
|
+
### Open Questions
|
|
187
|
+
- Should submit errors render inline or as a SnackBar?
|
|
188
|
+
|
|
189
|
+
---
|
|
190
|
+
|
|
191
|
+
## 📄 Code State
|
|
192
|
+
lib/checkout/checkout_page.dart still has a private `_submitting` bool and `_submit()` method that call setState before and after the API call.
|
|
193
|
+
|
|
194
|
+
---
|
|
195
|
+
|
|
196
|
+
## 🔄 Resume Instructions
|
|
197
|
+
|
|
198
|
+
**Claude Code:**
|
|
199
|
+
Start new session → paste INSTANT RESUME → paste full MOBILE_MEMORY.md → say "Continue"
|
|
200
|
+
|
|
201
|
+
**Cursor/Windsurf:**
|
|
202
|
+
Save as MOBILE_MEMORY.md in project root → next prompt: "Read MOBILE_MEMORY.md and continue"
|
|
203
|
+
|
|
204
|
+
**ChatGPT/Gemini:**
|
|
205
|
+
Paste full file as first message → "Resume from NEXT ACTION"
|
|
206
|
+
|
|
207
|
+
**Same tool, new session:**
|
|
208
|
+
Paste full file → /mobile-memory restore
|
|
209
|
+
---
|
|
210
|
+
```
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
# Skill — /mobile-memory-search
|
|
2
|
+
|
|
3
|
+
**Platform:** Cross-Platform
|
|
4
|
+
**Slash Command:** `/mobile-memory-search`
|
|
5
|
+
**Composable With:** Mobile Memory, MOBILE-HARNESS, APPFORGE, `/mobile-memory-save`, `/mobile-memory-graph`
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Purpose
|
|
10
|
+
|
|
11
|
+
Search and inject local Mobile AI Agents memory captured in `.mobile-ai-agents/memory/` so an AI session can resume with the right project context without reading every file or asking the user to repeat decisions.
|
|
12
|
+
|
|
13
|
+
Use this when a project has been worked on across multiple days, tools, agents, or tasks.
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## Input Format
|
|
18
|
+
|
|
19
|
+
```text
|
|
20
|
+
COMMAND: /mobile-memory-search
|
|
21
|
+
QUERY:
|
|
22
|
+
<decision, feature, bug, file name, agent finding, release step, or task>
|
|
23
|
+
MEMORY_SOURCE:
|
|
24
|
+
<optional output from `mobile-ai-agents memory search`, `timeline`, or `inject`>
|
|
25
|
+
NEXT_STEP:
|
|
26
|
+
<optional current task>
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## Skill Prompt
|
|
32
|
+
|
|
33
|
+
```text
|
|
34
|
+
Use local Mobile AI Agents memory to restore relevant context.
|
|
35
|
+
|
|
36
|
+
If the user has not provided memory output, ask them to run one of:
|
|
37
|
+
|
|
38
|
+
- `npx mobile-ai-agents memory inject`
|
|
39
|
+
- `npx mobile-ai-agents memory search <query>`
|
|
40
|
+
- `npx mobile-ai-agents memory timeline --limit 20`
|
|
41
|
+
|
|
42
|
+
When memory output is provided:
|
|
43
|
+
|
|
44
|
+
1. Identify the project, platform, active feature, and most recent next action.
|
|
45
|
+
2. Pull out decisions, rejected alternatives, unresolved findings, files touched, and blockers.
|
|
46
|
+
3. Separate confirmed memory from assumptions.
|
|
47
|
+
4. Recommend exact files to read before editing.
|
|
48
|
+
5. Continue from the latest NEXT ACTION if it is clear.
|
|
49
|
+
|
|
50
|
+
Output exactly:
|
|
51
|
+
|
|
52
|
+
MOBILE MEMORY SEARCH RESULT
|
|
53
|
+
=====================
|
|
54
|
+
Query:
|
|
55
|
+
Project:
|
|
56
|
+
Platform:
|
|
57
|
+
|
|
58
|
+
Relevant Memory:
|
|
59
|
+
| Time | Type | Title | Why It Matters |
|
|
60
|
+
|---|---|---|---|
|
|
61
|
+
|
|
62
|
+
Decisions:
|
|
63
|
+
- <decision or "None found">
|
|
64
|
+
|
|
65
|
+
Open Risks:
|
|
66
|
+
- <risk or "None found">
|
|
67
|
+
|
|
68
|
+
Files To Read Next:
|
|
69
|
+
- <file or "Unknown">
|
|
70
|
+
|
|
71
|
+
Confirmed Context:
|
|
72
|
+
- <fact>
|
|
73
|
+
|
|
74
|
+
Assumptions:
|
|
75
|
+
- <assumption or "None">
|
|
76
|
+
|
|
77
|
+
NEXT ACTION:
|
|
78
|
+
1. <single executable action>
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
## CLI Workflow
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
npx mobile-ai-agents memory init
|
|
87
|
+
npx mobile-ai-agents memory capture --type decision --title "Use Room" --text "Persist habits locally with Room."
|
|
88
|
+
npx mobile-ai-agents memory capture --type next-action --text "Implement HabitDao and restart persistence test."
|
|
89
|
+
npx mobile-ai-agents memory search persistence
|
|
90
|
+
npx mobile-ai-agents memory inject
|
|
91
|
+
npx mobile-ai-agents memory checkpoint
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
## Example
|
|
97
|
+
|
|
98
|
+
### Input
|
|
99
|
+
|
|
100
|
+
```text
|
|
101
|
+
COMMAND: /mobile-memory-search
|
|
102
|
+
QUERY: persistence
|
|
103
|
+
MEMORY_SOURCE:
|
|
104
|
+
Project: Habit Pulse
|
|
105
|
+
Platform: Android
|
|
106
|
+
Events: 3
|
|
107
|
+
|
|
108
|
+
## Recent Memory
|
|
109
|
+
- 2026-07-09T04:00:00Z · decision · Use Room — Persist habits locally with Room instead of SharedPreferences.
|
|
110
|
+
- 2026-07-09T04:03:00Z · finding · PRD verification failed — Restart persistence is missing.
|
|
111
|
+
- 2026-07-09T04:05:00Z · next-action · Implement HabitDao — Implement HabitDao and restart persistence test.
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
### Output
|
|
115
|
+
|
|
116
|
+
```text
|
|
117
|
+
MOBILE MEMORY SEARCH RESULT
|
|
118
|
+
=====================
|
|
119
|
+
Query: persistence
|
|
120
|
+
Project: Habit Pulse
|
|
121
|
+
Platform: Android
|
|
122
|
+
|
|
123
|
+
Relevant Memory:
|
|
124
|
+
| Time | Type | Title | Why It Matters |
|
|
125
|
+
|---|---|---|---|
|
|
126
|
+
| 2026-07-09T04:00:00Z | decision | Use Room | Persistence approach chosen |
|
|
127
|
+
| 2026-07-09T04:03:00Z | finding | PRD verification failed | Restart behavior missing |
|
|
128
|
+
| 2026-07-09T04:05:00Z | next-action | Implement HabitDao | Current task |
|
|
129
|
+
|
|
130
|
+
Decisions:
|
|
131
|
+
- Use Room instead of SharedPreferences for habit persistence.
|
|
132
|
+
|
|
133
|
+
Open Risks:
|
|
134
|
+
- Restart persistence has not passed PRD verification.
|
|
135
|
+
|
|
136
|
+
Files To Read Next:
|
|
137
|
+
- Habit entity, DAO, database, repository, and current home screen state files.
|
|
138
|
+
|
|
139
|
+
Confirmed Context:
|
|
140
|
+
- The next implementation step is HabitDao plus restart persistence test.
|
|
141
|
+
|
|
142
|
+
Assumptions:
|
|
143
|
+
- Exact file paths were not present in memory output.
|
|
144
|
+
|
|
145
|
+
NEXT ACTION:
|
|
146
|
+
1. Read persistence-related files, then implement HabitDao and a restart persistence test.
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
---
|
|
150
|
+
|
|
151
|
+
## Notes
|
|
152
|
+
|
|
153
|
+
- This skill searches local memory output; it does not replace reading source files before editing.
|
|
154
|
+
- Keep secrets out of memory captures. Wrap sensitive text in `<private>...</private>` before capture.
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
# Skill — /perf-audit
|
|
2
|
+
|
|
3
|
+
**Platform:** Cross-Platform
|
|
4
|
+
**Slash Command:** `/perf-audit`
|
|
5
|
+
**Composable With:** agents/cross-platform/perf/agent.md
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Purpose
|
|
10
|
+
|
|
11
|
+
Systematic slow-screen profiling checklist for any mobile platform. Run this before guessing at optimizations.
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## Skill Prompt
|
|
16
|
+
|
|
17
|
+
```
|
|
18
|
+
Run a systematic performance audit on the described slow screen:
|
|
19
|
+
|
|
20
|
+
STEP 1 — BASELINE MEASUREMENT (before touching code)
|
|
21
|
+
Tell me the current measurements (or ask the developer to measure):
|
|
22
|
+
- Android: record with Android GPU Inspector or Systrace. Look for frames > 16ms.
|
|
23
|
+
- iOS: Instruments → Time Profiler. Look for main thread > 8ms between frames.
|
|
24
|
+
- Flutter: DevTools → Performance tab. Flag any frame > 16ms in the flame chart.
|
|
25
|
+
- RN: Flipper → Perf Monitor or React DevTools Profiler.
|
|
26
|
+
Without a baseline, we cannot know if our fix worked.
|
|
27
|
+
|
|
28
|
+
STEP 2 — MAIN THREAD ANALYSIS
|
|
29
|
+
Is the main/UI thread being blocked?
|
|
30
|
+
Check for:
|
|
31
|
+
- Synchronous disk reads (SharedPreferences.getX(), NSUserDefaults, MMKV)
|
|
32
|
+
- JSON parsing of large payloads on the UI thread
|
|
33
|
+
- Image decoding without background threading
|
|
34
|
+
- Database queries (Room, CoreData, SQLite) without async/await
|
|
35
|
+
- Any operation > 1ms on the thread that drives the UI
|
|
36
|
+
|
|
37
|
+
STEP 3 — RENDERING ANALYSIS (platform-specific)
|
|
38
|
+
Android/Compose: Layout Inspector → check for overdraw, deep view trees.
|
|
39
|
+
iOS/SwiftUI: Instruments → Core Animation. Look for offscreen renders.
|
|
40
|
+
Flutter: DevTools → Widget Inspector. Check rebuild count per frame.
|
|
41
|
+
React Native: Check JS thread usage in Flipper. Flag non-native animations.
|
|
42
|
+
|
|
43
|
+
STEP 4 — MEMORY ANALYSIS
|
|
44
|
+
Is GC/ARC pressure causing jank?
|
|
45
|
+
- Profile allocation rate during the slow interaction.
|
|
46
|
+
- Identify allocations per frame in hot path.
|
|
47
|
+
- Identify retained objects (memory leaks) causing eventual OOM.
|
|
48
|
+
|
|
49
|
+
STEP 5 — LIST PERFORMANCE (if applicable)
|
|
50
|
+
- Is a non-virtualized list rendering all items?
|
|
51
|
+
- Are list items creating expensive objects (network requests, DB calls) per cell?
|
|
52
|
+
- Is the list re-rendering all cells on parent state change?
|
|
53
|
+
|
|
54
|
+
STEP 6 — PRIORITIZED FIX LIST
|
|
55
|
+
For each bottleneck found:
|
|
56
|
+
1. What is it? (be specific — function name, line)
|
|
57
|
+
2. Estimated time saved (ms per frame)
|
|
58
|
+
3. Concrete fix with code
|
|
59
|
+
|
|
60
|
+
Output measurements first, then fixes.
|
|
61
|
+
```
|