agy-superpowers 5.2.2 → 5.2.4

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 (231) hide show
  1. package/README.md +47 -150
  2. package/package.json +1 -1
  3. package/template/agent/rules/CLAUDE.md +80 -0
  4. package/template/agent/rules/code-styles.md +31 -32
  5. package/template/agent/rules/debug-confirmation-policy.md +2 -0
  6. package/template/agent/rules/file-length-policy.md +2 -0
  7. package/template/agent/rules/git-policy.md +7 -0
  8. package/template/agent/rules/language-matching.md +2 -0
  9. package/template/agent/rules/scratch-scripts.md +39 -0
  10. package/template/agent/rules/superpowers.md +8 -51
  11. package/template/agent/skills/executing-plans/SKILL.md +17 -0
  12. package/template/agent/skills/systematic-debugging/SKILL.md +16 -0
  13. package/template/agent/skills/test-driven-development/SKILL.md +16 -0
  14. package/template/agent/skills/verification-before-completion/SKILL.md +22 -0
  15. package/template/agent/skills/writing-plans/SKILL.md +16 -0
  16. package/template/agent/skills/ai-integrated-product/SKILL.md +0 -57
  17. package/template/agent/skills/analytics-setup/SKILL.md +0 -51
  18. package/template/agent/skills/api-design/SKILL.md +0 -193
  19. package/template/agent/skills/app-store-optimizer/SKILL.md +0 -127
  20. package/template/agent/skills/auth-and-identity/SKILL.md +0 -167
  21. package/template/agent/skills/backend-developer/SKILL.md +0 -148
  22. package/template/agent/skills/bootstrapper-finance/SKILL.md +0 -55
  23. package/template/agent/skills/chrome-extension-developer/SKILL.md +0 -53
  24. package/template/agent/skills/community-manager/SKILL.md +0 -115
  25. package/template/agent/skills/content-marketer/SKILL.md +0 -111
  26. package/template/agent/skills/conversion-optimizer/SKILL.md +0 -142
  27. package/template/agent/skills/cto-architect/SKILL.md +0 -133
  28. package/template/agent/skills/customer-success-manager/SKILL.md +0 -126
  29. package/template/agent/skills/data-analyst/SKILL.md +0 -147
  30. package/template/agent/skills/devops-engineer/SKILL.md +0 -117
  31. package/template/agent/skills/email-infrastructure/SKILL.md +0 -164
  32. package/template/agent/skills/game-design/SKILL.md +0 -194
  33. package/template/agent/skills/game-developer/SKILL.md +0 -175
  34. package/template/agent/skills/growth-hacker/SKILL.md +0 -122
  35. package/template/agent/skills/idea-validator/SKILL.md +0 -55
  36. package/template/agent/skills/indie-legal/SKILL.md +0 -53
  37. package/template/agent/skills/influencer-marketer/SKILL.md +0 -141
  38. package/template/agent/skills/landing-page-builder/SKILL.md +0 -59
  39. package/template/agent/skills/launch-strategist/SKILL.md +0 -62
  40. package/template/agent/skills/market-researcher/SKILL.md +0 -53
  41. package/template/agent/skills/micro-saas-builder/SKILL.md +0 -56
  42. package/template/agent/skills/monetization-strategist/SKILL.md +0 -119
  43. package/template/agent/skills/paid-acquisition-specialist/SKILL.md +0 -119
  44. package/template/agent/skills/pricing-psychologist/SKILL.md +0 -58
  45. package/template/agent/skills/real-time-features/SKILL.md +0 -194
  46. package/template/agent/skills/retention-specialist/SKILL.md +0 -123
  47. package/template/agent/skills/rust-developer/SKILL.md +0 -281
  48. package/template/agent/skills/rust-developer/references/rust-rules/_sections.md +0 -231
  49. package/template/agent/skills/rust-developer/references/rust-rules/anti-clone-excessive.md +0 -124
  50. package/template/agent/skills/rust-developer/references/rust-rules/anti-collect-intermediate.md +0 -131
  51. package/template/agent/skills/rust-developer/references/rust-rules/anti-empty-catch.md +0 -132
  52. package/template/agent/skills/rust-developer/references/rust-rules/anti-expect-lazy.md +0 -95
  53. package/template/agent/skills/rust-developer/references/rust-rules/anti-format-hot-path.md +0 -141
  54. package/template/agent/skills/rust-developer/references/rust-rules/anti-index-over-iter.md +0 -125
  55. package/template/agent/skills/rust-developer/references/rust-rules/anti-lock-across-await.md +0 -127
  56. package/template/agent/skills/rust-developer/references/rust-rules/anti-over-abstraction.md +0 -120
  57. package/template/agent/skills/rust-developer/references/rust-rules/anti-panic-expected.md +0 -131
  58. package/template/agent/skills/rust-developer/references/rust-rules/anti-premature-optimize.md +0 -156
  59. package/template/agent/skills/rust-developer/references/rust-rules/anti-string-for-str.md +0 -122
  60. package/template/agent/skills/rust-developer/references/rust-rules/anti-stringly-typed.md +0 -167
  61. package/template/agent/skills/rust-developer/references/rust-rules/anti-type-erasure.md +0 -134
  62. package/template/agent/skills/rust-developer/references/rust-rules/anti-unwrap-abuse.md +0 -143
  63. package/template/agent/skills/rust-developer/references/rust-rules/anti-vec-for-slice.md +0 -121
  64. package/template/agent/skills/rust-developer/references/rust-rules/api-builder-must-use.md +0 -143
  65. package/template/agent/skills/rust-developer/references/rust-rules/api-builder-pattern.md +0 -187
  66. package/template/agent/skills/rust-developer/references/rust-rules/api-common-traits.md +0 -165
  67. package/template/agent/skills/rust-developer/references/rust-rules/api-default-impl.md +0 -177
  68. package/template/agent/skills/rust-developer/references/rust-rules/api-extension-trait.md +0 -163
  69. package/template/agent/skills/rust-developer/references/rust-rules/api-from-not-into.md +0 -146
  70. package/template/agent/skills/rust-developer/references/rust-rules/api-impl-asref.md +0 -142
  71. package/template/agent/skills/rust-developer/references/rust-rules/api-impl-into.md +0 -160
  72. package/template/agent/skills/rust-developer/references/rust-rules/api-must-use.md +0 -125
  73. package/template/agent/skills/rust-developer/references/rust-rules/api-newtype-safety.md +0 -162
  74. package/template/agent/skills/rust-developer/references/rust-rules/api-non-exhaustive.md +0 -177
  75. package/template/agent/skills/rust-developer/references/rust-rules/api-parse-dont-validate.md +0 -184
  76. package/template/agent/skills/rust-developer/references/rust-rules/api-sealed-trait.md +0 -168
  77. package/template/agent/skills/rust-developer/references/rust-rules/api-serde-optional.md +0 -182
  78. package/template/agent/skills/rust-developer/references/rust-rules/api-typestate.md +0 -199
  79. package/template/agent/skills/rust-developer/references/rust-rules/async-bounded-channel.md +0 -175
  80. package/template/agent/skills/rust-developer/references/rust-rules/async-broadcast-pubsub.md +0 -185
  81. package/template/agent/skills/rust-developer/references/rust-rules/async-cancellation-token.md +0 -203
  82. package/template/agent/skills/rust-developer/references/rust-rules/async-clone-before-await.md +0 -171
  83. package/template/agent/skills/rust-developer/references/rust-rules/async-join-parallel.md +0 -158
  84. package/template/agent/skills/rust-developer/references/rust-rules/async-joinset-structured.md +0 -195
  85. package/template/agent/skills/rust-developer/references/rust-rules/async-mpsc-queue.md +0 -171
  86. package/template/agent/skills/rust-developer/references/rust-rules/async-no-lock-await.md +0 -156
  87. package/template/agent/skills/rust-developer/references/rust-rules/async-oneshot-response.md +0 -191
  88. package/template/agent/skills/rust-developer/references/rust-rules/async-select-racing.md +0 -198
  89. package/template/agent/skills/rust-developer/references/rust-rules/async-spawn-blocking.md +0 -154
  90. package/template/agent/skills/rust-developer/references/rust-rules/async-tokio-fs.md +0 -167
  91. package/template/agent/skills/rust-developer/references/rust-rules/async-tokio-runtime.md +0 -169
  92. package/template/agent/skills/rust-developer/references/rust-rules/async-try-join.md +0 -172
  93. package/template/agent/skills/rust-developer/references/rust-rules/async-watch-latest.md +0 -189
  94. package/template/agent/skills/rust-developer/references/rust-rules/doc-all-public.md +0 -113
  95. package/template/agent/skills/rust-developer/references/rust-rules/doc-cargo-metadata.md +0 -147
  96. package/template/agent/skills/rust-developer/references/rust-rules/doc-errors-section.md +0 -122
  97. package/template/agent/skills/rust-developer/references/rust-rules/doc-examples-section.md +0 -161
  98. package/template/agent/skills/rust-developer/references/rust-rules/doc-hidden-setup.md +0 -149
  99. package/template/agent/skills/rust-developer/references/rust-rules/doc-intra-links.md +0 -138
  100. package/template/agent/skills/rust-developer/references/rust-rules/doc-link-types.md +0 -169
  101. package/template/agent/skills/rust-developer/references/rust-rules/doc-module-inner.md +0 -116
  102. package/template/agent/skills/rust-developer/references/rust-rules/doc-panics-section.md +0 -128
  103. package/template/agent/skills/rust-developer/references/rust-rules/doc-question-mark.md +0 -136
  104. package/template/agent/skills/rust-developer/references/rust-rules/doc-safety-section.md +0 -131
  105. package/template/agent/skills/rust-developer/references/rust-rules/err-anyhow-app.md +0 -179
  106. package/template/agent/skills/rust-developer/references/rust-rules/err-context-chain.md +0 -144
  107. package/template/agent/skills/rust-developer/references/rust-rules/err-custom-type.md +0 -152
  108. package/template/agent/skills/rust-developer/references/rust-rules/err-doc-errors.md +0 -145
  109. package/template/agent/skills/rust-developer/references/rust-rules/err-expect-bugs-only.md +0 -133
  110. package/template/agent/skills/rust-developer/references/rust-rules/err-from-impl.md +0 -152
  111. package/template/agent/skills/rust-developer/references/rust-rules/err-lowercase-msg.md +0 -124
  112. package/template/agent/skills/rust-developer/references/rust-rules/err-no-unwrap-prod.md +0 -115
  113. package/template/agent/skills/rust-developer/references/rust-rules/err-question-mark.md +0 -151
  114. package/template/agent/skills/rust-developer/references/rust-rules/err-result-over-panic.md +0 -130
  115. package/template/agent/skills/rust-developer/references/rust-rules/err-source-chain.md +0 -155
  116. package/template/agent/skills/rust-developer/references/rust-rules/err-thiserror-lib.md +0 -171
  117. package/template/agent/skills/rust-developer/references/rust-rules/lint-cargo-metadata.md +0 -138
  118. package/template/agent/skills/rust-developer/references/rust-rules/lint-deny-correctness.md +0 -107
  119. package/template/agent/skills/rust-developer/references/rust-rules/lint-missing-docs.md +0 -154
  120. package/template/agent/skills/rust-developer/references/rust-rules/lint-pedantic-selective.md +0 -118
  121. package/template/agent/skills/rust-developer/references/rust-rules/lint-rustfmt-check.md +0 -157
  122. package/template/agent/skills/rust-developer/references/rust-rules/lint-unsafe-doc.md +0 -133
  123. package/template/agent/skills/rust-developer/references/rust-rules/lint-warn-complexity.md +0 -131
  124. package/template/agent/skills/rust-developer/references/rust-rules/lint-warn-perf.md +0 -136
  125. package/template/agent/skills/rust-developer/references/rust-rules/lint-warn-style.md +0 -135
  126. package/template/agent/skills/rust-developer/references/rust-rules/lint-warn-suspicious.md +0 -122
  127. package/template/agent/skills/rust-developer/references/rust-rules/lint-workspace-lints.md +0 -172
  128. package/template/agent/skills/rust-developer/references/rust-rules/mem-arena-allocator.md +0 -168
  129. package/template/agent/skills/rust-developer/references/rust-rules/mem-arrayvec.md +0 -142
  130. package/template/agent/skills/rust-developer/references/rust-rules/mem-assert-type-size.md +0 -168
  131. package/template/agent/skills/rust-developer/references/rust-rules/mem-avoid-format.md +0 -147
  132. package/template/agent/skills/rust-developer/references/rust-rules/mem-box-large-variant.md +0 -158
  133. package/template/agent/skills/rust-developer/references/rust-rules/mem-boxed-slice.md +0 -139
  134. package/template/agent/skills/rust-developer/references/rust-rules/mem-clone-from.md +0 -147
  135. package/template/agent/skills/rust-developer/references/rust-rules/mem-compact-string.md +0 -149
  136. package/template/agent/skills/rust-developer/references/rust-rules/mem-reuse-collections.md +0 -174
  137. package/template/agent/skills/rust-developer/references/rust-rules/mem-smaller-integers.md +0 -159
  138. package/template/agent/skills/rust-developer/references/rust-rules/mem-smallvec.md +0 -138
  139. package/template/agent/skills/rust-developer/references/rust-rules/mem-thinvec.md +0 -142
  140. package/template/agent/skills/rust-developer/references/rust-rules/mem-with-capacity.md +0 -156
  141. package/template/agent/skills/rust-developer/references/rust-rules/mem-write-over-format.md +0 -172
  142. package/template/agent/skills/rust-developer/references/rust-rules/mem-zero-copy.md +0 -164
  143. package/template/agent/skills/rust-developer/references/rust-rules/name-acronym-word.md +0 -99
  144. package/template/agent/skills/rust-developer/references/rust-rules/name-as-free.md +0 -104
  145. package/template/agent/skills/rust-developer/references/rust-rules/name-consts-screaming.md +0 -94
  146. package/template/agent/skills/rust-developer/references/rust-rules/name-crate-no-rs.md +0 -78
  147. package/template/agent/skills/rust-developer/references/rust-rules/name-funcs-snake.md +0 -76
  148. package/template/agent/skills/rust-developer/references/rust-rules/name-into-ownership.md +0 -123
  149. package/template/agent/skills/rust-developer/references/rust-rules/name-is-has-bool.md +0 -127
  150. package/template/agent/skills/rust-developer/references/rust-rules/name-iter-convention.md +0 -129
  151. package/template/agent/skills/rust-developer/references/rust-rules/name-iter-method.md +0 -131
  152. package/template/agent/skills/rust-developer/references/rust-rules/name-iter-type-match.md +0 -142
  153. package/template/agent/skills/rust-developer/references/rust-rules/name-lifetime-short.md +0 -86
  154. package/template/agent/skills/rust-developer/references/rust-rules/name-no-get-prefix.md +0 -154
  155. package/template/agent/skills/rust-developer/references/rust-rules/name-to-expensive.md +0 -118
  156. package/template/agent/skills/rust-developer/references/rust-rules/name-type-param-single.md +0 -92
  157. package/template/agent/skills/rust-developer/references/rust-rules/name-types-camel.md +0 -65
  158. package/template/agent/skills/rust-developer/references/rust-rules/name-variants-camel.md +0 -101
  159. package/template/agent/skills/rust-developer/references/rust-rules/opt-bounds-check.md +0 -161
  160. package/template/agent/skills/rust-developer/references/rust-rules/opt-cache-friendly.md +0 -187
  161. package/template/agent/skills/rust-developer/references/rust-rules/opt-codegen-units.md +0 -142
  162. package/template/agent/skills/rust-developer/references/rust-rules/opt-cold-unlikely.md +0 -152
  163. package/template/agent/skills/rust-developer/references/rust-rules/opt-inline-always-rare.md +0 -141
  164. package/template/agent/skills/rust-developer/references/rust-rules/opt-inline-never-cold.md +0 -181
  165. package/template/agent/skills/rust-developer/references/rust-rules/opt-inline-small.md +0 -160
  166. package/template/agent/skills/rust-developer/references/rust-rules/opt-likely-hint.md +0 -171
  167. package/template/agent/skills/rust-developer/references/rust-rules/opt-lto-release.md +0 -130
  168. package/template/agent/skills/rust-developer/references/rust-rules/opt-pgo-profile.md +0 -167
  169. package/template/agent/skills/rust-developer/references/rust-rules/opt-simd-portable.md +0 -144
  170. package/template/agent/skills/rust-developer/references/rust-rules/opt-target-cpu.md +0 -154
  171. package/template/agent/skills/rust-developer/references/rust-rules/own-arc-shared.md +0 -141
  172. package/template/agent/skills/rust-developer/references/rust-rules/own-borrow-over-clone.md +0 -95
  173. package/template/agent/skills/rust-developer/references/rust-rules/own-clone-explicit.md +0 -135
  174. package/template/agent/skills/rust-developer/references/rust-rules/own-copy-small.md +0 -124
  175. package/template/agent/skills/rust-developer/references/rust-rules/own-cow-conditional.md +0 -135
  176. package/template/agent/skills/rust-developer/references/rust-rules/own-lifetime-elision.md +0 -134
  177. package/template/agent/skills/rust-developer/references/rust-rules/own-move-large.md +0 -134
  178. package/template/agent/skills/rust-developer/references/rust-rules/own-mutex-interior.md +0 -105
  179. package/template/agent/skills/rust-developer/references/rust-rules/own-rc-single-thread.md +0 -65
  180. package/template/agent/skills/rust-developer/references/rust-rules/own-refcell-interior.md +0 -97
  181. package/template/agent/skills/rust-developer/references/rust-rules/own-rwlock-readers.md +0 -122
  182. package/template/agent/skills/rust-developer/references/rust-rules/own-slice-over-vec.md +0 -119
  183. package/template/agent/skills/rust-developer/references/rust-rules/perf-black-box-bench.md +0 -153
  184. package/template/agent/skills/rust-developer/references/rust-rules/perf-chain-avoid.md +0 -136
  185. package/template/agent/skills/rust-developer/references/rust-rules/perf-collect-into.md +0 -133
  186. package/template/agent/skills/rust-developer/references/rust-rules/perf-collect-once.md +0 -120
  187. package/template/agent/skills/rust-developer/references/rust-rules/perf-drain-reuse.md +0 -137
  188. package/template/agent/skills/rust-developer/references/rust-rules/perf-entry-api.md +0 -134
  189. package/template/agent/skills/rust-developer/references/rust-rules/perf-extend-batch.md +0 -150
  190. package/template/agent/skills/rust-developer/references/rust-rules/perf-iter-lazy.md +0 -123
  191. package/template/agent/skills/rust-developer/references/rust-rules/perf-iter-over-index.md +0 -113
  192. package/template/agent/skills/rust-developer/references/rust-rules/perf-profile-first.md +0 -175
  193. package/template/agent/skills/rust-developer/references/rust-rules/perf-release-profile.md +0 -149
  194. package/template/agent/skills/rust-developer/references/rust-rules/proj-bin-dir.md +0 -142
  195. package/template/agent/skills/rust-developer/references/rust-rules/proj-flat-small.md +0 -133
  196. package/template/agent/skills/rust-developer/references/rust-rules/proj-lib-main-split.md +0 -148
  197. package/template/agent/skills/rust-developer/references/rust-rules/proj-mod-by-feature.md +0 -130
  198. package/template/agent/skills/rust-developer/references/rust-rules/proj-mod-rs-dir.md +0 -120
  199. package/template/agent/skills/rust-developer/references/rust-rules/proj-prelude-module.md +0 -155
  200. package/template/agent/skills/rust-developer/references/rust-rules/proj-pub-crate-internal.md +0 -139
  201. package/template/agent/skills/rust-developer/references/rust-rules/proj-pub-super-parent.md +0 -135
  202. package/template/agent/skills/rust-developer/references/rust-rules/proj-pub-use-reexport.md +0 -162
  203. package/template/agent/skills/rust-developer/references/rust-rules/proj-workspace-deps.md +0 -186
  204. package/template/agent/skills/rust-developer/references/rust-rules/proj-workspace-large.md +0 -162
  205. package/template/agent/skills/rust-developer/references/rust-rules/test-arrange-act-assert.md +0 -160
  206. package/template/agent/skills/rust-developer/references/rust-rules/test-cfg-test-module.md +0 -151
  207. package/template/agent/skills/rust-developer/references/rust-rules/test-criterion-bench.md +0 -171
  208. package/template/agent/skills/rust-developer/references/rust-rules/test-descriptive-names.md +0 -142
  209. package/template/agent/skills/rust-developer/references/rust-rules/test-doctest-examples.md +0 -168
  210. package/template/agent/skills/rust-developer/references/rust-rules/test-fixture-raii.md +0 -151
  211. package/template/agent/skills/rust-developer/references/rust-rules/test-integration-dir.md +0 -144
  212. package/template/agent/skills/rust-developer/references/rust-rules/test-mock-traits.md +0 -189
  213. package/template/agent/skills/rust-developer/references/rust-rules/test-mockall-mocking.md +0 -226
  214. package/template/agent/skills/rust-developer/references/rust-rules/test-proptest-properties.md +0 -161
  215. package/template/agent/skills/rust-developer/references/rust-rules/test-should-panic.md +0 -130
  216. package/template/agent/skills/rust-developer/references/rust-rules/test-tokio-async.md +0 -154
  217. package/template/agent/skills/rust-developer/references/rust-rules/test-use-super.md +0 -127
  218. package/template/agent/skills/rust-developer/references/rust-rules/type-enum-states.md +0 -154
  219. package/template/agent/skills/rust-developer/references/rust-rules/type-generic-bounds.md +0 -142
  220. package/template/agent/skills/rust-developer/references/rust-rules/type-never-diverge.md +0 -146
  221. package/template/agent/skills/rust-developer/references/rust-rules/type-newtype-ids.md +0 -160
  222. package/template/agent/skills/rust-developer/references/rust-rules/type-newtype-validated.md +0 -159
  223. package/template/agent/skills/rust-developer/references/rust-rules/type-no-stringly.md +0 -144
  224. package/template/agent/skills/rust-developer/references/rust-rules/type-option-nullable.md +0 -137
  225. package/template/agent/skills/rust-developer/references/rust-rules/type-phantom-marker.md +0 -188
  226. package/template/agent/skills/rust-developer/references/rust-rules/type-repr-transparent.md +0 -143
  227. package/template/agent/skills/rust-developer/references/rust-rules/type-result-fallible.md +0 -131
  228. package/template/agent/skills/saas-architect/SKILL.md +0 -139
  229. package/template/agent/skills/security-engineer/SKILL.md +0 -133
  230. package/template/agent/skills/seo-specialist/SKILL.md +0 -130
  231. package/template/agent/skills/solo-founder-ops/SKILL.md +0 -56
@@ -5,6 +5,8 @@ alwaysApply: true
5
5
 
6
6
  # Superpowers Skills Integration
7
7
 
8
+ > **Core rule:** Before any implementation/debugging/planning action, check if a skill applies and read its SKILL.md. Skip only for trivial factual questions with zero implementation.
9
+
8
10
  This workspace uses the **Superpowers** skills library located in `superpowers/skills/`.
9
11
  All skills are symlinked into `.agent/skills/` and are automatically available.
10
12
 
@@ -12,6 +14,8 @@ All skills are symlinked into `.agent/skills/` and are automatically available.
12
14
 
13
15
  **Before any response or action**, check if a relevant skill applies. If there's even a 1% chance a skill applies, read it via `view_file` on its `SKILL.md` and follow it exactly.
14
16
 
17
+ **Exception (per CLAUDE.md §1):** Skip the skill check for trivial tasks — simple factual questions, one-line answers, or requests that clearly involve zero implementation (e.g., "what does X mean?", "how do I spell Y?"). If in doubt, check anyway.
18
+
15
19
  ## Available Skills
16
20
 
17
21
  ### Development Workflow
@@ -37,73 +41,26 @@ All skills are symlinked into `.agent/skills/` and are automatically available.
37
41
 
38
42
  | Skill | When to Use |
39
43
  |---|---|
40
- | `frontend-developer` | Web UI, component architecture, React/Vue/Svelte/Vanilla. Has `react-rules/` (66 Vercel rules) and `vue-rules/` (44 antfu rules) |
41
- | `backend-developer` | APIs, server-side logic, database schemas |
42
- | `mobile-developer` | Mobile apps — React Native, Flutter, iOS, Android. Has `react-native-rules/` (38), `flutter-rules/` (8), `android-rules/` (17), `ios-rules/` (19) |
43
- | `game-developer` | Mobile game features, architecture decisions |
44
- | `game-design` | Game mechanics, core loops, progression, monetization |
45
- | `cto-architect` | System design, tech debt, scaling, architecture |
46
- | `saas-architect` | Multi-tenant SaaS architecture, tenant isolation |
47
- | `devops-engineer` | CI/CD, infrastructure, deployment, monitoring |
48
- | `security-engineer` | App security, auth, GDPR, security audits |
49
- | `frontend-design` | Web components, pages, artifacts — high design quality, avoids generic AI aesthetics |
44
+ | `frontend-developer` | Web UI, component architecture, React/Vue/Svelte/Vanilla |
45
+ | `mobile-developer` | Mobile apps — React Native, Flutter, iOS, Android |
46
+ | `frontend-design` | Web components, pages, artifacts high design quality |
50
47
  | `mobile-uiux-promax` | Mobile app UI for iOS, Android, React Native, Flutter, SwiftUI, Compose |
51
- | `rust-developer` | Rust code, ownership/borrow errors, async patterns, idiomatic Rust |
52
48
 
53
- ### Business & Growth
49
+ ### Product & Design
54
50
 
55
51
  | Skill | When to Use |
56
52
  |---|---|
57
53
  | `product-manager` | Product requirements, feature prioritization, roadmap |
58
- | `data-analyst` | Metrics, funnels, cohort analysis, A/B tests |
59
- | `growth-hacker` | User acquisition, viral loops, activation funnels |
60
- | `monetization-strategist` | Pricing, freemium, IAP, unit economics |
61
- | `conversion-optimizer` | Landing pages, trial-to-paid, onboarding, CRO |
62
- | `retention-specialist` | Onboarding flows, churn reduction, re-engagement |
63
- | `customer-success-manager` | User support, feedback loops, NPS/CSAT |
64
- | `app-store-optimizer` | ASO, keyword strategy, screenshots, ratings |
65
54
  | `ux-designer` | UI design, wireframes, user research, IA |
66
55
  | `copywriter` | Landing copy, app descriptions, email sequences |
67
56
 
68
- ### Marketing & Content
69
-
70
- | Skill | When to Use |
71
- |---|---|
72
- | `content-marketer` | Content strategy, SEO content, social media |
73
- | `seo-specialist` | Technical SEO, keywords, backlinks, organic search |
74
- | `community-manager` | Discord, Reddit, Slack community management |
75
- | `influencer-marketer` | UGC, creator partnerships, affiliate programs |
76
- | `paid-acquisition-specialist` | Meta Ads, Google Ads, Apple Search Ads, ROAS |
77
-
78
57
  ### Infrastructure & Integration
79
58
 
80
59
  | Skill | When to Use |
81
60
  |---|---|
82
- | `api-design` | REST/GraphQL APIs, versioning, rate limiting |
83
- | `auth-and-identity` | Auth, SSO/SAML/OIDC, RBAC, session management |
84
61
  | `subscription-billing` | Stripe, IAP, trials, dunning flows |
85
- | `email-infrastructure` | Transactional email, SPF/DKIM/DMARC, deliverability |
86
- | `real-time-features` | WebSockets, SSE, live collaboration, presence |
87
62
  | `i18n-localization` | Internationalization, translations, localized ASO |
88
63
 
89
-
90
- ### Indie Hacker & Solopreneur
91
-
92
- | Skill | When to Use |
93
- |---|---|
94
- | `idea-validator` | Validating problems, markets, and distribution channels before building |
95
- | `market-researcher` | Finding a niche, sizing markets, customer interviews |
96
- | `chrome-extension-developer` | Building browser extensions (MV3, activeTab, permissions) |
97
- | `launch-strategist` | Product Hunt, Hacker News, Reddit launches, pre-launch |
98
- | `landing-page-builder` | High converting page framework, SaaS landing pages |
99
- | `pricing-psychologist` | Paywalls, pricing tiers, anchoring, LTV/CAC |
100
- | `bootstrapper-finance` | MRR tracking, runway calculation, when to quit job |
101
- | `solo-founder-ops` | Time allocation, ICE scoring, automation, burnout |
102
- | `indie-legal` | Privacy policies, TOS, basic GDPR/CCPA compliance |
103
- | `analytics-setup` | PostHog/Plausible setup, event taxonomy, core metrics |
104
- | `ai-integrated-product` | LLM APIs, cost management, prompt engineering |
105
- | `micro-saas-builder` | Building $1K-$10K MRR highly niched SaaS businesses |
106
-
107
64
  ## How to Read a Skill (Antigravity)
108
65
 
109
66
  Use `view_file` on the skill's `SKILL.md`:
@@ -76,3 +76,20 @@ After all tasks complete and verified:
76
76
  - **superpowers:using-git-worktrees** - REQUIRED: Set up isolated workspace before starting
77
77
  - **superpowers:writing-plans** - Creates the plan this skill executes
78
78
  - **superpowers:finishing-a-development-branch** - Complete development after all tasks
79
+
80
+ ---
81
+
82
+ ## Rules Checklist — Run Before Reporting Each Task Complete
83
+
84
+ <HARD-GATE>
85
+ Before marking any task as done and reporting to the user, verify all of these:
86
+
87
+ - [ ] **Language** — Am I responding in the same language the user wrote in?
88
+ - [ ] **Git ops** — Did I check `auto_commit` in `.agent/config.yml` before any git write operation?
89
+ - [ ] **Debug gate** — Did I present analysis + get confirmation BEFORE writing any bug fix?
90
+ - [ ] **Simplicity** — Could this code be written in fewer lines without losing clarity?
91
+ - [ ] **Surgical** — Did I touch ONLY what the task required? No adjacent "improvements"?
92
+ - [ ] **Evidence** — Am I about to claim success? Have I actually run the verification command?
93
+
94
+ If any box is unchecked → fix it before reporting.
95
+ </HARD-GATE>
@@ -321,3 +321,19 @@ From debugging sessions:
321
321
  - Random fixes approach: 2-3 hours of thrashing
322
322
  - First-time fix rate: 95% vs 40%
323
323
  - New bugs introduced: Near zero vs common
324
+
325
+ ---
326
+
327
+ ## Rules Checklist — Run Before Reporting Fix Complete
328
+
329
+ <HARD-GATE>
330
+ After completing Phase 4, before telling the user the bug is fixed:
331
+
332
+ - [ ] **Language** — Responding in the user's language?
333
+ - [ ] **Debug gate** — Did I present Root Cause + Evidence + Proposed Fix and get confirmation BEFORE implementing? (debug-confirmation-policy)
334
+ - [ ] **Git ops** — If I committed the fix: did I check `auto_commit` in `.agent/config.yml` first?
335
+ - [ ] **Surgical** — Did I fix ONLY the root cause? No bundled refactoring or unrelated changes?
336
+ - [ ] **Verification** — Have I actually run the test/command to confirm the fix works? Not just "should work now"?
337
+
338
+ If any box is unchecked → go back and fix it before reporting.
339
+ </HARD-GATE>
@@ -369,3 +369,19 @@ Otherwise → not TDD
369
369
  ```
370
370
 
371
371
  No exceptions without your human partner's permission.
372
+
373
+ ---
374
+
375
+ ## Behavioral Rules Checklist — Run Before Reporting Implementation Complete
376
+
377
+ <HARD-GATE>
378
+ After TDD cycle is done, before telling the user the feature is implemented:
379
+
380
+ - [ ] **Language** — Responding in the user's language?
381
+ - [ ] **Simplicity** — Is this the minimum code that satisfies the tests? No speculative features added?
382
+ - [ ] **Surgical** — Did I touch only the files this feature requires? No unrelated refactoring?
383
+ - [ ] **Git ops** — If committing: checked `auto_commit` in `.agent/config.yml` first?
384
+ - [ ] **Evidence** — Did I actually run all tests and see them pass? Not just "they should pass"?
385
+
386
+ If any box is unchecked → fix before reporting.
387
+ </HARD-GATE>
@@ -137,3 +137,25 @@ From 24 failure memories:
137
137
  Run the command. Read the output. THEN claim the result.
138
138
 
139
139
  This is non-negotiable.
140
+
141
+ ---
142
+
143
+ ## Behavioral Rules Final Check — The Last Gate Before Responding
144
+
145
+ <HARD-GATE>
146
+ This is the final checkpoint. Before sending your response to the user:
147
+
148
+ **Technical verification (above):**
149
+ - [ ] Ran the verification command — not "should pass", actual output seen
150
+ - [ ] Exit code / test count / build result confirms the claim
151
+
152
+ **Behavioral rules (don't forget these during implementation):**
153
+ - [ ] **Language** — Response is in the user's language?
154
+ - [ ] **Debug gate** — If this was a bug fix: did I get confirmation before implementing? (debug-confirmation-policy)
155
+ - [ ] **Git ops** — Any git write op: checked `auto_commit` in `.agent/config.yml`?
156
+ - [ ] **Simplicity** — No features beyond what was asked? No speculative abstractions?
157
+ - [ ] **Surgical** — Changed only what was necessary? No "while I'm here" edits?
158
+
159
+ All boxes checked? → Send response.
160
+ Any box unchecked? → Fix it first.
161
+ </HARD-GATE>
@@ -155,3 +155,19 @@ After saving the plan, offer execution choice:
155
155
  **If Inline Execution chosen:**
156
156
  - **REQUIRED SUB-SKILL:** Use superpowers:executing-plans
157
157
  - Batch execution with checkpoints for review
158
+
159
+ ---
160
+
161
+ ## Rules Checklist — Run Before Handing Off Plan
162
+
163
+ <HARD-GATE>
164
+ Before presenting the plan to the user or dispatching to executing agent:
165
+
166
+ - [ ] **Language** — Plan explanation is in the user's language?
167
+ - [ ] **No placeholders** — Zero TBD/TODO/"implement later" entries in the plan?
168
+ - [ ] **YAGNI** — Every task maps to an explicit requirement? No speculative tasks?
169
+ - [ ] **Git step in plan** — Each task's commit step says to check `auto_commit` in `.agent/config.yml`?
170
+ - [ ] **Self-review done** — Ran the Self-Review section (spec coverage, placeholder scan, type consistency)?
171
+
172
+ If any box is unchecked → fix plan before handing off.
173
+ </HARD-GATE>
@@ -1,57 +0,0 @@
1
- ---
2
- name: ai-integrated-product
3
- description: Use when integrating AI/LLM capabilities into a product, building AI-powered features, or evaluating APIs
4
- ---
5
-
6
- # AI Integrated Product Lens
7
-
8
- ## Identity
9
- You are pragmatic about AI. You view LLMs as unreliable but powerful probabilistic engines, not magic. You focus on cost control, useful constraints, and graceful degradation when the AI inevitably hallucinates or the API goes down.
10
-
11
- ## Core Instincts
12
- - **AI is a feature, not a product** — the underlying workflow must provide value; AI just accelerates it
13
- - **Cost control from day 1** — LLM API costs scale with usage; if you don't limit tokens, you will lose money
14
- - **UX > Model capabilities** — a great UI wrapped around a fast, cheap model (GPT-4o-mini) beats a clunky UI block-awaiting an expensive model (GPT-4o)
15
- - **Trust but verify** — users need to be able to edit, undo, or reject AI outputs
16
-
17
- ## Core Knowledge
18
-
19
- **AI API Landscape for Indie (2025-2026):**
20
- - **OpenAI (GPT-4o, GPT-4o-mini):** Best general-purpose, predictable JSON modes.
21
- - **Anthropic (Claude 3.5 Sonnet):** Exceptional for coding, long context, and nuanced writing.
22
- - **Google (Gemini 2.0 Flash):** Incredible pricing and multimodal speed.
23
- - **Open-source (Llama/Mistral via Together/Groq):** Cheapest at scale, fastest inference.
24
-
25
- **Cost Benchmarks (Approx input/output per 1M tokens):**
26
- - GPT-4o-mini: $0.15 / $0.60
27
- - GPT-4o: $2.50 / $10.00
28
- - Claude 3.5 Sonnet: $3.00 / $15.00
29
- - Gemini 2.0 Flash: $0.10 / $0.40
30
-
31
- **Cost Management Strategies:**
32
- - Estimate tokens per request before calling the API.
33
- - Set hard usage caps per user tier.
34
- - Cache common responses (exact or semantic caching).
35
- - Use cheaper models (Flash/Mini) for routing/classification, save expensive models for complex generation.
36
-
37
- **Feature Patterns:**
38
- - Text generation/summarization (Drafting assistants)
39
- - Conversational UI (Support bots)
40
- - Classification/tagging (Sorting incoming data)
41
- - Data extraction (Converting messy HTML/text into clean JSON)
42
-
43
- **Prompt Engineering Basics:**
44
- - Deeply specific system prompts.
45
- - Few-shot examples (give it 3 good inputs + outputs).
46
- - Always use structured output (JSON schema) when parsing programmatically.
47
-
48
- ## Questions You Always Ask
49
- - Can we use a cheaper model (like Gemini Flash or GPT-4o-mini) for this specific task?
50
- - What is the UI/UX when the API takes 5 seconds to respond?
51
- - How are we capping usage so a single enthusiastic user doesn't cost us $50 today?
52
-
53
- ## Red Flags / Anti-Patterns
54
- - [ ] Passing user input directly to an expensive model without a rate limit
55
- - [ ] Relying on the AI to perform complex math or exact character counts
56
- - [ ] No fallback state for when the API times out
57
- - [ ] "Building a ChatGPT wrapper" with no distinct workflow advantage
@@ -1,51 +0,0 @@
1
- ---
2
- name: analytics-setup
3
- description: Use when setting up analytics, choosing tracking tools, or designing a metrics dashboard for an indie product
4
- ---
5
-
6
- # Analytics Setup Lens
7
-
8
- ## Identity
9
- You focus on actionable metrics over vanity numbers. You prefer privacy-first, lightweight tracking over heavy, enterprise-grade suites. You want to understand the user journey without invading their privacy or blowing the indie budget.
10
-
11
- ## Core Instincts
12
- - **Track what matters, ignore the rest** — event bloat kills data utility
13
- - **Privacy first** — if you don't need user-level tracking, use aggregate tools
14
- - **Different questions need different tools** — product analytics ≠ web analytics ≠ error tracking
15
- - **Cohorts over totals** — "Total Users" is a vanity metric; "D7 Retention by Week" is actionable
16
-
17
- ## Core Knowledge
18
-
19
- **Analytics Stack for Indie (Budget-Friendly):**
20
- - **Web Analytics (Marketing):** Plausible ($9/mo, privacy-first) or Umami (free self-hosted). Avoid Google Analytics unless required by an ad platform.
21
- - **Product Analytics (In-App):** PostHog (generous free tier, all-in-one) or Mixpanel (free up to 20M events).
22
- - **Error Tracking:** Sentry (free tier: 5K events/mo) or BugSnag.
23
- - **Uptime:** BetterUptime free tier or UptimeRobot.
24
-
25
- **Essential Events to Track (Day 1):**
26
- - **Web/SaaS:** `signup`, `activation` (the "Aha!" moment), `feature_used` (top 3 core features), `upgrade_started`, `payment_completed`, `churned`.
27
- - **Mobile:** `app_opened`, `session_duration`, `notification_opened`, `iap_initiated`.
28
- - **Extension:** `installed`, `extension_opened`, `upgraded`.
29
-
30
- **Implementation Patterns:**
31
- - **Naming convention:** `noun_verb` (e.g., `subscription_started`). Be strictly consistent.
32
- - **User properties:** plan type, signup_date, platform. Attach these to the user profile, not every event.
33
- - **Group analytics by cohort:** Weekly signup cohorts are the best way to measure improvements over time.
34
-
35
- **Dashboard Template (The 5 Metrics That Matter):**
36
- 1. Daily/Weekly Active Users (DAU/WAU)
37
- 2. Activation Rate (% reaching the aha moment)
38
- 3. Retention (D1, D7, D30)
39
- 4. Revenue (MRR, trial-to-paid conversion rate)
40
- 5. Acquisition source breakdown
41
-
42
- ## Questions You Always Ask
43
- - What is the ONE primary metric for this product?
44
- - How are we defining an "Active" user? (Hint: it shouldn't just be "logging in")
45
- - Have we set a strict naming convention for our events before we start writing `track()` calls?
46
-
47
- ## Red Flags / Anti-Patterns
48
- - [ ] Tracking every single button click ("event bloat")
49
- - [ ] No tracking at all on V1 ("I'll add analytics later")
50
- - [ ] Using vanity metrics (page views, total registered accounts without filtering for activation)
51
- - [ ] No consistent event naming convention
@@ -1,193 +0,0 @@
1
- ---
2
- name: api-design
3
- description: Use when designing REST or GraphQL APIs, defining versioning strategy, implementing rate limiting, pagination, or writing API documentation
4
- ---
5
-
6
- # API Design Lens
7
-
8
- > **Philosophy:** An API is a contract. Breaking it breaks your users' production systems.
9
- > Design APIs for the client's needs, not the server's convenience.
10
-
11
- ---
12
-
13
- ## Core Instincts
14
-
15
- - **API contracts are forever** — breaking changes in v1 are unforgivable; version aggressively
16
- - **Design for the consumer** — the client's workflow, not the server's data model, drives resource design
17
- - **Idempotency is non-negotiable** — safe to retry = safe to build reliable systems on top of
18
- - **Errors must be informative** — vague errors waste developer hours
19
- - **Consistency over cleverness** — a boring, predictable API is a beloved API
20
-
21
- ---
22
-
23
- ## REST Resource Design Rules
24
-
25
- ```
26
- Resource naming:
27
- ✅ /users/{id}/projects (noun, plural, hierarchical)
28
- ❌ /getProjectsForUser/{id} (verb, confusing)
29
- ❌ /user-projects/{userId} (mixed conventions)
30
-
31
- HTTP verbs:
32
- GET /resources → list (paginated)
33
- GET /resources/{id} → get one
34
- POST /resources → create
35
- PUT /resources/{id} → full replace (idempotent)
36
- PATCH /resources/{id} → partial update
37
- DELETE /resources/{id} → delete (idempotent)
38
-
39
- Idempotency:
40
- GET, PUT, DELETE = always idempotent
41
- POST = not idempotent by default → use Idempotency-Key header
42
- ```
43
-
44
- ---
45
-
46
- ## HTTP Status Codes (Precise Usage)
47
-
48
- | Status | Use when | Body |
49
- |--------|----------|------|
50
- | 200 | Success, returns data | Resource |
51
- | 201 | Created | Resource + `Location` header |
52
- | 204 | Success, no body | Empty |
53
- | 400 | Malformed request / validation failure | Error with field details |
54
- | 401 | Missing or invalid auth | Error |
55
- | 403 | Auth valid, no permission | Error (don't reveal resource existence) |
56
- | 404 | Resource not found | Error |
57
- | 409 | Conflict (duplicate, state clash) | Error with conflict detail |
58
- | 422 | Valid format, business rule violation | Error with reason |
59
- | 429 | Rate limited | Error + `Retry-After` header |
60
- | 500 | Unexpected server error | Generic error (log full details server-side) |
61
-
62
- ---
63
-
64
- ## Error Response Standard (RFC 7807 / Problem Details)
65
-
66
- ```json
67
- {
68
- "type": "https://docs.myapp.com/errors/validation-failed",
69
- "title": "Validation Failed",
70
- "status": 422,
71
- "detail": "One or more fields are invalid",
72
- "errors": [
73
- { "field": "email", "message": "Must be a valid email address" },
74
- { "field": "name", "message": "Required" }
75
- ],
76
- "requestId": "01HX7Y3Z..."
77
- }
78
- ```
79
-
80
- **Always include `requestId`** — allows support to find logs immediately.
81
-
82
- ---
83
-
84
- ## Pagination
85
-
86
- ```
87
- Offset-based (simple, less scalable):
88
- GET /users?page=2&limit=20
89
- ✅ Good for: admin UIs, small datasets
90
- ❌ Bad for: large datasets (OFFSET N scans N rows)
91
-
92
- Cursor-based (scalable, real-time safe):
93
- GET /users?cursor=eyJpZCI6MTIzfQ&limit=20
94
- Response: { data: [...], nextCursor: "eyJpZCI6MTQzfQ", hasMore: true }
95
- ✅ Good for: feeds, large datasets, infinite scroll
96
- ❌ Bad for: jump-to-page UI
97
-
98
- Default recommendation: Cursor-based with opaque base64 cursors.
99
- Expose total count only when necessary (expensive for large tables).
100
- ```
101
-
102
- ---
103
-
104
- ## Rate Limiting
105
-
106
- ```
107
- Strategy: Token bucket or sliding window
108
-
109
- Headers to include:
110
- X-RateLimit-Limit: 1000 (max requests per window)
111
- X-RateLimit-Remaining: 847 (requests left)
112
- X-RateLimit-Reset: 1711234567 (Unix timestamp when window resets)
113
- Retry-After: 60 (seconds to wait, on 429 only)
114
-
115
- Recommended limits for SaaS APIs:
116
- Authenticated: 1000 req/min per user
117
- Unauthenticated: 60 req/min per IP
118
- Sensitive (auth endpoints): 5 req/15min per IP
119
- ```
120
-
121
- ---
122
-
123
- ## API Versioning
124
-
125
- ```
126
- Strategy options:
127
- URL versioning: /v1/users ← RECOMMENDED (explicit, cacheable)
128
- Header versioning: Accept: application/vnd.myapp.v1+json (less visible)
129
- Query param: /users?version=1 (ugly, cache issues)
130
-
131
- Breaking vs non-breaking changes:
132
- Non-breaking (safe without versioning):
133
- ✅ Adding new optional fields to response
134
- ✅ Adding new optional request parameters
135
- ✅ Adding new endpoints
136
-
137
- Breaking (requires new version):
138
- ❌ Removing fields from response
139
- ❌ Changing field types
140
- ❌ Changing endpoint behavior
141
- ❌ Renaming fields
142
- ```
143
-
144
- ---
145
-
146
- ## ❌ Anti-Patterns to Avoid
147
-
148
- | ❌ NEVER DO | Why | ✅ DO INSTEAD |
149
- |------------|-----|--------------|
150
- | Return 200 for errors | Clients parse status codes; 200 failure = broken integrations | Use correct status codes |
151
- | Expose internal IDs (auto-increment integers) | Enumerable, leaks count of records | UUIDs always |
152
- | Breaking changes without versioning | Clients' production breaks silently | `/v2/` or deprecation period |
153
- | Unbounded list endpoints | OOM at scale | Always paginate; default limit 20, max 100 |
154
- | Verbose errors in production | Leaks internals to attackers | Generic message to client; details in server logs only |
155
- | Synchronous long-running operations | Timeout at 30s+, bad UX | Accept → 202 Accepted → polling or webhook |
156
-
157
- ---
158
-
159
- ## Questions You Always Ask
160
-
161
- **When designing a new endpoint:**
162
- - Is this resource name a noun (not a verb)?
163
- - What's the idempotency story? Can the client safely retry?
164
- - What's the pagination strategy? What's the max page size?
165
- - Is this a breaking change to existing consumers?
166
-
167
- ---
168
-
169
- ## Red Flags
170
-
171
- **Must fix:**
172
- - [ ] `200 OK` returned for error responses
173
- - [ ] No pagination on list endpoints
174
- - [ ] Auto-increment integer IDs exposed
175
- - [ ] Breaking API change without version bump
176
-
177
- **Should fix:**
178
- - [ ] No rate limiting on public endpoints
179
- - [ ] Error responses without field-level details
180
- - [ ] No `requestId` in error responses (prevents support lookup)
181
- - [ ] No OpenAPI/Swagger spec
182
-
183
- ---
184
-
185
- ## Who to Pair With
186
- - `backend-developer` — for implementation of API patterns
187
- - `auth-and-identity` — for auth design on API endpoints
188
- - `saas-architect` — for multi-tenant API context
189
-
190
- ---
191
-
192
- ## Tools
193
- OpenAPI / Swagger (spec) · Scalar / Stoplight (docs) · Hono / Fastify / Express (Node.js) · Zod / Joi (validation) · `express-rate-limit` / Upstash Rate Limit · Postman / Insomnia (testing)
@@ -1,127 +0,0 @@
1
- ---
2
- name: app-store-optimizer
3
- description: Use when working on App Store / Google Play listing optimization, keyword strategy, screenshots, ratings, or app store A/B testing
4
- ---
5
-
6
- # App Store Optimizer Lens
7
-
8
- > **Philosophy:** ASO is SEO for app stores. Discoverability + conversion = downloads.
9
- > Most apps lose 60%+ of potential downloads to a weak listing, not a weak product.
10
-
11
- ---
12
-
13
- ## Core Instincts
14
-
15
- - **Title keyword is the highest-ranking signal** — include your primary keyword in the title
16
- - **First 3 screenshots convert or kill** — most users never scroll past them
17
- - **Ratings velocity > average rating** — a burst of fresh 5-stars beats a stale 4.8
18
- - **Keyword field is invisible to users but critical to ranking** — use every character
19
- - **Localize for top markets** — EN + your top 3 markets = 80% of opportunity
20
-
21
- ---
22
-
23
- ## Platform Limits (Know These Cold)
24
-
25
- ### iOS App Store
26
- | Field | Limit | Notes |
27
- |-------|-------|-------|
28
- | Title | **30 chars** | Primary keyword weight = 2× |
29
- | Subtitle | **30 chars** | Secondary keyword, benefit-focused |
30
- | Keywords | **100 chars** | Comma-separated, no spaces, no repeats from title |
31
- | Description | **4000 chars** | First **255 chars** shown before "more" |
32
- | Promo text | **170 chars** | Updates without review; use for time-limited offers |
33
- | Screenshots | Up to **10** | Sizes vary by device; first 3 drive 80% of conversion |
34
- | Preview video | **15–30 seconds** | First 3 seconds must hook without sound |
35
-
36
- ### Google Play
37
- | Field | Limit | Notes |
38
- |-------|-------|-------|
39
- | Title | **30 chars** | Keyword-rich |
40
- | Short description | **80 chars** | Shown in search; make it scannable |
41
- | Long description | **4000 chars** | First 167 chars auto-expanded; repeat keyword 3–5× |
42
- | Screenshots | Up to **8** | 16:9 or 9:16 preferred |
43
- | Feature graphic | **1024 × 500px** | Shown in featured slots |
44
-
45
- ---
46
-
47
- ## ❌ Anti-Patterns to Avoid
48
-
49
- | ❌ NEVER DO | Why | ✅ DO INSTEAD |
50
- |------------|-----|--------------|
51
- | Title = just the brand name | Zero keyword signal | Brand + primary keyword (e.g., "Todoist: To-Do List & Tasks") |
52
- | Leave keywords field blank (iOS) | 100 chars of free ranking wasted | Fill every character with non-title keywords |
53
- | First screenshot = app logo splash | Users bounce, no context | First screenshot = core value prop as hero text |
54
- | Ask for review on first open | Users hate it, Apple rejects manipulative prompts | Ask after a success action (task completed, streak hit) |
55
- | Ignore 1-star reviews | Review responses shown publicly; silence = neglect | Respond within 48h; apologize + explain fix |
56
- | Use keywords that appear in title (iOS) | Apple ignores duplicates | Every keyword field word must be unique |
57
- | Generic description | No differentiation, no keywords | Keyword-rich first paragraph, benefit bullets |
58
-
59
- ---
60
-
61
- ## Keyword Research Process
62
-
63
- 1. **Seed keywords** — brainstorm 20–30 relevant terms
64
- 2. **Competitor analysis** — check top 5 competitor titles/subtitles
65
- 3. **Volume + difficulty** — use Sensor Tower / AppTweak / AppFollow to score
66
- 4. **Priority matrix** — High volume + Low difficulty = target first
67
- 5. **Long-tail focus** — easier to rank for "meditation app for anxiety" than "meditation"
68
- 6. **Update every 60–90 days** — track rank changes, iterate
69
-
70
- ---
71
-
72
- ## Ratings Strategy
73
-
74
- **When to prompt:** After user completes a meaningful success action, NOT on launch.
75
- - Good triggers: completed task, reached streak, finished session, saved something
76
- - Bad triggers: app open, screen view, after onboarding
77
-
78
- **Target benchmarks:**
79
- | Metric | Floor | Target |
80
- |--------|-------|--------|
81
- | Average rating | > 4.0 | > 4.5 |
82
- | Review count (for featuring) | > 100 | > 500 |
83
- | Response rate to 1-star | — | > 80% within 48h |
84
-
85
- **Recovering from bad ratings:** Respond to every 1-star, release fix quickly, request updated review from resolved users.
86
-
87
- ---
88
-
89
- ## Questions You Always Ask
90
-
91
- **When auditing a listing:**
92
- - Is the primary keyword in the title?
93
- - Do the first 3 screenshots tell a complete story without reading any text?
94
- - Is the keyword field 100% utilized (iOS)?
95
- - What's the current conversion rate from impression to download? (Benchmark: 3–7%)
96
-
97
- **When planning ASO strategy:**
98
- - Which markets are we localizing for?
99
- - What keywords are competitors ranking for that we're missing?
100
- - When was the last time we A/B tested screenshots?
101
-
102
- ---
103
-
104
- ## Red Flags
105
-
106
- **Must fix:**
107
- - [ ] Title is brand name only (no keyword)
108
- - [ ] iOS keyword field < 90 characters used
109
- - [ ] First screenshot is a splash screen or abstract illustration
110
- - [ ] No response to 1-star reviews
111
-
112
- **Should fix:**
113
- - [ ] Description first 255 chars (iOS) / 167 chars (Play) not benefit-focused
114
- - [ ] No preview video
115
- - [ ] Listing not localized for top 3 markets
116
-
117
- ---
118
-
119
- ## Who to Pair With
120
- - `copywriter` — for listing copy strategy
121
- - `growth-hacker` — for launch burst strategy (ratings velocity)
122
- - `conversion-optimizer` — for screenshot A/B testing
123
-
124
- ---
125
-
126
- ## Tools
127
- AppFollow · Sensor Tower · AppTweak · AppFigures · MobileAction · Apple Search Ads Intelligence