@heyai-rules/pilo-masterkit 1.2.2 → 2.1.0

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 (708) hide show
  1. package/.agent/agents/PILO_MASTER.md +77 -77
  2. package/.agent/agents/backend-specialist.md +263 -263
  3. package/.agent/agents/code-archaeologist.md +106 -106
  4. package/.agent/agents/csharp-reviewer.md +101 -0
  5. package/.agent/agents/dart-build-resolver.md +201 -0
  6. package/.agent/agents/database-architect.md +226 -226
  7. package/.agent/agents/debugger.md +225 -225
  8. package/.agent/agents/devops-engineer.md +242 -242
  9. package/.agent/agents/documentation-writer.md +104 -104
  10. package/.agent/agents/explorer-agent.md +73 -73
  11. package/.agent/agents/frontend-specialist.md +593 -593
  12. package/.agent/agents/game-developer.md +162 -162
  13. package/.agent/agents/gan-evaluator.md +209 -0
  14. package/.agent/agents/gan-generator.md +131 -0
  15. package/.agent/agents/gan-planner.md +99 -0
  16. package/.agent/agents/healthcare-reviewer.md +83 -0
  17. package/.agent/agents/mobile-developer.md +377 -377
  18. package/.agent/agents/opensource-forker.md +198 -0
  19. package/.agent/agents/opensource-packager.md +249 -0
  20. package/.agent/agents/opensource-sanitizer.md +188 -0
  21. package/.agent/agents/orchestrator.md +416 -416
  22. package/.agent/agents/penetration-tester.md +188 -188
  23. package/.agent/agents/performance-optimizer.md +446 -187
  24. package/.agent/agents/personas/athena-agent/agent.json +10 -0
  25. package/.agent/agents/personas/athena-agent/athena-backend-logic-architecture-profile.md +189 -0
  26. package/.agent/agents/personas/athena-agent/context-files/agents.md +55 -0
  27. package/.agent/agents/personas/athena-agent/context-files/identity.md +23 -0
  28. package/.agent/agents/personas/athena-agent/context-files/soul.md +51 -0
  29. package/.agent/agents/personas/athena-agent/context-files/user-predefined.md +15 -0
  30. package/.agent/agents/personas/athena-agent/user-context-files/system/bootstrap.md +37 -0
  31. package/.agent/agents/personas/athena-agent/user-context-files/system/user.md +45 -0
  32. package/.agent/agents/personas/da-vinci-agent/agent.json +10 -0
  33. package/.agent/agents/personas/da-vinci-agent/context-files/agents.md +55 -0
  34. package/.agent/agents/personas/da-vinci-agent/context-files/identity.md +23 -0
  35. package/.agent/agents/personas/da-vinci-agent/context-files/soul.md +51 -0
  36. package/.agent/agents/personas/da-vinci-agent/context-files/user-predefined.md +15 -0
  37. package/.agent/agents/personas/da-vinci-agent/da-vinci-frontend-ui-ux-design-profile.md +189 -0
  38. package/.agent/agents/personas/da-vinci-agent/user-context-files/system/bootstrap.md +37 -0
  39. package/.agent/agents/personas/da-vinci-agent/user-context-files/system/user.md +45 -0
  40. package/.agent/agents/personas/duong-tang-agent/agent.json +10 -0
  41. package/.agent/agents/personas/duong-tang-agent/context-files/agents.md +55 -0
  42. package/.agent/agents/personas/duong-tang-agent/context-files/identity.md +23 -0
  43. package/.agent/agents/personas/duong-tang-agent/context-files/soul.md +51 -0
  44. package/.agent/agents/personas/duong-tang-agent/context-files/user-predefined.md +15 -0
  45. package/.agent/agents/personas/duong-tang-agent/tang-monk-quality-testing-documentation-profile.md +189 -0
  46. package/.agent/agents/personas/duong-tang-agent/user-context-files/system/bootstrap.md +37 -0
  47. package/.agent/agents/personas/duong-tang-agent/user-context-files/system/user.md +45 -0
  48. package/.agent/agents/personas/gia-cat-luong-agent/agent.json +10 -0
  49. package/.agent/agents/personas/gia-cat-luong-agent/context-files/agents.md +55 -0
  50. package/.agent/agents/personas/gia-cat-luong-agent/context-files/identity.md +23 -0
  51. package/.agent/agents/personas/gia-cat-luong-agent/context-files/soul.md +51 -0
  52. package/.agent/agents/personas/gia-cat-luong-agent/context-files/user-predefined.md +15 -0
  53. package/.agent/agents/personas/gia-cat-luong-agent/kongming-research-strategy-analysis-profile.md +189 -0
  54. package/.agent/agents/personas/gia-cat-luong-agent/user-context-files/system/bootstrap.md +37 -0
  55. package/.agent/agents/personas/gia-cat-luong-agent/user-context-files/system/user.md +45 -0
  56. package/.agent/agents/personas/mihata-agent/agent.json +10 -0
  57. package/.agent/agents/personas/mihata-agent/context-files/agents.md +55 -0
  58. package/.agent/agents/personas/mihata-agent/context-files/identity.md +23 -0
  59. package/.agent/agents/personas/mihata-agent/context-files/soul.md +51 -0
  60. package/.agent/agents/personas/mihata-agent/context-files/user-predefined.md +15 -0
  61. package/.agent/agents/personas/mihata-agent/mihata-multi-agent-orchestration-profile.md +189 -0
  62. package/.agent/agents/personas/mihata-agent/user-context-files/system/bootstrap.md +37 -0
  63. package/.agent/agents/personas/mihata-agent/user-context-files/system/user.md +45 -0
  64. package/.agent/agents/personas/tesla-agent/agent.json +10 -0
  65. package/.agent/agents/personas/tesla-agent/context-files/agents.md +55 -0
  66. package/.agent/agents/personas/tesla-agent/context-files/identity.md +23 -0
  67. package/.agent/agents/personas/tesla-agent/context-files/soul.md +51 -0
  68. package/.agent/agents/personas/tesla-agent/context-files/user-predefined.md +15 -0
  69. package/.agent/agents/personas/tesla-agent/tesla-fullstack-system-optimization-profile.md +189 -0
  70. package/.agent/agents/personas/tesla-agent/user-context-files/system/bootstrap.md +37 -0
  71. package/.agent/agents/personas/tesla-agent/user-context-files/system/user.md +45 -0
  72. package/.agent/agents/personas/tu-ma-y-agent/agent.json +10 -0
  73. package/.agent/agents/personas/tu-ma-y-agent/context-files/agents.md +55 -0
  74. package/.agent/agents/personas/tu-ma-y-agent/context-files/identity.md +23 -0
  75. package/.agent/agents/personas/tu-ma-y-agent/context-files/soul.md +51 -0
  76. package/.agent/agents/personas/tu-ma-y-agent/context-files/user-predefined.md +15 -0
  77. package/.agent/agents/personas/tu-ma-y-agent/simayi-feasibility-risk-control-profile.md +189 -0
  78. package/.agent/agents/personas/tu-ma-y-agent/user-context-files/system/bootstrap.md +37 -0
  79. package/.agent/agents/personas/tu-ma-y-agent/user-context-files/system/user.md +45 -0
  80. package/.agent/agents/personas/venti-agent/agent.json +10 -0
  81. package/.agent/agents/personas/venti-agent/context-files/agents.md +55 -0
  82. package/.agent/agents/personas/venti-agent/context-files/identity.md +23 -0
  83. package/.agent/agents/personas/venti-agent/context-files/soul.md +51 -0
  84. package/.agent/agents/personas/venti-agent/context-files/user-predefined.md +15 -0
  85. package/.agent/agents/personas/venti-agent/user-context-files/system/bootstrap.md +37 -0
  86. package/.agent/agents/personas/venti-agent/user-context-files/system/user.md +45 -0
  87. package/.agent/agents/personas/venti-agent/venti-learning-communication-mentoring-profile.md +189 -0
  88. package/.agent/agents/product-manager.md +112 -112
  89. package/.agent/agents/product-owner.md +95 -95
  90. package/.agent/agents/project-planner.md +406 -406
  91. package/.agent/agents/qa-automation-engineer.md +103 -103
  92. package/.agent/agents/security-auditor.md +170 -170
  93. package/.agent/agents/seo-specialist.md +111 -111
  94. package/.agent/agents/test-engineer.md +158 -158
  95. package/.agent/contexts/dev.md +20 -0
  96. package/.agent/contexts/research.md +26 -0
  97. package/.agent/contexts/review.md +22 -0
  98. package/.agent/hooks/hooks.json +395 -0
  99. package/.agent/hooks/readme.md +222 -0
  100. package/.agent/mcp-configs/mcp-servers.json +181 -0
  101. package/.agent/rules/ARCHITECTURAL_BLUEPRINTS.md +62 -62
  102. package/.agent/rules/CODE_CRAFTSMANSHIP.md +69 -69
  103. package/.agent/rules/CORE_RULES.md +72 -72
  104. package/.agent/rules/PROJECT_MAP.md +58 -58
  105. package/.agent/rules/QUALITY_ASSURANCE.md +54 -54
  106. package/.agent/rules/SECURITY_ARMOR.md +44 -44
  107. package/.agent/rules/VERSION_ORCHESTRATION.md +64 -64
  108. package/.agent/rules/WORKFLOW_ORCHESTRATION.md +55 -55
  109. package/.agent/rules/common/agents.md +50 -0
  110. package/.agent/rules/common/code-review.md +124 -0
  111. package/.agent/rules/common/coding-style.md +48 -0
  112. package/.agent/rules/common/development-workflow.md +44 -0
  113. package/.agent/rules/common/git-workflow.md +24 -0
  114. package/.agent/rules/common/hooks.md +30 -0
  115. package/.agent/rules/common/patterns.md +31 -0
  116. package/.agent/rules/common/performance.md +55 -0
  117. package/.agent/rules/common/security.md +29 -0
  118. package/.agent/rules/common/testing.md +29 -0
  119. package/.agent/rules/cpp/coding-style.md +44 -0
  120. package/.agent/rules/cpp/hooks.md +39 -0
  121. package/.agent/rules/cpp/patterns.md +51 -0
  122. package/.agent/rules/cpp/security.md +51 -0
  123. package/.agent/rules/cpp/testing.md +44 -0
  124. package/.agent/rules/csharp/coding-style.md +72 -0
  125. package/.agent/rules/csharp/hooks.md +25 -0
  126. package/.agent/rules/csharp/patterns.md +50 -0
  127. package/.agent/rules/csharp/security.md +58 -0
  128. package/.agent/rules/csharp/testing.md +46 -0
  129. package/.agent/rules/dart/coding-style.md +159 -0
  130. package/.agent/rules/dart/hooks.md +66 -0
  131. package/.agent/rules/dart/patterns.md +261 -0
  132. package/.agent/rules/dart/security.md +135 -0
  133. package/.agent/rules/dart/testing.md +215 -0
  134. package/.agent/rules/golang/coding-style.md +32 -0
  135. package/.agent/rules/golang/hooks.md +17 -0
  136. package/.agent/rules/golang/patterns.md +45 -0
  137. package/.agent/rules/golang/security.md +34 -0
  138. package/.agent/rules/golang/testing.md +31 -0
  139. package/.agent/rules/java/coding-style.md +114 -0
  140. package/.agent/rules/java/hooks.md +18 -0
  141. package/.agent/rules/java/patterns.md +146 -0
  142. package/.agent/rules/java/security.md +100 -0
  143. package/.agent/rules/java/testing.md +131 -0
  144. package/.agent/rules/kotlin/coding-style.md +86 -0
  145. package/.agent/rules/kotlin/hooks.md +17 -0
  146. package/.agent/rules/kotlin/patterns.md +146 -0
  147. package/.agent/rules/kotlin/security.md +82 -0
  148. package/.agent/rules/kotlin/testing.md +128 -0
  149. package/.agent/rules/perl/coding-style.md +46 -0
  150. package/.agent/rules/perl/hooks.md +22 -0
  151. package/.agent/rules/perl/patterns.md +76 -0
  152. package/.agent/rules/perl/security.md +69 -0
  153. package/.agent/rules/perl/testing.md +54 -0
  154. package/.agent/rules/php/coding-style.md +40 -0
  155. package/.agent/rules/php/hooks.md +24 -0
  156. package/.agent/rules/php/patterns.md +33 -0
  157. package/.agent/rules/php/security.md +37 -0
  158. package/.agent/rules/php/testing.md +39 -0
  159. package/.agent/rules/python/coding-style.md +42 -0
  160. package/.agent/rules/python/hooks.md +19 -0
  161. package/.agent/rules/python/patterns.md +39 -0
  162. package/.agent/rules/python/security.md +30 -0
  163. package/.agent/rules/python/testing.md +38 -0
  164. package/.agent/rules/readme.md +111 -0
  165. package/.agent/rules/rust/coding-style.md +151 -0
  166. package/.agent/rules/rust/hooks.md +16 -0
  167. package/.agent/rules/rust/patterns.md +168 -0
  168. package/.agent/rules/rust/security.md +141 -0
  169. package/.agent/rules/rust/testing.md +154 -0
  170. package/.agent/rules/swift/coding-style.md +47 -0
  171. package/.agent/rules/swift/hooks.md +20 -0
  172. package/.agent/rules/swift/patterns.md +66 -0
  173. package/.agent/rules/swift/security.md +33 -0
  174. package/.agent/rules/swift/testing.md +45 -0
  175. package/.agent/rules/typescript/coding-style.md +199 -0
  176. package/.agent/rules/typescript/hooks.md +22 -0
  177. package/.agent/rules/typescript/patterns.md +52 -0
  178. package/.agent/rules/typescript/security.md +28 -0
  179. package/.agent/rules/typescript/testing.md +18 -0
  180. package/.agent/rules/web/coding-style.md +96 -0
  181. package/.agent/rules/web/design-quality.md +63 -0
  182. package/.agent/rules/web/hooks.md +120 -0
  183. package/.agent/rules/web/patterns.md +79 -0
  184. package/.agent/rules/web/performance.md +64 -0
  185. package/.agent/rules/web/security.md +57 -0
  186. package/.agent/rules/web/testing.md +55 -0
  187. package/.agent/rules/zh/agents.md +50 -0
  188. package/.agent/rules/zh/code-review.md +124 -0
  189. package/.agent/rules/zh/coding-style.md +48 -0
  190. package/.agent/rules/zh/development-workflow.md +44 -0
  191. package/.agent/rules/zh/git-workflow.md +24 -0
  192. package/.agent/rules/zh/hooks.md +30 -0
  193. package/.agent/rules/zh/patterns.md +31 -0
  194. package/.agent/rules/zh/performance.md +55 -0
  195. package/.agent/rules/zh/readme.md +108 -0
  196. package/.agent/rules/zh/security.md +29 -0
  197. package/.agent/rules/zh/testing.md +29 -0
  198. package/.agent/scripts/auto_preview.py +148 -148
  199. package/.agent/scripts/checklist.py +217 -217
  200. package/.agent/scripts/session_manager.py +120 -120
  201. package/.agent/scripts/verify_all.py +327 -327
  202. package/.agent/skills/agent-eval/SKILL.md +145 -0
  203. package/.agent/skills/agent-harness-construction/SKILL.md +73 -0
  204. package/.agent/skills/agent-payment-x402/SKILL.md +178 -0
  205. package/.agent/skills/agentic-engineering/SKILL.md +63 -0
  206. package/.agent/skills/ai-first-engineering/SKILL.md +51 -0
  207. package/.agent/skills/ai-regression-testing/SKILL.md +385 -0
  208. package/.agent/skills/android-clean-architecture/SKILL.md +339 -0
  209. package/.agent/skills/api-design/SKILL.md +523 -0
  210. package/.agent/skills/api-patterns/SKILL.md +81 -81
  211. package/.agent/skills/api-patterns/api-style.md +42 -42
  212. package/.agent/skills/api-patterns/auth.md +24 -24
  213. package/.agent/skills/api-patterns/documentation.md +26 -26
  214. package/.agent/skills/api-patterns/graphql.md +41 -41
  215. package/.agent/skills/api-patterns/rate-limiting.md +31 -31
  216. package/.agent/skills/api-patterns/response.md +37 -37
  217. package/.agent/skills/api-patterns/rest.md +40 -40
  218. package/.agent/skills/api-patterns/scripts/api_validator.py +211 -211
  219. package/.agent/skills/api-patterns/security-testing.md +122 -122
  220. package/.agent/skills/api-patterns/trpc.md +41 -41
  221. package/.agent/skills/api-patterns/versioning.md +22 -22
  222. package/.agent/skills/app-builder/SKILL.md +75 -75
  223. package/.agent/skills/app-builder/agent-coordination.md +71 -71
  224. package/.agent/skills/app-builder/feature-building.md +53 -53
  225. package/.agent/skills/app-builder/project-detection.md +34 -34
  226. package/.agent/skills/app-builder/scaffolding.md +118 -118
  227. package/.agent/skills/app-builder/tech-stack.md +41 -41
  228. package/.agent/skills/app-builder/templates/SKILL.md +39 -39
  229. package/.agent/skills/app-builder/templates/astro-static/TEMPLATE.md +76 -76
  230. package/.agent/skills/app-builder/templates/chrome-extension/TEMPLATE.md +92 -92
  231. package/.agent/skills/app-builder/templates/cli-tool/TEMPLATE.md +88 -88
  232. package/.agent/skills/app-builder/templates/electron-desktop/TEMPLATE.md +88 -88
  233. package/.agent/skills/app-builder/templates/express-api/TEMPLATE.md +83 -83
  234. package/.agent/skills/app-builder/templates/flutter-app/TEMPLATE.md +90 -90
  235. package/.agent/skills/app-builder/templates/monorepo-turborepo/TEMPLATE.md +90 -90
  236. package/.agent/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +122 -122
  237. package/.agent/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +122 -122
  238. package/.agent/skills/app-builder/templates/nextjs-static/TEMPLATE.md +169 -169
  239. package/.agent/skills/app-builder/templates/nuxt-app/TEMPLATE.md +134 -134
  240. package/.agent/skills/app-builder/templates/python-fastapi/TEMPLATE.md +83 -83
  241. package/.agent/skills/app-builder/templates/react-native-app/TEMPLATE.md +119 -119
  242. package/.agent/skills/architecture/SKILL.md +55 -55
  243. package/.agent/skills/architecture/context-discovery.md +43 -43
  244. package/.agent/skills/architecture/examples.md +94 -94
  245. package/.agent/skills/architecture/pattern-selection.md +68 -68
  246. package/.agent/skills/architecture/patterns-reference.md +50 -50
  247. package/.agent/skills/architecture/trade-off-analysis.md +77 -77
  248. package/.agent/skills/architecture-decision-records/SKILL.md +179 -0
  249. package/.agent/skills/article-writing/SKILL.md +79 -0
  250. package/.agent/skills/autonomous-agent-harness/SKILL.md +267 -0
  251. package/.agent/skills/autonomous-loops/SKILL.md +610 -0
  252. package/.agent/skills/backend-patterns/SKILL.md +598 -0
  253. package/.agent/skills/bash-linux/SKILL.md +199 -199
  254. package/.agent/skills/behavioral-modes/SKILL.md +242 -242
  255. package/.agent/skills/benchmark/SKILL.md +93 -0
  256. package/.agent/skills/blueprint/SKILL.md +105 -0
  257. package/.agent/skills/brainstorming/SKILL.md +163 -163
  258. package/.agent/skills/brainstorming/dynamic-questioning.md +350 -350
  259. package/.agent/skills/brand-voice/SKILL.md +97 -0
  260. package/.agent/skills/brand-voice/references/voice-profile-schema.md +55 -0
  261. package/.agent/skills/browser-qa/SKILL.md +87 -0
  262. package/.agent/skills/bun-runtime/SKILL.md +84 -0
  263. package/.agent/skills/canary-watch/SKILL.md +99 -0
  264. package/.agent/skills/carrier-relationship-management/SKILL.md +212 -0
  265. package/.agent/skills/ck/SKILL.md +147 -0
  266. package/.agent/skills/ck/commands/forget.mjs +44 -0
  267. package/.agent/skills/ck/commands/info.mjs +24 -0
  268. package/.agent/skills/ck/commands/init.mjs +143 -0
  269. package/.agent/skills/ck/commands/list.mjs +40 -0
  270. package/.agent/skills/ck/commands/migrate.mjs +202 -0
  271. package/.agent/skills/ck/commands/resume.mjs +36 -0
  272. package/.agent/skills/ck/commands/save.mjs +210 -0
  273. package/.agent/skills/ck/commands/shared.mjs +387 -0
  274. package/.agent/skills/ck/hooks/session-start.mjs +224 -0
  275. package/.agent/skills/claude-api/SKILL.md +337 -0
  276. package/.agent/skills/claude-devfleet/SKILL.md +103 -0
  277. package/.agent/skills/clean-code/SKILL.md +201 -201
  278. package/.agent/skills/click-path-audit/SKILL.md +244 -0
  279. package/.agent/skills/clickhouse-io/SKILL.md +439 -0
  280. package/.agent/skills/code-review-checklist/SKILL.md +109 -109
  281. package/.agent/skills/codebase-onboarding/SKILL.md +233 -0
  282. package/.agent/skills/coding-standards/SKILL.md +530 -0
  283. package/.agent/skills/compose-multiplatform-patterns/SKILL.md +299 -0
  284. package/.agent/skills/configure-ecc/SKILL.md +367 -0
  285. package/.agent/skills/connections-optimizer/SKILL.md +189 -0
  286. package/.agent/skills/content-engine/SKILL.md +131 -0
  287. package/.agent/skills/content-hash-cache-pattern/SKILL.md +161 -0
  288. package/.agent/skills/context-budget/SKILL.md +135 -0
  289. package/.agent/skills/continuous-agent-loop/SKILL.md +45 -0
  290. package/.agent/skills/continuous-learning/SKILL.md +119 -0
  291. package/.agent/skills/continuous-learning/config.json +18 -0
  292. package/.agent/skills/continuous-learning/evaluate-session.sh +69 -0
  293. package/.agent/skills/continuous-learning-v2/SKILL.md +365 -0
  294. package/.agent/skills/continuous-learning-v2/agents/observer-loop.sh +271 -0
  295. package/.agent/skills/continuous-learning-v2/agents/observer.md +198 -0
  296. package/.agent/skills/continuous-learning-v2/agents/session-guardian.sh +150 -0
  297. package/.agent/skills/continuous-learning-v2/agents/start-observer.sh +244 -0
  298. package/.agent/skills/continuous-learning-v2/config.json +8 -0
  299. package/.agent/skills/continuous-learning-v2/hooks/observe.sh +428 -0
  300. package/.agent/skills/continuous-learning-v2/scripts/detect-project.sh +228 -0
  301. package/.agent/skills/continuous-learning-v2/scripts/instinct-cli.py +1426 -0
  302. package/.agent/skills/continuous-learning-v2/scripts/test-parse-instinct.py +984 -0
  303. package/.agent/skills/cost-aware-llm-pipeline/SKILL.md +183 -0
  304. package/.agent/skills/cpp-coding-standards/SKILL.md +723 -0
  305. package/.agent/skills/cpp-testing/SKILL.md +324 -0
  306. package/.agent/skills/crosspost/SKILL.md +111 -0
  307. package/.agent/skills/csharp-testing/SKILL.md +321 -0
  308. package/.agent/skills/customer-billing-ops/SKILL.md +140 -0
  309. package/.agent/skills/customs-trade-compliance/SKILL.md +263 -0
  310. package/.agent/skills/dart-flutter-patterns/SKILL.md +563 -0
  311. package/.agent/skills/data-scraper-agent/SKILL.md +764 -0
  312. package/.agent/skills/database-design/SKILL.md +52 -52
  313. package/.agent/skills/database-design/database-selection.md +43 -43
  314. package/.agent/skills/database-design/indexing.md +39 -39
  315. package/.agent/skills/database-design/migrations.md +48 -48
  316. package/.agent/skills/database-design/optimization.md +36 -36
  317. package/.agent/skills/database-design/orm-selection.md +30 -30
  318. package/.agent/skills/database-design/schema-design.md +56 -56
  319. package/.agent/skills/database-design/scripts/schema_validator.py +172 -172
  320. package/.agent/skills/database-migrations/SKILL.md +429 -0
  321. package/.agent/skills/deep-research/SKILL.md +155 -0
  322. package/.agent/skills/deployment-patterns/SKILL.md +427 -0
  323. package/.agent/skills/deployment-procedures/SKILL.md +241 -241
  324. package/.agent/skills/design-system/SKILL.md +82 -0
  325. package/.agent/skills/django-patterns/SKILL.md +734 -0
  326. package/.agent/skills/django-security/SKILL.md +593 -0
  327. package/.agent/skills/django-tdd/SKILL.md +729 -0
  328. package/.agent/skills/django-verification/SKILL.md +469 -0
  329. package/.agent/skills/dmux-workflows/SKILL.md +191 -0
  330. package/.agent/skills/doc.md +177 -177
  331. package/.agent/skills/docker-patterns/SKILL.md +364 -0
  332. package/.agent/skills/documentation-lookup/SKILL.md +90 -0
  333. package/.agent/skills/documentation-templates/SKILL.md +194 -194
  334. package/.agent/skills/dotnet-patterns/SKILL.md +321 -0
  335. package/.agent/skills/e2e-testing/SKILL.md +326 -0
  336. package/.agent/skills/energy-procurement/SKILL.md +228 -0
  337. package/.agent/skills/enterprise-agent-ops/SKILL.md +50 -0
  338. package/.agent/skills/eval-harness/SKILL.md +270 -0
  339. package/.agent/skills/exa-search/SKILL.md +103 -0
  340. package/.agent/skills/fal-ai-media/SKILL.md +284 -0
  341. package/.agent/skills/flutter-dart-code-review/SKILL.md +435 -0
  342. package/.agent/skills/foundation-models-on-device/SKILL.md +243 -0
  343. package/.agent/skills/frontend-design/SKILL.md +452 -452
  344. package/.agent/skills/frontend-design/animation-guide.md +331 -331
  345. package/.agent/skills/frontend-design/color-system.md +311 -311
  346. package/.agent/skills/frontend-design/decision-trees.md +418 -418
  347. package/.agent/skills/frontend-design/motion-graphics.md +306 -306
  348. package/.agent/skills/frontend-design/scripts/accessibility_checker.py +183 -183
  349. package/.agent/skills/frontend-design/scripts/ux_audit.py +722 -722
  350. package/.agent/skills/frontend-design/typography-system.md +345 -345
  351. package/.agent/skills/frontend-design/ux-psychology.md +1116 -1116
  352. package/.agent/skills/frontend-design/visual-effects.md +383 -383
  353. package/.agent/skills/frontend-patterns/SKILL.md +642 -0
  354. package/.agent/skills/frontend-slides/SKILL.md +184 -0
  355. package/.agent/skills/frontend-slides/style-presets.md +330 -0
  356. package/.agent/skills/game-development/2d-games/SKILL.md +119 -119
  357. package/.agent/skills/game-development/3d-games/SKILL.md +135 -135
  358. package/.agent/skills/game-development/SKILL.md +167 -167
  359. package/.agent/skills/game-development/game-art/SKILL.md +185 -185
  360. package/.agent/skills/game-development/game-audio/SKILL.md +190 -190
  361. package/.agent/skills/game-development/game-design/SKILL.md +129 -129
  362. package/.agent/skills/game-development/mobile-games/SKILL.md +108 -108
  363. package/.agent/skills/game-development/multiplayer/SKILL.md +132 -132
  364. package/.agent/skills/game-development/pc-games/SKILL.md +144 -144
  365. package/.agent/skills/game-development/vr-ar/SKILL.md +123 -123
  366. package/.agent/skills/game-development/web-games/SKILL.md +150 -150
  367. package/.agent/skills/gan-style-harness/SKILL.md +278 -0
  368. package/.agent/skills/geo-fundamentals/SKILL.md +156 -156
  369. package/.agent/skills/geo-fundamentals/scripts/geo_checker.py +289 -289
  370. package/.agent/skills/git-workflow/SKILL.md +715 -0
  371. package/.agent/skills/golang-patterns/SKILL.md +674 -0
  372. package/.agent/skills/golang-testing/SKILL.md +720 -0
  373. package/.agent/skills/google-workspace-ops/SKILL.md +95 -0
  374. package/.agent/skills/healthcare-cdss-patterns/SKILL.md +245 -0
  375. package/.agent/skills/healthcare-emr-patterns/SKILL.md +159 -0
  376. package/.agent/skills/healthcare-eval-harness/SKILL.md +207 -0
  377. package/.agent/skills/healthcare-phi-compliance/SKILL.md +145 -0
  378. package/.agent/skills/hexagonal-architecture/SKILL.md +276 -0
  379. package/.agent/skills/i18n-localization/SKILL.md +154 -154
  380. package/.agent/skills/i18n-localization/scripts/i18n_checker.py +241 -241
  381. package/.agent/skills/intelligent-routing/SKILL.md +335 -335
  382. package/.agent/skills/inventory-demand-planning/SKILL.md +247 -0
  383. package/.agent/skills/investor-materials/SKILL.md +96 -0
  384. package/.agent/skills/investor-outreach/SKILL.md +91 -0
  385. package/.agent/skills/iterative-retrieval/SKILL.md +211 -0
  386. package/.agent/skills/java-coding-standards/SKILL.md +147 -0
  387. package/.agent/skills/jira-integration/SKILL.md +293 -0
  388. package/.agent/skills/jpa-patterns/SKILL.md +151 -0
  389. package/.agent/skills/kotlin-coroutines-flows/SKILL.md +284 -0
  390. package/.agent/skills/kotlin-exposed-patterns/SKILL.md +719 -0
  391. package/.agent/skills/kotlin-ktor-patterns/SKILL.md +689 -0
  392. package/.agent/skills/kotlin-patterns/SKILL.md +711 -0
  393. package/.agent/skills/kotlin-testing/SKILL.md +824 -0
  394. package/.agent/skills/laravel-patterns/SKILL.md +415 -0
  395. package/.agent/skills/laravel-plugin-discovery/SKILL.md +229 -0
  396. package/.agent/skills/laravel-security/SKILL.md +285 -0
  397. package/.agent/skills/laravel-tdd/SKILL.md +283 -0
  398. package/.agent/skills/laravel-verification/SKILL.md +179 -0
  399. package/.agent/skills/lead-intelligence/SKILL.md +321 -0
  400. package/.agent/skills/lead-intelligence/agents/enrichment-agent.md +85 -0
  401. package/.agent/skills/lead-intelligence/agents/mutual-mapper.md +75 -0
  402. package/.agent/skills/lead-intelligence/agents/outreach-drafter.md +98 -0
  403. package/.agent/skills/lead-intelligence/agents/signal-scorer.md +60 -0
  404. package/.agent/skills/lint-and-validate/SKILL.md +45 -45
  405. package/.agent/skills/lint-and-validate/scripts/lint_runner.py +184 -184
  406. package/.agent/skills/lint-and-validate/scripts/type_coverage.py +173 -173
  407. package/.agent/skills/liquid-glass-design/SKILL.md +279 -0
  408. package/.agent/skills/logistics-exception-management/SKILL.md +222 -0
  409. package/.agent/skills/manim-video/SKILL.md +89 -0
  410. package/.agent/skills/manim-video/assets/network-graph-scene.py +52 -0
  411. package/.agent/skills/market-research/SKILL.md +75 -0
  412. package/.agent/skills/mcp-builder/SKILL.md +173 -113
  413. package/.agent/skills/mcp-builder/license.txt +202 -0
  414. package/.agent/skills/mcp-builder/reference/evaluation.md +602 -0
  415. package/.agent/skills/mcp-builder/reference/mcp-best-practices.md +249 -0
  416. package/.agent/skills/mcp-builder/reference/node-mcp-server.md +970 -0
  417. package/.agent/skills/mcp-builder/reference/python-mcp-server.md +719 -0
  418. package/.agent/skills/mcp-builder/scripts/connections.py +151 -0
  419. package/.agent/skills/mcp-builder/scripts/evaluation.py +373 -0
  420. package/.agent/skills/mcp-builder/scripts/example-evaluation.xml +22 -0
  421. package/.agent/skills/mcp-builder/scripts/requirements.txt +2 -0
  422. package/.agent/skills/mcp-server-patterns/SKILL.md +67 -0
  423. package/.agent/skills/mobile-design/SKILL.md +394 -394
  424. package/.agent/skills/mobile-design/decision-trees.md +516 -516
  425. package/.agent/skills/mobile-design/mobile-backend.md +491 -491
  426. package/.agent/skills/mobile-design/mobile-color-system.md +420 -420
  427. package/.agent/skills/mobile-design/mobile-debugging.md +122 -122
  428. package/.agent/skills/mobile-design/mobile-design-thinking.md +357 -357
  429. package/.agent/skills/mobile-design/mobile-navigation.md +458 -458
  430. package/.agent/skills/mobile-design/mobile-performance.md +767 -767
  431. package/.agent/skills/mobile-design/mobile-testing.md +356 -356
  432. package/.agent/skills/mobile-design/mobile-typography.md +433 -433
  433. package/.agent/skills/mobile-design/platform-android.md +666 -666
  434. package/.agent/skills/mobile-design/platform-ios.md +561 -561
  435. package/.agent/skills/mobile-design/scripts/mobile_audit.py +670 -670
  436. package/.agent/skills/mobile-design/touch-psychology.md +537 -537
  437. package/.agent/skills/nanoclaw-repl/SKILL.md +33 -0
  438. package/.agent/skills/nestjs-patterns/SKILL.md +230 -0
  439. package/.agent/skills/nextjs-react-expert/1-async-eliminating-waterfalls.md +351 -351
  440. package/.agent/skills/nextjs-react-expert/2-bundle-bundle-size-optimization.md +240 -240
  441. package/.agent/skills/nextjs-react-expert/3-server-server-side-performance.md +490 -490
  442. package/.agent/skills/nextjs-react-expert/4-client-client-side-data-fetching.md +264 -264
  443. package/.agent/skills/nextjs-react-expert/5-rerender-re-render-optimization.md +581 -581
  444. package/.agent/skills/nextjs-react-expert/6-rendering-rendering-performance.md +432 -432
  445. package/.agent/skills/nextjs-react-expert/7-js-javascript-performance.md +684 -684
  446. package/.agent/skills/nextjs-react-expert/8-advanced-advanced-patterns.md +150 -150
  447. package/.agent/skills/nextjs-react-expert/9-cache-components.md +103 -103
  448. package/.agent/skills/nextjs-react-expert/SKILL.md +293 -293
  449. package/.agent/skills/nextjs-react-expert/scripts/convert_rules.py +222 -222
  450. package/.agent/skills/nextjs-react-expert/scripts/react_performance_checker.py +252 -252
  451. package/.agent/skills/nextjs-turbopack/SKILL.md +44 -0
  452. package/.agent/skills/nodejs-best-practices/SKILL.md +333 -333
  453. package/.agent/skills/nutrient-document-processing/SKILL.md +167 -0
  454. package/.agent/skills/nuxt4-patterns/SKILL.md +100 -0
  455. package/.agent/skills/openclaw-persona-forge/SKILL.md +296 -0
  456. package/.agent/skills/openclaw-persona-forge/gacha.py +224 -0
  457. package/.agent/skills/openclaw-persona-forge/gacha.sh +5 -0
  458. package/.agent/skills/openclaw-persona-forge/references/avatar-style.md +124 -0
  459. package/.agent/skills/openclaw-persona-forge/references/boundary-rules.md +53 -0
  460. package/.agent/skills/openclaw-persona-forge/references/error-handling.md +53 -0
  461. package/.agent/skills/openclaw-persona-forge/references/identity-tension.md +48 -0
  462. package/.agent/skills/openclaw-persona-forge/references/naming-system.md +39 -0
  463. package/.agent/skills/openclaw-persona-forge/references/output-template.md +166 -0
  464. package/.agent/skills/opensource-pipeline/SKILL.md +255 -0
  465. package/.agent/skills/parallel-agents/SKILL.md +175 -175
  466. package/.agent/skills/performance-profiling/SKILL.md +143 -143
  467. package/.agent/skills/performance-profiling/scripts/lighthouse_audit.py +76 -76
  468. package/.agent/skills/perl-patterns/SKILL.md +504 -0
  469. package/.agent/skills/perl-security/SKILL.md +503 -0
  470. package/.agent/skills/perl-testing/SKILL.md +475 -0
  471. package/.agent/skills/plan-writing/SKILL.md +152 -152
  472. package/.agent/skills/plankton-code-quality/SKILL.md +236 -0
  473. package/.agent/skills/postgres-patterns/SKILL.md +147 -0
  474. package/.agent/skills/powershell-windows/SKILL.md +167 -167
  475. package/.agent/skills/product-lens/SKILL.md +85 -0
  476. package/.agent/skills/production-scheduling/SKILL.md +238 -0
  477. package/.agent/skills/project-flow-ops/SKILL.md +111 -0
  478. package/.agent/skills/project-guidelines-example/SKILL.md +349 -0
  479. package/.agent/skills/prompt-optimizer/SKILL.md +397 -0
  480. package/.agent/skills/python-patterns/SKILL.md +750 -441
  481. package/.agent/skills/python-testing/SKILL.md +816 -0
  482. package/.agent/skills/pytorch-patterns/SKILL.md +396 -0
  483. package/.agent/skills/quality-nonconformance/SKILL.md +260 -0
  484. package/.agent/skills/ralphinho-rfc-pipeline/SKILL.md +67 -0
  485. package/.agent/skills/red-team-tactics/SKILL.md +199 -199
  486. package/.agent/skills/regex-vs-llm-structured-text/SKILL.md +220 -0
  487. package/.agent/skills/remotion-video-creation/SKILL.md +43 -0
  488. package/.agent/skills/remotion-video-creation/rules/3d.md +86 -0
  489. package/.agent/skills/remotion-video-creation/rules/animations.md +29 -0
  490. package/.agent/skills/remotion-video-creation/rules/assets/charts-bar-chart.tsx +173 -0
  491. package/.agent/skills/remotion-video-creation/rules/assets/text-animations-typewriter.tsx +100 -0
  492. package/.agent/skills/remotion-video-creation/rules/assets/text-animations-word-highlight.tsx +108 -0
  493. package/.agent/skills/remotion-video-creation/rules/assets.md +78 -0
  494. package/.agent/skills/remotion-video-creation/rules/audio.md +172 -0
  495. package/.agent/skills/remotion-video-creation/rules/calculate-metadata.md +104 -0
  496. package/.agent/skills/remotion-video-creation/rules/can-decode.md +75 -0
  497. package/.agent/skills/remotion-video-creation/rules/charts.md +58 -0
  498. package/.agent/skills/remotion-video-creation/rules/compositions.md +146 -0
  499. package/.agent/skills/remotion-video-creation/rules/display-captions.md +126 -0
  500. package/.agent/skills/remotion-video-creation/rules/extract-frames.md +229 -0
  501. package/.agent/skills/remotion-video-creation/rules/fonts.md +152 -0
  502. package/.agent/skills/remotion-video-creation/rules/get-audio-duration.md +58 -0
  503. package/.agent/skills/remotion-video-creation/rules/get-video-dimensions.md +68 -0
  504. package/.agent/skills/remotion-video-creation/rules/get-video-duration.md +58 -0
  505. package/.agent/skills/remotion-video-creation/rules/gifs.md +138 -0
  506. package/.agent/skills/remotion-video-creation/rules/images.md +130 -0
  507. package/.agent/skills/remotion-video-creation/rules/import-srt-captions.md +67 -0
  508. package/.agent/skills/remotion-video-creation/rules/lottie.md +67 -0
  509. package/.agent/skills/remotion-video-creation/rules/measuring-dom-nodes.md +34 -0
  510. package/.agent/skills/remotion-video-creation/rules/measuring-text.md +143 -0
  511. package/.agent/skills/remotion-video-creation/rules/sequencing.md +106 -0
  512. package/.agent/skills/remotion-video-creation/rules/tailwind.md +11 -0
  513. package/.agent/skills/remotion-video-creation/rules/text-animations.md +20 -0
  514. package/.agent/skills/remotion-video-creation/rules/timing.md +179 -0
  515. package/.agent/skills/remotion-video-creation/rules/transcribe-captions.md +19 -0
  516. package/.agent/skills/remotion-video-creation/rules/transitions.md +122 -0
  517. package/.agent/skills/remotion-video-creation/rules/trimming.md +52 -0
  518. package/.agent/skills/remotion-video-creation/rules/videos.md +171 -0
  519. package/.agent/skills/repo-scan/SKILL.md +78 -0
  520. package/.agent/skills/returns-reverse-logistics/SKILL.md +240 -0
  521. package/.agent/skills/rules-distill/SKILL.md +264 -0
  522. package/.agent/skills/rules-distill/scripts/scan-rules.sh +58 -0
  523. package/.agent/skills/rules-distill/scripts/scan-skills.sh +129 -0
  524. package/.agent/skills/rust-patterns/SKILL.md +499 -0
  525. package/.agent/skills/rust-pro/SKILL.md +175 -175
  526. package/.agent/skills/rust-testing/SKILL.md +500 -0
  527. package/.agent/skills/safety-guard/SKILL.md +75 -0
  528. package/.agent/skills/santa-method/SKILL.md +306 -0
  529. package/.agent/skills/search-first/SKILL.md +161 -0
  530. package/.agent/skills/security-review/SKILL.md +495 -0
  531. package/.agent/skills/security-review/cloud-infrastructure-security.md +361 -0
  532. package/.agent/skills/security-scan/SKILL.md +165 -0
  533. package/.agent/skills/seo-fundamentals/SKILL.md +129 -129
  534. package/.agent/skills/seo-fundamentals/scripts/seo_checker.py +219 -219
  535. package/.agent/skills/server-management/SKILL.md +161 -161
  536. package/.agent/skills/skill-comply/SKILL.md +58 -0
  537. package/.agent/skills/skill-comply/fixtures/compliant-trace.jsonl +5 -0
  538. package/.agent/skills/skill-comply/fixtures/noncompliant-trace.jsonl +3 -0
  539. package/.agent/skills/skill-comply/fixtures/tdd-spec.yaml +44 -0
  540. package/.agent/skills/skill-comply/prompts/classifier.md +24 -0
  541. package/.agent/skills/skill-comply/prompts/scenario-generator.md +62 -0
  542. package/.agent/skills/skill-comply/prompts/spec-generator.md +42 -0
  543. package/.agent/skills/skill-comply/pyproject.toml +15 -0
  544. package/.agent/skills/skill-comply/scripts/classifier.py +85 -0
  545. package/.agent/skills/skill-comply/scripts/grader.py +122 -0
  546. package/.agent/skills/skill-comply/scripts/init.py +0 -0
  547. package/.agent/skills/skill-comply/scripts/parser.py +107 -0
  548. package/.agent/skills/skill-comply/scripts/report.py +170 -0
  549. package/.agent/skills/skill-comply/scripts/run.py +127 -0
  550. package/.agent/skills/skill-comply/scripts/runner.py +161 -0
  551. package/.agent/skills/skill-comply/scripts/scenario-generator.py +70 -0
  552. package/.agent/skills/skill-comply/scripts/spec-generator.py +72 -0
  553. package/.agent/skills/skill-comply/scripts/utils.py +13 -0
  554. package/.agent/skills/skill-comply/tests/test-grader.py +137 -0
  555. package/.agent/skills/skill-comply/tests/test-parser.py +90 -0
  556. package/.agent/skills/skill-creator/SKILL.md +485 -0
  557. package/.agent/skills/skill-creator/agents/analyzer.md +274 -0
  558. package/.agent/skills/skill-creator/agents/comparator.md +202 -0
  559. package/.agent/skills/skill-creator/agents/grader.md +223 -0
  560. package/.agent/skills/skill-creator/assets/eval-review.html +146 -0
  561. package/.agent/skills/skill-creator/eval-viewer/generate-review.py +471 -0
  562. package/.agent/skills/skill-creator/eval-viewer/viewer.html +1325 -0
  563. package/.agent/skills/skill-creator/license.txt +202 -0
  564. package/.agent/skills/skill-creator/references/schemas.md +430 -0
  565. package/.agent/skills/skill-creator/scripts/aggregate-benchmark.py +401 -0
  566. package/.agent/skills/skill-creator/scripts/generate-report.py +326 -0
  567. package/.agent/skills/skill-creator/scripts/improve-description.py +247 -0
  568. package/.agent/skills/skill-creator/scripts/init.py +0 -0
  569. package/.agent/skills/skill-creator/scripts/package-skill.py +136 -0
  570. package/.agent/skills/skill-creator/scripts/quick-validate.py +103 -0
  571. package/.agent/skills/skill-creator/scripts/run-eval.py +310 -0
  572. package/.agent/skills/skill-creator/scripts/run-loop.py +328 -0
  573. package/.agent/skills/skill-creator/scripts/utils.py +47 -0
  574. package/.agent/skills/skill-stocktake/SKILL.md +193 -0
  575. package/.agent/skills/skill-stocktake/scripts/quick-diff.sh +87 -0
  576. package/.agent/skills/skill-stocktake/scripts/save-results.sh +56 -0
  577. package/.agent/skills/skill-stocktake/scripts/scan.sh +170 -0
  578. package/.agent/skills/social-graph-ranker/SKILL.md +154 -0
  579. package/.agent/skills/springboot-patterns/SKILL.md +314 -0
  580. package/.agent/skills/springboot-security/SKILL.md +272 -0
  581. package/.agent/skills/springboot-tdd/SKILL.md +158 -0
  582. package/.agent/skills/springboot-verification/SKILL.md +231 -0
  583. package/.agent/skills/strategic-compact/SKILL.md +131 -0
  584. package/.agent/skills/strategic-compact/suggest-compact.sh +54 -0
  585. package/.agent/skills/swift-actor-persistence/SKILL.md +143 -0
  586. package/.agent/skills/swift-concurrency-6-2/SKILL.md +216 -0
  587. package/.agent/skills/swift-protocol-di-testing/SKILL.md +190 -0
  588. package/.agent/skills/swiftui-patterns/SKILL.md +259 -0
  589. package/.agent/skills/systematic-debugging/SKILL.md +109 -109
  590. package/.agent/skills/tailwind-patterns/SKILL.md +269 -269
  591. package/.agent/skills/tdd-workflow/SKILL.md +463 -149
  592. package/.agent/skills/team-builder/SKILL.md +168 -0
  593. package/.agent/skills/testing-patterns/SKILL.md +178 -178
  594. package/.agent/skills/testing-patterns/scripts/test_runner.py +219 -219
  595. package/.agent/skills/token-budget-advisor/SKILL.md +133 -0
  596. package/.agent/skills/ui-demo/SKILL.md +465 -0
  597. package/.agent/skills/ui-ux-pro-max/SKILL.md +292 -292
  598. package/.agent/skills/ui-ux-pro-max/data/icons.csv +101 -101
  599. package/.agent/skills/ui-ux-pro-max/data/landing.csv +3 -3
  600. package/.agent/skills/ui-ux-pro-max/data/react-performance.csv +45 -45
  601. package/.agent/skills/ui-ux-pro-max/data/stacks/astro.csv +54 -54
  602. package/.agent/skills/ui-ux-pro-max/data/stacks/jetpack-compose.csv +53 -53
  603. package/.agent/skills/ui-ux-pro-max/data/stacks/nuxt-ui.csv +51 -51
  604. package/.agent/skills/ui-ux-pro-max/data/stacks/nuxtjs.csv +59 -59
  605. package/.agent/skills/ui-ux-pro-max/data/stacks/shadcn.csv +61 -61
  606. package/.agent/skills/ui-ux-pro-max/data/typography.csv +57 -57
  607. package/.agent/skills/ui-ux-pro-max/data/ui-reasoning.csv +101 -101
  608. package/.agent/skills/ui-ux-pro-max/data/web-interface.csv +31 -31
  609. package/.agent/skills/ui-ux-pro-max/scripts/core.py +253 -253
  610. package/.agent/skills/ui-ux-pro-max/scripts/design_system.py +1067 -1067
  611. package/.agent/skills/verification-loop/SKILL.md +126 -0
  612. package/.agent/skills/video-editing/SKILL.md +310 -0
  613. package/.agent/skills/videodb/SKILL.md +374 -0
  614. package/.agent/skills/videodb/reference/api-reference.md +550 -0
  615. package/.agent/skills/videodb/reference/capture-reference.md +407 -0
  616. package/.agent/skills/videodb/reference/capture.md +101 -0
  617. package/.agent/skills/videodb/reference/editor.md +443 -0
  618. package/.agent/skills/videodb/reference/generative.md +331 -0
  619. package/.agent/skills/videodb/reference/rtstream-reference.md +564 -0
  620. package/.agent/skills/videodb/reference/rtstream.md +65 -0
  621. package/.agent/skills/videodb/reference/search.md +230 -0
  622. package/.agent/skills/videodb/reference/streaming.md +406 -0
  623. package/.agent/skills/videodb/reference/use-cases.md +118 -0
  624. package/.agent/skills/videodb/scripts/ws-listener.py +282 -0
  625. package/.agent/skills/visa-doc-translate/SKILL.md +117 -0
  626. package/.agent/skills/visa-doc-translate/readme.md +86 -0
  627. package/.agent/skills/vulnerability-scanner/SKILL.md +276 -276
  628. package/.agent/skills/vulnerability-scanner/checklists.md +121 -121
  629. package/.agent/skills/vulnerability-scanner/scripts/security_scan.py +458 -458
  630. package/.agent/skills/web-design-guidelines/SKILL.md +57 -57
  631. package/.agent/skills/webapp-testing/SKILL.md +187 -187
  632. package/.agent/skills/webapp-testing/scripts/playwright_runner.py +173 -173
  633. package/.agent/skills/workspace-surface-audit/SKILL.md +125 -0
  634. package/.agent/skills/x-api/SKILL.md +230 -0
  635. package/.agent/tasks/lessons.md +40 -40
  636. package/.agent/tasks/todo.md +33 -33
  637. package/.agent/tasks/two-track-merge-contract.md +29 -0
  638. package/.agent/workflows/aside.md +3 -3
  639. package/.agent/workflows/brainstorm.md +113 -113
  640. package/.agent/workflows/claw.md +13 -41
  641. package/.agent/workflows/clean-memory.md +34 -0
  642. package/.agent/workflows/code-review.md +260 -11
  643. package/.agent/workflows/context-budget.md +12 -18
  644. package/.agent/workflows/cpp-build.md +1 -1
  645. package/.agent/workflows/cpp-review.md +4 -4
  646. package/.agent/workflows/create.md +59 -59
  647. package/.agent/workflows/debug.md +103 -103
  648. package/.agent/workflows/deploy.md +176 -176
  649. package/.agent/workflows/devfleet.md +13 -82
  650. package/.agent/workflows/docs.md +13 -21
  651. package/.agent/workflows/e2e.md +38 -135
  652. package/.agent/workflows/enhance.md +63 -63
  653. package/.agent/workflows/eval.md +15 -112
  654. package/.agent/workflows/flutter-build.md +164 -0
  655. package/.agent/workflows/flutter-review.md +116 -0
  656. package/.agent/workflows/flutter-test.md +144 -0
  657. package/.agent/workflows/gan-build.md +99 -0
  658. package/.agent/workflows/gan-design.md +35 -0
  659. package/.agent/workflows/go-build.md +1 -1
  660. package/.agent/workflows/go-review.md +4 -4
  661. package/.agent/workflows/harness-audit.md +5 -3
  662. package/.agent/workflows/init-docs.md +46 -46
  663. package/.agent/workflows/instinct-import.md +4 -4
  664. package/.agent/workflows/jira.md +106 -0
  665. package/.agent/workflows/kotlin-build.md +1 -1
  666. package/.agent/workflows/kotlin-review.md +5 -5
  667. package/.agent/workflows/learn-eval.md +9 -9
  668. package/.agent/workflows/multi-plan.md +10 -10
  669. package/.agent/workflows/orchestrate.md +23 -119
  670. package/.agent/workflows/plan.md +2 -0
  671. package/.agent/workflows/preview.md +81 -81
  672. package/.agent/workflows/prompt-optimize.md +13 -28
  673. package/.agent/workflows/prp-commit.md +112 -0
  674. package/.agent/workflows/prp-implement.md +385 -0
  675. package/.agent/workflows/prp-plan.md +502 -0
  676. package/.agent/workflows/prp-pr.md +184 -0
  677. package/.agent/workflows/prp-prd.md +447 -0
  678. package/.agent/workflows/python-review.md +5 -5
  679. package/.agent/workflows/refactor-clean.md +1 -1
  680. package/.agent/workflows/resume-session.md +10 -10
  681. package/.agent/workflows/rules-distill.md +14 -5
  682. package/.agent/workflows/santa-loop.md +175 -0
  683. package/.agent/workflows/save-session.md +9 -9
  684. package/.agent/workflows/status.md +86 -86
  685. package/.agent/workflows/tdd.md +30 -127
  686. package/.agent/workflows/test-coverage.md +1 -1
  687. package/.agent/workflows/test.md +144 -144
  688. package/.agent/workflows/ui-ux-pro-max.md +295 -295
  689. package/.agent/workflows/verify.md +15 -51
  690. package/README.md +144 -136
  691. package/RELEASE.md +32 -36
  692. package/package.json +87 -79
  693. package/scripts/release-check.js +1 -1
  694. package/src/bin/cli.js +354 -78
  695. package/src/lib/installer.js +151 -117
  696. package/src/lib/manifests/stacks.js +122 -0
  697. package/src/lib/slash-commands.js +28 -0
  698. package/src/templates/claude/CLAUDE.en.md +42 -0
  699. package/src/templates/claude/CLAUDE.md +42 -0
  700. package/src/templates/claude/CLAUDE.vi.md +42 -0
  701. package/src/templates/codex/AGENTS.en.md +40 -0
  702. package/src/templates/codex/AGENTS.md +40 -0
  703. package/src/templates/codex/AGENTS.vi.md +40 -0
  704. package/src/templates/cursor/pilo-masterkit.mdc +20 -0
  705. package/src/templates/gemini/GEMINI.en.md +56 -0
  706. package/src/templates/gemini/GEMINI.md +56 -0
  707. package/src/templates/gemini/GEMINI.vi.md +56 -0
  708. package/src/templates/github/copilot-instructions.md +16 -0
@@ -1,491 +1,491 @@
1
- # Mobile Backend Patterns
2
-
3
- > **This file covers backend/API patterns SPECIFIC to mobile clients.**
4
- > Generic backend patterns are in `nodejs-best-practices` and `api-patterns`.
5
- > **Mobile backend is NOT the same as web backend. Different constraints, different patterns.**
6
-
7
- ---
8
-
9
- ## 🧠 MOBILE BACKEND MINDSET
10
-
11
- ```
12
- Mobile clients are DIFFERENT from web clients:
13
- ├── Unreliable network (2G, subway, elevator)
14
- ├── Battery constraints (minimize wake-ups)
15
- ├── Limited storage (can't cache everything)
16
- ├── Interrupted sessions (calls, notifications)
17
- ├── Diverse devices (old phones to flagships)
18
- └── Binary updates are slow (App Store review)
19
- ```
20
-
21
- **Your backend must compensate for ALL of these.**
22
-
23
- ---
24
-
25
- ## 🚫 AI MOBILE BACKEND ANTI-PATTERNS
26
-
27
- ### These are common AI mistakes when building mobile backends:
28
-
29
- | ❌ AI Default | Why It's Wrong | ✅ Mobile-Correct |
30
- |---------------|----------------|-------------------|
31
- | Same API for web and mobile | Mobile needs compact responses | Separate mobile endpoints OR field selection |
32
- | Full object responses | Wastes bandwidth, battery | Partial responses, pagination |
33
- | No offline consideration | App crashes without network | Offline-first design, sync queues |
34
- | WebSocket for everything | Battery drain | Push notifications + polling fallback |
35
- | No app versioning | Can't force updates, breaking changes | Version headers, minimum version check |
36
- | Generic error messages | Users can't fix issues | Mobile-specific error codes + recovery actions |
37
- | Session-based auth | Mobile apps restart | Token-based with refresh |
38
- | Ignore device info | Can't debug issues | Device ID, app version in headers |
39
-
40
- ---
41
-
42
- ## 1. Push Notifications
43
-
44
- ### Platform Architecture
45
-
46
- ```
47
- ┌─────────────────────────────────────────────────────────────────┐
48
- │ YOUR BACKEND │
49
- ├─────────────────────────────────────────────────────────────────┤
50
- │ │ │
51
- │ ┌──────────┴──────────┐ │
52
- │ ▼ ▼ │
53
- │ ┌─────────────────┐ ┌─────────────────┐ │
54
- │ │ FCM (Google) │ │ APNs (Apple) │ │
55
- │ │ Firebase │ │ Direct or FCM │ │
56
- │ └────────┬────────┘ └────────┬────────┘ │
57
- │ │ │ │
58
- │ ▼ ▼ │
59
- │ ┌─────────────────┐ ┌─────────────────┐ │
60
- │ │ Android Device │ │ iOS Device │ │
61
- │ └─────────────────┘ └─────────────────┘ │
62
- └─────────────────────────────────────────────────────────────────┘
63
- ```
64
-
65
- ### Push Types
66
-
67
- | Type | Use Case | User Sees |
68
- |------|----------|-----------|
69
- | **Display** | New message, order update | Notification banner |
70
- | **Silent** | Background sync, content update | Nothing (background) |
71
- | **Data** | Custom handling by app | Depends on app logic |
72
-
73
- ### Anti-Patterns
74
-
75
- | ❌ NEVER | ✅ ALWAYS |
76
- |----------|----------|
77
- | Send sensitive data in push | Push says "New message", app fetches content |
78
- | Overload with pushes | Batch, dedupe, respect quiet hours |
79
- | Same message to all | Segment by user preference, timezone |
80
- | Ignore failed tokens | Clean up invalid tokens regularly |
81
- | Skip APNs for iOS | FCM alone doesn't guarantee iOS delivery |
82
-
83
- ### Token Management
84
-
85
- ```
86
- TOKEN LIFECYCLE:
87
- ├── App registers → Get token → Send to backend
88
- ├── Token can change → App must re-register on start
89
- ├── Token expires → Clean from database
90
- ├── User uninstalls → Token becomes invalid (detect via error)
91
- └── Multiple devices → Store multiple tokens per user
92
- ```
93
-
94
- ---
95
-
96
- ## 2. Offline Sync & Conflict Resolution
97
-
98
- ### Sync Strategy Selection
99
-
100
- ```
101
- WHAT TYPE OF DATA?
102
-
103
- ├── Read-only (news, catalog)
104
- │ └── Simple cache + TTL
105
- │ └── ETag/Last-Modified for invalidation
106
-
107
- ├── User-owned (notes, todos)
108
- │ └── Last-write-wins (simple)
109
- │ └── Or timestamp-based merge
110
-
111
- ├── Collaborative (shared docs)
112
- │ └── CRDT or OT required
113
- │ └── Consider Firebase/Supabase
114
-
115
- └── Critical (payments, inventory)
116
- └── Server is source of truth
117
- └── Optimistic UI + server confirmation
118
- ```
119
-
120
- ### Conflict Resolution Strategies
121
-
122
- | Strategy | How It Works | Best For |
123
- |----------|--------------|----------|
124
- | **Last-write-wins** | Latest timestamp overwrites | Simple data, single user |
125
- | **Server-wins** | Server always authoritative | Critical transactions |
126
- | **Client-wins** | Offline changes prioritized | Offline-heavy apps |
127
- | **Merge** | Combine changes field-by-field | Documents, rich content |
128
- | **CRDT** | Mathematically conflict-free | Real-time collaboration |
129
-
130
- ### Sync Queue Pattern
131
-
132
- ```
133
- CLIENT SIDE:
134
- ├── User makes change → Write to local DB
135
- ├── Add to sync queue → { action, data, timestamp, retries }
136
- ├── Network available → Process queue FIFO
137
- ├── Success → Remove from queue
138
- ├── Failure → Retry with backoff (max 5 retries)
139
- └── Conflict → Apply resolution strategy
140
-
141
- SERVER SIDE:
142
- ├── Accept change with client timestamp
143
- ├── Compare with server version
144
- ├── Apply conflict resolution
145
- ├── Return merged state
146
- └── Client updates local with server response
147
- ```
148
-
149
- ---
150
-
151
- ## 3. Mobile API Optimization
152
-
153
- ### Response Size Reduction
154
-
155
- | Technique | Savings | Implementation |
156
- |-----------|---------|----------------|
157
- | **Field selection** | 30-70% | `?fields=id,name,thumbnail` |
158
- | **Compression** | 60-80% | gzip/brotli (automatic) |
159
- | **Pagination** | Varies | Cursor-based for mobile |
160
- | **Image variants** | 50-90% | `/image?w=200&q=80` |
161
- | **Delta sync** | 80-95% | Only changed records since timestamp |
162
-
163
- ### Pagination: Cursor vs Offset
164
-
165
- ```
166
- OFFSET (Bad for mobile):
167
- ├── Page 1: OFFSET 0 LIMIT 20
168
- ├── Page 2: OFFSET 20 LIMIT 20
169
- ├── Problem: New item added → duplicates!
170
- └── Problem: Large offset = slow query
171
-
172
- CURSOR (Good for mobile):
173
- ├── First: ?limit=20
174
- ├── Next: ?limit=20&after=cursor_abc123
175
- ├── Cursor = encoded (id + sort values)
176
- ├── No duplicates on data changes
177
- └── Consistent performance
178
- ```
179
-
180
- ### Batch Requests
181
-
182
- ```
183
- Instead of:
184
- GET /users/1
185
- GET /users/2
186
- GET /users/3
187
- (3 round trips, 3x latency)
188
-
189
- Use:
190
- POST /batch
191
- { requests: [
192
- { method: "GET", path: "/users/1" },
193
- { method: "GET", path: "/users/2" },
194
- { method: "GET", path: "/users/3" }
195
- ]}
196
- (1 round trip)
197
- ```
198
-
199
- ---
200
-
201
- ## 4. App Versioning
202
-
203
- ### Version Check Endpoint
204
-
205
- ```
206
- GET /api/app-config
207
- Headers:
208
- X-App-Version: 2.1.0
209
- X-Platform: ios
210
- X-Device-ID: abc123
211
-
212
- Response:
213
- {
214
- "minimum_version": "2.0.0",
215
- "latest_version": "2.3.0",
216
- "force_update": false,
217
- "update_url": "https://apps.apple.com/...",
218
- "feature_flags": {
219
- "new_player": true,
220
- "dark_mode": true
221
- },
222
- "maintenance": false,
223
- "maintenance_message": null
224
- }
225
- ```
226
-
227
- ### Version Comparison Logic
228
-
229
- ```
230
- CLIENT VERSION vs MINIMUM VERSION:
231
- ├── client >= minimum → Continue normally
232
- ├── client < minimum → Show force update screen
233
- │ └── Block app usage until updated
234
- └── client < latest → Show optional update prompt
235
-
236
- FEATURE FLAGS:
237
- ├── Enable/disable features without app update
238
- ├── A/B testing by version/device
239
- └── Gradual rollout (10% → 50% → 100%)
240
- ```
241
-
242
- ---
243
-
244
- ## 5. Authentication for Mobile
245
-
246
- ### Token Strategy
247
-
248
- ```
249
- ACCESS TOKEN:
250
- ├── Short-lived (15 min - 1 hour)
251
- ├── Stored in memory (not persistent)
252
- ├── Used for API requests
253
- └── Refresh when expired
254
-
255
- REFRESH TOKEN:
256
- ├── Long-lived (30-90 days)
257
- ├── Stored in SecureStore/Keychain
258
- ├── Used only to get new access token
259
- └── Rotate on each use (security)
260
-
261
- DEVICE TOKEN:
262
- ├── Identifies this device
263
- ├── Allows "log out all devices"
264
- ├── Stored alongside refresh token
265
- └── Server tracks active devices
266
- ```
267
-
268
- ### Silent Re-authentication
269
-
270
- ```
271
- REQUEST FLOW:
272
- ├── Make request with access token
273
- ├── 401 Unauthorized?
274
- │ ├── Have refresh token?
275
- │ │ ├── Yes → Call /auth/refresh
276
- │ │ │ ├── Success → Retry original request
277
- │ │ │ └── Failure → Force logout
278
- │ │ └── No → Force logout
279
- │ └── Token just expired (not invalid)
280
- │ └── Auto-refresh, user doesn't notice
281
- └── Success → Continue
282
- ```
283
-
284
- ---
285
-
286
- ## 6. Error Handling for Mobile
287
-
288
- ### Mobile-Specific Error Format
289
-
290
- ```json
291
- {
292
- "error": {
293
- "code": "PAYMENT_DECLINED",
294
- "message": "Your payment was declined",
295
- "user_message": "Please check your card details or try another payment method",
296
- "action": {
297
- "type": "navigate",
298
- "destination": "payment_methods"
299
- },
300
- "retry": {
301
- "allowed": true,
302
- "after_seconds": 5
303
- }
304
- }
305
- }
306
- ```
307
-
308
- ### Error Categories
309
-
310
- | Code Range | Category | Mobile Handling |
311
- |------------|----------|-----------------|
312
- | 400-499 | Client error | Show message, user action needed |
313
- | 401 | Auth expired | Silent refresh or re-login |
314
- | 403 | Forbidden | Show upgrade/permission screen |
315
- | 404 | Not found | Remove from local cache |
316
- | 409 | Conflict | Show sync conflict UI |
317
- | 429 | Rate limit | Retry after header, backoff |
318
- | 500-599 | Server error | Retry with backoff, show "try later" |
319
- | Network | No connection | Use cached data, queue for sync |
320
-
321
- ---
322
-
323
- ## 7. Media & Binary Handling
324
-
325
- ### Image Optimization
326
-
327
- ```
328
- CLIENT REQUEST:
329
- GET /images/{id}?w=400&h=300&q=80&format=webp
330
-
331
- SERVER RESPONSE:
332
- ├── Resize on-the-fly OR use CDN
333
- ├── WebP for Android (smaller)
334
- ├── HEIC for iOS 14+ (if supported)
335
- ├── JPEG fallback
336
- └── Cache-Control: max-age=31536000
337
- ```
338
-
339
- ### Chunked Upload (Large Files)
340
-
341
- ```
342
- UPLOAD FLOW:
343
- 1. POST /uploads/init
344
- { filename, size, mime_type }
345
- → { upload_id, chunk_size }
346
-
347
- 2. PUT /uploads/{upload_id}/chunks/{n}
348
- → Upload each chunk (1-5 MB)
349
- → Can resume if interrupted
350
-
351
- 3. POST /uploads/{upload_id}/complete
352
- → Server assembles chunks
353
- → Return final file URL
354
- ```
355
-
356
- ### Streaming Audio/Video
357
-
358
- ```
359
- REQUIREMENTS:
360
- ├── HLS (HTTP Live Streaming) for iOS
361
- ├── DASH or HLS for Android
362
- ├── Multiple quality levels (adaptive bitrate)
363
- ├── Range request support (seeking)
364
- └── Offline download chunks
365
-
366
- ENDPOINTS:
367
- GET /media/{id}/manifest.m3u8 → HLS manifest
368
- GET /media/{id}/segment_{n}.ts → Video segment
369
- GET /media/{id}/download → Full file for offline
370
- ```
371
-
372
- ---
373
-
374
- ## 8. Security for Mobile
375
-
376
- ### Device Attestation
377
-
378
- ```
379
- VERIFY REAL DEVICE (not emulator/bot):
380
- ├── iOS: DeviceCheck API
381
- │ └── Server verifies with Apple
382
- ├── Android: Play Integrity API (replaces SafetyNet)
383
- │ └── Server verifies with Google
384
- └── Fail closed: Reject if attestation fails
385
- ```
386
-
387
- ### Request Signing
388
-
389
- ```
390
- CLIENT:
391
- ├── Create signature = HMAC(timestamp + path + body, secret)
392
- ├── Send: X-Signature: {signature}
393
- ├── Send: X-Timestamp: {timestamp}
394
- └── Send: X-Device-ID: {device_id}
395
-
396
- SERVER:
397
- ├── Validate timestamp (within 5 minutes)
398
- ├── Recreate signature with same inputs
399
- ├── Compare signatures
400
- └── Reject if mismatch (tampering detected)
401
- ```
402
-
403
- ### Rate Limiting
404
-
405
- ```
406
- MOBILE-SPECIFIC LIMITS:
407
- ├── Per device (X-Device-ID)
408
- ├── Per user (after auth)
409
- ├── Per endpoint (stricter for sensitive)
410
- └── Sliding window preferred
411
-
412
- HEADERS:
413
- X-RateLimit-Limit: 100
414
- X-RateLimit-Remaining: 95
415
- X-RateLimit-Reset: 1609459200
416
- Retry-After: 60 (when 429)
417
- ```
418
-
419
- ---
420
-
421
- ## 9. Monitoring & Analytics
422
-
423
- ### Required Headers from Mobile
424
-
425
- ```
426
- Every mobile request should include:
427
- ├── X-App-Version: 2.1.0
428
- ├── X-Platform: ios | android
429
- ├── X-OS-Version: 17.0
430
- ├── X-Device-Model: iPhone15,2
431
- ├── X-Device-ID: uuid (persistent)
432
- ├── X-Request-ID: uuid (per request, for tracing)
433
- ├── Accept-Language: tr-TR
434
- └── X-Timezone: Europe/Istanbul
435
- ```
436
-
437
- ### What to Log
438
-
439
- ```
440
- FOR EACH REQUEST:
441
- ├── All headers above
442
- ├── Endpoint, method, status
443
- ├── Response time
444
- ├── Error details (if any)
445
- └── User ID (if authenticated)
446
-
447
- ALERTS:
448
- ├── Error rate > 5% per version
449
- ├── P95 latency > 2 seconds
450
- ├── Specific version crash spike
451
- ├── Auth failure spike (attack?)
452
- └── Push delivery failure spike
453
- ```
454
-
455
- ---
456
-
457
- ## 📝 MOBILE BACKEND CHECKLIST
458
-
459
- ### Before API Design
460
- - [ ] Identified mobile-specific requirements?
461
- - [ ] Planned offline behavior?
462
- - [ ] Designed sync strategy?
463
- - [ ] Considered bandwidth constraints?
464
-
465
- ### For Every Endpoint
466
- - [ ] Response as small as possible?
467
- - [ ] Pagination cursor-based?
468
- - [ ] Proper caching headers?
469
- - [ ] Mobile error format with actions?
470
-
471
- ### Authentication
472
- - [ ] Token refresh implemented?
473
- - [ ] Silent re-auth flow?
474
- - [ ] Multi-device logout?
475
- - [ ] Secure token storage guidance?
476
-
477
- ### Push Notifications
478
- - [ ] FCM + APNs configured?
479
- - [ ] Token lifecycle managed?
480
- - [ ] Silent vs display push defined?
481
- - [ ] Sensitive data NOT in push payload?
482
-
483
- ### Release
484
- - [ ] Version check endpoint ready?
485
- - [ ] Feature flags configured?
486
- - [ ] Force update mechanism?
487
- - [ ] Monitoring headers required?
488
-
489
- ---
490
-
491
- > **Remember:** Mobile backend must be resilient to bad networks, respect battery life, and handle interrupted sessions gracefully. The client cannot be trusted, but it also cannot be hung up—provide offline capabilities and clear error recovery paths.
1
+ # Mobile Backend Patterns
2
+
3
+ > **This file covers backend/API patterns SPECIFIC to mobile clients.**
4
+ > Generic backend patterns are in `nodejs-best-practices` and `api-patterns`.
5
+ > **Mobile backend is NOT the same as web backend. Different constraints, different patterns.**
6
+
7
+ ---
8
+
9
+ ## 🧠 MOBILE BACKEND MINDSET
10
+
11
+ ```
12
+ Mobile clients are DIFFERENT from web clients:
13
+ ├── Unreliable network (2G, subway, elevator)
14
+ ├── Battery constraints (minimize wake-ups)
15
+ ├── Limited storage (can't cache everything)
16
+ ├── Interrupted sessions (calls, notifications)
17
+ ├── Diverse devices (old phones to flagships)
18
+ └── Binary updates are slow (App Store review)
19
+ ```
20
+
21
+ **Your backend must compensate for ALL of these.**
22
+
23
+ ---
24
+
25
+ ## 🚫 AI MOBILE BACKEND ANTI-PATTERNS
26
+
27
+ ### These are common AI mistakes when building mobile backends:
28
+
29
+ | ❌ AI Default | Why It's Wrong | ✅ Mobile-Correct |
30
+ |---------------|----------------|-------------------|
31
+ | Same API for web and mobile | Mobile needs compact responses | Separate mobile endpoints OR field selection |
32
+ | Full object responses | Wastes bandwidth, battery | Partial responses, pagination |
33
+ | No offline consideration | App crashes without network | Offline-first design, sync queues |
34
+ | WebSocket for everything | Battery drain | Push notifications + polling fallback |
35
+ | No app versioning | Can't force updates, breaking changes | Version headers, minimum version check |
36
+ | Generic error messages | Users can't fix issues | Mobile-specific error codes + recovery actions |
37
+ | Session-based auth | Mobile apps restart | Token-based with refresh |
38
+ | Ignore device info | Can't debug issues | Device ID, app version in headers |
39
+
40
+ ---
41
+
42
+ ## 1. Push Notifications
43
+
44
+ ### Platform Architecture
45
+
46
+ ```
47
+ ┌─────────────────────────────────────────────────────────────────┐
48
+ │ YOUR BACKEND │
49
+ ├─────────────────────────────────────────────────────────────────┤
50
+ │ │ │
51
+ │ ┌──────────┴──────────┐ │
52
+ │ ▼ ▼ │
53
+ │ ┌─────────────────┐ ┌─────────────────┐ │
54
+ │ │ FCM (Google) │ │ APNs (Apple) │ │
55
+ │ │ Firebase │ │ Direct or FCM │ │
56
+ │ └────────┬────────┘ └────────┬────────┘ │
57
+ │ │ │ │
58
+ │ ▼ ▼ │
59
+ │ ┌─────────────────┐ ┌─────────────────┐ │
60
+ │ │ Android Device │ │ iOS Device │ │
61
+ │ └─────────────────┘ └─────────────────┘ │
62
+ └─────────────────────────────────────────────────────────────────┘
63
+ ```
64
+
65
+ ### Push Types
66
+
67
+ | Type | Use Case | User Sees |
68
+ |------|----------|-----------|
69
+ | **Display** | New message, order update | Notification banner |
70
+ | **Silent** | Background sync, content update | Nothing (background) |
71
+ | **Data** | Custom handling by app | Depends on app logic |
72
+
73
+ ### Anti-Patterns
74
+
75
+ | ❌ NEVER | ✅ ALWAYS |
76
+ |----------|----------|
77
+ | Send sensitive data in push | Push says "New message", app fetches content |
78
+ | Overload with pushes | Batch, dedupe, respect quiet hours |
79
+ | Same message to all | Segment by user preference, timezone |
80
+ | Ignore failed tokens | Clean up invalid tokens regularly |
81
+ | Skip APNs for iOS | FCM alone doesn't guarantee iOS delivery |
82
+
83
+ ### Token Management
84
+
85
+ ```
86
+ TOKEN LIFECYCLE:
87
+ ├── App registers → Get token → Send to backend
88
+ ├── Token can change → App must re-register on start
89
+ ├── Token expires → Clean from database
90
+ ├── User uninstalls → Token becomes invalid (detect via error)
91
+ └── Multiple devices → Store multiple tokens per user
92
+ ```
93
+
94
+ ---
95
+
96
+ ## 2. Offline Sync & Conflict Resolution
97
+
98
+ ### Sync Strategy Selection
99
+
100
+ ```
101
+ WHAT TYPE OF DATA?
102
+
103
+ ├── Read-only (news, catalog)
104
+ │ └── Simple cache + TTL
105
+ │ └── ETag/Last-Modified for invalidation
106
+
107
+ ├── User-owned (notes, todos)
108
+ │ └── Last-write-wins (simple)
109
+ │ └── Or timestamp-based merge
110
+
111
+ ├── Collaborative (shared docs)
112
+ │ └── CRDT or OT required
113
+ │ └── Consider Firebase/Supabase
114
+
115
+ └── Critical (payments, inventory)
116
+ └── Server is source of truth
117
+ └── Optimistic UI + server confirmation
118
+ ```
119
+
120
+ ### Conflict Resolution Strategies
121
+
122
+ | Strategy | How It Works | Best For |
123
+ |----------|--------------|----------|
124
+ | **Last-write-wins** | Latest timestamp overwrites | Simple data, single user |
125
+ | **Server-wins** | Server always authoritative | Critical transactions |
126
+ | **Client-wins** | Offline changes prioritized | Offline-heavy apps |
127
+ | **Merge** | Combine changes field-by-field | Documents, rich content |
128
+ | **CRDT** | Mathematically conflict-free | Real-time collaboration |
129
+
130
+ ### Sync Queue Pattern
131
+
132
+ ```
133
+ CLIENT SIDE:
134
+ ├── User makes change → Write to local DB
135
+ ├── Add to sync queue → { action, data, timestamp, retries }
136
+ ├── Network available → Process queue FIFO
137
+ ├── Success → Remove from queue
138
+ ├── Failure → Retry with backoff (max 5 retries)
139
+ └── Conflict → Apply resolution strategy
140
+
141
+ SERVER SIDE:
142
+ ├── Accept change with client timestamp
143
+ ├── Compare with server version
144
+ ├── Apply conflict resolution
145
+ ├── Return merged state
146
+ └── Client updates local with server response
147
+ ```
148
+
149
+ ---
150
+
151
+ ## 3. Mobile API Optimization
152
+
153
+ ### Response Size Reduction
154
+
155
+ | Technique | Savings | Implementation |
156
+ |-----------|---------|----------------|
157
+ | **Field selection** | 30-70% | `?fields=id,name,thumbnail` |
158
+ | **Compression** | 60-80% | gzip/brotli (automatic) |
159
+ | **Pagination** | Varies | Cursor-based for mobile |
160
+ | **Image variants** | 50-90% | `/image?w=200&q=80` |
161
+ | **Delta sync** | 80-95% | Only changed records since timestamp |
162
+
163
+ ### Pagination: Cursor vs Offset
164
+
165
+ ```
166
+ OFFSET (Bad for mobile):
167
+ ├── Page 1: OFFSET 0 LIMIT 20
168
+ ├── Page 2: OFFSET 20 LIMIT 20
169
+ ├── Problem: New item added → duplicates!
170
+ └── Problem: Large offset = slow query
171
+
172
+ CURSOR (Good for mobile):
173
+ ├── First: ?limit=20
174
+ ├── Next: ?limit=20&after=cursor_abc123
175
+ ├── Cursor = encoded (id + sort values)
176
+ ├── No duplicates on data changes
177
+ └── Consistent performance
178
+ ```
179
+
180
+ ### Batch Requests
181
+
182
+ ```
183
+ Instead of:
184
+ GET /users/1
185
+ GET /users/2
186
+ GET /users/3
187
+ (3 round trips, 3x latency)
188
+
189
+ Use:
190
+ POST /batch
191
+ { requests: [
192
+ { method: "GET", path: "/users/1" },
193
+ { method: "GET", path: "/users/2" },
194
+ { method: "GET", path: "/users/3" }
195
+ ]}
196
+ (1 round trip)
197
+ ```
198
+
199
+ ---
200
+
201
+ ## 4. App Versioning
202
+
203
+ ### Version Check Endpoint
204
+
205
+ ```
206
+ GET /api/app-config
207
+ Headers:
208
+ X-App-Version: 2.1.0
209
+ X-Platform: ios
210
+ X-Device-ID: abc123
211
+
212
+ Response:
213
+ {
214
+ "minimum_version": "2.0.0",
215
+ "latest_version": "2.3.0",
216
+ "force_update": false,
217
+ "update_url": "https://apps.apple.com/...",
218
+ "feature_flags": {
219
+ "new_player": true,
220
+ "dark_mode": true
221
+ },
222
+ "maintenance": false,
223
+ "maintenance_message": null
224
+ }
225
+ ```
226
+
227
+ ### Version Comparison Logic
228
+
229
+ ```
230
+ CLIENT VERSION vs MINIMUM VERSION:
231
+ ├── client >= minimum → Continue normally
232
+ ├── client < minimum → Show force update screen
233
+ │ └── Block app usage until updated
234
+ └── client < latest → Show optional update prompt
235
+
236
+ FEATURE FLAGS:
237
+ ├── Enable/disable features without app update
238
+ ├── A/B testing by version/device
239
+ └── Gradual rollout (10% → 50% → 100%)
240
+ ```
241
+
242
+ ---
243
+
244
+ ## 5. Authentication for Mobile
245
+
246
+ ### Token Strategy
247
+
248
+ ```
249
+ ACCESS TOKEN:
250
+ ├── Short-lived (15 min - 1 hour)
251
+ ├── Stored in memory (not persistent)
252
+ ├── Used for API requests
253
+ └── Refresh when expired
254
+
255
+ REFRESH TOKEN:
256
+ ├── Long-lived (30-90 days)
257
+ ├── Stored in SecureStore/Keychain
258
+ ├── Used only to get new access token
259
+ └── Rotate on each use (security)
260
+
261
+ DEVICE TOKEN:
262
+ ├── Identifies this device
263
+ ├── Allows "log out all devices"
264
+ ├── Stored alongside refresh token
265
+ └── Server tracks active devices
266
+ ```
267
+
268
+ ### Silent Re-authentication
269
+
270
+ ```
271
+ REQUEST FLOW:
272
+ ├── Make request with access token
273
+ ├── 401 Unauthorized?
274
+ │ ├── Have refresh token?
275
+ │ │ ├── Yes → Call /auth/refresh
276
+ │ │ │ ├── Success → Retry original request
277
+ │ │ │ └── Failure → Force logout
278
+ │ │ └── No → Force logout
279
+ │ └── Token just expired (not invalid)
280
+ │ └── Auto-refresh, user doesn't notice
281
+ └── Success → Continue
282
+ ```
283
+
284
+ ---
285
+
286
+ ## 6. Error Handling for Mobile
287
+
288
+ ### Mobile-Specific Error Format
289
+
290
+ ```json
291
+ {
292
+ "error": {
293
+ "code": "PAYMENT_DECLINED",
294
+ "message": "Your payment was declined",
295
+ "user_message": "Please check your card details or try another payment method",
296
+ "action": {
297
+ "type": "navigate",
298
+ "destination": "payment_methods"
299
+ },
300
+ "retry": {
301
+ "allowed": true,
302
+ "after_seconds": 5
303
+ }
304
+ }
305
+ }
306
+ ```
307
+
308
+ ### Error Categories
309
+
310
+ | Code Range | Category | Mobile Handling |
311
+ |------------|----------|-----------------|
312
+ | 400-499 | Client error | Show message, user action needed |
313
+ | 401 | Auth expired | Silent refresh or re-login |
314
+ | 403 | Forbidden | Show upgrade/permission screen |
315
+ | 404 | Not found | Remove from local cache |
316
+ | 409 | Conflict | Show sync conflict UI |
317
+ | 429 | Rate limit | Retry after header, backoff |
318
+ | 500-599 | Server error | Retry with backoff, show "try later" |
319
+ | Network | No connection | Use cached data, queue for sync |
320
+
321
+ ---
322
+
323
+ ## 7. Media & Binary Handling
324
+
325
+ ### Image Optimization
326
+
327
+ ```
328
+ CLIENT REQUEST:
329
+ GET /images/{id}?w=400&h=300&q=80&format=webp
330
+
331
+ SERVER RESPONSE:
332
+ ├── Resize on-the-fly OR use CDN
333
+ ├── WebP for Android (smaller)
334
+ ├── HEIC for iOS 14+ (if supported)
335
+ ├── JPEG fallback
336
+ └── Cache-Control: max-age=31536000
337
+ ```
338
+
339
+ ### Chunked Upload (Large Files)
340
+
341
+ ```
342
+ UPLOAD FLOW:
343
+ 1. POST /uploads/init
344
+ { filename, size, mime_type }
345
+ → { upload_id, chunk_size }
346
+
347
+ 2. PUT /uploads/{upload_id}/chunks/{n}
348
+ → Upload each chunk (1-5 MB)
349
+ → Can resume if interrupted
350
+
351
+ 3. POST /uploads/{upload_id}/complete
352
+ → Server assembles chunks
353
+ → Return final file URL
354
+ ```
355
+
356
+ ### Streaming Audio/Video
357
+
358
+ ```
359
+ REQUIREMENTS:
360
+ ├── HLS (HTTP Live Streaming) for iOS
361
+ ├── DASH or HLS for Android
362
+ ├── Multiple quality levels (adaptive bitrate)
363
+ ├── Range request support (seeking)
364
+ └── Offline download chunks
365
+
366
+ ENDPOINTS:
367
+ GET /media/{id}/manifest.m3u8 → HLS manifest
368
+ GET /media/{id}/segment_{n}.ts → Video segment
369
+ GET /media/{id}/download → Full file for offline
370
+ ```
371
+
372
+ ---
373
+
374
+ ## 8. Security for Mobile
375
+
376
+ ### Device Attestation
377
+
378
+ ```
379
+ VERIFY REAL DEVICE (not emulator/bot):
380
+ ├── iOS: DeviceCheck API
381
+ │ └── Server verifies with Apple
382
+ ├── Android: Play Integrity API (replaces SafetyNet)
383
+ │ └── Server verifies with Google
384
+ └── Fail closed: Reject if attestation fails
385
+ ```
386
+
387
+ ### Request Signing
388
+
389
+ ```
390
+ CLIENT:
391
+ ├── Create signature = HMAC(timestamp + path + body, secret)
392
+ ├── Send: X-Signature: {signature}
393
+ ├── Send: X-Timestamp: {timestamp}
394
+ └── Send: X-Device-ID: {device_id}
395
+
396
+ SERVER:
397
+ ├── Validate timestamp (within 5 minutes)
398
+ ├── Recreate signature with same inputs
399
+ ├── Compare signatures
400
+ └── Reject if mismatch (tampering detected)
401
+ ```
402
+
403
+ ### Rate Limiting
404
+
405
+ ```
406
+ MOBILE-SPECIFIC LIMITS:
407
+ ├── Per device (X-Device-ID)
408
+ ├── Per user (after auth)
409
+ ├── Per endpoint (stricter for sensitive)
410
+ └── Sliding window preferred
411
+
412
+ HEADERS:
413
+ X-RateLimit-Limit: 100
414
+ X-RateLimit-Remaining: 95
415
+ X-RateLimit-Reset: 1609459200
416
+ Retry-After: 60 (when 429)
417
+ ```
418
+
419
+ ---
420
+
421
+ ## 9. Monitoring & Analytics
422
+
423
+ ### Required Headers from Mobile
424
+
425
+ ```
426
+ Every mobile request should include:
427
+ ├── X-App-Version: 2.1.0
428
+ ├── X-Platform: ios | android
429
+ ├── X-OS-Version: 17.0
430
+ ├── X-Device-Model: iPhone15,2
431
+ ├── X-Device-ID: uuid (persistent)
432
+ ├── X-Request-ID: uuid (per request, for tracing)
433
+ ├── Accept-Language: tr-TR
434
+ └── X-Timezone: Europe/Istanbul
435
+ ```
436
+
437
+ ### What to Log
438
+
439
+ ```
440
+ FOR EACH REQUEST:
441
+ ├── All headers above
442
+ ├── Endpoint, method, status
443
+ ├── Response time
444
+ ├── Error details (if any)
445
+ └── User ID (if authenticated)
446
+
447
+ ALERTS:
448
+ ├── Error rate > 5% per version
449
+ ├── P95 latency > 2 seconds
450
+ ├── Specific version crash spike
451
+ ├── Auth failure spike (attack?)
452
+ └── Push delivery failure spike
453
+ ```
454
+
455
+ ---
456
+
457
+ ## 📝 MOBILE BACKEND CHECKLIST
458
+
459
+ ### Before API Design
460
+ - [ ] Identified mobile-specific requirements?
461
+ - [ ] Planned offline behavior?
462
+ - [ ] Designed sync strategy?
463
+ - [ ] Considered bandwidth constraints?
464
+
465
+ ### For Every Endpoint
466
+ - [ ] Response as small as possible?
467
+ - [ ] Pagination cursor-based?
468
+ - [ ] Proper caching headers?
469
+ - [ ] Mobile error format with actions?
470
+
471
+ ### Authentication
472
+ - [ ] Token refresh implemented?
473
+ - [ ] Silent re-auth flow?
474
+ - [ ] Multi-device logout?
475
+ - [ ] Secure token storage guidance?
476
+
477
+ ### Push Notifications
478
+ - [ ] FCM + APNs configured?
479
+ - [ ] Token lifecycle managed?
480
+ - [ ] Silent vs display push defined?
481
+ - [ ] Sensitive data NOT in push payload?
482
+
483
+ ### Release
484
+ - [ ] Version check endpoint ready?
485
+ - [ ] Feature flags configured?
486
+ - [ ] Force update mechanism?
487
+ - [ ] Monitoring headers required?
488
+
489
+ ---
490
+
491
+ > **Remember:** Mobile backend must be resilient to bad networks, respect battery life, and handle interrupted sessions gracefully. The client cannot be trusted, but it also cannot be hung up—provide offline capabilities and clear error recovery paths.