@oriro/orirocli 0.1.11 → 0.3.1

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 (1263) hide show
  1. package/ATTRIBUTION.md +53 -53
  2. package/LICENSE +21 -21
  3. package/README.md +10 -9
  4. package/dist/cli.js +1866 -190
  5. package/package.json +65 -64
  6. package/skills/1password/SKILL.md +118 -118
  7. package/skills/1password/references/cli-examples.md +29 -29
  8. package/skills/1password/references/get-started.md +21 -21
  9. package/skills/21stdev/SKILL.md +64 -64
  10. package/skills/algorithmic-art/LICENSE +21 -21
  11. package/skills/algorithmic-art/SKILL.md +446 -446
  12. package/skills/algorithmic-art/templates/generator_template.js +223 -223
  13. package/skills/algorithmic-art/templates/viewer.html +598 -598
  14. package/skills/apple-notes/SKILL.md +81 -81
  15. package/skills/apple-reminders/SKILL.md +122 -122
  16. package/skills/bear-notes/SKILL.md +111 -111
  17. package/skills/blogwatcher/SKILL.md +73 -73
  18. package/skills/blucli/SKILL.md +51 -51
  19. package/skills/brand-guidelines/LICENSE +21 -21
  20. package/skills/brand-guidelines/SKILL.md +76 -76
  21. package/skills/business/biz-analysis/LICENSE +21 -21
  22. package/skills/business/biz-analysis/SKILL.md +103 -103
  23. package/skills/business/biz-corporate-strategy/LICENSE +21 -21
  24. package/skills/business/biz-corporate-strategy/SKILL.md +76 -76
  25. package/skills/business/biz-customer-success/LICENSE +21 -21
  26. package/skills/business/biz-customer-success/SKILL.md +55 -55
  27. package/skills/business/biz-entrepreneurship/LICENSE +21 -21
  28. package/skills/business/biz-entrepreneurship/SKILL.md +72 -72
  29. package/skills/business/biz-hr/LICENSE +21 -21
  30. package/skills/business/biz-hr/SKILL.md +67 -67
  31. package/skills/business/biz-international/LICENSE +21 -21
  32. package/skills/business/biz-international/SKILL.md +51 -51
  33. package/skills/business/biz-leadership/LICENSE +21 -21
  34. package/skills/business/biz-leadership/SKILL.md +106 -106
  35. package/skills/business/biz-marketing-strategy/LICENSE +21 -21
  36. package/skills/business/biz-marketing-strategy/SKILL.md +119 -119
  37. package/skills/business/biz-negotiation/LICENSE +21 -21
  38. package/skills/business/biz-negotiation/SKILL.md +152 -152
  39. package/skills/business/biz-operations/LICENSE +21 -21
  40. package/skills/business/biz-operations/SKILL.md +74 -74
  41. package/skills/business/biz-project/LICENSE +21 -21
  42. package/skills/business/biz-project/SKILL.md +203 -203
  43. package/skills/business/biz-risk/LICENSE +21 -21
  44. package/skills/business/biz-risk/SKILL.md +85 -85
  45. package/skills/business/biz-sales/LICENSE +21 -21
  46. package/skills/business/biz-sales/SKILL.md +92 -92
  47. package/skills/business/biz-startup-ops/LICENSE +21 -21
  48. package/skills/business/biz-startup-ops/SKILL.md +70 -70
  49. package/skills/business/biz-strategy/LICENSE +21 -21
  50. package/skills/business/biz-strategy/SKILL.md +233 -233
  51. package/skills/business/biz-supply-chain-advanced/LICENSE +21 -21
  52. package/skills/business/biz-supply-chain-advanced/SKILL.md +68 -68
  53. package/skills/business/fin-chartered-exams/LICENSE +21 -21
  54. package/skills/business/fin-chartered-exams/SKILL.md +69 -69
  55. package/skills/camsnap/SKILL.md +49 -49
  56. package/skills/canvas/SKILL.md +82 -82
  57. package/skills/canvas-design/LICENSE +21 -21
  58. package/skills/canvas-design/SKILL.md +140 -140
  59. package/skills/canvas-design/canvas-fonts/ArsenalSC-OFL.txt +93 -93
  60. package/skills/canvas-design/canvas-fonts/BigShoulders-OFL.txt +93 -93
  61. package/skills/canvas-design/canvas-fonts/Boldonse-OFL.txt +93 -93
  62. package/skills/canvas-design/canvas-fonts/BricolageGrotesque-OFL.txt +93 -93
  63. package/skills/canvas-design/canvas-fonts/CrimsonPro-OFL.txt +93 -93
  64. package/skills/canvas-design/canvas-fonts/DMMono-OFL.txt +93 -93
  65. package/skills/canvas-design/canvas-fonts/EricaOne-OFL.txt +94 -94
  66. package/skills/canvas-design/canvas-fonts/GeistMono-OFL.txt +93 -93
  67. package/skills/canvas-design/canvas-fonts/Gloock-OFL.txt +93 -93
  68. package/skills/canvas-design/canvas-fonts/IBMPlexMono-OFL.txt +93 -93
  69. package/skills/canvas-design/canvas-fonts/InstrumentSans-OFL.txt +93 -93
  70. package/skills/canvas-design/canvas-fonts/JetBrainsMono-OFL.txt +93 -93
  71. package/skills/canvas-design/canvas-fonts/Jura-OFL.txt +93 -93
  72. package/skills/canvas-design/canvas-fonts/LibreBaskerville-OFL.txt +93 -93
  73. package/skills/canvas-design/canvas-fonts/Lora-OFL.txt +93 -93
  74. package/skills/canvas-design/canvas-fonts/NationalPark-OFL.txt +93 -93
  75. package/skills/canvas-design/canvas-fonts/Outfit-OFL.txt +93 -93
  76. package/skills/canvas-design/canvas-fonts/PixelifySans-OFL.txt +93 -93
  77. package/skills/canvas-design/canvas-fonts/RedHatMono-OFL.txt +93 -93
  78. package/skills/canvas-design/canvas-fonts/Silkscreen-OFL.txt +93 -93
  79. package/skills/canvas-design/canvas-fonts/SmoochSans-OFL.txt +93 -93
  80. package/skills/canvas-design/canvas-fonts/Tektur-OFL.txt +93 -93
  81. package/skills/canvas-design/canvas-fonts/WorkSans-OFL.txt +93 -93
  82. package/skills/canvas-design/canvas-fonts/YoungSerif-OFL.txt +93 -93
  83. package/skills/coding-agent/SKILL.md +146 -146
  84. package/skills/communication/comm-business-writing/LICENSE +21 -21
  85. package/skills/communication/comm-business-writing/SKILL.md +67 -67
  86. package/skills/communication/comm-cross-cultural/LICENSE +21 -21
  87. package/skills/communication/comm-cross-cultural/SKILL.md +88 -88
  88. package/skills/communication/comm-journalism/LICENSE +21 -21
  89. package/skills/communication/comm-journalism/SKILL.md +81 -81
  90. package/skills/communication/comm-linguistics/LICENSE +21 -21
  91. package/skills/communication/comm-linguistics/SKILL.md +82 -82
  92. package/skills/communication/comm-negotiation/LICENSE +21 -21
  93. package/skills/communication/comm-negotiation/SKILL.md +120 -120
  94. package/skills/communication/comm-presentations/LICENSE +21 -21
  95. package/skills/communication/comm-presentations/SKILL.md +93 -93
  96. package/skills/communication/comm-public-speaking/LICENSE +21 -21
  97. package/skills/communication/comm-public-speaking/SKILL.md +68 -68
  98. package/skills/communication/comm-writing/LICENSE +21 -21
  99. package/skills/communication/comm-writing/SKILL.md +69 -69
  100. package/skills/craft/ai-engineering/LICENSE +21 -21
  101. package/skills/craft/ai-engineering/SKILL.md +828 -828
  102. package/skills/craft/app-builder-guide/LICENSE +21 -21
  103. package/skills/craft/app-builder-guide/SKILL.md +332 -332
  104. package/skills/craft/become-an-ai-engineer-26/CONTRIBUTING.md +46 -46
  105. package/skills/craft/become-an-ai-engineer-26/LICENSE +21 -21
  106. package/skills/craft/become-an-ai-engineer-26/README.md +270 -270
  107. package/skills/craft/become-an-ai-engineer-26/SKILL.md +667 -667
  108. package/skills/craft/become-an-ai-engineer-26/community/BUILDS.md +13 -13
  109. package/skills/craft/become-an-ai-engineer-26/community/DISCUSSIONS.md +8 -8
  110. package/skills/craft/become-an-ai-engineer-26/phases/phase-0-mental-models/README.md +14 -14
  111. package/skills/craft/become-an-ai-engineer-26/phases/phase-0-mental-models/project/TEMPLATE.md +33 -33
  112. package/skills/craft/become-an-ai-engineer-26/phases/phase-1-first-agent/README.md +25 -25
  113. package/skills/craft/become-an-ai-engineer-26/phases/phase-1-first-agent/code/raw_loop.py +126 -126
  114. package/skills/craft/become-an-ai-engineer-26/phases/phase-2-architecture/README.md +17 -17
  115. package/skills/craft/become-an-ai-engineer-26/phases/phase-3-harness/README.md +17 -17
  116. package/skills/craft/become-an-ai-engineer-26/phases/phase-4-evals/README.md +21 -21
  117. package/skills/craft/become-an-ai-engineer-26/phases/phase-4-evals/code/.github/workflows/eval.yml +40 -40
  118. package/skills/craft/become-an-ai-engineer-26/phases/phase-5-production/README.md +16 -16
  119. package/skills/craft/become-an-ai-engineer-26/projects/1-mobile-app-slm/README.md +11 -11
  120. package/skills/craft/become-an-ai-engineer-26/projects/2-self-improving-coder/README.md +11 -11
  121. package/skills/craft/become-an-ai-engineer-26/projects/3-video-editor-agent/README.md +11 -11
  122. package/skills/craft/become-an-ai-engineer-26/projects/4-personal-life-os/README.md +12 -12
  123. package/skills/craft/become-an-ai-engineer-26/projects/5-enterprise-workflow/README.md +12 -12
  124. package/skills/craft/become-an-ai-engineer-26/references/benchmark-numbers.md +41 -41
  125. package/skills/craft/become-an-ai-engineer-26/references/mhc-stable-training.md +73 -73
  126. package/skills/craft/become-an-ai-engineer-26/references/stack-decisions.md +37 -37
  127. package/skills/craft/become-an-ai-engineer-26/references/yarn-context-extension.md +123 -123
  128. package/skills/craft/codex-result-handling/LICENSE +21 -21
  129. package/skills/craft/codex-result-handling/SKILL.md +26 -26
  130. package/skills/craft/debug-and-build-methodology/LICENSE +21 -21
  131. package/skills/craft/debug-and-build-methodology/SKILL.md +432 -432
  132. package/skills/craft/design/LICENSE +21 -21
  133. package/skills/craft/design/SKILL.md +274 -274
  134. package/skills/craft/dev/LICENSE +21 -21
  135. package/skills/craft/dev/SKILL.md +12 -12
  136. package/skills/craft/dev/release.md +85 -85
  137. package/skills/craft/dev/roll.md +50 -50
  138. package/skills/craft/doc-coauthoring/LICENSE +21 -21
  139. package/skills/craft/doc-coauthoring/SKILL.md +397 -397
  140. package/skills/craft/focus/LICENSE +21 -21
  141. package/skills/craft/focus/SKILL.md +432 -432
  142. package/skills/craft/focus/UPSTREAM_README.md +233 -233
  143. package/skills/craft/gh/LICENSE +21 -21
  144. package/skills/craft/gh/SKILL.md +84 -84
  145. package/skills/craft/gh-skill/LICENSE +21 -21
  146. package/skills/craft/gh-skill/SKILL.md +121 -121
  147. package/skills/craft/godmode/LICENSE +21 -21
  148. package/skills/craft/godmode/SKILL.md +87 -87
  149. package/skills/craft/godmode/references/android-launch.md +680 -680
  150. package/skills/craft/godmode/references/data-gcp.md +1038 -1038
  151. package/skills/craft/godmode/references/expo-eas.md +816 -816
  152. package/skills/craft/godmode/references/ios-launch.md +734 -734
  153. package/skills/craft/google-ai-latest/LICENSE +21 -21
  154. package/skills/craft/google-ai-latest/SKILL.md +682 -682
  155. package/skills/craft/gpt-5-4-prompting/LICENSE +21 -21
  156. package/skills/craft/gpt-5-4-prompting/SKILL.md +63 -63
  157. package/skills/craft/gpt-5-4-prompting/references/codex-prompt-antipatterns.md +101 -101
  158. package/skills/craft/gpt-5-4-prompting/references/codex-prompt-recipes.md +150 -150
  159. package/skills/craft/gpt-5-4-prompting/references/prompt-blocks.md +172 -172
  160. package/skills/craft/grill-me/LICENSE +21 -21
  161. package/skills/craft/grill-me/SKILL.md +13 -13
  162. package/skills/craft/idea-to-deploy/LICENSE +21 -21
  163. package/skills/craft/idea-to-deploy/SKILL.md +292 -292
  164. package/skills/craft/idea-to-deploy/references/auth-playbook.md +195 -195
  165. package/skills/craft/idea-to-deploy/references/gcp-deployment.md +268 -268
  166. package/skills/craft/idea-to-deploy/references/stack-selection.md +117 -117
  167. package/skills/craft/image-generation-engineer/LICENSE +21 -21
  168. package/skills/craft/image-generation-engineer/SKILL.md +183 -183
  169. package/skills/craft/image-generation-engineer/references/architectures.md +260 -260
  170. package/skills/craft/image-generation-engineer/references/foundations.md +107 -107
  171. package/skills/craft/image-generation-engineer/references/inference-and-serving.md +253 -253
  172. package/skills/craft/image-generation-engineer/references/training.md +149 -149
  173. package/skills/craft/marketing/LICENSE +21 -21
  174. package/skills/craft/marketing/SKILL.md +1954 -1954
  175. package/skills/craft/master-architect/LICENSE +21 -21
  176. package/skills/craft/master-architect/SKILL.md +361 -361
  177. package/skills/craft/master-architect/references/ai-ml.md +317 -317
  178. package/skills/craft/master-architect/references/architecture.md +268 -268
  179. package/skills/craft/master-architect/references/auth-playbook.md +195 -195
  180. package/skills/craft/master-architect/references/cloud.md +323 -323
  181. package/skills/craft/master-architect/references/cyber.md +839 -839
  182. package/skills/craft/master-architect/references/data-eng.md +366 -366
  183. package/skills/craft/master-architect/references/devops.md +550 -550
  184. package/skills/craft/master-architect/references/gcp-deployment.md +268 -268
  185. package/skills/craft/master-architect/references/languages.md +748 -748
  186. package/skills/craft/master-architect/references/legacy.md +240 -240
  187. package/skills/craft/master-architect/references/mobile.md +447 -447
  188. package/skills/craft/master-architect/references/patterns.md +451 -451
  189. package/skills/craft/master-architect/references/saas-patterns.md +379 -379
  190. package/skills/craft/master-architect/references/sdlc.md +349 -349
  191. package/skills/craft/master-architect/references/stack-selection.md +117 -117
  192. package/skills/craft/oriro-ui-2026/LICENSE +21 -21
  193. package/skills/craft/oriro-ui-2026/SKILL.md +329 -329
  194. package/skills/craft/playwright-cli/LICENSE +21 -21
  195. package/skills/craft/playwright-cli/SKILL.md +393 -393
  196. package/skills/craft/playwright-cli/references/element-attributes.md +23 -23
  197. package/skills/craft/playwright-cli/references/playwright-tests.md +39 -39
  198. package/skills/craft/playwright-cli/references/request-mocking.md +87 -87
  199. package/skills/craft/playwright-cli/references/running-code.md +240 -240
  200. package/skills/craft/playwright-cli/references/session-management.md +226 -226
  201. package/skills/craft/playwright-cli/references/spec-driven-testing.md +312 -312
  202. package/skills/craft/playwright-cli/references/storage-state.md +275 -275
  203. package/skills/craft/playwright-cli/references/test-generation.md +134 -134
  204. package/skills/craft/playwright-cli/references/tracing.md +142 -142
  205. package/skills/craft/playwright-cli/references/video-recording.md +150 -150
  206. package/skills/craft/remotion-best-practices/LICENSE +21 -21
  207. package/skills/craft/remotion-best-practices/SKILL.md +345 -345
  208. package/skills/craft/remotion-best-practices/rules/3d.md +86 -86
  209. package/skills/craft/remotion-best-practices/rules/assets/charts-bar-chart.tsx +165 -165
  210. package/skills/craft/remotion-best-practices/rules/assets/text-animations-typewriter.tsx +89 -89
  211. package/skills/craft/remotion-best-practices/rules/assets/text-animations-word-highlight.tsx +101 -101
  212. package/skills/craft/remotion-best-practices/rules/audio-visualization.md +195 -195
  213. package/skills/craft/remotion-best-practices/rules/audio.md +167 -167
  214. package/skills/craft/remotion-best-practices/rules/calculate-metadata.md +118 -118
  215. package/skills/craft/remotion-best-practices/rules/compositions.md +132 -132
  216. package/skills/craft/remotion-best-practices/rules/display-captions.md +176 -176
  217. package/skills/craft/remotion-best-practices/rules/ffmpeg.md +34 -34
  218. package/skills/craft/remotion-best-practices/rules/get-audio-duration.md +58 -58
  219. package/skills/craft/remotion-best-practices/rules/get-video-dimensions.md +68 -68
  220. package/skills/craft/remotion-best-practices/rules/get-video-duration.md +60 -60
  221. package/skills/craft/remotion-best-practices/rules/gifs.md +135 -135
  222. package/skills/craft/remotion-best-practices/rules/google-fonts.md +72 -72
  223. package/skills/craft/remotion-best-practices/rules/html-in-canvas.md +122 -122
  224. package/skills/craft/remotion-best-practices/rules/images.md +67 -67
  225. package/skills/craft/remotion-best-practices/rules/import-srt-captions.md +69 -69
  226. package/skills/craft/remotion-best-practices/rules/light-leaks.md +73 -73
  227. package/skills/craft/remotion-best-practices/rules/local-fonts.md +65 -65
  228. package/skills/craft/remotion-best-practices/rules/lottie.md +67 -67
  229. package/skills/craft/remotion-best-practices/rules/maplibre.md +441 -441
  230. package/skills/craft/remotion-best-practices/rules/measuring-dom-nodes.md +34 -34
  231. package/skills/craft/remotion-best-practices/rules/measuring-text.md +140 -140
  232. package/skills/craft/remotion-best-practices/rules/parameters.md +109 -109
  233. package/skills/craft/remotion-best-practices/rules/sequencing.md +144 -144
  234. package/skills/craft/remotion-best-practices/rules/sfx.md +30 -30
  235. package/skills/craft/remotion-best-practices/rules/silence-detection.md +73 -73
  236. package/skills/craft/remotion-best-practices/rules/subtitles.md +36 -36
  237. package/skills/craft/remotion-best-practices/rules/tailwind.md +11 -11
  238. package/skills/craft/remotion-best-practices/rules/text-animations.md +20 -20
  239. package/skills/craft/remotion-best-practices/rules/timing.md +130 -130
  240. package/skills/craft/remotion-best-practices/rules/transcribe-captions.md +70 -70
  241. package/skills/craft/remotion-best-practices/rules/transitions.md +193 -193
  242. package/skills/craft/remotion-best-practices/rules/transparent-videos.md +102 -102
  243. package/skills/craft/remotion-best-practices/rules/trimming.md +51 -51
  244. package/skills/craft/remotion-best-practices/rules/videos.md +169 -169
  245. package/skills/craft/remotion-best-practices/rules/voiceover.md +94 -94
  246. package/skills/craft/supabase-postgres-best-practices/CHANGELOG.md +25 -25
  247. package/skills/craft/supabase-postgres-best-practices/LICENSE +21 -21
  248. package/skills/craft/supabase-postgres-best-practices/SKILL.md +69 -69
  249. package/skills/craft/supabase-postgres-best-practices/references/_contributing.md +166 -166
  250. package/skills/craft/supabase-postgres-best-practices/references/_sections.md +47 -47
  251. package/skills/craft/supabase-postgres-best-practices/references/_template.md +34 -34
  252. package/skills/craft/supabase-postgres-best-practices/references/advanced-full-text-search.md +55 -55
  253. package/skills/craft/supabase-postgres-best-practices/references/advanced-jsonb-indexing.md +49 -49
  254. package/skills/craft/supabase-postgres-best-practices/references/conn-idle-timeout.md +46 -46
  255. package/skills/craft/supabase-postgres-best-practices/references/conn-limits.md +44 -44
  256. package/skills/craft/supabase-postgres-best-practices/references/conn-pooling.md +41 -41
  257. package/skills/craft/supabase-postgres-best-practices/references/conn-prepared-statements.md +46 -46
  258. package/skills/craft/supabase-postgres-best-practices/references/data-batch-inserts.md +54 -54
  259. package/skills/craft/supabase-postgres-best-practices/references/data-n-plus-one.md +53 -53
  260. package/skills/craft/supabase-postgres-best-practices/references/data-pagination.md +50 -50
  261. package/skills/craft/supabase-postgres-best-practices/references/data-upsert.md +50 -50
  262. package/skills/craft/supabase-postgres-best-practices/references/lock-advisory.md +56 -56
  263. package/skills/craft/supabase-postgres-best-practices/references/lock-deadlock-prevention.md +68 -68
  264. package/skills/craft/supabase-postgres-best-practices/references/lock-short-transactions.md +50 -50
  265. package/skills/craft/supabase-postgres-best-practices/references/lock-skip-locked.md +54 -54
  266. package/skills/craft/supabase-postgres-best-practices/references/monitor-explain-analyze.md +45 -45
  267. package/skills/craft/supabase-postgres-best-practices/references/monitor-pg-stat-statements.md +55 -55
  268. package/skills/craft/supabase-postgres-best-practices/references/monitor-vacuum-analyze.md +55 -55
  269. package/skills/craft/supabase-postgres-best-practices/references/query-composite-indexes.md +44 -44
  270. package/skills/craft/supabase-postgres-best-practices/references/query-covering-indexes.md +40 -40
  271. package/skills/craft/supabase-postgres-best-practices/references/query-index-types.md +48 -48
  272. package/skills/craft/supabase-postgres-best-practices/references/query-missing-indexes.md +43 -43
  273. package/skills/craft/supabase-postgres-best-practices/references/query-partial-indexes.md +45 -45
  274. package/skills/craft/supabase-postgres-best-practices/references/schema-constraints.md +80 -80
  275. package/skills/craft/supabase-postgres-best-practices/references/schema-data-types.md +46 -46
  276. package/skills/craft/supabase-postgres-best-practices/references/schema-foreign-key-indexes.md +59 -59
  277. package/skills/craft/supabase-postgres-best-practices/references/schema-lowercase-identifiers.md +55 -55
  278. package/skills/craft/supabase-postgres-best-practices/references/schema-partitioning.md +55 -55
  279. package/skills/craft/supabase-postgres-best-practices/references/schema-primary-keys.md +61 -61
  280. package/skills/craft/supabase-postgres-best-practices/references/security-privileges.md +54 -54
  281. package/skills/craft/supabase-postgres-best-practices/references/security-rls-basics.md +50 -50
  282. package/skills/craft/supabase-postgres-best-practices/references/security-rls-performance.md +63 -63
  283. package/skills/craft/uipm-banner-design/LICENSE +21 -21
  284. package/skills/craft/uipm-banner-design/SKILL.md +201 -201
  285. package/skills/craft/uipm-banner-design/references/banner-sizes-and-styles.md +129 -129
  286. package/skills/craft/uipm-brand/LICENSE +21 -21
  287. package/skills/craft/uipm-brand/SKILL.md +104 -104
  288. package/skills/craft/uipm-brand/references/approval-checklist.md +184 -184
  289. package/skills/craft/uipm-brand/references/asset-organization.md +167 -167
  290. package/skills/craft/uipm-brand/references/brand-guideline-template.md +161 -161
  291. package/skills/craft/uipm-brand/references/color-palette-management.md +203 -203
  292. package/skills/craft/uipm-brand/references/consistency-checklist.md +105 -105
  293. package/skills/craft/uipm-brand/references/logo-usage-rules.md +204 -204
  294. package/skills/craft/uipm-brand/references/messaging-framework.md +91 -91
  295. package/skills/craft/uipm-brand/references/typography-specifications.md +265 -265
  296. package/skills/craft/uipm-brand/references/update.md +128 -128
  297. package/skills/craft/uipm-brand/references/visual-identity.md +109 -109
  298. package/skills/craft/uipm-brand/references/voice-framework.md +99 -99
  299. package/skills/craft/uipm-brand/scripts/extract-colors.cjs +333 -333
  300. package/skills/craft/uipm-brand/scripts/inject-brand-context.cjs +324 -324
  301. package/skills/craft/uipm-brand/scripts/sync-brand-to-tokens.cjs +269 -269
  302. package/skills/craft/uipm-brand/scripts/validate-asset.cjs +361 -361
  303. package/skills/craft/uipm-brand/templates/brand-guidelines-starter.md +280 -280
  304. package/skills/craft/uipm-design/LICENSE +21 -21
  305. package/skills/craft/uipm-design/SKILL.md +305 -305
  306. package/skills/craft/uipm-design/data/cip/deliverables.csv +50 -50
  307. package/skills/craft/uipm-design/data/cip/industries.csv +20 -20
  308. package/skills/craft/uipm-design/data/cip/mockup-contexts.csv +20 -20
  309. package/skills/craft/uipm-design/data/cip/styles.csv +20 -20
  310. package/skills/craft/uipm-design/data/icon/styles.csv +16 -16
  311. package/skills/craft/uipm-design/data/logo/colors.csv +56 -56
  312. package/skills/craft/uipm-design/data/logo/industries.csv +56 -56
  313. package/skills/craft/uipm-design/data/logo/styles.csv +56 -56
  314. package/skills/craft/uipm-design/references/banner-sizes-and-styles.md +129 -129
  315. package/skills/craft/uipm-design/references/cip-deliverable-guide.md +111 -111
  316. package/skills/craft/uipm-design/references/cip-design.md +121 -121
  317. package/skills/craft/uipm-design/references/cip-prompt-engineering.md +94 -94
  318. package/skills/craft/uipm-design/references/cip-style-guide.md +76 -76
  319. package/skills/craft/uipm-design/references/design-routing.md +226 -226
  320. package/skills/craft/uipm-design/references/icon-design.md +122 -122
  321. package/skills/craft/uipm-design/references/logo-color-psychology.md +113 -113
  322. package/skills/craft/uipm-design/references/logo-design.md +92 -92
  323. package/skills/craft/uipm-design/references/logo-prompt-engineering.md +176 -176
  324. package/skills/craft/uipm-design/references/logo-style-guide.md +129 -129
  325. package/skills/craft/uipm-design/references/slides-copywriting-formulas.md +92 -92
  326. package/skills/craft/uipm-design/references/slides-create.md +5 -5
  327. package/skills/craft/uipm-design/references/slides-html-template.md +374 -374
  328. package/skills/craft/uipm-design/references/slides-layout-patterns.md +155 -155
  329. package/skills/craft/uipm-design/references/slides-strategies.md +97 -97
  330. package/skills/craft/uipm-design/references/slides.md +42 -42
  331. package/skills/craft/uipm-design/references/social-photos-design.md +353 -353
  332. package/skills/craft/uipm-design/scripts/cip/core.py +215 -215
  333. package/skills/craft/uipm-design/scripts/cip/generate.py +484 -484
  334. package/skills/craft/uipm-design/scripts/cip/render-html.py +424 -424
  335. package/skills/craft/uipm-design/scripts/cip/search.py +127 -127
  336. package/skills/craft/uipm-design/scripts/icon/generate.py +487 -487
  337. package/skills/craft/uipm-design/scripts/logo/core.py +175 -175
  338. package/skills/craft/uipm-design/scripts/logo/generate.py +362 -362
  339. package/skills/craft/uipm-design/scripts/logo/search.py +114 -114
  340. package/skills/craft/uipm-design-system/LICENSE +21 -21
  341. package/skills/craft/uipm-design-system/SKILL.md +255 -255
  342. package/skills/craft/uipm-design-system/data/slide-backgrounds.csv +11 -11
  343. package/skills/craft/uipm-design-system/data/slide-charts.csv +26 -26
  344. package/skills/craft/uipm-design-system/data/slide-color-logic.csv +14 -14
  345. package/skills/craft/uipm-design-system/data/slide-copy.csv +26 -26
  346. package/skills/craft/uipm-design-system/data/slide-layout-logic.csv +16 -16
  347. package/skills/craft/uipm-design-system/data/slide-layouts.csv +26 -26
  348. package/skills/craft/uipm-design-system/data/slide-strategies.csv +16 -16
  349. package/skills/craft/uipm-design-system/data/slide-typography.csv +15 -15
  350. package/skills/craft/uipm-design-system/references/component-specs.md +236 -236
  351. package/skills/craft/uipm-design-system/references/component-tokens.md +214 -214
  352. package/skills/craft/uipm-design-system/references/primitive-tokens.md +199 -199
  353. package/skills/craft/uipm-design-system/references/semantic-tokens.md +215 -215
  354. package/skills/craft/uipm-design-system/references/states-and-variants.md +243 -243
  355. package/skills/craft/uipm-design-system/references/tailwind-integration.md +257 -257
  356. package/skills/craft/uipm-design-system/references/token-architecture.md +226 -226
  357. package/skills/craft/uipm-design-system/scripts/embed-tokens.cjs +97 -97
  358. package/skills/craft/uipm-design-system/scripts/fetch-background.py +317 -317
  359. package/skills/craft/uipm-design-system/scripts/generate-slide.py +753 -753
  360. package/skills/craft/uipm-design-system/scripts/generate-tokens.cjs +213 -213
  361. package/skills/craft/uipm-design-system/scripts/html-token-validator.py +327 -327
  362. package/skills/craft/uipm-design-system/scripts/search-slides.py +218 -218
  363. package/skills/craft/uipm-design-system/scripts/slide-token-validator.py +35 -35
  364. package/skills/craft/uipm-design-system/scripts/slide_search_core.py +453 -453
  365. package/skills/craft/uipm-design-system/scripts/validate-tokens.cjs +254 -254
  366. package/skills/craft/uipm-design-system/templates/design-tokens-starter.json +143 -143
  367. package/skills/craft/uipm-slides/LICENSE +21 -21
  368. package/skills/craft/uipm-slides/SKILL.md +45 -45
  369. package/skills/craft/uipm-slides/references/copywriting-formulas.md +92 -92
  370. package/skills/craft/uipm-slides/references/create.md +5 -5
  371. package/skills/craft/uipm-slides/references/html-template.md +374 -374
  372. package/skills/craft/uipm-slides/references/layout-patterns.md +155 -155
  373. package/skills/craft/uipm-slides/references/slide-strategies.md +97 -97
  374. package/skills/craft/uipm-ui-ux-pro-max/LICENSE +21 -21
  375. package/skills/craft/uipm-ui-ux-pro-max/SKILL.md +678 -678
  376. package/skills/craft/uipm-ui-ux-pro-max/data/_sync_all.py +414 -414
  377. package/skills/craft/uipm-ui-ux-pro-max/data/app-interface.csv +30 -30
  378. package/skills/craft/uipm-ui-ux-pro-max/data/charts.csv +26 -26
  379. package/skills/craft/uipm-ui-ux-pro-max/data/colors.csv +161 -161
  380. package/skills/craft/uipm-ui-ux-pro-max/data/design.csv +1775 -1775
  381. package/skills/craft/uipm-ui-ux-pro-max/data/draft.csv +1778 -1778
  382. package/skills/craft/uipm-ui-ux-pro-max/data/google-fonts.csv +1924 -1924
  383. package/skills/craft/uipm-ui-ux-pro-max/data/icons.csv +105 -105
  384. package/skills/craft/uipm-ui-ux-pro-max/data/landing.csv +35 -35
  385. package/skills/craft/uipm-ui-ux-pro-max/data/products.csv +162 -162
  386. package/skills/craft/uipm-ui-ux-pro-max/data/react-performance.csv +45 -45
  387. package/skills/craft/uipm-ui-ux-pro-max/data/stacks/angular.csv +51 -51
  388. package/skills/craft/uipm-ui-ux-pro-max/data/stacks/astro.csv +54 -54
  389. package/skills/craft/uipm-ui-ux-pro-max/data/stacks/flutter.csv +53 -53
  390. package/skills/craft/uipm-ui-ux-pro-max/data/stacks/html-tailwind.csv +56 -56
  391. package/skills/craft/uipm-ui-ux-pro-max/data/stacks/jetpack-compose.csv +53 -53
  392. package/skills/craft/uipm-ui-ux-pro-max/data/stacks/laravel.csv +51 -51
  393. package/skills/craft/uipm-ui-ux-pro-max/data/stacks/nextjs.csv +53 -53
  394. package/skills/craft/uipm-ui-ux-pro-max/data/stacks/nuxt-ui.csv +51 -51
  395. package/skills/craft/uipm-ui-ux-pro-max/data/stacks/nuxtjs.csv +59 -59
  396. package/skills/craft/uipm-ui-ux-pro-max/data/stacks/react-native.csv +52 -52
  397. package/skills/craft/uipm-ui-ux-pro-max/data/stacks/react.csv +54 -54
  398. package/skills/craft/uipm-ui-ux-pro-max/data/stacks/shadcn.csv +61 -61
  399. package/skills/craft/uipm-ui-ux-pro-max/data/stacks/svelte.csv +54 -54
  400. package/skills/craft/uipm-ui-ux-pro-max/data/stacks/swiftui.csv +51 -51
  401. package/skills/craft/uipm-ui-ux-pro-max/data/stacks/threejs.csv +54 -54
  402. package/skills/craft/uipm-ui-ux-pro-max/data/stacks/vue.csv +50 -50
  403. package/skills/craft/uipm-ui-ux-pro-max/data/styles.csv +85 -85
  404. package/skills/craft/uipm-ui-ux-pro-max/data/typography.csv +74 -74
  405. package/skills/craft/uipm-ui-ux-pro-max/data/ui-reasoning.csv +162 -162
  406. package/skills/craft/uipm-ui-ux-pro-max/data/ux-guidelines.csv +99 -99
  407. package/skills/craft/uipm-ui-ux-pro-max/scripts/core.py +262 -262
  408. package/skills/craft/uipm-ui-ux-pro-max/scripts/design_system.py +1148 -1148
  409. package/skills/craft/uipm-ui-ux-pro-max/scripts/search.py +114 -114
  410. package/skills/craft/uipm-ui-ux-pro-max/templates/base/quick-reference.md +297 -297
  411. package/skills/craft/uipm-ui-ux-pro-max/templates/base/skill-content.md +375 -375
  412. package/skills/craft/uipm-ui-ux-pro-max/templates/platforms/agent.json +21 -21
  413. package/skills/craft/uipm-ui-ux-pro-max/templates/platforms/augment.json +18 -18
  414. package/skills/craft/uipm-ui-ux-pro-max/templates/platforms/claude.json +21 -21
  415. package/skills/craft/uipm-ui-ux-pro-max/templates/platforms/codebuddy.json +21 -21
  416. package/skills/craft/uipm-ui-ux-pro-max/templates/platforms/codex.json +21 -21
  417. package/skills/craft/uipm-ui-ux-pro-max/templates/platforms/continue.json +21 -21
  418. package/skills/craft/uipm-ui-ux-pro-max/templates/platforms/copilot.json +21 -21
  419. package/skills/craft/uipm-ui-ux-pro-max/templates/platforms/cursor.json +21 -21
  420. package/skills/craft/uipm-ui-ux-pro-max/templates/platforms/droid.json +21 -21
  421. package/skills/craft/uipm-ui-ux-pro-max/templates/platforms/gemini.json +21 -21
  422. package/skills/craft/uipm-ui-ux-pro-max/templates/platforms/kilocode.json +21 -21
  423. package/skills/craft/uipm-ui-ux-pro-max/templates/platforms/kiro.json +21 -21
  424. package/skills/craft/uipm-ui-ux-pro-max/templates/platforms/opencode.json +21 -21
  425. package/skills/craft/uipm-ui-ux-pro-max/templates/platforms/qoder.json +21 -21
  426. package/skills/craft/uipm-ui-ux-pro-max/templates/platforms/roocode.json +21 -21
  427. package/skills/craft/uipm-ui-ux-pro-max/templates/platforms/trae.json +21 -21
  428. package/skills/craft/uipm-ui-ux-pro-max/templates/platforms/warp.json +18 -18
  429. package/skills/craft/uipm-ui-ux-pro-max/templates/platforms/windsurf.json +21 -21
  430. package/skills/craft/vercel-optimize/AGENTS.md +48 -48
  431. package/skills/craft/vercel-optimize/CONTRIBUTING.md +41 -41
  432. package/skills/craft/vercel-optimize/LICENSE +21 -21
  433. package/skills/craft/vercel-optimize/README.md +91 -91
  434. package/skills/craft/vercel-optimize/SKILL.md +325 -325
  435. package/skills/craft/vercel-optimize/lib/auth-route.mjs +23 -23
  436. package/skills/craft/vercel-optimize/lib/budget-summary.mjs +208 -208
  437. package/skills/craft/vercel-optimize/lib/citations.mjs +147 -147
  438. package/skills/craft/vercel-optimize/lib/cost-coverage.mjs +162 -162
  439. package/skills/craft/vercel-optimize/lib/dedup-recs.mjs +340 -340
  440. package/skills/craft/vercel-optimize/lib/deep-dive.mjs +371 -371
  441. package/skills/craft/vercel-optimize/lib/display-labels.mjs +219 -219
  442. package/skills/craft/vercel-optimize/lib/extract-claims.mjs +640 -640
  443. package/skills/craft/vercel-optimize/lib/framework-support.mjs +69 -69
  444. package/skills/craft/vercel-optimize/lib/gates/build-minutes-fanout.mjs +73 -73
  445. package/skills/craft/vercel-optimize/lib/gates/cold-start.mjs +72 -72
  446. package/skills/craft/vercel-optimize/lib/gates/contract.mjs +82 -82
  447. package/skills/craft/vercel-optimize/lib/gates/cwv-poor.mjs +95 -95
  448. package/skills/craft/vercel-optimize/lib/gates/external-api-slow.mjs +60 -60
  449. package/skills/craft/vercel-optimize/lib/gates/hard-gates.mjs +70 -70
  450. package/skills/craft/vercel-optimize/lib/gates/index.mjs +45 -45
  451. package/skills/craft/vercel-optimize/lib/gates/isr-overrevalidation.mjs +62 -62
  452. package/skills/craft/vercel-optimize/lib/gates/middleware-heavy.mjs +53 -53
  453. package/skills/craft/vercel-optimize/lib/gates/observability-events-attribution.mjs +58 -58
  454. package/skills/craft/vercel-optimize/lib/gates/platform-bot-protection.mjs +123 -123
  455. package/skills/craft/vercel-optimize/lib/gates/platform-fluid-compute.mjs +94 -94
  456. package/skills/craft/vercel-optimize/lib/gates/region-misconfig.mjs +71 -71
  457. package/skills/craft/vercel-optimize/lib/gates/route-errors.mjs +95 -95
  458. package/skills/craft/vercel-optimize/lib/gates/scanner-driven.mjs +150 -150
  459. package/skills/craft/vercel-optimize/lib/gates/select-candidates.mjs +137 -137
  460. package/skills/craft/vercel-optimize/lib/gates/slow-route.mjs +97 -97
  461. package/skills/craft/vercel-optimize/lib/gates/types.d.ts +38 -38
  462. package/skills/craft/vercel-optimize/lib/gates/uncached-route.mjs +103 -103
  463. package/skills/craft/vercel-optimize/lib/gates/usage-spike-triage.mjs +122 -122
  464. package/skills/craft/vercel-optimize/lib/grade-recommendation.mjs +170 -170
  465. package/skills/craft/vercel-optimize/lib/impact-label.mjs +128 -128
  466. package/skills/craft/vercel-optimize/lib/impact-magnitude.mjs +66 -66
  467. package/skills/craft/vercel-optimize/lib/investigation-brief.mjs +751 -751
  468. package/skills/craft/vercel-optimize/lib/observation-safety.mjs +217 -217
  469. package/skills/craft/vercel-optimize/lib/project-facts.mjs +101 -101
  470. package/skills/craft/vercel-optimize/lib/queries.mjs +333 -333
  471. package/skills/craft/vercel-optimize/lib/reconcile-candidates.mjs +388 -388
  472. package/skills/craft/vercel-optimize/lib/render-report.mjs +1065 -1065
  473. package/skills/craft/vercel-optimize/lib/repo-root.mjs +97 -97
  474. package/skills/craft/vercel-optimize/lib/route-normalize.mjs +224 -224
  475. package/skills/craft/vercel-optimize/lib/sanitizers/bot-protection-certainty.mjs +56 -56
  476. package/skills/craft/vercel-optimize/lib/sanitizers/cache-tag-invalidation-certainty.mjs +33 -33
  477. package/skills/craft/vercel-optimize/lib/sanitizers/count-correct.mjs +53 -53
  478. package/skills/craft/vercel-optimize/lib/sanitizers/function-duration-invocations.mjs +32 -32
  479. package/skills/craft/vercel-optimize/lib/sanitizers/index.mjs +87 -87
  480. package/skills/craft/vercel-optimize/lib/sanitizers/middleware-conflict.mjs +37 -37
  481. package/skills/craft/vercel-optimize/lib/sanitizers/missing-citation.mjs +16 -16
  482. package/skills/craft/vercel-optimize/lib/sanitizers/pre-release.mjs +75 -75
  483. package/skills/craft/vercel-optimize/lib/sanitizers/rate-limit.mjs +73 -73
  484. package/skills/craft/vercel-optimize/lib/sanitizers/rendering-mode-mislabel.mjs +42 -42
  485. package/skills/craft/vercel-optimize/lib/sanitizers/undeclared-dep.mjs +110 -110
  486. package/skills/craft/vercel-optimize/lib/sanitizers/vercel-directive-strip.mjs +37 -37
  487. package/skills/craft/vercel-optimize/lib/sanitizers/window-units.mjs +26 -26
  488. package/skills/craft/vercel-optimize/lib/scanners/cache-components-suspense-dedupe.mjs +114 -114
  489. package/skills/craft/vercel-optimize/lib/scanners/edge-heavy-import.mjs +102 -102
  490. package/skills/craft/vercel-optimize/lib/scanners/force-dynamic.mjs +39 -39
  491. package/skills/craft/vercel-optimize/lib/scanners/headers-in-page.mjs +43 -43
  492. package/skills/craft/vercel-optimize/lib/scanners/index.mjs +35 -35
  493. package/skills/craft/vercel-optimize/lib/scanners/large-static-asset.mjs +93 -93
  494. package/skills/craft/vercel-optimize/lib/scanners/max-age-without-s-maxage.mjs +47 -47
  495. package/skills/craft/vercel-optimize/lib/scanners/middleware-broad-matcher.mjs +53 -53
  496. package/skills/craft/vercel-optimize/lib/scanners/missing-cache-headers.mjs +97 -97
  497. package/skills/craft/vercel-optimize/lib/scanners/prisma-include-tree.mjs +39 -39
  498. package/skills/craft/vercel-optimize/lib/scanners/region-pin-in-config.mjs +89 -89
  499. package/skills/craft/vercel-optimize/lib/scanners/source-maps-production.mjs +33 -33
  500. package/skills/craft/vercel-optimize/lib/scanners/sveltekit-prerender-missing.mjs +47 -47
  501. package/skills/craft/vercel-optimize/lib/scanners/turbo-force-bypass.mjs +136 -136
  502. package/skills/craft/vercel-optimize/lib/scanners/unoptimized-image.mjs +127 -127
  503. package/skills/craft/vercel-optimize/lib/scanners/use-cache-date-stamp.mjs +112 -112
  504. package/skills/craft/vercel-optimize/lib/support-topics.mjs +365 -365
  505. package/skills/craft/vercel-optimize/lib/throttle.mjs +280 -280
  506. package/skills/craft/vercel-optimize/lib/util.mjs +17 -17
  507. package/skills/craft/vercel-optimize/lib/vercel.mjs +855 -855
  508. package/skills/craft/vercel-optimize/lib/verify-claim.mjs +1843 -1843
  509. package/skills/craft/vercel-optimize/lib/workspace-resolver.mjs +552 -552
  510. package/skills/craft/vercel-optimize/metadata.json +14 -14
  511. package/skills/craft/vercel-optimize/references/candidates.md +176 -176
  512. package/skills/craft/vercel-optimize/references/data-collection.md +224 -224
  513. package/skills/craft/vercel-optimize/references/docs-library.json +683 -683
  514. package/skills/craft/vercel-optimize/references/doctrine.md +108 -108
  515. package/skills/craft/vercel-optimize/references/observability-plus.md +109 -109
  516. package/skills/craft/vercel-optimize/references/playbooks/README.md +57 -57
  517. package/skills/craft/vercel-optimize/references/playbooks/ai-application.md +32 -32
  518. package/skills/craft/vercel-optimize/references/playbooks/api-service.md +30 -30
  519. package/skills/craft/vercel-optimize/references/playbooks/content-site.md +30 -30
  520. package/skills/craft/vercel-optimize/references/playbooks/ecommerce.md +30 -30
  521. package/skills/craft/vercel-optimize/references/playbooks/marketing.md +30 -30
  522. package/skills/craft/vercel-optimize/references/playbooks/saas.md +31 -31
  523. package/skills/craft/vercel-optimize/references/playbooks/sveltekit.md +75 -75
  524. package/skills/craft/vercel-optimize/references/recommendations.md +214 -214
  525. package/skills/craft/vercel-optimize/references/scanner-patterns.md +266 -266
  526. package/skills/craft/vercel-optimize/references/scoring.md +208 -208
  527. package/skills/craft/vercel-optimize/references/support-topics/README.md +50 -50
  528. package/skills/craft/vercel-optimize/references/support-topics/astro-edge-middleware-scope.md +30 -30
  529. package/skills/craft/vercel-optimize/references/support-topics/astro-output-mode-and-isr.md +31 -31
  530. package/skills/craft/vercel-optimize/references/support-topics/auth-preserving-parallelization.md +30 -30
  531. package/skills/craft/vercel-optimize/references/support-topics/bot-protection-product-guardrails.md +32 -32
  532. package/skills/craft/vercel-optimize/references/support-topics/build-minutes-monorepo-fanout.md +32 -32
  533. package/skills/craft/vercel-optimize/references/support-topics/cache-components-static-shell-boundaries.md +31 -31
  534. package/skills/craft/vercel-optimize/references/support-topics/cache-components-suspense-dedupe-pitfall.md +32 -32
  535. package/skills/craft/vercel-optimize/references/support-topics/cdn-cache-auth-safety.md +31 -31
  536. package/skills/craft/vercel-optimize/references/support-topics/cold-start-initialization-bundle.md +31 -31
  537. package/skills/craft/vercel-optimize/references/support-topics/core-web-vitals-client-bottlenecks.md +33 -33
  538. package/skills/craft/vercel-optimize/references/support-topics/database-egress-pooling-region.md +32 -32
  539. package/skills/craft/vercel-optimize/references/support-topics/dynamic-rendering-traps.md +31 -31
  540. package/skills/craft/vercel-optimize/references/support-topics/external-api-critical-path-platform.md +31 -31
  541. package/skills/craft/vercel-optimize/references/support-topics/external-api-critical-path.md +31 -31
  542. package/skills/craft/vercel-optimize/references/support-topics/fast-data-transfer-payloads.md +26 -26
  543. package/skills/craft/vercel-optimize/references/support-topics/fluid-compute-caveats.md +26 -26
  544. package/skills/craft/vercel-optimize/references/support-topics/function-duration-io-and-after.md +31 -31
  545. package/skills/craft/vercel-optimize/references/support-topics/function-invocation-reduction.md +31 -31
  546. package/skills/craft/vercel-optimize/references/support-topics/function-region-misconfiguration-ttfb.md +31 -31
  547. package/skills/craft/vercel-optimize/references/support-topics/image-optimization-cost-control.md +31 -31
  548. package/skills/craft/vercel-optimize/references/support-topics/isr-revalidation-static-generation.md +31 -31
  549. package/skills/craft/vercel-optimize/references/support-topics/middleware-proxy-edge-cost.md +30 -30
  550. package/skills/craft/vercel-optimize/references/support-topics/next-fetch-revalidate-floor.md +30 -30
  551. package/skills/craft/vercel-optimize/references/support-topics/next-font-cls-self-hosting.md +31 -31
  552. package/skills/craft/vercel-optimize/references/support-topics/next-heavy-ui-lazy-load-boundaries.md +28 -28
  553. package/skills/craft/vercel-optimize/references/support-topics/next-image-lcp-preload-sizes.md +31 -31
  554. package/skills/craft/vercel-optimize/references/support-topics/next-route-handler-get-cache-defaults.md +30 -30
  555. package/skills/craft/vercel-optimize/references/support-topics/next-script-third-party-strategy.md +31 -31
  556. package/skills/craft/vercel-optimize/references/support-topics/nextjs-version-cache-semantics.md +31 -31
  557. package/skills/craft/vercel-optimize/references/support-topics/not-found-catchall-request-waste.md +33 -33
  558. package/skills/craft/vercel-optimize/references/support-topics/nuxt-route-rules-cache-isr.md +31 -31
  559. package/skills/craft/vercel-optimize/references/support-topics/observability-events-cost-attribution.md +27 -27
  560. package/skills/craft/vercel-optimize/references/support-topics/post-response-work-waituntil.md +26 -26
  561. package/skills/craft/vercel-optimize/references/support-topics/route-error-durable-offload.md +33 -33
  562. package/skills/craft/vercel-optimize/references/support-topics/route-error-runtime-limits.md +31 -31
  563. package/skills/craft/vercel-optimize/references/support-topics/runtime-cache-reusable-data.md +30 -30
  564. package/skills/craft/vercel-optimize/references/support-topics/sveltekit-isr-prerender-safety.md +31 -31
  565. package/skills/craft/vercel-optimize/references/support-topics/sveltekit-split-cold-start-tradeoff.md +30 -30
  566. package/skills/craft/vercel-optimize/references/support-topics/usage-spike-triage.md +31 -31
  567. package/skills/craft/vercel-optimize/references/support-topics/use-cache-date-stamp-isr-write-amplifier.md +31 -31
  568. package/skills/craft/vercel-optimize/references/support-topics/use-cache-remote-shared-origin-data.md +30 -30
  569. package/skills/craft/vercel-optimize/references/support-topics/workflow-resumable-stream-routes.md +32 -32
  570. package/skills/craft/vercel-optimize/references/verification.md +102 -102
  571. package/skills/craft/vercel-optimize/references/voice.md +76 -76
  572. package/skills/craft/vercel-optimize/scripts/budget-summary.mjs +58 -58
  573. package/skills/craft/vercel-optimize/scripts/build-docs.mjs +76 -76
  574. package/skills/craft/vercel-optimize/scripts/check-citations.mjs +91 -91
  575. package/skills/craft/vercel-optimize/scripts/check-docs-fresh.mjs +100 -100
  576. package/skills/craft/vercel-optimize/scripts/collect-signals.mjs +638 -638
  577. package/skills/craft/vercel-optimize/scripts/collect-sub-agent-outputs.mjs +306 -306
  578. package/skills/craft/vercel-optimize/scripts/deep-dive.mjs +358 -358
  579. package/skills/craft/vercel-optimize/scripts/gate-investigations.mjs +178 -178
  580. package/skills/craft/vercel-optimize/scripts/merge-signals.mjs +203 -203
  581. package/skills/craft/vercel-optimize/scripts/prepare-investigation-brief.mjs +249 -249
  582. package/skills/craft/vercel-optimize/scripts/reconcile-candidates.mjs +69 -69
  583. package/skills/craft/vercel-optimize/scripts/render-report.mjs +462 -462
  584. package/skills/craft/vercel-optimize/scripts/scan-codebase.mjs +361 -361
  585. package/skills/craft/vercel-optimize/scripts/verify-and-regen.mjs +379 -379
  586. package/skills/craft/vercel-optimize/scripts/verify-finding.mjs +21 -21
  587. package/skills/craft/web-design-guidelines/LICENSE +21 -21
  588. package/skills/craft/web-design-guidelines/SKILL.md +43 -43
  589. package/skills/craft/zero-to-live/LICENSE +21 -21
  590. package/skills/craft/zero-to-live/SKILL.md +422 -422
  591. package/skills/creative/creative-3d-modeling/LICENSE +21 -21
  592. package/skills/creative/creative-3d-modeling/SKILL.md +70 -70
  593. package/skills/creative/creative-architecture/LICENSE +21 -21
  594. package/skills/creative/creative-architecture/SKILL.md +94 -94
  595. package/skills/creative/creative-design-principles/LICENSE +21 -21
  596. package/skills/creative/creative-design-principles/SKILL.md +95 -95
  597. package/skills/creative/creative-fashion-advanced/LICENSE +21 -21
  598. package/skills/creative/creative-fashion-advanced/SKILL.md +68 -68
  599. package/skills/creative/creative-fashion-design/LICENSE +21 -21
  600. package/skills/creative/creative-fashion-design/SKILL.md +66 -66
  601. package/skills/creative/creative-game-design/LICENSE +21 -21
  602. package/skills/creative/creative-game-design/SKILL.md +77 -77
  603. package/skills/creative/creative-industrial-design/LICENSE +21 -21
  604. package/skills/creative/creative-industrial-design/SKILL.md +57 -57
  605. package/skills/creative/creative-interior-design/LICENSE +21 -21
  606. package/skills/creative/creative-interior-design/SKILL.md +59 -59
  607. package/skills/creative/creative-music-theory/LICENSE +21 -21
  608. package/skills/creative/creative-music-theory/SKILL.md +98 -98
  609. package/skills/creative/creative-photography/LICENSE +21 -21
  610. package/skills/creative/creative-photography/SKILL.md +87 -87
  611. package/skills/creative/creative-textile-science/LICENSE +21 -21
  612. package/skills/creative/creative-textile-science/SKILL.md +67 -67
  613. package/skills/creative/creative-ux/LICENSE +21 -21
  614. package/skills/creative/creative-ux/SKILL.md +81 -81
  615. package/skills/creative/creative-video/LICENSE +21 -21
  616. package/skills/creative/creative-video/SKILL.md +84 -84
  617. package/skills/creative/creative-writing-craft/LICENSE +21 -21
  618. package/skills/creative/creative-writing-craft/SKILL.md +91 -91
  619. package/skills/diagram-maker/SKILL.md +56 -56
  620. package/skills/diagram-maker/references/excalidraw-patterns.md +85 -85
  621. package/skills/diagram-maker/references/svg-template.md +112 -112
  622. package/skills/discord/SKILL.md +140 -140
  623. package/skills/education/edu-adult-learning/LICENSE +21 -21
  624. package/skills/education/edu-adult-learning/SKILL.md +81 -81
  625. package/skills/education/edu-africa-multilingual/LICENSE +21 -21
  626. package/skills/education/edu-africa-multilingual/SKILL.md +55 -55
  627. package/skills/education/edu-arabic/LICENSE +21 -21
  628. package/skills/education/edu-arabic/SKILL.md +60 -60
  629. package/skills/education/edu-australia-nz/LICENSE +21 -21
  630. package/skills/education/edu-australia-nz/SKILL.md +48 -48
  631. package/skills/education/edu-china-mandarin/LICENSE +21 -21
  632. package/skills/education/edu-china-mandarin/SKILL.md +58 -58
  633. package/skills/education/edu-critical-thinking/LICENSE +21 -21
  634. package/skills/education/edu-critical-thinking/SKILL.md +86 -86
  635. package/skills/education/edu-curriculum/LICENSE +21 -21
  636. package/skills/education/edu-curriculum/SKILL.md +87 -87
  637. package/skills/education/edu-ed-tech/LICENSE +21 -21
  638. package/skills/education/edu-ed-tech/SKILL.md +73 -73
  639. package/skills/education/edu-france/LICENSE +21 -21
  640. package/skills/education/edu-france/SKILL.md +42 -42
  641. package/skills/education/edu-germany/LICENSE +21 -21
  642. package/skills/education/edu-germany/SKILL.md +46 -46
  643. package/skills/education/edu-india-competitive/LICENSE +21 -21
  644. package/skills/education/edu-india-competitive/SKILL.md +159 -159
  645. package/skills/education/edu-india-east/LICENSE +21 -21
  646. package/skills/education/edu-india-east/SKILL.md +60 -60
  647. package/skills/education/edu-india-hindi/LICENSE +21 -21
  648. package/skills/education/edu-india-hindi/SKILL.md +107 -107
  649. package/skills/education/edu-india-south/LICENSE +21 -21
  650. package/skills/education/edu-india-south/SKILL.md +64 -64
  651. package/skills/education/edu-india-west/LICENSE +21 -21
  652. package/skills/education/edu-india-west/SKILL.md +68 -68
  653. package/skills/education/edu-indonesia-malay/LICENSE +21 -21
  654. package/skills/education/edu-indonesia-malay/SKILL.md +57 -57
  655. package/skills/education/edu-international-ib/LICENSE +21 -21
  656. package/skills/education/edu-international-ib/SKILL.md +61 -61
  657. package/skills/education/edu-japan/LICENSE +21 -21
  658. package/skills/education/edu-japan/SKILL.md +48 -48
  659. package/skills/education/edu-korea/LICENSE +21 -21
  660. package/skills/education/edu-korea/SKILL.md +48 -48
  661. package/skills/education/edu-learning-science/LICENSE +21 -21
  662. package/skills/education/edu-learning-science/SKILL.md +76 -76
  663. package/skills/education/edu-portuguese-brazil/LICENSE +21 -21
  664. package/skills/education/edu-portuguese-brazil/SKILL.md +51 -51
  665. package/skills/education/edu-russia/LICENSE +21 -21
  666. package/skills/education/edu-russia/SKILL.md +50 -50
  667. package/skills/education/edu-spain-latam/LICENSE +21 -21
  668. package/skills/education/edu-spain-latam/SKILL.md +55 -55
  669. package/skills/education/edu-special/LICENSE +21 -21
  670. package/skills/education/edu-special/SKILL.md +76 -76
  671. package/skills/education/edu-thailand/LICENSE +21 -21
  672. package/skills/education/edu-thailand/SKILL.md +55 -55
  673. package/skills/education/edu-turkey/LICENSE +21 -21
  674. package/skills/education/edu-turkey/SKILL.md +58 -58
  675. package/skills/education/edu-uk-gcse-alevel/LICENSE +21 -21
  676. package/skills/education/edu-uk-gcse-alevel/SKILL.md +51 -51
  677. package/skills/education/edu-usa-graduate/LICENSE +21 -21
  678. package/skills/education/edu-usa-graduate/SKILL.md +57 -57
  679. package/skills/education/edu-usa-sat-act/LICENSE +21 -21
  680. package/skills/education/edu-usa-sat-act/SKILL.md +55 -55
  681. package/skills/education/edu-vietnam/LICENSE +21 -21
  682. package/skills/education/edu-vietnam/SKILL.md +53 -53
  683. package/skills/eightctl/SKILL.md +54 -54
  684. package/skills/engineering/eng-aerospace/LICENSE +21 -21
  685. package/skills/engineering/eng-aerospace/SKILL.md +117 -117
  686. package/skills/engineering/eng-chemical/LICENSE +21 -21
  687. package/skills/engineering/eng-chemical/SKILL.md +63 -63
  688. package/skills/engineering/eng-civil/LICENSE +21 -21
  689. package/skills/engineering/eng-civil/SKILL.md +223 -223
  690. package/skills/engineering/eng-control-systems/LICENSE +21 -21
  691. package/skills/engineering/eng-control-systems/SKILL.md +158 -158
  692. package/skills/engineering/eng-cryogenics/LICENSE +21 -21
  693. package/skills/engineering/eng-cryogenics/SKILL.md +151 -151
  694. package/skills/engineering/eng-electrical/LICENSE +21 -21
  695. package/skills/engineering/eng-electrical/SKILL.md +70 -70
  696. package/skills/engineering/eng-electronics-embedded/LICENSE +21 -21
  697. package/skills/engineering/eng-electronics-embedded/SKILL.md +89 -89
  698. package/skills/engineering/eng-environmental/LICENSE +21 -21
  699. package/skills/engineering/eng-environmental/SKILL.md +66 -66
  700. package/skills/engineering/eng-manufacturing/LICENSE +21 -21
  701. package/skills/engineering/eng-manufacturing/SKILL.md +78 -78
  702. package/skills/engineering/eng-mechanical/LICENSE +21 -21
  703. package/skills/engineering/eng-mechanical/SKILL.md +66 -66
  704. package/skills/engineering/eng-project/LICENSE +21 -21
  705. package/skills/engineering/eng-project/SKILL.md +72 -72
  706. package/skills/engineering/eng-propulsion/LICENSE +21 -21
  707. package/skills/engineering/eng-propulsion/SKILL.md +133 -133
  708. package/skills/engineering/eng-robotics/LICENSE +21 -21
  709. package/skills/engineering/eng-robotics/SKILL.md +92 -92
  710. package/skills/engineering/eng-systems/LICENSE +21 -21
  711. package/skills/engineering/eng-systems/SKILL.md +81 -81
  712. package/skills/environment/env-biodiversity/LICENSE +21 -21
  713. package/skills/environment/env-biodiversity/SKILL.md +66 -66
  714. package/skills/environment/env-circular-economy/LICENSE +21 -21
  715. package/skills/environment/env-circular-economy/SKILL.md +71 -71
  716. package/skills/environment/env-climate-action/LICENSE +21 -21
  717. package/skills/environment/env-climate-action/SKILL.md +55 -55
  718. package/skills/environment/env-energy/LICENSE +21 -21
  719. package/skills/environment/env-energy/SKILL.md +83 -83
  720. package/skills/environment/env-sustainability-biz/LICENSE +21 -21
  721. package/skills/environment/env-sustainability-biz/SKILL.md +65 -65
  722. package/skills/environment/env-water/LICENSE +21 -21
  723. package/skills/environment/env-water/SKILL.md +67 -67
  724. package/skills/finance/finance-accounting/LICENSE +21 -21
  725. package/skills/finance/finance-accounting/SKILL.md +239 -239
  726. package/skills/finance/finance-banking/LICENSE +21 -21
  727. package/skills/finance/finance-banking/SKILL.md +54 -54
  728. package/skills/finance/finance-corporate/LICENSE +21 -21
  729. package/skills/finance/finance-corporate/SKILL.md +105 -105
  730. package/skills/finance/finance-crypto/LICENSE +21 -21
  731. package/skills/finance/finance-crypto/SKILL.md +94 -94
  732. package/skills/finance/finance-debt-management/LICENSE +21 -21
  733. package/skills/finance/finance-debt-management/SKILL.md +87 -87
  734. package/skills/finance/finance-insurance/LICENSE +21 -21
  735. package/skills/finance/finance-insurance/SKILL.md +91 -91
  736. package/skills/finance/finance-investing/LICENSE +21 -21
  737. package/skills/finance/finance-investing/SKILL.md +269 -269
  738. package/skills/finance/finance-options-derivatives/LICENSE +21 -21
  739. package/skills/finance/finance-options-derivatives/SKILL.md +68 -68
  740. package/skills/finance/finance-personal/LICENSE +21 -21
  741. package/skills/finance/finance-personal/SKILL.md +268 -268
  742. package/skills/finance/finance-real-estate/LICENSE +21 -21
  743. package/skills/finance/finance-real-estate/SKILL.md +110 -110
  744. package/skills/finance/finance-startup/LICENSE +21 -21
  745. package/skills/finance/finance-startup/SKILL.md +253 -253
  746. package/skills/finance/finance-tax-planning/LICENSE +21 -21
  747. package/skills/finance/finance-tax-planning/SKILL.md +89 -89
  748. package/skills/finance/finance-trading/LICENSE +21 -21
  749. package/skills/finance/finance-trading/SKILL.md +112 -112
  750. package/skills/gemini/SKILL.md +51 -51
  751. package/skills/gh-issues/SKILL.md +216 -216
  752. package/skills/gifgrep/SKILL.md +89 -89
  753. package/skills/github/SKILL.md +87 -87
  754. package/skills/gog/SKILL.md +120 -120
  755. package/skills/goplaces/SKILL.md +56 -56
  756. package/skills/health/health-aging/LICENSE +21 -21
  757. package/skills/health/health-aging/SKILL.md +82 -82
  758. package/skills/health/health-chronic/LICENSE +21 -21
  759. package/skills/health/health-chronic/SKILL.md +202 -202
  760. package/skills/health/health-dental/LICENSE +21 -21
  761. package/skills/health/health-dental/SKILL.md +41 -41
  762. package/skills/health/health-eye-care/LICENSE +21 -21
  763. package/skills/health/health-eye-care/SKILL.md +56 -56
  764. package/skills/health/health-first-aid/LICENSE +21 -21
  765. package/skills/health/health-first-aid/SKILL.md +201 -201
  766. package/skills/health/health-fitness/LICENSE +21 -21
  767. package/skills/health/health-fitness/SKILL.md +111 -111
  768. package/skills/health/health-general/LICENSE +21 -21
  769. package/skills/health/health-general/SKILL.md +277 -277
  770. package/skills/health/health-mens/LICENSE +21 -21
  771. package/skills/health/health-mens/SKILL.md +53 -53
  772. package/skills/health/health-mental/LICENSE +21 -21
  773. package/skills/health/health-mental/SKILL.md +221 -221
  774. package/skills/health/health-naturopathy-ayurveda/LICENSE +21 -21
  775. package/skills/health/health-naturopathy-ayurveda/SKILL.md +60 -60
  776. package/skills/health/health-nutrition/LICENSE +21 -21
  777. package/skills/health/health-nutrition/SKILL.md +262 -262
  778. package/skills/health/health-pediatric/LICENSE +21 -21
  779. package/skills/health/health-pediatric/SKILL.md +94 -94
  780. package/skills/health/health-pharmacology/LICENSE +21 -21
  781. package/skills/health/health-pharmacology/SKILL.md +87 -87
  782. package/skills/health/health-pregnancy/LICENSE +21 -21
  783. package/skills/health/health-pregnancy/SKILL.md +71 -71
  784. package/skills/health/health-skin/LICENSE +21 -21
  785. package/skills/health/health-skin/SKILL.md +71 -71
  786. package/skills/health/health-sleep/LICENSE +21 -21
  787. package/skills/health/health-sleep/SKILL.md +81 -81
  788. package/skills/health/health-womens/LICENSE +21 -21
  789. package/skills/health/health-womens/SKILL.md +72 -72
  790. package/skills/health/health-yoga-wellness/LICENSE +21 -21
  791. package/skills/health/health-yoga-wellness/SKILL.md +58 -58
  792. package/skills/healthcare-systems/health-sys-global/LICENSE +21 -21
  793. package/skills/healthcare-systems/health-sys-global/SKILL.md +69 -69
  794. package/skills/healthcare-systems/health-sys-management/LICENSE +21 -21
  795. package/skills/healthcare-systems/health-sys-management/SKILL.md +71 -71
  796. package/skills/healthcare-systems/health-sys-navigation/LICENSE +21 -21
  797. package/skills/healthcare-systems/health-sys-navigation/SKILL.md +60 -60
  798. package/skills/healthcare-systems/health-sys-public/LICENSE +21 -21
  799. package/skills/healthcare-systems/health-sys-public/SKILL.md +71 -71
  800. package/skills/healthcheck/SKILL.md +109 -109
  801. package/skills/himalaya/SKILL.md +84 -84
  802. package/skills/himalaya/references/configuration.md +184 -184
  803. package/skills/himalaya/references/message-composition.md +199 -199
  804. package/skills/humanities/humanities-history-world/LICENSE +21 -21
  805. package/skills/humanities/humanities-history-world/SKILL.md +59 -59
  806. package/skills/humanities/humanities-indian-classical/LICENSE +21 -21
  807. package/skills/humanities/humanities-indian-classical/SKILL.md +104 -104
  808. package/skills/humanities/humanities-philosophy/LICENSE +21 -21
  809. package/skills/humanities/humanities-philosophy/SKILL.md +105 -105
  810. package/skills/humanities/humanities-world-religions/LICENSE +21 -21
  811. package/skills/humanities/humanities-world-religions/SKILL.md +67 -67
  812. package/skills/impeccable/SKILL.md +185 -185
  813. package/skills/imsg/SKILL.md +126 -126
  814. package/skills/industry/industry-construction/LICENSE +21 -21
  815. package/skills/industry/industry-construction/SKILL.md +81 -81
  816. package/skills/industry/industry-education-sector/LICENSE +21 -21
  817. package/skills/industry/industry-education-sector/SKILL.md +49 -49
  818. package/skills/industry/industry-fashion/LICENSE +21 -21
  819. package/skills/industry/industry-fashion/SKILL.md +82 -82
  820. package/skills/industry/industry-food/LICENSE +21 -21
  821. package/skills/industry/industry-food/SKILL.md +79 -79
  822. package/skills/industry/industry-government/LICENSE +21 -21
  823. package/skills/industry/industry-government/SKILL.md +80 -80
  824. package/skills/industry/industry-hospitality/LICENSE +21 -21
  825. package/skills/industry/industry-hospitality/SKILL.md +73 -73
  826. package/skills/industry/industry-insurance-sector/LICENSE +21 -21
  827. package/skills/industry/industry-insurance-sector/SKILL.md +57 -57
  828. package/skills/industry/industry-logistics/LICENSE +21 -21
  829. package/skills/industry/industry-logistics/SKILL.md +80 -80
  830. package/skills/industry/industry-media/LICENSE +21 -21
  831. package/skills/industry/industry-media/SKILL.md +66 -66
  832. package/skills/industry/industry-nonprofit/LICENSE +21 -21
  833. package/skills/industry/industry-nonprofit/SKILL.md +77 -77
  834. package/skills/industry/industry-pharma/LICENSE +21 -21
  835. package/skills/industry/industry-pharma/SKILL.md +69 -69
  836. package/skills/industry/industry-real-estate/LICENSE +21 -21
  837. package/skills/industry/industry-real-estate/SKILL.md +61 -61
  838. package/skills/industry/industry-sports/LICENSE +21 -21
  839. package/skills/industry/industry-sports/SKILL.md +71 -71
  840. package/skills/industry/industry-tech-startup/LICENSE +21 -21
  841. package/skills/industry/industry-tech-startup/SKILL.md +82 -82
  842. package/skills/internal-comms/LICENSE +21 -21
  843. package/skills/internal-comms/SKILL.md +38 -38
  844. package/skills/internal-comms/examples/3p-updates.md +49 -49
  845. package/skills/internal-comms/examples/company-newsletter.md +76 -76
  846. package/skills/internal-comms/examples/faq-answers.md +35 -35
  847. package/skills/internal-comms/examples/general-comms.md +19 -19
  848. package/skills/legal/legal-business/LICENSE +21 -21
  849. package/skills/legal/legal-business/SKILL.md +227 -227
  850. package/skills/legal/legal-consumer/LICENSE +21 -21
  851. package/skills/legal/legal-consumer/SKILL.md +155 -155
  852. package/skills/legal/legal-contracts/LICENSE +21 -21
  853. package/skills/legal/legal-contracts/SKILL.md +268 -268
  854. package/skills/legal/legal-corporate-governance/LICENSE +21 -21
  855. package/skills/legal/legal-corporate-governance/SKILL.md +53 -53
  856. package/skills/legal/legal-employment/LICENSE +21 -21
  857. package/skills/legal/legal-employment/SKILL.md +291 -291
  858. package/skills/legal/legal-immigration/LICENSE +21 -21
  859. package/skills/legal/legal-immigration/SKILL.md +146 -146
  860. package/skills/legal/legal-international/LICENSE +21 -21
  861. package/skills/legal/legal-international/SKILL.md +51 -51
  862. package/skills/legal/legal-ip/LICENSE +21 -21
  863. package/skills/legal/legal-ip/SKILL.md +264 -264
  864. package/skills/legal/legal-privacy/LICENSE +21 -21
  865. package/skills/legal/legal-privacy/SKILL.md +161 -161
  866. package/skills/legal/legal-real-estate/LICENSE +21 -21
  867. package/skills/legal/legal-real-estate/SKILL.md +142 -142
  868. package/skills/legal/legal-startup/LICENSE +21 -21
  869. package/skills/legal/legal-startup/SKILL.md +182 -182
  870. package/skills/legal/legal-tax/LICENSE +21 -21
  871. package/skills/legal/legal-tax/SKILL.md +156 -156
  872. package/skills/mcp-builder/LICENSE +21 -21
  873. package/skills/mcp-builder/SKILL.md +257 -257
  874. package/skills/mcp-builder/reference/evaluation.md +630 -630
  875. package/skills/mcp-builder/reference/mcp_best_practices.md +269 -269
  876. package/skills/mcp-builder/reference/node_mcp_server.md +980 -980
  877. package/skills/mcp-builder/reference/python_mcp_server.md +737 -737
  878. package/skills/mcp-builder/scripts/connections.py +151 -151
  879. package/skills/mcp-builder/scripts/evaluation.py +373 -373
  880. package/skills/mcp-builder/scripts/example_evaluation.xml +22 -22
  881. package/skills/mcp-builder/scripts/requirements.txt +2 -2
  882. package/skills/mcporter/SKILL.md +65 -65
  883. package/skills/meme-maker/SKILL.md +46 -46
  884. package/skills/meme-maker/references/templates.json +358 -358
  885. package/skills/meme-maker/scripts/meme.mjs +398 -398
  886. package/skills/mental-health/mental-health-cbt/LICENSE +21 -21
  887. package/skills/mental-health/mental-health-cbt/SKILL.md +254 -254
  888. package/skills/mental-health/psych-addiction/LICENSE +21 -21
  889. package/skills/mental-health/psych-addiction/SKILL.md +79 -79
  890. package/skills/mental-health/psych-behavioral-econ/LICENSE +21 -21
  891. package/skills/mental-health/psych-behavioral-econ/SKILL.md +84 -84
  892. package/skills/mental-health/psych-child/LICENSE +21 -21
  893. package/skills/mental-health/psych-child/SKILL.md +84 -84
  894. package/skills/mental-health/psych-grief/LICENSE +21 -21
  895. package/skills/mental-health/psych-grief/SKILL.md +85 -85
  896. package/skills/mental-health/psych-mindfulness/LICENSE +21 -21
  897. package/skills/mental-health/psych-mindfulness/SKILL.md +71 -71
  898. package/skills/mental-health/psych-org/LICENSE +21 -21
  899. package/skills/mental-health/psych-org/SKILL.md +115 -115
  900. package/skills/mental-health/psych-positive/LICENSE +21 -21
  901. package/skills/mental-health/psych-positive/SKILL.md +86 -86
  902. package/skills/mental-health/psych-relationships/LICENSE +21 -21
  903. package/skills/mental-health/psych-relationships/SKILL.md +100 -100
  904. package/skills/mental-health/psych-trauma/LICENSE +21 -21
  905. package/skills/mental-health/psych-trauma/SKILL.md +109 -109
  906. package/skills/model-usage/SKILL.md +75 -75
  907. package/skills/model-usage/references/codexbar-cli.md +33 -33
  908. package/skills/model-usage/scripts/model_usage.py +319 -319
  909. package/skills/model-usage/scripts/test_model_usage.py +40 -40
  910. package/skills/nano-pdf/SKILL.md +42 -42
  911. package/skills/node-connect/SKILL.md +147 -147
  912. package/skills/node-inspect-debugger/SKILL.md +88 -88
  913. package/skills/notion/SKILL.md +154 -154
  914. package/skills/obsidian/SKILL.md +123 -123
  915. package/skills/openai-whisper/SKILL.md +42 -42
  916. package/skills/openai-whisper-api/SKILL.md +75 -75
  917. package/skills/openai-whisper-api/scripts/transcribe.sh +154 -154
  918. package/skills/openhue/SKILL.md +116 -116
  919. package/skills/oracle/SKILL.md +130 -130
  920. package/skills/ordercli/SKILL.md +82 -82
  921. package/skills/peekaboo/SKILL.md +217 -217
  922. package/skills/pyproject.toml +10 -10
  923. package/skills/python-debugpy/SKILL.md +76 -76
  924. package/skills/sag/SKILL.md +91 -91
  925. package/skills/science/sci-astronomy/LICENSE +21 -21
  926. package/skills/science/sci-astronomy/SKILL.md +80 -80
  927. package/skills/science/sci-biology/LICENSE +21 -21
  928. package/skills/science/sci-biology/SKILL.md +74 -74
  929. package/skills/science/sci-chemistry/LICENSE +21 -21
  930. package/skills/science/sci-chemistry/SKILL.md +89 -89
  931. package/skills/science/sci-climate/LICENSE +21 -21
  932. package/skills/science/sci-climate/SKILL.md +72 -72
  933. package/skills/science/sci-data-analysis/LICENSE +21 -21
  934. package/skills/science/sci-data-analysis/SKILL.md +87 -87
  935. package/skills/science/sci-environmental-science/LICENSE +21 -21
  936. package/skills/science/sci-environmental-science/SKILL.md +69 -69
  937. package/skills/science/sci-geology/LICENSE +21 -21
  938. package/skills/science/sci-geology/SKILL.md +56 -56
  939. package/skills/science/sci-method/LICENSE +21 -21
  940. package/skills/science/sci-method/SKILL.md +77 -77
  941. package/skills/science/sci-neuroscience/LICENSE +21 -21
  942. package/skills/science/sci-neuroscience/SKILL.md +79 -79
  943. package/skills/science/sci-physics/LICENSE +21 -21
  944. package/skills/science/sci-physics/SKILL.md +78 -78
  945. package/skills/science/sci-research-methods/LICENSE +21 -21
  946. package/skills/science/sci-research-methods/SKILL.md +83 -83
  947. package/skills/science/sci-statistics/LICENSE +21 -21
  948. package/skills/science/sci-statistics/SKILL.md +249 -249
  949. package/skills/session-logs/SKILL.md +155 -155
  950. package/skills/sherpa-onnx-tts/SKILL.md +113 -113
  951. package/skills/skill-creator/SKILL.md +81 -81
  952. package/skills/skill-creator/license.txt +202 -202
  953. package/skills/skill-creator/scripts/init_skill.py +378 -378
  954. package/skills/skill-creator/scripts/package_skill.py +144 -144
  955. package/skills/skill-creator/scripts/quick_validate.py +169 -169
  956. package/skills/skill-creator/scripts/test_init_skill.py +51 -51
  957. package/skills/skill-creator/scripts/test_package_skill.py +199 -199
  958. package/skills/skill-creator/scripts/test_quick_validate.py +116 -116
  959. package/skills/slack/SKILL.md +82 -82
  960. package/skills/slack-gif-creator/LICENSE +21 -21
  961. package/skills/slack-gif-creator/SKILL.md +293 -293
  962. package/skills/slack-gif-creator/requirements.txt +3 -3
  963. package/skills/social-sciences/social-anthropology/LICENSE +21 -21
  964. package/skills/social-sciences/social-anthropology/SKILL.md +62 -62
  965. package/skills/social-sciences/social-economics/LICENSE +21 -21
  966. package/skills/social-sciences/social-economics/SKILL.md +88 -88
  967. package/skills/social-sciences/social-geography/LICENSE +21 -21
  968. package/skills/social-sciences/social-geography/SKILL.md +61 -61
  969. package/skills/social-sciences/social-international-dev/LICENSE +21 -21
  970. package/skills/social-sciences/social-international-dev/SKILL.md +76 -76
  971. package/skills/social-sciences/social-political-science/LICENSE +21 -21
  972. package/skills/social-sciences/social-political-science/SKILL.md +70 -70
  973. package/skills/social-sciences/social-public-policy/LICENSE +21 -21
  974. package/skills/social-sciences/social-public-policy/SKILL.md +73 -73
  975. package/skills/social-sciences/social-sociology/LICENSE +21 -21
  976. package/skills/social-sciences/social-sociology/SKILL.md +78 -78
  977. package/skills/songsee/SKILL.md +53 -53
  978. package/skills/sonoscli/SKILL.md +69 -69
  979. package/skills/spike/SKILL.md +55 -55
  980. package/skills/spotify-player/SKILL.md +68 -68
  981. package/skills/summarize/SKILL.md +90 -90
  982. package/skills/taskflow/SKILL.md +153 -153
  983. package/skills/taskflow/examples/inbox-triage.lobster +33 -33
  984. package/skills/taskflow/examples/pr-intake.lobster +32 -32
  985. package/skills/taskflow-inbox-triage/SKILL.md +123 -123
  986. package/skills/technical/ai-ethics/LICENSE +21 -21
  987. package/skills/technical/ai-ethics/SKILL.md +92 -92
  988. package/skills/technical/ai-product-builder/LICENSE +21 -21
  989. package/skills/technical/ai-product-builder/SKILL.md +180 -180
  990. package/skills/technical/analytics-setup/LICENSE +21 -21
  991. package/skills/technical/analytics-setup/SKILL.md +125 -125
  992. package/skills/technical/api-builder/LICENSE +21 -21
  993. package/skills/technical/api-builder/SKILL.md +202 -202
  994. package/skills/technical/architecture-decisions/LICENSE +21 -21
  995. package/skills/technical/architecture-decisions/SKILL.md +120 -120
  996. package/skills/technical/auth-security/LICENSE +21 -21
  997. package/skills/technical/auth-security/SKILL.md +209 -209
  998. package/skills/technical/blockchain-web3/LICENSE +21 -21
  999. package/skills/technical/blockchain-web3/SKILL.md +84 -84
  1000. package/skills/technical/cloud-architecture/LICENSE +21 -21
  1001. package/skills/technical/cloud-architecture/SKILL.md +85 -85
  1002. package/skills/technical/content-platform/LICENSE +21 -21
  1003. package/skills/technical/content-platform/SKILL.md +134 -134
  1004. package/skills/technical/cybersecurity-advanced/LICENSE +21 -21
  1005. package/skills/technical/cybersecurity-advanced/SKILL.md +99 -99
  1006. package/skills/technical/data-engineering/LICENSE +21 -21
  1007. package/skills/technical/data-engineering/SKILL.md +117 -117
  1008. package/skills/technical/database-design/LICENSE +21 -21
  1009. package/skills/technical/database-design/SKILL.md +185 -185
  1010. package/skills/technical/devops-cicd/LICENSE +21 -21
  1011. package/skills/technical/devops-cicd/SKILL.md +181 -181
  1012. package/skills/technical/ecommerce-builder/LICENSE +21 -21
  1013. package/skills/technical/ecommerce-builder/SKILL.md +123 -123
  1014. package/skills/technical/email-marketing/LICENSE +21 -21
  1015. package/skills/technical/email-marketing/SKILL.md +128 -128
  1016. package/skills/technical/fintech-builder/LICENSE +21 -21
  1017. package/skills/technical/fintech-builder/SKILL.md +141 -141
  1018. package/skills/technical/full-stack-web/LICENSE +21 -21
  1019. package/skills/technical/full-stack-web/SKILL.md +173 -173
  1020. package/skills/technical/gdpr-basics/LICENSE +21 -21
  1021. package/skills/technical/gdpr-basics/SKILL.md +145 -145
  1022. package/skills/technical/launch-playbook/LICENSE +21 -21
  1023. package/skills/technical/launch-playbook/SKILL.md +95 -95
  1024. package/skills/technical/marketing-copy/LICENSE +21 -21
  1025. package/skills/technical/marketing-copy/SKILL.md +126 -126
  1026. package/skills/technical/marketplace-builder/LICENSE +21 -21
  1027. package/skills/technical/marketplace-builder/SKILL.md +105 -105
  1028. package/skills/technical/mobile-pwa/LICENSE +21 -21
  1029. package/skills/technical/mobile-pwa/SKILL.md +191 -191
  1030. package/skills/technical/no-code-tools/LICENSE +21 -21
  1031. package/skills/technical/no-code-tools/SKILL.md +80 -80
  1032. package/skills/technical/open-source/LICENSE +21 -21
  1033. package/skills/technical/open-source/SKILL.md +71 -71
  1034. package/skills/technical/performance-optimization/LICENSE +21 -21
  1035. package/skills/technical/performance-optimization/SKILL.md +155 -155
  1036. package/skills/technical/pricing-design/LICENSE +21 -21
  1037. package/skills/technical/pricing-design/SKILL.md +87 -87
  1038. package/skills/technical/product-management/LICENSE +21 -21
  1039. package/skills/technical/product-management/SKILL.md +94 -94
  1040. package/skills/technical/saas-builder/LICENSE +21 -21
  1041. package/skills/technical/saas-builder/SKILL.md +138 -138
  1042. package/skills/technical/scope-estimation/LICENSE +21 -21
  1043. package/skills/technical/scope-estimation/SKILL.md +99 -99
  1044. package/skills/technical/secrets-management/LICENSE +21 -21
  1045. package/skills/technical/secrets-management/SKILL.md +135 -135
  1046. package/skills/technical/seo-technical/LICENSE +21 -21
  1047. package/skills/technical/seo-technical/SKILL.md +136 -136
  1048. package/skills/technical/technical-writing/LICENSE +21 -21
  1049. package/skills/technical/technical-writing/SKILL.md +149 -149
  1050. package/skills/technical/ux-research-tools/LICENSE +21 -21
  1051. package/skills/technical/ux-research-tools/SKILL.md +54 -54
  1052. package/skills/theme-factory/LICENSE +21 -21
  1053. package/skills/theme-factory/SKILL.md +65 -65
  1054. package/skills/theme-factory/themes/arctic-frost.md +19 -19
  1055. package/skills/theme-factory/themes/botanical-garden.md +19 -19
  1056. package/skills/theme-factory/themes/desert-rose.md +19 -19
  1057. package/skills/theme-factory/themes/forest-canopy.md +19 -19
  1058. package/skills/theme-factory/themes/golden-hour.md +19 -19
  1059. package/skills/theme-factory/themes/midnight-galaxy.md +19 -19
  1060. package/skills/theme-factory/themes/modern-minimalist.md +19 -19
  1061. package/skills/theme-factory/themes/ocean-depths.md +19 -19
  1062. package/skills/theme-factory/themes/sunset-boulevard.md +19 -19
  1063. package/skills/theme-factory/themes/tech-innovation.md +19 -19
  1064. package/skills/things-mac/SKILL.md +90 -90
  1065. package/skills/tmux/SKILL.md +95 -95
  1066. package/skills/tmux/scripts/find-sessions.sh +112 -112
  1067. package/skills/tmux/scripts/wait-for-text.sh +83 -83
  1068. package/skills/trades/trades-agriculture/LICENSE +21 -21
  1069. package/skills/trades/trades-agriculture/SKILL.md +80 -80
  1070. package/skills/trades/trades-automotive/LICENSE +21 -21
  1071. package/skills/trades/trades-automotive/SKILL.md +84 -84
  1072. package/skills/trades/trades-carpentry/LICENSE +21 -21
  1073. package/skills/trades/trades-carpentry/SKILL.md +71 -71
  1074. package/skills/trades/trades-cooking-pro/LICENSE +21 -21
  1075. package/skills/trades/trades-cooking-pro/SKILL.md +90 -90
  1076. package/skills/trades/trades-electrical/LICENSE +21 -21
  1077. package/skills/trades/trades-electrical/SKILL.md +146 -146
  1078. package/skills/trades/trades-hvac/LICENSE +21 -21
  1079. package/skills/trades/trades-hvac/SKILL.md +80 -80
  1080. package/skills/trades/trades-landscaping/LICENSE +21 -21
  1081. package/skills/trades/trades-landscaping/SKILL.md +60 -60
  1082. package/skills/trades/trades-metalworking/LICENSE +21 -21
  1083. package/skills/trades/trades-metalworking/SKILL.md +64 -64
  1084. package/skills/trades/trades-painting/LICENSE +21 -21
  1085. package/skills/trades/trades-painting/SKILL.md +70 -70
  1086. package/skills/trades/trades-plumbing/LICENSE +21 -21
  1087. package/skills/trades/trades-plumbing/SKILL.md +160 -160
  1088. package/skills/trades/trades-welding/LICENSE +21 -21
  1089. package/skills/trades/trades-welding/SKILL.md +82 -82
  1090. package/skills/trello/SKILL.md +112 -112
  1091. package/skills/uipm-ui-styling/SKILL.md +328 -328
  1092. package/skills/video-frames/SKILL.md +50 -50
  1093. package/skills/video-frames/scripts/frame.sh +81 -81
  1094. package/skills/voice-call/SKILL.md +49 -49
  1095. package/skills/wacli/SKILL.md +76 -76
  1096. package/skills/weather/SKILL.md +91 -91
  1097. package/skills/web-artifacts-builder/LICENSE +21 -21
  1098. package/skills/web-artifacts-builder/SKILL.md +82 -82
  1099. package/skills/web-artifacts-builder/scripts/bundle-artifact.sh +53 -53
  1100. package/skills/web-artifacts-builder/scripts/init-artifact.sh +322 -322
  1101. package/skills/xurl/SKILL.md +124 -124
  1102. package/skills/graphify/SKILL.md +0 -619
  1103. package/skills/graphify/__init__.py +0 -28
  1104. package/skills/graphify/__main__.py +0 -4582
  1105. package/skills/graphify/affected.py +0 -154
  1106. package/skills/graphify/always_on/agents-md.md +0 -12
  1107. package/skills/graphify/always_on/antigravity-rules.md +0 -14
  1108. package/skills/graphify/always_on/claude-md.md +0 -9
  1109. package/skills/graphify/always_on/gemini-md.md +0 -9
  1110. package/skills/graphify/always_on/kiro-steering.md +0 -5
  1111. package/skills/graphify/always_on/vscode-instructions.md +0 -17
  1112. package/skills/graphify/analyze.py +0 -724
  1113. package/skills/graphify/benchmark.py +0 -155
  1114. package/skills/graphify/build.py +0 -487
  1115. package/skills/graphify/cache.py +0 -417
  1116. package/skills/graphify/callflow_html.py +0 -2020
  1117. package/skills/graphify/cluster.py +0 -272
  1118. package/skills/graphify/command-kilo.md +0 -15
  1119. package/skills/graphify/dedup.py +0 -429
  1120. package/skills/graphify/detect.py +0 -1379
  1121. package/skills/graphify/diagnostics.py +0 -390
  1122. package/skills/graphify/export.py +0 -1408
  1123. package/skills/graphify/extract.py +0 -11570
  1124. package/skills/graphify/global_graph.py +0 -159
  1125. package/skills/graphify/google_workspace.py +0 -223
  1126. package/skills/graphify/hooks.py +0 -457
  1127. package/skills/graphify/ingest.py +0 -331
  1128. package/skills/graphify/llm.py +0 -1896
  1129. package/skills/graphify/manifest.py +0 -4
  1130. package/skills/graphify/mcp_ingest.py +0 -392
  1131. package/skills/graphify/multigraph_compat.py +0 -212
  1132. package/skills/graphify/pg_introspect.py +0 -142
  1133. package/skills/graphify/prs.py +0 -748
  1134. package/skills/graphify/querylog.py +0 -70
  1135. package/skills/graphify/report.py +0 -218
  1136. package/skills/graphify/scip_ingest.py +0 -363
  1137. package/skills/graphify/security.py +0 -336
  1138. package/skills/graphify/semantic_cleanup.py +0 -319
  1139. package/skills/graphify/serve.py +0 -1309
  1140. package/skills/graphify/skill-aider.md +0 -1246
  1141. package/skills/graphify/skill-amp.md +0 -613
  1142. package/skills/graphify/skill-claw.md +0 -616
  1143. package/skills/graphify/skill-codex.md +0 -613
  1144. package/skills/graphify/skill-copilot.md +0 -616
  1145. package/skills/graphify/skill-devin.md +0 -1372
  1146. package/skills/graphify/skill-droid.md +0 -613
  1147. package/skills/graphify/skill-kilo.md +0 -625
  1148. package/skills/graphify/skill-kiro.md +0 -615
  1149. package/skills/graphify/skill-opencode.md +0 -608
  1150. package/skills/graphify/skill-pi.md +0 -615
  1151. package/skills/graphify/skill-trae.md +0 -614
  1152. package/skills/graphify/skill-vscode.md +0 -612
  1153. package/skills/graphify/skill-windows.md +0 -651
  1154. package/skills/graphify/skills/amp/references/add-watch.md +0 -56
  1155. package/skills/graphify/skills/amp/references/exports.md +0 -71
  1156. package/skills/graphify/skills/amp/references/extraction-spec.md +0 -68
  1157. package/skills/graphify/skills/amp/references/github-and-merge.md +0 -46
  1158. package/skills/graphify/skills/amp/references/hooks.md +0 -33
  1159. package/skills/graphify/skills/amp/references/query.md +0 -249
  1160. package/skills/graphify/skills/amp/references/transcribe.md +0 -48
  1161. package/skills/graphify/skills/amp/references/update.md +0 -179
  1162. package/skills/graphify/skills/claude/references/add-watch.md +0 -56
  1163. package/skills/graphify/skills/claude/references/exports.md +0 -71
  1164. package/skills/graphify/skills/claude/references/extraction-spec.md +0 -68
  1165. package/skills/graphify/skills/claude/references/github-and-merge.md +0 -46
  1166. package/skills/graphify/skills/claude/references/hooks.md +0 -33
  1167. package/skills/graphify/skills/claude/references/query.md +0 -103
  1168. package/skills/graphify/skills/claude/references/transcribe.md +0 -48
  1169. package/skills/graphify/skills/claude/references/update.md +0 -179
  1170. package/skills/graphify/skills/claw/references/add-watch.md +0 -56
  1171. package/skills/graphify/skills/claw/references/exports.md +0 -71
  1172. package/skills/graphify/skills/claw/references/extraction-spec.md +0 -29
  1173. package/skills/graphify/skills/claw/references/github-and-merge.md +0 -46
  1174. package/skills/graphify/skills/claw/references/hooks.md +0 -33
  1175. package/skills/graphify/skills/claw/references/query.md +0 -249
  1176. package/skills/graphify/skills/claw/references/transcribe.md +0 -48
  1177. package/skills/graphify/skills/claw/references/update.md +0 -179
  1178. package/skills/graphify/skills/codex/references/add-watch.md +0 -56
  1179. package/skills/graphify/skills/codex/references/exports.md +0 -71
  1180. package/skills/graphify/skills/codex/references/extraction-spec.md +0 -29
  1181. package/skills/graphify/skills/codex/references/github-and-merge.md +0 -46
  1182. package/skills/graphify/skills/codex/references/hooks.md +0 -33
  1183. package/skills/graphify/skills/codex/references/query.md +0 -249
  1184. package/skills/graphify/skills/codex/references/transcribe.md +0 -48
  1185. package/skills/graphify/skills/codex/references/update.md +0 -179
  1186. package/skills/graphify/skills/copilot/references/add-watch.md +0 -56
  1187. package/skills/graphify/skills/copilot/references/exports.md +0 -71
  1188. package/skills/graphify/skills/copilot/references/extraction-spec.md +0 -68
  1189. package/skills/graphify/skills/copilot/references/github-and-merge.md +0 -46
  1190. package/skills/graphify/skills/copilot/references/hooks.md +0 -33
  1191. package/skills/graphify/skills/copilot/references/query.md +0 -249
  1192. package/skills/graphify/skills/copilot/references/transcribe.md +0 -48
  1193. package/skills/graphify/skills/copilot/references/update.md +0 -179
  1194. package/skills/graphify/skills/droid/references/add-watch.md +0 -56
  1195. package/skills/graphify/skills/droid/references/exports.md +0 -71
  1196. package/skills/graphify/skills/droid/references/extraction-spec.md +0 -68
  1197. package/skills/graphify/skills/droid/references/github-and-merge.md +0 -46
  1198. package/skills/graphify/skills/droid/references/hooks.md +0 -33
  1199. package/skills/graphify/skills/droid/references/query.md +0 -249
  1200. package/skills/graphify/skills/droid/references/transcribe.md +0 -48
  1201. package/skills/graphify/skills/droid/references/update.md +0 -179
  1202. package/skills/graphify/skills/kilo/references/add-watch.md +0 -56
  1203. package/skills/graphify/skills/kilo/references/exports.md +0 -71
  1204. package/skills/graphify/skills/kilo/references/extraction-spec.md +0 -68
  1205. package/skills/graphify/skills/kilo/references/github-and-merge.md +0 -46
  1206. package/skills/graphify/skills/kilo/references/hooks.md +0 -33
  1207. package/skills/graphify/skills/kilo/references/query.md +0 -249
  1208. package/skills/graphify/skills/kilo/references/transcribe.md +0 -48
  1209. package/skills/graphify/skills/kilo/references/update.md +0 -179
  1210. package/skills/graphify/skills/kiro/references/add-watch.md +0 -56
  1211. package/skills/graphify/skills/kiro/references/exports.md +0 -71
  1212. package/skills/graphify/skills/kiro/references/extraction-spec.md +0 -29
  1213. package/skills/graphify/skills/kiro/references/github-and-merge.md +0 -46
  1214. package/skills/graphify/skills/kiro/references/hooks.md +0 -33
  1215. package/skills/graphify/skills/kiro/references/query.md +0 -249
  1216. package/skills/graphify/skills/kiro/references/transcribe.md +0 -48
  1217. package/skills/graphify/skills/kiro/references/update.md +0 -179
  1218. package/skills/graphify/skills/opencode/references/add-watch.md +0 -56
  1219. package/skills/graphify/skills/opencode/references/exports.md +0 -71
  1220. package/skills/graphify/skills/opencode/references/extraction-spec.md +0 -68
  1221. package/skills/graphify/skills/opencode/references/github-and-merge.md +0 -46
  1222. package/skills/graphify/skills/opencode/references/hooks.md +0 -33
  1223. package/skills/graphify/skills/opencode/references/query.md +0 -249
  1224. package/skills/graphify/skills/opencode/references/transcribe.md +0 -48
  1225. package/skills/graphify/skills/opencode/references/update.md +0 -179
  1226. package/skills/graphify/skills/pi/references/add-watch.md +0 -56
  1227. package/skills/graphify/skills/pi/references/exports.md +0 -71
  1228. package/skills/graphify/skills/pi/references/extraction-spec.md +0 -29
  1229. package/skills/graphify/skills/pi/references/github-and-merge.md +0 -46
  1230. package/skills/graphify/skills/pi/references/hooks.md +0 -33
  1231. package/skills/graphify/skills/pi/references/query.md +0 -249
  1232. package/skills/graphify/skills/pi/references/transcribe.md +0 -48
  1233. package/skills/graphify/skills/pi/references/update.md +0 -179
  1234. package/skills/graphify/skills/trae/references/add-watch.md +0 -56
  1235. package/skills/graphify/skills/trae/references/exports.md +0 -71
  1236. package/skills/graphify/skills/trae/references/extraction-spec.md +0 -68
  1237. package/skills/graphify/skills/trae/references/github-and-merge.md +0 -46
  1238. package/skills/graphify/skills/trae/references/hooks.md +0 -35
  1239. package/skills/graphify/skills/trae/references/query.md +0 -249
  1240. package/skills/graphify/skills/trae/references/transcribe.md +0 -48
  1241. package/skills/graphify/skills/trae/references/update.md +0 -179
  1242. package/skills/graphify/skills/vscode/references/add-watch.md +0 -56
  1243. package/skills/graphify/skills/vscode/references/exports.md +0 -71
  1244. package/skills/graphify/skills/vscode/references/extraction-spec.md +0 -68
  1245. package/skills/graphify/skills/vscode/references/github-and-merge.md +0 -46
  1246. package/skills/graphify/skills/vscode/references/hooks.md +0 -33
  1247. package/skills/graphify/skills/vscode/references/query.md +0 -249
  1248. package/skills/graphify/skills/vscode/references/transcribe.md +0 -48
  1249. package/skills/graphify/skills/vscode/references/update.md +0 -179
  1250. package/skills/graphify/skills/windows/references/add-watch.md +0 -56
  1251. package/skills/graphify/skills/windows/references/exports.md +0 -71
  1252. package/skills/graphify/skills/windows/references/extraction-spec.md +0 -68
  1253. package/skills/graphify/skills/windows/references/github-and-merge.md +0 -46
  1254. package/skills/graphify/skills/windows/references/hooks.md +0 -33
  1255. package/skills/graphify/skills/windows/references/query.md +0 -249
  1256. package/skills/graphify/skills/windows/references/transcribe.md +0 -48
  1257. package/skills/graphify/skills/windows/references/update.md +0 -179
  1258. package/skills/graphify/symbol_resolution.py +0 -538
  1259. package/skills/graphify/transcribe.py +0 -184
  1260. package/skills/graphify/tree_html.py +0 -582
  1261. package/skills/graphify/validate.py +0 -72
  1262. package/skills/graphify/watch.py +0 -898
  1263. package/skills/graphify/wiki.py +0 -282
@@ -1,680 +1,680 @@
1
- # Android Expert Reference — Build to Launch
2
-
3
- ## Table of Contents
4
-
5
- 1. [Android Project Fundamentals](#1-android-project-fundamentals)
6
- 2. [Signing & Keystores](#2-signing--keystores)
7
- 3. [Play App Signing](#3-play-app-signing)
8
- 4. [SHA-1 Fingerprints & OAuth](#4-sha-1-fingerprints--oauth)
9
- 5. [Play Console Deep Dive](#5-play-console-deep-dive)
10
- 6. [Play Store Review & Policies](#6-play-store-review--policies)
11
- 7. [App Bundle (AAB) vs APK](#7-app-bundle-aab-vs-apk)
12
- 8. [FCM v1 API](#8-fcm-v1-api)
13
- 9. [Google Sign-In Android](#9-google-sign-in-android)
14
- 10. [Target SDK Requirements](#10-target-sdk-requirements)
15
- 11. [Background Processing](#11-background-processing)
16
- 12. [ProGuard / R8](#12-proguard--r8)
17
- 13. [Firebase Android Integration](#13-firebase-android-integration)
18
- 14. [Play Integrity API](#14-play-integrity-api)
19
- 15. [Common Android Submission Failures](#15-common-android-submission-failures)
20
-
21
- ---
22
-
23
- ## 1. Android Project Fundamentals
24
-
25
- **versionCode rules:**
26
-
27
- - Always an integer: 1, 2, 3...
28
- - Must STRICTLY increase with every upload to Play Console
29
- - Once uploaded, that versionCode can never be reused for that app
30
- - EAS manages this via `android.versionCode` in app.json
31
-
32
- **versionName rules:**
33
-
34
- - Human-readable string: "2.3.0", "2.3.1"
35
- - No strict requirement to increment (but should match marketing version)
36
- - Shown to users in Play Store
37
-
38
- **<project> Android current state:**
39
-
40
- - versionCode 14 / v2.3.0 — under Play Store review
41
- - versionCode 10 — currently active on devices
42
- - Next build: versionCode 15 / v2.4.0
43
-
44
- **Package name:** `com.<project>.shield` — permanent, never changes after first upload.
45
- Changing package name = entirely new app listing with zero install base.
46
-
47
- **Minimum SDK targets (2026):**
48
-
49
- - `minSdkVersion`: 21 (Android 5.0) — covers 99%+ of active devices
50
- - `targetSdkVersion`: 34 (Android 14) — **required by Google Play as of August 2024**
51
- - `compileSdkVersion`: 35 (Android 15) — use latest
52
-
53
- **Kotlin 2.0 highlights:**
54
-
55
- - K2 compiler: 2x faster compilation
56
- - `data class` copy with named arguments required
57
- - Smart casts improved across function boundaries
58
- - Compose: stable with Kotlin 2.0
59
-
60
- ---
61
-
62
- ## 2. Signing & Keystores
63
-
64
- **Upload key vs App signing key:**
65
- With Play App Signing (mandatory for AAB):
66
-
67
- - **Upload key:** Used to sign AAB before uploading. Lives on your machine / EAS.
68
- - **App signing key:** Managed by Google. Applied to the final APK delivered to devices.
69
- - If you lose your upload key, you can register a new one in Play Console.
70
- - The SHA-1 that matters for Google Sign-In is the **App signing key** SHA-1 (Google manages this).
71
-
72
- **EAS manages signing automatically:**
73
-
74
- - EAS generates and stores your upload keystore
75
- - View keystore details: `eas credentials`
76
- - SHA-1 of upload key (dev): `D6:04:59:BE:DC:0C:BC:0E:85:00:23:CA:A4:2B:F7:BE:1C:5D:C1:E4`
77
- - SHA-1 of production key (Play App Signing): `41:35:AF:FE:B8:FE:BE:F9:DD:77:B4:61:05:BC:DA:7A:49:FC:F6:2B`
78
-
79
- **Generating a keystore manually (if needed):**
80
-
81
- ```bash
82
- keytool -genkeypair -v \
83
- -storetype PKCS12 \
84
- -keystore <project>-upload-key.jks \
85
- -alias <project> \
86
- -keyalg RSA \
87
- -keysize 2048 \
88
- -validity 10000
89
- ```
90
-
91
- **Getting SHA-1 from keystore:**
92
-
93
- ```bash
94
- keytool -list -v \
95
- -keystore <project>-upload-key.jks \
96
- -alias <project>
97
- ```
98
-
99
- **CRITICAL:** Back up your keystore file + password + alias + alias password.
100
- Without these you cannot update your app (you lose upload key recovery option).
101
- EAS stores keystores in their secure vault — managed builds are backed up.
102
-
103
- ---
104
-
105
- ## 3. Play App Signing
106
-
107
- **Mandatory since August 2021** for new apps using AAB format.
108
-
109
- **Flow:**
110
-
111
- ```
112
- You sign AAB with upload key
113
- → Upload to Play Console
114
- → Google verifies your signature
115
- → Google re-signs with app signing key
116
- → Distributed to users signed with Google's key
117
- ```
118
-
119
- **Finding your App Signing Certificate SHA-1 (for OAuth):**
120
-
121
- 1. Play Console → Release → Setup → App signing
122
- 2. "App signing key certificate" section → SHA-1 certificate fingerprint
123
- 3. This is the value that goes into Google Cloud Console / Firebase for production OAuth
124
-
125
- **<project> App Signing Key SHA-1:**
126
- `41:35:AF:FE:B8:FE:BE:F9:DD:77:B4:61:05:BC:DA:7A:49:FC:F6:2B`
127
-
128
- **Upload key reset (if lost):**
129
-
130
- 1. Play Console → App → Setup → App signing
131
- 2. Request upload key reset
132
- 3. Generate new keystore, sign a new AAB
133
- 4. Submit with new AAB — Google verifies identity via Play Developer account
134
-
135
- ---
136
-
137
- ## 4. SHA-1 Fingerprints & OAuth
138
-
139
- **Two SHA-1 fingerprints for <project> Android:**
140
-
141
- 1. **Dev SHA-1** (for debug builds and EAS development profile):
142
- `D6:04:59:BE:DC:0C:BC:0E:85:00:23:CA:A4:2B:F7:BE:1C:5D:C1:E4`
143
- → Add to Firebase Android app → google-services.json regenerated
144
-
145
- 2. **Production SHA-1** (Play App Signing key — for Play Store builds):
146
- `41:35:AF:FE:B8:FE:BE:F9:DD:77:B4:61:05:BC:DA:7A:49:FC:F6:2B`
147
- → Add to Firebase Android app → google-services.json regenerated
148
-
149
- **Both SHA-1s must be registered in Firebase** for Google Sign-In to work across dev and production builds.
150
-
151
- **Firebase Console → Project Settings → Your apps → Android app:**
152
-
153
- - Add both SHA-1 fingerprints
154
- - Download updated google-services.json
155
- - Commit to repo root
156
-
157
- **OAuth flow with SHA-1:**
158
- Android Google Sign-In verifies the APK signing certificate at runtime.
159
- If the SHA-1 of the signing cert doesn't match what's registered in Firebase/OAuth Console,
160
- sign-in fails with `DEVELOPER_ERROR` (error code 10).
161
-
162
- **Error code 10 in Google Sign-In = SHA-1 mismatch.** Always the first thing to check.
163
-
164
- **Firebase OAuth client ID for Android:**
165
- `929418470411-ipdh7o4dp8fijjm7vbcmk43u03nnf1s7.apps.googleusercontent.com`
166
-
167
- ---
168
-
169
- ## 5. Play Console Deep Dive
170
-
171
- **Account:** <email>
172
- **App:** <project> Shield · Package: com.<project>.shield
173
- **App ID:** 6099591004492585106
174
-
175
- **Track types:**
176
- | Track | Description | Review required |
177
- |-------|-------------|-----------------|
178
- | Internal testing | Up to 100 testers (by email) | No review, available in minutes |
179
- | Closed testing (Alpha) | Up to ~thousand testers | Brief review (~hours) |
180
- | Open testing (Beta) | Unlimited testers, opt-in | Brief review |
181
- | Production | All users | Full review (~days) |
182
-
183
- **Staged rollout:**
184
-
185
- - Roll out to 1%, 5%, 10%, 20%, 50%, 100% of users
186
- - Monitor crash rate and ANR rate before expanding
187
- - Can halt rollout if issues detected
188
- - <project>: start at 20% for new releases until stable
189
-
190
- **Play Console review timeline:**
191
-
192
- - Internal testing: minutes (no review)
193
- - Closed/Open testing: a few hours to 1 day
194
- - Production first release: 1-3 business days
195
- - Production updates for established apps: hours to 1 day
196
- - Post-rejection resubmission: same timeline
197
-
198
- **Policy dashboard:** Play Console → Policy status → Review violations
199
- **Pre-launch reports:** Automated Firebase Test Lab tests run on your AAB
200
- **Android vitals:** Crash rate, ANR rate, battery, permissions
201
-
202
- **AAB upload steps:**
203
-
204
- 1. Play Console → App → Release → Closed testing (or Internal testing)
205
- 2. Create new release
206
- 3. Upload AAB file
207
- 4. Fill "What's new in this release"
208
- 5. Review release → Save → Start rollout
209
-
210
- **Version code error on upload:**
211
-
212
- > "Version code X has already been used. Try another version code."
213
- > Fix: increment versionCode in app.json and rebuild.
214
-
215
- ---
216
-
217
- ## 6. Play Store Review & Policies
218
-
219
- **Critical policies for <project> (financial app):**
220
-
221
- - **Financial services policy:** Apps offering banking/financial services must comply with local laws, display required disclosures, and not mislead users about financial products.
222
- - **Personal data:** Declare all data collection in the Data Safety section.
223
- - **Sensitive permissions:** CAMERA, CONTACTS, LOCATION, READ_CALL_LOG require prominent disclosure at runtime before requesting.
224
-
225
- **Data Safety section (required since 2022):**
226
-
227
- - Must declare all data types collected, whether shared with third parties, whether data can be deleted by user
228
- - <project> data types: Name, Email, Phone number, Financial info (account numbers), Device identifiers
229
- - Fill in Play Console → App content → Data safety
230
-
231
- **Target audience:** If any content could appeal to children, must comply with Families Policy.
232
- <project> target: adults only → confirm in Play Console → App content → Target audience.
233
-
234
- **POST_NOTIFICATIONS permission (Android 13+):**
235
- Must request at runtime — cannot assume it's granted.
236
-
237
- ```kotlin
238
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
239
- ActivityCompat.requestPermissions(
240
- this, arrayOf(Manifest.permission.POST_NOTIFICATIONS), 1)
241
- }
242
- ```
243
-
244
- In Expo: `expo-notifications` handles this automatically.
245
-
246
- **Permission best practices:**
247
-
248
- - Request permissions at the moment they're needed (contextual)
249
- - Never request all permissions at app launch
250
- - Provide rationale before requesting (especially for sensitive permissions)
251
- - Handle denial gracefully
252
-
253
- **Common rejection reasons:**
254
-
255
- - Missing privacy policy (must be accessible in-app AND in store listing)
256
- - Missing data safety declaration
257
- - Misleading app description
258
- - Screenshot doesn't match actual app UI
259
- - App requests permissions not needed for stated functionality
260
- - Financial claims not substantiated (e.g., "guaranteed fraud protection")
261
- - App crashes during Play review testing
262
-
263
- ---
264
-
265
- ## 7. App Bundle (AAB) vs APK
266
-
267
- **Always use AAB for Play Store.** APKs are no longer accepted for new apps.
268
-
269
- **AAB benefits:**
270
-
271
- - Google optimizes delivery per device (only relevant code/resources)
272
- - Smaller install size for users (20-50% reduction)
273
- - Required for Play App Signing
274
-
275
- **AAB structure:**
276
-
277
- - `base/` — main app module
278
- - `feature/` — optional dynamic feature modules
279
- - Resources split by density, ABI, language
280
-
281
- **EAS produces AAB** for the `production` profile automatically.
282
- EAS produces APK for `preview` profile (for direct installation without Play Store).
283
-
284
- **Local build (not EAS):**
285
-
286
- ```bash
287
- cd android
288
- ./gradlew bundleRelease
289
- # Output: app/build/outputs/bundle/release/app-release.aab
290
- ```
291
-
292
- ---
293
-
294
- ## 8. FCM v1 API
295
-
296
- **Legacy HTTP API deprecated July 2024 — use v1 API only.**
297
-
298
- **FCM v1 endpoint:**
299
- `POST https://fcm.googleapis.com/v1/projects/{project_id}/messages:send`
300
-
301
- **Auth:** OAuth 2.0 Bearer token using service account key (FIREBASE_SERVICE_ACCOUNT_KEY in GCP Secret Manager)
302
-
303
- **Message structure (v1):**
304
-
305
- ```json
306
- {
307
- "message": {
308
- "token": "device_fcm_token",
309
- "notification": {
310
- "title": "ACH Transfer Challenge",
311
- "body": "Tap the matching number"
312
- },
313
- "data": {
314
- "type": "ach_challenge",
315
- "challengeId": "uuid",
316
- "options": "[\"3\",\"7\",\"9\"]"
317
- },
318
- "android": {
319
- "priority": "high",
320
- "notification": {
321
- "channel_id": "ach_challenges",
322
- "sound": "default"
323
- }
324
- },
325
- "apns": {
326
- "headers": { "apns-priority": "10" },
327
- "payload": {
328
- "aps": {
329
- "sound": "default",
330
- "badge": 1,
331
- "content-available": 1
332
- }
333
- }
334
- }
335
- }
336
- }
337
- ```
338
-
339
- **Android notification channels (required Android 8.0+):**
340
- Create channels at app startup:
341
-
342
- ```kotlin
343
- val channel = NotificationChannel(
344
- "ach_challenges",
345
- "ACH Challenges",
346
- NotificationManager.IMPORTANCE_HIGH
347
- ).apply {
348
- description = "ACH transfer challenge notifications"
349
- }
350
- val notificationManager = getSystemService(NotificationManager::class.java)
351
- notificationManager.createNotificationChannel(channel)
352
- ```
353
-
354
- In Expo: configure in `app.json`:
355
-
356
- ```json
357
- {
358
- "expo": {
359
- "android": {
360
- "googleServicesFile": "./google-services.json"
361
- },
362
- "plugins": [
363
- [
364
- "expo-notifications",
365
- {
366
- "androidCollapsedTitle": "<project>",
367
- "channels": [
368
- {
369
- "name": "ach_challenges",
370
- "importance": "max",
371
- "vibrationPattern": [0, 250, 250, 250]
372
- }
373
- ]
374
- }
375
- ]
376
- ]
377
- }
378
- }
379
- ```
380
-
381
- **Sending FCM from Next.js backend:**
382
-
383
- ```typescript
384
- import { GoogleAuth } from "google-auth-library";
385
-
386
- async function sendFCMNotification(token: string, data: object) {
387
- const auth = new GoogleAuth({
388
- scopes: ["https://www.googleapis.com/auth/firebase.messaging"],
389
- credentials: JSON.parse(process.env.FIREBASE_SERVICE_ACCOUNT_KEY!),
390
- });
391
- const client = await auth.getClient();
392
- const accessToken = await client.getAccessToken();
393
-
394
- const response = await fetch(
395
- `https://fcm.googleapis.com/v1/projects/<gcp-project>-a98aa/messages:send`,
396
- {
397
- method: "POST",
398
- headers: {
399
- Authorization: `Bearer ${accessToken.token}`,
400
- "Content-Type": "application/json",
401
- },
402
- body: JSON.stringify({ message: { token, ...data } }),
403
- },
404
- );
405
- return response.json();
406
- }
407
- ```
408
-
409
- ---
410
-
411
- ## 9. Google Sign-In Android
412
-
413
- **Error codes:**
414
- | Code | Meaning | Fix |
415
- |------|---------|-----|
416
- | 10 (DEVELOPER_ERROR) | SHA-1 mismatch | Add both dev + prod SHA-1 to Firebase; download new google-services.json |
417
- | 12500 | Sign-in failed | Check SHA-1 and OAuth client configuration |
418
- | 12501 | Sign-in cancelled | User dismissed |
419
- | 12502 | Sign-in currently in progress | Deduplicate calls |
420
- | 7 | NETWORK_ERROR | No internet connection |
421
-
422
- **SHA-1 is the #1 cause of DEVELOPER_ERROR (code 10).**
423
-
424
- Diagnosis: `adb logcat | grep "Google Sign-In"` — look for "SHA-1 not registered"
425
-
426
- **Expo/React Native Google Sign-In setup:**
427
-
428
- ```json
429
- // app.json
430
- {
431
- "expo": {
432
- "plugins": [
433
- [
434
- "@react-native-google-signin/google-signin",
435
- {
436
- "iosUrlScheme": "com.googleusercontent.apps.929418470411-XXXXX"
437
- }
438
- ]
439
- ]
440
- }
441
- }
442
- ```
443
-
444
- ```typescript
445
- import { GoogleSignin } from "@react-native-google-signin/google-signin";
446
-
447
- GoogleSignin.configure({
448
- webClientId: "WEB_CLIENT_ID.apps.googleusercontent.com", // from Firebase Console
449
- offlineAccess: true,
450
- });
451
- ```
452
-
453
- **webClientId = Web client OAuth client ID**, NOT Android client ID.
454
- Find in Firebase Console → Authentication → Sign-in method → Google → Web SDK configuration.
455
-
456
- ---
457
-
458
- ## 10. Target SDK Requirements
459
-
460
- **Google Play enforcement schedule:**
461
- | Date | Requirement |
462
- |------|-------------|
463
- | August 2024 | New apps: targetSdkVersion ≥ 34 |
464
- | November 2024 | Existing apps updates: targetSdkVersion ≥ 34 |
465
- | 2025+ | ≥ 35 for new apps (Android 15) |
466
-
467
- **Android 14 (API 34) behavior changes affecting <project>:**
468
-
469
- - Foreground service types required (specify `android:foregroundServiceType`)
470
- - `ACTION_SCHEDULE_EXACT_ALARM` permission requires user opt-in
471
- - Photos/Media permissions split (partial access option)
472
- - Health Connect for health data
473
-
474
- **Android 15 (API 35) behavior changes:**
475
-
476
- - Edge-to-edge display enforcement
477
- - Health Connect permissions more granular
478
- - Predictive back gesture default on
479
-
480
- **In Expo (SDK 54), targetSdkVersion is set automatically.**
481
- Verify in `android/build.gradle` (ejected) or let EAS manage it.
482
-
483
- ---
484
-
485
- ## 11. Background Processing
486
-
487
- **WorkManager (recommended for most background work):**
488
-
489
- ```kotlin
490
- // Kotlin
491
- val workRequest = PeriodicWorkRequestBuilder<SyncWorker>(15, TimeUnit.MINUTES)
492
- .setConstraints(Constraints.Builder()
493
- .setRequiredNetworkType(NetworkType.CONNECTED)
494
- .build())
495
- .build()
496
- WorkManager.getInstance(context).enqueueUniquePeriodicWork(
497
- "sync_guardian", ExistingPeriodicWorkPolicy.KEEP, workRequest)
498
- ```
499
-
500
- In Expo/React Native: `expo-background-fetch` wraps this.
501
-
502
- **Doze mode and App Standby:**
503
-
504
- - Android 6+ throttles background processes when device is idle
505
- - FCM high-priority messages bypass Doze
506
- - WorkManager automatically handles Doze scheduling
507
- - Battery optimization exemption: can request user to exempt your app (not automatic)
508
-
509
- **Exact alarms (Android 12+):**
510
-
511
- - `SCHEDULE_EXACT_ALARM` permission required for exact alarms
512
- - Must show rationale and send user to settings if denied
513
- - For most use cases, use `setAndAllowWhileIdle` or WorkManager instead
514
-
515
- ---
516
-
517
- ## 12. ProGuard / R8
518
-
519
- **R8 (default in modern Android) replaces ProGuard:**
520
-
521
- - Minification (removes unused code)
522
- - Obfuscation (renames classes/methods)
523
- - Optimization (inlines code, removes dead code)
524
-
525
- **Enable in build.gradle (enabled by default in release builds):**
526
-
527
- ```groovy
528
- buildTypes {
529
- release {
530
- minifyEnabled true
531
- shrinkResources true
532
- proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
533
- }
534
- }
535
- ```
536
-
537
- **Critical keep rules for <project>:**
538
-
539
- ```proguard
540
- # Keep Firebase classes
541
- -keep class com.google.firebase.** { *; }
542
- -keep class com.google.android.gms.** { *; }
543
-
544
- # Keep React Native
545
- -keep class com.facebook.react.** { *; }
546
-
547
- # Keep Expo modules
548
- -keep class expo.modules.** { *; }
549
-
550
- # Keep data classes used with JSON parsing
551
- -keep class com.<project>.** { *; }
552
- -keepclassmembers class ** {
553
- @com.google.gson.annotations.SerializedName <fields>;
554
- }
555
- ```
556
-
557
- **EAS handles ProGuard configuration** for managed workflow.
558
- For bare workflow: maintain `android/app/proguard-rules.pro`.
559
-
560
- **Debugging ProGuard issues:**
561
-
562
- - Use `mapping.txt` (generated with each release build) to de-obfuscate stack traces
563
- - Upload `mapping.txt` to Play Console for automatic de-obfuscation in Android Vitals
564
- - Firebase Crashlytics can also use mapping.txt for clear crash reports
565
-
566
- ---
567
-
568
- ## 13. Firebase Android Integration
569
-
570
- **<project> Firebase:**
571
-
572
- - Project: <gcp-project>-a98aa
573
- - Android App ID: `1:929418470411:android:d88ddc48cf7656271d130e`
574
- - google-services.json: in repo root
575
-
576
- **google-services.json structure:**
577
-
578
- ```json
579
- {
580
- "project_info": {
581
- "project_number": "929418470411",
582
- "project_id": "<gcp-project>-a98aa"
583
- },
584
- "client": [{
585
- "client_info": {
586
- "mobilesdk_app_id": "1:929418470411:android:d88ddc48cf7656271d130e",
587
- "android_client_info": {
588
- "package_name": "com.<project>.shield"
589
- }
590
- },
591
- "oauth_client": [{
592
- "client_id": "929418470411-ipdh7o4dp8fijjm7vbcmk43u03nnf1s7.apps.googleusercontent.com",
593
- "client_type": 1,
594
- "android_info": {
595
- "package_name": "com.<project>.shield",
596
- "certificate_hash": "SHA-1 goes here"
597
- }
598
- }],
599
- "services": {
600
- "appinvite_service": { ... }
601
- }
602
- }]
603
- }
604
- ```
605
-
606
- **After adding SHA-1 to Firebase → regenerate and re-download google-services.json.**
607
- The file must be in the root of the Expo project (not android/ — EAS copies it).
608
-
609
- ---
610
-
611
- ## 14. Play Integrity API
612
-
613
- **Replaces SafetyNet (deprecated November 2024).**
614
- Use to verify: device integrity, app integrity, user license.
615
-
616
- **Verdict types:**
617
-
618
- - `MEETS_DEVICE_INTEGRITY` — device passes Android compatibility checks
619
- - `MEETS_BASIC_INTEGRITY` — passes basic Android security checks
620
- - `MEETS_STRONG_INTEGRITY` — certified hardware, bootloader locked
621
-
622
- **For <project> (fintech):** Check `MEETS_BASIC_INTEGRITY` minimum before allowing ACH transactions.
623
-
624
- **Implementation:**
625
-
626
- ```kotlin
627
- val integrityManager = IntegrityManagerFactory.create(context)
628
- val nonce = generateSecureNonce() // backend-generated
629
- val integrityTokenResponse = integrityManager
630
- .requestIntegrityToken(IntegrityTokenRequest.builder()
631
- .setNonce(nonce)
632
- .setCloudProjectNumber(929418470411L)
633
- .build()).await()
634
- // Send token to backend for verification
635
- ```
636
-
637
- **Backend verification:**
638
- POST to Google Play Integrity API → returns verdict.
639
- Server-to-server verification using service account.
640
-
641
- ---
642
-
643
- ## 15. Common Android Submission Failures
644
-
645
- **"You uploaded an APK or Android App Bundle that is not zip aligned":**
646
- EAS handles this. If building locally: `zipalign -v -p 4 app.apk app-aligned.apk`
647
-
648
- **"Your app targets an old version of Android":**
649
- Increase `targetSdkVersion` to ≥ 34 in build.gradle or let EAS SDK 54 handle it.
650
-
651
- **"This release is not compliant with the EU User Choice Billing policy":**
652
- If operating in EU: must offer alternative billing options for subscriptions. <project>: not relevant for free app.
653
-
654
- **"You need to publish to a restricted track first":**
655
- For new accounts or apps: publish to internal testing first, then promote to production.
656
-
657
- **"Sensitive permissions not declared":**
658
- Add to Data Safety section in Play Console. Cannot just be in AndroidManifest.
659
-
660
- **"Multiple DEX files define the same class":**
661
- Dependency conflict in `build.gradle`. Use `exclude group:` to resolve.
662
-
663
- **"App crashes on launch during pre-launch testing":**
664
- Firebase Test Lab runs your app automatically. Common causes:
665
-
666
- - Missing network permissions
667
- - Missing google-services.json
668
- - Unhandled exception on main thread at startup
669
- - Native library not found
670
-
671
- **versionCode not incrementing:**
672
- Symptom: "Version code already uploaded"
673
- Fix: `android.versionCode: <current + 1>` in app.json → EAS rebuild
674
-
675
- **Google Sign-In fails in production but works in debug:**
676
- Production SHA-1 (`41:35:AF...`) not added to Firebase.
677
- Fix: Firebase Console → Android app → Add fingerprint → Download new google-services.json → commit → rebuild.
678
-
679
- **"This app has not been reviewed yet":**
680
- Normal for first closed testing release. Wait for review completion before promoting to production.
1
+ # Android Expert Reference — Build to Launch
2
+
3
+ ## Table of Contents
4
+
5
+ 1. [Android Project Fundamentals](#1-android-project-fundamentals)
6
+ 2. [Signing & Keystores](#2-signing--keystores)
7
+ 3. [Play App Signing](#3-play-app-signing)
8
+ 4. [SHA-1 Fingerprints & OAuth](#4-sha-1-fingerprints--oauth)
9
+ 5. [Play Console Deep Dive](#5-play-console-deep-dive)
10
+ 6. [Play Store Review & Policies](#6-play-store-review--policies)
11
+ 7. [App Bundle (AAB) vs APK](#7-app-bundle-aab-vs-apk)
12
+ 8. [FCM v1 API](#8-fcm-v1-api)
13
+ 9. [Google Sign-In Android](#9-google-sign-in-android)
14
+ 10. [Target SDK Requirements](#10-target-sdk-requirements)
15
+ 11. [Background Processing](#11-background-processing)
16
+ 12. [ProGuard / R8](#12-proguard--r8)
17
+ 13. [Firebase Android Integration](#13-firebase-android-integration)
18
+ 14. [Play Integrity API](#14-play-integrity-api)
19
+ 15. [Common Android Submission Failures](#15-common-android-submission-failures)
20
+
21
+ ---
22
+
23
+ ## 1. Android Project Fundamentals
24
+
25
+ **versionCode rules:**
26
+
27
+ - Always an integer: 1, 2, 3...
28
+ - Must STRICTLY increase with every upload to Play Console
29
+ - Once uploaded, that versionCode can never be reused for that app
30
+ - EAS manages this via `android.versionCode` in app.json
31
+
32
+ **versionName rules:**
33
+
34
+ - Human-readable string: "2.3.0", "2.3.1"
35
+ - No strict requirement to increment (but should match marketing version)
36
+ - Shown to users in Play Store
37
+
38
+ **<project> Android current state:**
39
+
40
+ - versionCode 14 / v2.3.0 — under Play Store review
41
+ - versionCode 10 — currently active on devices
42
+ - Next build: versionCode 15 / v2.4.0
43
+
44
+ **Package name:** `com.<project>.shield` — permanent, never changes after first upload.
45
+ Changing package name = entirely new app listing with zero install base.
46
+
47
+ **Minimum SDK targets (2026):**
48
+
49
+ - `minSdkVersion`: 21 (Android 5.0) — covers 99%+ of active devices
50
+ - `targetSdkVersion`: 34 (Android 14) — **required by Google Play as of August 2024**
51
+ - `compileSdkVersion`: 35 (Android 15) — use latest
52
+
53
+ **Kotlin 2.0 highlights:**
54
+
55
+ - K2 compiler: 2x faster compilation
56
+ - `data class` copy with named arguments required
57
+ - Smart casts improved across function boundaries
58
+ - Compose: stable with Kotlin 2.0
59
+
60
+ ---
61
+
62
+ ## 2. Signing & Keystores
63
+
64
+ **Upload key vs App signing key:**
65
+ With Play App Signing (mandatory for AAB):
66
+
67
+ - **Upload key:** Used to sign AAB before uploading. Lives on your machine / EAS.
68
+ - **App signing key:** Managed by Google. Applied to the final APK delivered to devices.
69
+ - If you lose your upload key, you can register a new one in Play Console.
70
+ - The SHA-1 that matters for Google Sign-In is the **App signing key** SHA-1 (Google manages this).
71
+
72
+ **EAS manages signing automatically:**
73
+
74
+ - EAS generates and stores your upload keystore
75
+ - View keystore details: `eas credentials`
76
+ - SHA-1 of upload key (dev): `D6:04:59:BE:DC:0C:BC:0E:85:00:23:CA:A4:2B:F7:BE:1C:5D:C1:E4`
77
+ - SHA-1 of production key (Play App Signing): `41:35:AF:FE:B8:FE:BE:F9:DD:77:B4:61:05:BC:DA:7A:49:FC:F6:2B`
78
+
79
+ **Generating a keystore manually (if needed):**
80
+
81
+ ```bash
82
+ keytool -genkeypair -v \
83
+ -storetype PKCS12 \
84
+ -keystore <project>-upload-key.jks \
85
+ -alias <project> \
86
+ -keyalg RSA \
87
+ -keysize 2048 \
88
+ -validity 10000
89
+ ```
90
+
91
+ **Getting SHA-1 from keystore:**
92
+
93
+ ```bash
94
+ keytool -list -v \
95
+ -keystore <project>-upload-key.jks \
96
+ -alias <project>
97
+ ```
98
+
99
+ **CRITICAL:** Back up your keystore file + password + alias + alias password.
100
+ Without these you cannot update your app (you lose upload key recovery option).
101
+ EAS stores keystores in their secure vault — managed builds are backed up.
102
+
103
+ ---
104
+
105
+ ## 3. Play App Signing
106
+
107
+ **Mandatory since August 2021** for new apps using AAB format.
108
+
109
+ **Flow:**
110
+
111
+ ```
112
+ You sign AAB with upload key
113
+ → Upload to Play Console
114
+ → Google verifies your signature
115
+ → Google re-signs with app signing key
116
+ → Distributed to users signed with Google's key
117
+ ```
118
+
119
+ **Finding your App Signing Certificate SHA-1 (for OAuth):**
120
+
121
+ 1. Play Console → Release → Setup → App signing
122
+ 2. "App signing key certificate" section → SHA-1 certificate fingerprint
123
+ 3. This is the value that goes into Google Cloud Console / Firebase for production OAuth
124
+
125
+ **<project> App Signing Key SHA-1:**
126
+ `41:35:AF:FE:B8:FE:BE:F9:DD:77:B4:61:05:BC:DA:7A:49:FC:F6:2B`
127
+
128
+ **Upload key reset (if lost):**
129
+
130
+ 1. Play Console → App → Setup → App signing
131
+ 2. Request upload key reset
132
+ 3. Generate new keystore, sign a new AAB
133
+ 4. Submit with new AAB — Google verifies identity via Play Developer account
134
+
135
+ ---
136
+
137
+ ## 4. SHA-1 Fingerprints & OAuth
138
+
139
+ **Two SHA-1 fingerprints for <project> Android:**
140
+
141
+ 1. **Dev SHA-1** (for debug builds and EAS development profile):
142
+ `D6:04:59:BE:DC:0C:BC:0E:85:00:23:CA:A4:2B:F7:BE:1C:5D:C1:E4`
143
+ → Add to Firebase Android app → google-services.json regenerated
144
+
145
+ 2. **Production SHA-1** (Play App Signing key — for Play Store builds):
146
+ `41:35:AF:FE:B8:FE:BE:F9:DD:77:B4:61:05:BC:DA:7A:49:FC:F6:2B`
147
+ → Add to Firebase Android app → google-services.json regenerated
148
+
149
+ **Both SHA-1s must be registered in Firebase** for Google Sign-In to work across dev and production builds.
150
+
151
+ **Firebase Console → Project Settings → Your apps → Android app:**
152
+
153
+ - Add both SHA-1 fingerprints
154
+ - Download updated google-services.json
155
+ - Commit to repo root
156
+
157
+ **OAuth flow with SHA-1:**
158
+ Android Google Sign-In verifies the APK signing certificate at runtime.
159
+ If the SHA-1 of the signing cert doesn't match what's registered in Firebase/OAuth Console,
160
+ sign-in fails with `DEVELOPER_ERROR` (error code 10).
161
+
162
+ **Error code 10 in Google Sign-In = SHA-1 mismatch.** Always the first thing to check.
163
+
164
+ **Firebase OAuth client ID for Android:**
165
+ `929418470411-ipdh7o4dp8fijjm7vbcmk43u03nnf1s7.apps.googleusercontent.com`
166
+
167
+ ---
168
+
169
+ ## 5. Play Console Deep Dive
170
+
171
+ **Account:** <email>
172
+ **App:** <project> Shield · Package: com.<project>.shield
173
+ **App ID:** 6099591004492585106
174
+
175
+ **Track types:**
176
+ | Track | Description | Review required |
177
+ |-------|-------------|-----------------|
178
+ | Internal testing | Up to 100 testers (by email) | No review, available in minutes |
179
+ | Closed testing (Alpha) | Up to ~thousand testers | Brief review (~hours) |
180
+ | Open testing (Beta) | Unlimited testers, opt-in | Brief review |
181
+ | Production | All users | Full review (~days) |
182
+
183
+ **Staged rollout:**
184
+
185
+ - Roll out to 1%, 5%, 10%, 20%, 50%, 100% of users
186
+ - Monitor crash rate and ANR rate before expanding
187
+ - Can halt rollout if issues detected
188
+ - <project>: start at 20% for new releases until stable
189
+
190
+ **Play Console review timeline:**
191
+
192
+ - Internal testing: minutes (no review)
193
+ - Closed/Open testing: a few hours to 1 day
194
+ - Production first release: 1-3 business days
195
+ - Production updates for established apps: hours to 1 day
196
+ - Post-rejection resubmission: same timeline
197
+
198
+ **Policy dashboard:** Play Console → Policy status → Review violations
199
+ **Pre-launch reports:** Automated Firebase Test Lab tests run on your AAB
200
+ **Android vitals:** Crash rate, ANR rate, battery, permissions
201
+
202
+ **AAB upload steps:**
203
+
204
+ 1. Play Console → App → Release → Closed testing (or Internal testing)
205
+ 2. Create new release
206
+ 3. Upload AAB file
207
+ 4. Fill "What's new in this release"
208
+ 5. Review release → Save → Start rollout
209
+
210
+ **Version code error on upload:**
211
+
212
+ > "Version code X has already been used. Try another version code."
213
+ > Fix: increment versionCode in app.json and rebuild.
214
+
215
+ ---
216
+
217
+ ## 6. Play Store Review & Policies
218
+
219
+ **Critical policies for <project> (financial app):**
220
+
221
+ - **Financial services policy:** Apps offering banking/financial services must comply with local laws, display required disclosures, and not mislead users about financial products.
222
+ - **Personal data:** Declare all data collection in the Data Safety section.
223
+ - **Sensitive permissions:** CAMERA, CONTACTS, LOCATION, READ_CALL_LOG require prominent disclosure at runtime before requesting.
224
+
225
+ **Data Safety section (required since 2022):**
226
+
227
+ - Must declare all data types collected, whether shared with third parties, whether data can be deleted by user
228
+ - <project> data types: Name, Email, Phone number, Financial info (account numbers), Device identifiers
229
+ - Fill in Play Console → App content → Data safety
230
+
231
+ **Target audience:** If any content could appeal to children, must comply with Families Policy.
232
+ <project> target: adults only → confirm in Play Console → App content → Target audience.
233
+
234
+ **POST_NOTIFICATIONS permission (Android 13+):**
235
+ Must request at runtime — cannot assume it's granted.
236
+
237
+ ```kotlin
238
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
239
+ ActivityCompat.requestPermissions(
240
+ this, arrayOf(Manifest.permission.POST_NOTIFICATIONS), 1)
241
+ }
242
+ ```
243
+
244
+ In Expo: `expo-notifications` handles this automatically.
245
+
246
+ **Permission best practices:**
247
+
248
+ - Request permissions at the moment they're needed (contextual)
249
+ - Never request all permissions at app launch
250
+ - Provide rationale before requesting (especially for sensitive permissions)
251
+ - Handle denial gracefully
252
+
253
+ **Common rejection reasons:**
254
+
255
+ - Missing privacy policy (must be accessible in-app AND in store listing)
256
+ - Missing data safety declaration
257
+ - Misleading app description
258
+ - Screenshot doesn't match actual app UI
259
+ - App requests permissions not needed for stated functionality
260
+ - Financial claims not substantiated (e.g., "guaranteed fraud protection")
261
+ - App crashes during Play review testing
262
+
263
+ ---
264
+
265
+ ## 7. App Bundle (AAB) vs APK
266
+
267
+ **Always use AAB for Play Store.** APKs are no longer accepted for new apps.
268
+
269
+ **AAB benefits:**
270
+
271
+ - Google optimizes delivery per device (only relevant code/resources)
272
+ - Smaller install size for users (20-50% reduction)
273
+ - Required for Play App Signing
274
+
275
+ **AAB structure:**
276
+
277
+ - `base/` — main app module
278
+ - `feature/` — optional dynamic feature modules
279
+ - Resources split by density, ABI, language
280
+
281
+ **EAS produces AAB** for the `production` profile automatically.
282
+ EAS produces APK for `preview` profile (for direct installation without Play Store).
283
+
284
+ **Local build (not EAS):**
285
+
286
+ ```bash
287
+ cd android
288
+ ./gradlew bundleRelease
289
+ # Output: app/build/outputs/bundle/release/app-release.aab
290
+ ```
291
+
292
+ ---
293
+
294
+ ## 8. FCM v1 API
295
+
296
+ **Legacy HTTP API deprecated July 2024 — use v1 API only.**
297
+
298
+ **FCM v1 endpoint:**
299
+ `POST https://fcm.googleapis.com/v1/projects/{project_id}/messages:send`
300
+
301
+ **Auth:** OAuth 2.0 Bearer token using service account key (FIREBASE_SERVICE_ACCOUNT_KEY in GCP Secret Manager)
302
+
303
+ **Message structure (v1):**
304
+
305
+ ```json
306
+ {
307
+ "message": {
308
+ "token": "device_fcm_token",
309
+ "notification": {
310
+ "title": "ACH Transfer Challenge",
311
+ "body": "Tap the matching number"
312
+ },
313
+ "data": {
314
+ "type": "ach_challenge",
315
+ "challengeId": "uuid",
316
+ "options": "[\"3\",\"7\",\"9\"]"
317
+ },
318
+ "android": {
319
+ "priority": "high",
320
+ "notification": {
321
+ "channel_id": "ach_challenges",
322
+ "sound": "default"
323
+ }
324
+ },
325
+ "apns": {
326
+ "headers": { "apns-priority": "10" },
327
+ "payload": {
328
+ "aps": {
329
+ "sound": "default",
330
+ "badge": 1,
331
+ "content-available": 1
332
+ }
333
+ }
334
+ }
335
+ }
336
+ }
337
+ ```
338
+
339
+ **Android notification channels (required Android 8.0+):**
340
+ Create channels at app startup:
341
+
342
+ ```kotlin
343
+ val channel = NotificationChannel(
344
+ "ach_challenges",
345
+ "ACH Challenges",
346
+ NotificationManager.IMPORTANCE_HIGH
347
+ ).apply {
348
+ description = "ACH transfer challenge notifications"
349
+ }
350
+ val notificationManager = getSystemService(NotificationManager::class.java)
351
+ notificationManager.createNotificationChannel(channel)
352
+ ```
353
+
354
+ In Expo: configure in `app.json`:
355
+
356
+ ```json
357
+ {
358
+ "expo": {
359
+ "android": {
360
+ "googleServicesFile": "./google-services.json"
361
+ },
362
+ "plugins": [
363
+ [
364
+ "expo-notifications",
365
+ {
366
+ "androidCollapsedTitle": "<project>",
367
+ "channels": [
368
+ {
369
+ "name": "ach_challenges",
370
+ "importance": "max",
371
+ "vibrationPattern": [0, 250, 250, 250]
372
+ }
373
+ ]
374
+ }
375
+ ]
376
+ ]
377
+ }
378
+ }
379
+ ```
380
+
381
+ **Sending FCM from Next.js backend:**
382
+
383
+ ```typescript
384
+ import { GoogleAuth } from "google-auth-library";
385
+
386
+ async function sendFCMNotification(token: string, data: object) {
387
+ const auth = new GoogleAuth({
388
+ scopes: ["https://www.googleapis.com/auth/firebase.messaging"],
389
+ credentials: JSON.parse(process.env.FIREBASE_SERVICE_ACCOUNT_KEY!),
390
+ });
391
+ const client = await auth.getClient();
392
+ const accessToken = await client.getAccessToken();
393
+
394
+ const response = await fetch(
395
+ `https://fcm.googleapis.com/v1/projects/<gcp-project>-a98aa/messages:send`,
396
+ {
397
+ method: "POST",
398
+ headers: {
399
+ Authorization: `Bearer ${accessToken.token}`,
400
+ "Content-Type": "application/json",
401
+ },
402
+ body: JSON.stringify({ message: { token, ...data } }),
403
+ },
404
+ );
405
+ return response.json();
406
+ }
407
+ ```
408
+
409
+ ---
410
+
411
+ ## 9. Google Sign-In Android
412
+
413
+ **Error codes:**
414
+ | Code | Meaning | Fix |
415
+ |------|---------|-----|
416
+ | 10 (DEVELOPER_ERROR) | SHA-1 mismatch | Add both dev + prod SHA-1 to Firebase; download new google-services.json |
417
+ | 12500 | Sign-in failed | Check SHA-1 and OAuth client configuration |
418
+ | 12501 | Sign-in cancelled | User dismissed |
419
+ | 12502 | Sign-in currently in progress | Deduplicate calls |
420
+ | 7 | NETWORK_ERROR | No internet connection |
421
+
422
+ **SHA-1 is the #1 cause of DEVELOPER_ERROR (code 10).**
423
+
424
+ Diagnosis: `adb logcat | grep "Google Sign-In"` — look for "SHA-1 not registered"
425
+
426
+ **Expo/React Native Google Sign-In setup:**
427
+
428
+ ```json
429
+ // app.json
430
+ {
431
+ "expo": {
432
+ "plugins": [
433
+ [
434
+ "@react-native-google-signin/google-signin",
435
+ {
436
+ "iosUrlScheme": "com.googleusercontent.apps.929418470411-XXXXX"
437
+ }
438
+ ]
439
+ ]
440
+ }
441
+ }
442
+ ```
443
+
444
+ ```typescript
445
+ import { GoogleSignin } from "@react-native-google-signin/google-signin";
446
+
447
+ GoogleSignin.configure({
448
+ webClientId: "WEB_CLIENT_ID.apps.googleusercontent.com", // from Firebase Console
449
+ offlineAccess: true,
450
+ });
451
+ ```
452
+
453
+ **webClientId = Web client OAuth client ID**, NOT Android client ID.
454
+ Find in Firebase Console → Authentication → Sign-in method → Google → Web SDK configuration.
455
+
456
+ ---
457
+
458
+ ## 10. Target SDK Requirements
459
+
460
+ **Google Play enforcement schedule:**
461
+ | Date | Requirement |
462
+ |------|-------------|
463
+ | August 2024 | New apps: targetSdkVersion ≥ 34 |
464
+ | November 2024 | Existing apps updates: targetSdkVersion ≥ 34 |
465
+ | 2025+ | ≥ 35 for new apps (Android 15) |
466
+
467
+ **Android 14 (API 34) behavior changes affecting <project>:**
468
+
469
+ - Foreground service types required (specify `android:foregroundServiceType`)
470
+ - `ACTION_SCHEDULE_EXACT_ALARM` permission requires user opt-in
471
+ - Photos/Media permissions split (partial access option)
472
+ - Health Connect for health data
473
+
474
+ **Android 15 (API 35) behavior changes:**
475
+
476
+ - Edge-to-edge display enforcement
477
+ - Health Connect permissions more granular
478
+ - Predictive back gesture default on
479
+
480
+ **In Expo (SDK 54), targetSdkVersion is set automatically.**
481
+ Verify in `android/build.gradle` (ejected) or let EAS manage it.
482
+
483
+ ---
484
+
485
+ ## 11. Background Processing
486
+
487
+ **WorkManager (recommended for most background work):**
488
+
489
+ ```kotlin
490
+ // Kotlin
491
+ val workRequest = PeriodicWorkRequestBuilder<SyncWorker>(15, TimeUnit.MINUTES)
492
+ .setConstraints(Constraints.Builder()
493
+ .setRequiredNetworkType(NetworkType.CONNECTED)
494
+ .build())
495
+ .build()
496
+ WorkManager.getInstance(context).enqueueUniquePeriodicWork(
497
+ "sync_guardian", ExistingPeriodicWorkPolicy.KEEP, workRequest)
498
+ ```
499
+
500
+ In Expo/React Native: `expo-background-fetch` wraps this.
501
+
502
+ **Doze mode and App Standby:**
503
+
504
+ - Android 6+ throttles background processes when device is idle
505
+ - FCM high-priority messages bypass Doze
506
+ - WorkManager automatically handles Doze scheduling
507
+ - Battery optimization exemption: can request user to exempt your app (not automatic)
508
+
509
+ **Exact alarms (Android 12+):**
510
+
511
+ - `SCHEDULE_EXACT_ALARM` permission required for exact alarms
512
+ - Must show rationale and send user to settings if denied
513
+ - For most use cases, use `setAndAllowWhileIdle` or WorkManager instead
514
+
515
+ ---
516
+
517
+ ## 12. ProGuard / R8
518
+
519
+ **R8 (default in modern Android) replaces ProGuard:**
520
+
521
+ - Minification (removes unused code)
522
+ - Obfuscation (renames classes/methods)
523
+ - Optimization (inlines code, removes dead code)
524
+
525
+ **Enable in build.gradle (enabled by default in release builds):**
526
+
527
+ ```groovy
528
+ buildTypes {
529
+ release {
530
+ minifyEnabled true
531
+ shrinkResources true
532
+ proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
533
+ }
534
+ }
535
+ ```
536
+
537
+ **Critical keep rules for <project>:**
538
+
539
+ ```proguard
540
+ # Keep Firebase classes
541
+ -keep class com.google.firebase.** { *; }
542
+ -keep class com.google.android.gms.** { *; }
543
+
544
+ # Keep React Native
545
+ -keep class com.facebook.react.** { *; }
546
+
547
+ # Keep Expo modules
548
+ -keep class expo.modules.** { *; }
549
+
550
+ # Keep data classes used with JSON parsing
551
+ -keep class com.<project>.** { *; }
552
+ -keepclassmembers class ** {
553
+ @com.google.gson.annotations.SerializedName <fields>;
554
+ }
555
+ ```
556
+
557
+ **EAS handles ProGuard configuration** for managed workflow.
558
+ For bare workflow: maintain `android/app/proguard-rules.pro`.
559
+
560
+ **Debugging ProGuard issues:**
561
+
562
+ - Use `mapping.txt` (generated with each release build) to de-obfuscate stack traces
563
+ - Upload `mapping.txt` to Play Console for automatic de-obfuscation in Android Vitals
564
+ - Firebase Crashlytics can also use mapping.txt for clear crash reports
565
+
566
+ ---
567
+
568
+ ## 13. Firebase Android Integration
569
+
570
+ **<project> Firebase:**
571
+
572
+ - Project: <gcp-project>-a98aa
573
+ - Android App ID: `1:929418470411:android:d88ddc48cf7656271d130e`
574
+ - google-services.json: in repo root
575
+
576
+ **google-services.json structure:**
577
+
578
+ ```json
579
+ {
580
+ "project_info": {
581
+ "project_number": "929418470411",
582
+ "project_id": "<gcp-project>-a98aa"
583
+ },
584
+ "client": [{
585
+ "client_info": {
586
+ "mobilesdk_app_id": "1:929418470411:android:d88ddc48cf7656271d130e",
587
+ "android_client_info": {
588
+ "package_name": "com.<project>.shield"
589
+ }
590
+ },
591
+ "oauth_client": [{
592
+ "client_id": "929418470411-ipdh7o4dp8fijjm7vbcmk43u03nnf1s7.apps.googleusercontent.com",
593
+ "client_type": 1,
594
+ "android_info": {
595
+ "package_name": "com.<project>.shield",
596
+ "certificate_hash": "SHA-1 goes here"
597
+ }
598
+ }],
599
+ "services": {
600
+ "appinvite_service": { ... }
601
+ }
602
+ }]
603
+ }
604
+ ```
605
+
606
+ **After adding SHA-1 to Firebase → regenerate and re-download google-services.json.**
607
+ The file must be in the root of the Expo project (not android/ — EAS copies it).
608
+
609
+ ---
610
+
611
+ ## 14. Play Integrity API
612
+
613
+ **Replaces SafetyNet (deprecated November 2024).**
614
+ Use to verify: device integrity, app integrity, user license.
615
+
616
+ **Verdict types:**
617
+
618
+ - `MEETS_DEVICE_INTEGRITY` — device passes Android compatibility checks
619
+ - `MEETS_BASIC_INTEGRITY` — passes basic Android security checks
620
+ - `MEETS_STRONG_INTEGRITY` — certified hardware, bootloader locked
621
+
622
+ **For <project> (fintech):** Check `MEETS_BASIC_INTEGRITY` minimum before allowing ACH transactions.
623
+
624
+ **Implementation:**
625
+
626
+ ```kotlin
627
+ val integrityManager = IntegrityManagerFactory.create(context)
628
+ val nonce = generateSecureNonce() // backend-generated
629
+ val integrityTokenResponse = integrityManager
630
+ .requestIntegrityToken(IntegrityTokenRequest.builder()
631
+ .setNonce(nonce)
632
+ .setCloudProjectNumber(929418470411L)
633
+ .build()).await()
634
+ // Send token to backend for verification
635
+ ```
636
+
637
+ **Backend verification:**
638
+ POST to Google Play Integrity API → returns verdict.
639
+ Server-to-server verification using service account.
640
+
641
+ ---
642
+
643
+ ## 15. Common Android Submission Failures
644
+
645
+ **"You uploaded an APK or Android App Bundle that is not zip aligned":**
646
+ EAS handles this. If building locally: `zipalign -v -p 4 app.apk app-aligned.apk`
647
+
648
+ **"Your app targets an old version of Android":**
649
+ Increase `targetSdkVersion` to ≥ 34 in build.gradle or let EAS SDK 54 handle it.
650
+
651
+ **"This release is not compliant with the EU User Choice Billing policy":**
652
+ If operating in EU: must offer alternative billing options for subscriptions. <project>: not relevant for free app.
653
+
654
+ **"You need to publish to a restricted track first":**
655
+ For new accounts or apps: publish to internal testing first, then promote to production.
656
+
657
+ **"Sensitive permissions not declared":**
658
+ Add to Data Safety section in Play Console. Cannot just be in AndroidManifest.
659
+
660
+ **"Multiple DEX files define the same class":**
661
+ Dependency conflict in `build.gradle`. Use `exclude group:` to resolve.
662
+
663
+ **"App crashes on launch during pre-launch testing":**
664
+ Firebase Test Lab runs your app automatically. Common causes:
665
+
666
+ - Missing network permissions
667
+ - Missing google-services.json
668
+ - Unhandled exception on main thread at startup
669
+ - Native library not found
670
+
671
+ **versionCode not incrementing:**
672
+ Symptom: "Version code already uploaded"
673
+ Fix: `android.versionCode: <current + 1>` in app.json → EAS rebuild
674
+
675
+ **Google Sign-In fails in production but works in debug:**
676
+ Production SHA-1 (`41:35:AF...`) not added to Firebase.
677
+ Fix: Firebase Console → Android app → Add fingerprint → Download new google-services.json → commit → rebuild.
678
+
679
+ **"This app has not been reviewed yet":**
680
+ Normal for first closed testing release. Wait for review completion before promoting to production.