@jakkrichm/create-nexus-devflow 2.0.0 → 2.0.2

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 (398) hide show
  1. package/README.md +96 -50
  2. package/package.json +1 -1
  3. package/template/.agents/skills/20-spec/SKILL.md +136 -136
  4. package/template/.agents/skills/30-plan/SKILL.md +206 -206
  5. package/template/.agents/skills/40-implement/SKILL.md +152 -152
  6. package/template/.agents/skills/50-verify/SKILL.md +174 -174
  7. package/template/.agents/skills/60-report/SKILL.md +168 -168
  8. package/template/.agents/skills/70-release/SKILL.md +141 -141
  9. package/template/.agents/skills/9arm-skills/README.md +51 -51
  10. package/template/.agents/skills/9arm-skills/debug-mantra/SKILL.md +86 -86
  11. package/template/.agents/skills/9arm-skills/management-talk/SKILL.md +79 -79
  12. package/template/.agents/skills/9arm-skills/post-mortem/SKILL.md +71 -71
  13. package/template/.agents/skills/9arm-skills/scrutinize/SKILL.md +72 -72
  14. package/template/.agents/skills/agent/SKILL.md +164 -164
  15. package/template/.agents/skills/api-and-interface-design/SKILL.md +294 -294
  16. package/template/.agents/skills/app-builder/SKILL.md +75 -75
  17. package/template/.agents/skills/app-builder/agent-coordination.md +71 -71
  18. package/template/.agents/skills/app-builder/feature-building.md +53 -53
  19. package/template/.agents/skills/app-builder/project-detection.md +34 -34
  20. package/template/.agents/skills/app-builder/scaffolding.md +118 -118
  21. package/template/.agents/skills/app-builder/tech-stack.md +40 -40
  22. package/template/.agents/skills/app-builder/templates/SKILL.md +39 -39
  23. package/template/.agents/skills/app-builder/templates/astro-static/TEMPLATE.md +76 -76
  24. package/template/.agents/skills/app-builder/templates/chrome-extension/TEMPLATE.md +92 -92
  25. package/template/.agents/skills/app-builder/templates/cli-tool/TEMPLATE.md +88 -88
  26. package/template/.agents/skills/app-builder/templates/electron-desktop/TEMPLATE.md +88 -88
  27. package/template/.agents/skills/app-builder/templates/express-api/TEMPLATE.md +83 -83
  28. package/template/.agents/skills/app-builder/templates/flutter-app/TEMPLATE.md +90 -90
  29. package/template/.agents/skills/app-builder/templates/monorepo-turborepo/TEMPLATE.md +90 -90
  30. package/template/.agents/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +122 -122
  31. package/template/.agents/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +122 -122
  32. package/template/.agents/skills/app-builder/templates/nextjs-static/TEMPLATE.md +169 -169
  33. package/template/.agents/skills/app-builder/templates/nuxt-app/TEMPLATE.md +134 -134
  34. package/template/.agents/skills/app-builder/templates/python-fastapi/TEMPLATE.md +83 -83
  35. package/template/.agents/skills/app-builder/templates/react-native-app/TEMPLATE.md +119 -119
  36. package/template/.agents/skills/architecture/SKILL.md +55 -55
  37. package/template/.agents/skills/architecture/context-discovery.md +43 -43
  38. package/template/.agents/skills/architecture/examples.md +94 -94
  39. package/template/.agents/skills/architecture/pattern-selection.md +68 -68
  40. package/template/.agents/skills/architecture/patterns-reference.md +50 -50
  41. package/template/.agents/skills/architecture/trade-off-analysis.md +77 -77
  42. package/template/.agents/skills/bash-linux/SKILL.md +199 -199
  43. package/template/.agents/skills/behavioral-modes/SKILL.md +242 -242
  44. package/template/.agents/skills/brainstorm/SKILL.md +157 -157
  45. package/template/.agents/skills/browser-testing-with-devtools/SKILL.md +302 -302
  46. package/template/.agents/skills/changelog/SKILL.md +108 -108
  47. package/template/.agents/skills/ci-cd-and-automation/SKILL.md +390 -390
  48. package/template/.agents/skills/code-review-and-quality/SKILL.md +392 -392
  49. package/template/.agents/skills/code-simplification/SKILL.md +331 -331
  50. package/template/.agents/skills/commit/SKILL.md +62 -62
  51. package/template/.agents/skills/competitor-analysis/SKILL.md +66 -66
  52. package/template/.agents/skills/context-engineering/SKILL.md +290 -290
  53. package/template/.agents/skills/database-design/SKILL.md +52 -52
  54. package/template/.agents/skills/database-design/database-selection.md +43 -43
  55. package/template/.agents/skills/database-design/indexing.md +39 -39
  56. package/template/.agents/skills/database-design/migrations.md +48 -48
  57. package/template/.agents/skills/database-design/optimization.md +36 -36
  58. package/template/.agents/skills/database-design/orm-selection.md +30 -30
  59. package/template/.agents/skills/database-design/schema-design.md +56 -56
  60. package/template/.agents/skills/database-design/scripts/schema_validator.py +172 -172
  61. package/template/.agents/skills/debug/SKILL.md +116 -116
  62. package/template/.agents/skills/debugging-and-error-recovery/SKILL.md +298 -298
  63. package/template/.agents/skills/deploy/SKILL.md +90 -90
  64. package/template/.agents/skills/deployment-procedures/SKILL.md +241 -241
  65. package/template/.agents/skills/deprecation-and-migration/SKILL.md +206 -206
  66. package/template/.agents/skills/documentation-and-adrs/SKILL.md +278 -278
  67. package/template/.agents/skills/followup/SKILL.md +78 -78
  68. package/template/.agents/skills/frontend-ui-engineering/SKILL.md +326 -326
  69. package/template/.agents/skills/frontend-ui-engineering/accessibility-checklist.md +159 -159
  70. package/template/.agents/skills/git-workflow-and-versioning/SKILL.md +300 -300
  71. package/template/.agents/skills/goal/SKILL.md +132 -132
  72. package/template/.agents/skills/help/SKILL.md +242 -242
  73. package/template/.agents/skills/human-review-decisions/SKILL.md +74 -74
  74. package/template/.agents/skills/i18n-localization/SKILL.md +154 -154
  75. package/template/.agents/skills/i18n-localization/scripts/i18n_checker.py +241 -241
  76. package/template/.agents/skills/idea-refine/SKILL.md +178 -178
  77. package/template/.agents/skills/idea-refine/examples.md +238 -238
  78. package/template/.agents/skills/idea-refine/frameworks.md +99 -99
  79. package/template/.agents/skills/idea-refine/refinement-criteria.md +113 -113
  80. package/template/.agents/skills/idea-refine/scripts/idea-refine.sh +15 -15
  81. package/template/.agents/skills/incremental-implementation/SKILL.md +248 -248
  82. package/template/.agents/skills/insight/SKILL.md +130 -130
  83. package/template/.agents/skills/insight-capture/SKILL.md +84 -84
  84. package/template/.agents/skills/intelligent-routing/SKILL.md +171 -171
  85. package/template/.agents/skills/issue-triage/SKILL.md +106 -106
  86. package/template/.agents/skills/lint-and-validate/SKILL.md +45 -45
  87. package/template/.agents/skills/lint-and-validate/scripts/lint_runner.py +184 -184
  88. package/template/.agents/skills/lint-and-validate/scripts/type_coverage.py +173 -173
  89. package/template/.agents/skills/mcp-builder/SKILL.md +176 -176
  90. package/template/.agents/skills/md2html/SKILL.md +154 -154
  91. package/template/.agents/skills/md2html/components.md +505 -505
  92. package/template/.agents/skills/md2html/template.html +1152 -1152
  93. package/template/.agents/skills/merge/SKILL.md +75 -75
  94. package/template/.agents/skills/mobile-design/SKILL.md +394 -394
  95. package/template/.agents/skills/mobile-design/decision-trees.md +516 -516
  96. package/template/.agents/skills/mobile-design/mobile-backend.md +491 -491
  97. package/template/.agents/skills/mobile-design/mobile-color-system.md +420 -420
  98. package/template/.agents/skills/mobile-design/mobile-debugging.md +122 -122
  99. package/template/.agents/skills/mobile-design/mobile-design-thinking.md +357 -357
  100. package/template/.agents/skills/mobile-design/mobile-navigation.md +458 -458
  101. package/template/.agents/skills/mobile-design/mobile-performance.md +767 -767
  102. package/template/.agents/skills/mobile-design/mobile-testing.md +356 -356
  103. package/template/.agents/skills/mobile-design/mobile-typography.md +433 -433
  104. package/template/.agents/skills/mobile-design/platform-android.md +666 -666
  105. package/template/.agents/skills/mobile-design/platform-ios.md +561 -561
  106. package/template/.agents/skills/mobile-design/scripts/mobile_audit.py +670 -670
  107. package/template/.agents/skills/mobile-design/touch-psychology.md +537 -537
  108. package/template/.agents/skills/nextjs-react-expert/1-async-eliminating-waterfalls.md +312 -312
  109. package/template/.agents/skills/nextjs-react-expert/2-bundle-bundle-size-optimization.md +240 -240
  110. package/template/.agents/skills/nextjs-react-expert/3-server-server-side-performance.md +490 -490
  111. package/template/.agents/skills/nextjs-react-expert/4-client-client-side-data-fetching.md +264 -264
  112. package/template/.agents/skills/nextjs-react-expert/5-rerender-re-render-optimization.md +581 -581
  113. package/template/.agents/skills/nextjs-react-expert/6-rendering-rendering-performance.md +432 -432
  114. package/template/.agents/skills/nextjs-react-expert/7-js-javascript-performance.md +684 -684
  115. package/template/.agents/skills/nextjs-react-expert/8-advanced-advanced-patterns.md +150 -150
  116. package/template/.agents/skills/nextjs-react-expert/SKILL.md +286 -286
  117. package/template/.agents/skills/nextjs-react-expert/scripts/convert_rules.py +222 -222
  118. package/template/.agents/skills/nextjs-react-expert/scripts/react_performance_checker.py +252 -252
  119. package/template/.agents/skills/nodejs-best-practices/SKILL.md +333 -333
  120. package/template/.agents/skills/package-json-generator/SKILL.md +60 -60
  121. package/template/.agents/skills/package-json-generator/scripts/generate.js +120 -120
  122. package/template/.agents/skills/package-json-generator/scripts/run.sh +19 -19
  123. package/template/.agents/skills/parallel-agents/SKILL.md +144 -144
  124. package/template/.agents/skills/performance-optimization/SKILL.md +299 -299
  125. package/template/.agents/skills/performance-optimization/performance-checklist.md +113 -113
  126. package/template/.agents/skills/planning-and-task-breakdown/SKILL.md +239 -239
  127. package/template/.agents/skills/powershell-windows/SKILL.md +167 -167
  128. package/template/.agents/skills/pr/SKILL.md +92 -92
  129. package/template/.agents/skills/pr-review/SKILL.md +142 -142
  130. package/template/.agents/skills/pr-review-analysis/SKILL.md +89 -89
  131. package/template/.agents/skills/prd/SKILL.md +112 -112
  132. package/template/.agents/skills/preview/SKILL.md +116 -116
  133. package/template/.agents/skills/preview-local-check/SKILL.md +59 -59
  134. package/template/.agents/skills/python-patterns/SKILL.md +441 -441
  135. package/template/.agents/skills/release-git-operations/SKILL.md +97 -97
  136. package/template/.agents/skills/research/SKILL.md +127 -127
  137. package/template/.agents/skills/review/SKILL.md +55 -55
  138. package/template/.agents/skills/review-followup-routing/SKILL.md +98 -98
  139. package/template/.agents/skills/roadmap-strategy/SKILL.md +97 -97
  140. package/template/.agents/skills/security-and-hardening/SKILL.md +349 -349
  141. package/template/.agents/skills/security-and-hardening/security-checklist.md +134 -134
  142. package/template/.agents/skills/security-review/SKILL.md +164 -164
  143. package/template/.agents/skills/seo-fundamentals/SKILL.md +129 -129
  144. package/template/.agents/skills/seo-fundamentals/scripts/seo_checker.py +219 -219
  145. package/template/.agents/skills/server-management/SKILL.md +161 -161
  146. package/template/.agents/skills/shipping-and-launch/SKILL.md +311 -311
  147. package/template/.agents/skills/silent-failure-audit/SKILL.md +73 -73
  148. package/template/.agents/skills/simplify/SKILL.md +74 -74
  149. package/template/.agents/skills/skill-development/SKILL.md +86 -86
  150. package/template/.agents/skills/spec-driven-development/SKILL.md +207 -207
  151. package/template/.agents/skills/spec-orchestration/SKILL.md +91 -91
  152. package/template/.agents/skills/specialist-agent-routing/SKILL.md +107 -107
  153. package/template/.agents/skills/tailwind-patterns/SKILL.md +269 -269
  154. package/template/.agents/skills/test/SKILL.md +77 -77
  155. package/template/.agents/skills/test-driven-development/SKILL.md +422 -422
  156. package/template/.agents/skills/test-driven-development/testing-patterns.md +236 -236
  157. package/template/.agents/skills/test-execution-and-coverage/SKILL.md +56 -56
  158. package/template/.agents/skills/type-design/SKILL.md +84 -84
  159. package/template/.agents/skills/ui-ux-pro-max/SKILL.md +75 -75
  160. package/template/.agents/skills/using-agent-skills/SKILL.md +171 -171
  161. package/template/.agents/skills/verification-orchestration/SKILL.md +68 -68
  162. package/template/.agents/skills/vulnerability-scanner/SKILL.md +276 -276
  163. package/template/.agents/skills/vulnerability-scanner/checklists.md +121 -121
  164. package/template/.agents/skills/vulnerability-scanner/scripts/security_scan.py +458 -458
  165. package/template/.agents/skills/wiki/SKILL.md +148 -148
  166. package/template/.agents/skills/workflow-documentation-sync/SKILL.md +87 -87
  167. package/template/.claude/skills/20-spec/SKILL.md +136 -136
  168. package/template/.claude/skills/30-plan/SKILL.md +206 -206
  169. package/template/.claude/skills/40-implement/SKILL.md +152 -152
  170. package/template/.claude/skills/50-verify/SKILL.md +174 -174
  171. package/template/.claude/skills/60-report/SKILL.md +168 -168
  172. package/template/.claude/skills/70-release/SKILL.md +141 -141
  173. package/template/.claude/skills/9arm-skills/README.md +51 -51
  174. package/template/.claude/skills/9arm-skills/debug-mantra/SKILL.md +86 -86
  175. package/template/.claude/skills/9arm-skills/management-talk/SKILL.md +79 -79
  176. package/template/.claude/skills/9arm-skills/post-mortem/SKILL.md +71 -71
  177. package/template/.claude/skills/9arm-skills/scrutinize/SKILL.md +72 -72
  178. package/template/.claude/skills/agent/SKILL.md +164 -164
  179. package/template/.claude/skills/api-and-interface-design/SKILL.md +294 -294
  180. package/template/.claude/skills/app-builder/SKILL.md +75 -75
  181. package/template/.claude/skills/app-builder/agent-coordination.md +71 -71
  182. package/template/.claude/skills/app-builder/feature-building.md +53 -53
  183. package/template/.claude/skills/app-builder/project-detection.md +34 -34
  184. package/template/.claude/skills/app-builder/scaffolding.md +118 -118
  185. package/template/.claude/skills/app-builder/tech-stack.md +40 -40
  186. package/template/.claude/skills/app-builder/templates/SKILL.md +39 -39
  187. package/template/.claude/skills/app-builder/templates/astro-static/TEMPLATE.md +76 -76
  188. package/template/.claude/skills/app-builder/templates/chrome-extension/TEMPLATE.md +92 -92
  189. package/template/.claude/skills/app-builder/templates/cli-tool/TEMPLATE.md +88 -88
  190. package/template/.claude/skills/app-builder/templates/electron-desktop/TEMPLATE.md +88 -88
  191. package/template/.claude/skills/app-builder/templates/express-api/TEMPLATE.md +83 -83
  192. package/template/.claude/skills/app-builder/templates/flutter-app/TEMPLATE.md +90 -90
  193. package/template/.claude/skills/app-builder/templates/monorepo-turborepo/TEMPLATE.md +90 -90
  194. package/template/.claude/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +122 -122
  195. package/template/.claude/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +122 -122
  196. package/template/.claude/skills/app-builder/templates/nextjs-static/TEMPLATE.md +169 -169
  197. package/template/.claude/skills/app-builder/templates/nuxt-app/TEMPLATE.md +134 -134
  198. package/template/.claude/skills/app-builder/templates/python-fastapi/TEMPLATE.md +83 -83
  199. package/template/.claude/skills/app-builder/templates/react-native-app/TEMPLATE.md +119 -119
  200. package/template/.claude/skills/architecture/SKILL.md +55 -55
  201. package/template/.claude/skills/architecture/context-discovery.md +43 -43
  202. package/template/.claude/skills/architecture/examples.md +94 -94
  203. package/template/.claude/skills/architecture/pattern-selection.md +68 -68
  204. package/template/.claude/skills/architecture/patterns-reference.md +50 -50
  205. package/template/.claude/skills/architecture/trade-off-analysis.md +77 -77
  206. package/template/.claude/skills/bash-linux/SKILL.md +199 -199
  207. package/template/.claude/skills/behavioral-modes/SKILL.md +242 -242
  208. package/template/.claude/skills/brainstorm/SKILL.md +157 -157
  209. package/template/.claude/skills/browser-testing-with-devtools/SKILL.md +302 -302
  210. package/template/.claude/skills/changelog/SKILL.md +108 -108
  211. package/template/.claude/skills/ci-cd-and-automation/SKILL.md +390 -390
  212. package/template/.claude/skills/code-review-and-quality/SKILL.md +392 -392
  213. package/template/.claude/skills/code-simplification/SKILL.md +331 -331
  214. package/template/.claude/skills/commit/SKILL.md +62 -62
  215. package/template/.claude/skills/competitor-analysis/SKILL.md +66 -66
  216. package/template/.claude/skills/context-engineering/SKILL.md +290 -290
  217. package/template/.claude/skills/database-design/SKILL.md +52 -52
  218. package/template/.claude/skills/database-design/database-selection.md +43 -43
  219. package/template/.claude/skills/database-design/indexing.md +39 -39
  220. package/template/.claude/skills/database-design/migrations.md +48 -48
  221. package/template/.claude/skills/database-design/optimization.md +36 -36
  222. package/template/.claude/skills/database-design/orm-selection.md +30 -30
  223. package/template/.claude/skills/database-design/schema-design.md +56 -56
  224. package/template/.claude/skills/database-design/scripts/schema_validator.py +172 -172
  225. package/template/.claude/skills/debug/SKILL.md +116 -116
  226. package/template/.claude/skills/debugging-and-error-recovery/SKILL.md +298 -298
  227. package/template/.claude/skills/deploy/SKILL.md +90 -90
  228. package/template/.claude/skills/deployment-procedures/SKILL.md +241 -241
  229. package/template/.claude/skills/deprecation-and-migration/SKILL.md +206 -206
  230. package/template/.claude/skills/documentation-and-adrs/SKILL.md +278 -278
  231. package/template/.claude/skills/followup/SKILL.md +78 -78
  232. package/template/.claude/skills/frontend-ui-engineering/SKILL.md +326 -326
  233. package/template/.claude/skills/frontend-ui-engineering/accessibility-checklist.md +159 -159
  234. package/template/.claude/skills/git-workflow-and-versioning/SKILL.md +300 -300
  235. package/template/.claude/skills/goal/SKILL.md +132 -132
  236. package/template/.claude/skills/help/SKILL.md +242 -242
  237. package/template/.claude/skills/human-review-decisions/SKILL.md +74 -74
  238. package/template/.claude/skills/i18n-localization/SKILL.md +154 -154
  239. package/template/.claude/skills/i18n-localization/scripts/i18n_checker.py +241 -241
  240. package/template/.claude/skills/idea-refine/SKILL.md +178 -178
  241. package/template/.claude/skills/idea-refine/examples.md +238 -238
  242. package/template/.claude/skills/idea-refine/frameworks.md +99 -99
  243. package/template/.claude/skills/idea-refine/refinement-criteria.md +113 -113
  244. package/template/.claude/skills/idea-refine/scripts/idea-refine.sh +15 -15
  245. package/template/.claude/skills/incremental-implementation/SKILL.md +248 -248
  246. package/template/.claude/skills/insight/SKILL.md +130 -130
  247. package/template/.claude/skills/insight-capture/SKILL.md +84 -84
  248. package/template/.claude/skills/intelligent-routing/SKILL.md +171 -171
  249. package/template/.claude/skills/issue-triage/SKILL.md +106 -106
  250. package/template/.claude/skills/lint-and-validate/SKILL.md +45 -45
  251. package/template/.claude/skills/lint-and-validate/scripts/lint_runner.py +184 -184
  252. package/template/.claude/skills/lint-and-validate/scripts/type_coverage.py +173 -173
  253. package/template/.claude/skills/mcp-builder/SKILL.md +176 -176
  254. package/template/.claude/skills/md2html/SKILL.md +154 -154
  255. package/template/.claude/skills/md2html/components.md +505 -505
  256. package/template/.claude/skills/md2html/template.html +1152 -1152
  257. package/template/.claude/skills/merge/SKILL.md +75 -75
  258. package/template/.claude/skills/mobile-design/SKILL.md +394 -394
  259. package/template/.claude/skills/mobile-design/decision-trees.md +516 -516
  260. package/template/.claude/skills/mobile-design/mobile-backend.md +491 -491
  261. package/template/.claude/skills/mobile-design/mobile-color-system.md +420 -420
  262. package/template/.claude/skills/mobile-design/mobile-debugging.md +122 -122
  263. package/template/.claude/skills/mobile-design/mobile-design-thinking.md +357 -357
  264. package/template/.claude/skills/mobile-design/mobile-navigation.md +458 -458
  265. package/template/.claude/skills/mobile-design/mobile-performance.md +767 -767
  266. package/template/.claude/skills/mobile-design/mobile-testing.md +356 -356
  267. package/template/.claude/skills/mobile-design/mobile-typography.md +433 -433
  268. package/template/.claude/skills/mobile-design/platform-android.md +666 -666
  269. package/template/.claude/skills/mobile-design/platform-ios.md +561 -561
  270. package/template/.claude/skills/mobile-design/scripts/mobile_audit.py +670 -670
  271. package/template/.claude/skills/mobile-design/touch-psychology.md +537 -537
  272. package/template/.claude/skills/nextjs-react-expert/1-async-eliminating-waterfalls.md +312 -312
  273. package/template/.claude/skills/nextjs-react-expert/2-bundle-bundle-size-optimization.md +240 -240
  274. package/template/.claude/skills/nextjs-react-expert/3-server-server-side-performance.md +490 -490
  275. package/template/.claude/skills/nextjs-react-expert/4-client-client-side-data-fetching.md +264 -264
  276. package/template/.claude/skills/nextjs-react-expert/5-rerender-re-render-optimization.md +581 -581
  277. package/template/.claude/skills/nextjs-react-expert/6-rendering-rendering-performance.md +432 -432
  278. package/template/.claude/skills/nextjs-react-expert/7-js-javascript-performance.md +684 -684
  279. package/template/.claude/skills/nextjs-react-expert/8-advanced-advanced-patterns.md +150 -150
  280. package/template/.claude/skills/nextjs-react-expert/SKILL.md +286 -286
  281. package/template/.claude/skills/nextjs-react-expert/scripts/convert_rules.py +222 -222
  282. package/template/.claude/skills/nextjs-react-expert/scripts/react_performance_checker.py +252 -252
  283. package/template/.claude/skills/nodejs-best-practices/SKILL.md +333 -333
  284. package/template/.claude/skills/package-json-generator/SKILL.md +60 -60
  285. package/template/.claude/skills/package-json-generator/scripts/generate.js +120 -120
  286. package/template/.claude/skills/package-json-generator/scripts/run.sh +19 -19
  287. package/template/.claude/skills/parallel-agents/SKILL.md +144 -144
  288. package/template/.claude/skills/performance-optimization/SKILL.md +299 -299
  289. package/template/.claude/skills/performance-optimization/performance-checklist.md +113 -113
  290. package/template/.claude/skills/planning-and-task-breakdown/SKILL.md +239 -239
  291. package/template/.claude/skills/powershell-windows/SKILL.md +167 -167
  292. package/template/.claude/skills/pr/SKILL.md +92 -92
  293. package/template/.claude/skills/pr-review/SKILL.md +142 -142
  294. package/template/.claude/skills/pr-review-analysis/SKILL.md +89 -89
  295. package/template/.claude/skills/prd/SKILL.md +112 -112
  296. package/template/.claude/skills/preview/SKILL.md +116 -116
  297. package/template/.claude/skills/preview-local-check/SKILL.md +59 -59
  298. package/template/.claude/skills/python-patterns/SKILL.md +441 -441
  299. package/template/.claude/skills/release-git-operations/SKILL.md +97 -97
  300. package/template/.claude/skills/research/SKILL.md +127 -127
  301. package/template/.claude/skills/review/SKILL.md +55 -55
  302. package/template/.claude/skills/review-followup-routing/SKILL.md +98 -98
  303. package/template/.claude/skills/roadmap-strategy/SKILL.md +97 -97
  304. package/template/.claude/skills/security-and-hardening/SKILL.md +349 -349
  305. package/template/.claude/skills/security-and-hardening/security-checklist.md +134 -134
  306. package/template/.claude/skills/security-review/SKILL.md +164 -164
  307. package/template/.claude/skills/seo-fundamentals/SKILL.md +129 -129
  308. package/template/.claude/skills/seo-fundamentals/scripts/seo_checker.py +219 -219
  309. package/template/.claude/skills/server-management/SKILL.md +161 -161
  310. package/template/.claude/skills/shipping-and-launch/SKILL.md +311 -311
  311. package/template/.claude/skills/silent-failure-audit/SKILL.md +73 -73
  312. package/template/.claude/skills/simplify/SKILL.md +74 -74
  313. package/template/.claude/skills/skill-development/SKILL.md +86 -86
  314. package/template/.claude/skills/spec-driven-development/SKILL.md +207 -207
  315. package/template/.claude/skills/spec-orchestration/SKILL.md +91 -91
  316. package/template/.claude/skills/specialist-agent-routing/SKILL.md +107 -107
  317. package/template/.claude/skills/tailwind-patterns/SKILL.md +269 -269
  318. package/template/.claude/skills/test/SKILL.md +77 -77
  319. package/template/.claude/skills/test-driven-development/SKILL.md +422 -422
  320. package/template/.claude/skills/test-driven-development/testing-patterns.md +236 -236
  321. package/template/.claude/skills/test-execution-and-coverage/SKILL.md +56 -56
  322. package/template/.claude/skills/type-design/SKILL.md +84 -84
  323. package/template/.claude/skills/ui-ux-pro-max/SKILL.md +75 -75
  324. package/template/.claude/skills/using-agent-skills/SKILL.md +171 -171
  325. package/template/.claude/skills/verification-orchestration/SKILL.md +68 -68
  326. package/template/.claude/skills/vulnerability-scanner/SKILL.md +276 -276
  327. package/template/.claude/skills/vulnerability-scanner/checklists.md +121 -121
  328. package/template/.claude/skills/vulnerability-scanner/scripts/security_scan.py +458 -458
  329. package/template/.claude/skills/wiki/SKILL.md +148 -148
  330. package/template/.claude/skills/workflow-documentation-sync/SKILL.md +87 -87
  331. package/template/.nexus/nexus-devflow.json +1 -1
  332. package/template/AGENTS.md +3 -3
  333. package/template/LICENSE +21 -21
  334. package/template/devflow/context/project_index.json +108 -0
  335. package/template/.agents/skills/check-for-updates/SKILL.md +0 -117
  336. package/template/.agents/skills/devflow-concept-intake/SKILL.md +0 -150
  337. package/template/.agents/skills/devflow-concept-intake/agents/openai.yaml +0 -4
  338. package/template/.agents/skills/devflow-concept-intake/references/adoption-proposal-template.md +0 -60
  339. package/template/.agents/skills/devflow-concept-intake/references/concept-report-template.md +0 -47
  340. package/template/.agents/skills/devflow-concept-intake/references/upstream-tracking-template.md +0 -51
  341. package/template/.agents/skills/devflow-wiki/SKILL.md +0 -75
  342. package/template/.agents/skills/english-to-thai-translator/SKILL.md +0 -125
  343. package/template/.agents/skills/obsidian-bases/SKILL.md +0 -506
  344. package/template/.agents/skills/obsidian-bases/references/FUNCTIONS_REFERENCE.md +0 -173
  345. package/template/.agents/skills/obsidian-cli/SKILL.md +0 -115
  346. package/template/.agents/skills/obsidian-clipper-template-creator/SKILL.md +0 -73
  347. package/template/.agents/skills/obsidian-clipper-template-creator/assets/clipping-template.json +0 -51
  348. package/template/.agents/skills/obsidian-clipper-template-creator/assets/recipe-template.json +0 -48
  349. package/template/.agents/skills/obsidian-clipper-template-creator/references/analysis-workflow.md +0 -79
  350. package/template/.agents/skills/obsidian-clipper-template-creator/references/bases-workflow.md +0 -44
  351. package/template/.agents/skills/obsidian-clipper-template-creator/references/filters.md +0 -51
  352. package/template/.agents/skills/obsidian-clipper-template-creator/references/json-schema.md +0 -77
  353. package/template/.agents/skills/obsidian-clipper-template-creator/references/logic.md +0 -67
  354. package/template/.agents/skills/obsidian-clipper-template-creator/references/variables.md +0 -64
  355. package/template/.agents/skills/obsidian-markdown/SKILL.md +0 -205
  356. package/template/.agents/skills/obsidian-markdown/references/CALLOUTS.md +0 -58
  357. package/template/.agents/skills/obsidian-markdown/references/EMBEDS.md +0 -63
  358. package/template/.agents/skills/obsidian-markdown/references/PROPERTIES.md +0 -61
  359. package/template/.agents/skills/prompt-addons/SKILL.md +0 -99
  360. package/template/.agents/skills/prp-dev-fastapi/SKILL.md +0 -114
  361. package/template/.agents/skills/prp-dev-multiplatform/SKILL.md +0 -36
  362. package/template/.agents/skills/prp-dev-odoo/SKILL.md +0 -71
  363. package/template/.agents/skills/prp-dev-php/SKILL.md +0 -63
  364. package/template/.agents/skills/prp-sa-ba/SKILL.md +0 -52
  365. package/template/.agents/skills/red-team-tactics/SKILL.md +0 -199
  366. package/template/.agents/skills/writing-great-skills/SKILL.md +0 -65
  367. package/template/.claude/skills/check-for-updates/SKILL.md +0 -117
  368. package/template/.claude/skills/devflow-concept-intake/SKILL.md +0 -150
  369. package/template/.claude/skills/devflow-concept-intake/agents/openai.yaml +0 -4
  370. package/template/.claude/skills/devflow-concept-intake/references/adoption-proposal-template.md +0 -60
  371. package/template/.claude/skills/devflow-concept-intake/references/concept-report-template.md +0 -47
  372. package/template/.claude/skills/devflow-concept-intake/references/upstream-tracking-template.md +0 -51
  373. package/template/.claude/skills/devflow-wiki/SKILL.md +0 -75
  374. package/template/.claude/skills/english-to-thai-translator/SKILL.md +0 -125
  375. package/template/.claude/skills/obsidian-bases/SKILL.md +0 -506
  376. package/template/.claude/skills/obsidian-bases/references/FUNCTIONS_REFERENCE.md +0 -173
  377. package/template/.claude/skills/obsidian-cli/SKILL.md +0 -115
  378. package/template/.claude/skills/obsidian-clipper-template-creator/SKILL.md +0 -73
  379. package/template/.claude/skills/obsidian-clipper-template-creator/assets/clipping-template.json +0 -51
  380. package/template/.claude/skills/obsidian-clipper-template-creator/assets/recipe-template.json +0 -48
  381. package/template/.claude/skills/obsidian-clipper-template-creator/references/analysis-workflow.md +0 -79
  382. package/template/.claude/skills/obsidian-clipper-template-creator/references/bases-workflow.md +0 -44
  383. package/template/.claude/skills/obsidian-clipper-template-creator/references/filters.md +0 -51
  384. package/template/.claude/skills/obsidian-clipper-template-creator/references/json-schema.md +0 -77
  385. package/template/.claude/skills/obsidian-clipper-template-creator/references/logic.md +0 -67
  386. package/template/.claude/skills/obsidian-clipper-template-creator/references/variables.md +0 -64
  387. package/template/.claude/skills/obsidian-markdown/SKILL.md +0 -205
  388. package/template/.claude/skills/obsidian-markdown/references/CALLOUTS.md +0 -58
  389. package/template/.claude/skills/obsidian-markdown/references/EMBEDS.md +0 -63
  390. package/template/.claude/skills/obsidian-markdown/references/PROPERTIES.md +0 -61
  391. package/template/.claude/skills/prompt-addons/SKILL.md +0 -99
  392. package/template/.claude/skills/prp-dev-fastapi/SKILL.md +0 -114
  393. package/template/.claude/skills/prp-dev-multiplatform/SKILL.md +0 -36
  394. package/template/.claude/skills/prp-dev-odoo/SKILL.md +0 -71
  395. package/template/.claude/skills/prp-dev-php/SKILL.md +0 -63
  396. package/template/.claude/skills/prp-sa-ba/SKILL.md +0 -52
  397. package/template/.claude/skills/red-team-tactics/SKILL.md +0 -199
  398. package/template/.claude/skills/writing-great-skills/SKILL.md +0 -65
@@ -1,441 +1,441 @@
1
- ---
2
- name: python-patterns
3
- description: Python development principles and decision-making. Framework selection, async patterns, type hints, project structure. Teaches thinking, not copying.
4
- allowed-tools: Read, Write, Edit, Glob, Grep
5
- ---
6
-
7
- # Python Patterns
8
-
9
- > Python development principles and decision-making for 2025.
10
- > **Learn to THINK, not memorize patterns.**
11
-
12
- ---
13
-
14
- ## ⚠️ How to Use This Skill
15
-
16
- This skill teaches **decision-making principles**, not fixed code to copy.
17
-
18
- - ASK user for framework preference when unclear
19
- - Choose async vs sync based on CONTEXT
20
- - Don't default to same framework every time
21
-
22
- ---
23
-
24
- ## 1. Framework Selection (2025)
25
-
26
- ### Decision Tree
27
-
28
- ```
29
- What are you building?
30
-
31
- ├── API-first / Microservices
32
- │ └── FastAPI (async, modern, fast)
33
-
34
- ├── Full-stack web / CMS / Admin
35
- │ └── Django (batteries-included)
36
-
37
- ├── Simple / Script / Learning
38
- │ └── Flask (minimal, flexible)
39
-
40
- ├── AI/ML API serving
41
- │ └── FastAPI (Pydantic, async, uvicorn)
42
-
43
- └── Background workers
44
- └── Celery + any framework
45
- ```
46
-
47
- ### Comparison Principles
48
-
49
- | Factor | FastAPI | Django | Flask |
50
- |--------|---------|--------|-------|
51
- | **Best for** | APIs, microservices | Full-stack, CMS | Simple, learning |
52
- | **Async** | Native | Django 5.0+ | Via extensions |
53
- | **Admin** | Manual | Built-in | Via extensions |
54
- | **ORM** | Choose your own | Django ORM | Choose your own |
55
- | **Learning curve** | Low | Medium | Low |
56
-
57
- ### Selection Questions to Ask:
58
- 1. Is this API-only or full-stack?
59
- 2. Need admin interface?
60
- 3. Team familiar with async?
61
- 4. Existing infrastructure?
62
-
63
- ---
64
-
65
- ## 2. Async vs Sync Decision
66
-
67
- ### When to Use Async
68
-
69
- ```
70
- async def is better when:
71
- ├── I/O-bound operations (database, HTTP, file)
72
- ├── Many concurrent connections
73
- ├── Real-time features
74
- ├── Microservices communication
75
- └── FastAPI/Starlette/Django ASGI
76
-
77
- def (sync) is better when:
78
- ├── CPU-bound operations
79
- ├── Simple scripts
80
- ├── Legacy codebase
81
- ├── Team unfamiliar with async
82
- └── Blocking libraries (no async version)
83
- ```
84
-
85
- ### The Golden Rule
86
-
87
- ```
88
- I/O-bound → async (waiting for external)
89
- CPU-bound → sync + multiprocessing (computing)
90
-
91
- Don't:
92
- ├── Mix sync and async carelessly
93
- ├── Use sync libraries in async code
94
- └── Force async for CPU work
95
- ```
96
-
97
- ### Async Library Selection
98
-
99
- | Need | Async Library |
100
- |------|---------------|
101
- | HTTP client | httpx |
102
- | PostgreSQL | asyncpg |
103
- | Redis | aioredis / redis-py async |
104
- | File I/O | aiofiles |
105
- | Database ORM | SQLAlchemy 2.0 async, Tortoise |
106
-
107
- ---
108
-
109
- ## 3. Type Hints Strategy
110
-
111
- ### When to Type
112
-
113
- ```
114
- Always type:
115
- ├── Function parameters
116
- ├── Return types
117
- ├── Class attributes
118
- ├── Public APIs
119
-
120
- Can skip:
121
- ├── Local variables (let inference work)
122
- ├── One-off scripts
123
- ├── Tests (usually)
124
- ```
125
-
126
- ### Common Type Patterns
127
-
128
- ```python
129
- # These are patterns, understand them:
130
-
131
- # Optional → might be None
132
- from typing import Optional
133
- def find_user(id: int) -> Optional[User]: ...
134
-
135
- # Union → one of multiple types
136
- def process(data: str | dict) -> None: ...
137
-
138
- # Generic collections
139
- def get_items() -> list[Item]: ...
140
- def get_mapping() -> dict[str, int]: ...
141
-
142
- # Callable
143
- from typing import Callable
144
- def apply(fn: Callable[[int], str]) -> str: ...
145
- ```
146
-
147
- ### Pydantic for Validation
148
-
149
- ```
150
- When to use Pydantic:
151
- ├── API request/response models
152
- ├── Configuration/settings
153
- ├── Data validation
154
- ├── Serialization
155
-
156
- Benefits:
157
- ├── Runtime validation
158
- ├── Auto-generated JSON schema
159
- ├── Works with FastAPI natively
160
- └── Clear error messages
161
- ```
162
-
163
- ---
164
-
165
- ## 4. Project Structure Principles
166
-
167
- ### Structure Selection
168
-
169
- ```
170
- Small project / Script:
171
- ├── main.py
172
- ├── utils.py
173
- └── requirements.txt
174
-
175
- Medium API:
176
- ├── app/
177
- │ ├── __init__.py
178
- │ ├── main.py
179
- │ ├── models/
180
- │ ├── routes/
181
- │ ├── services/
182
- │ └── schemas/
183
- ├── tests/
184
- └── pyproject.toml
185
-
186
- Large application:
187
- ├── src/
188
- │ └── myapp/
189
- │ ├── core/
190
- │ ├── api/
191
- │ ├── services/
192
- │ ├── models/
193
- │ └── ...
194
- ├── tests/
195
- └── pyproject.toml
196
- ```
197
-
198
- ### FastAPI Structure Principles
199
-
200
- ```
201
- Organize by feature or layer:
202
-
203
- By layer:
204
- ├── routes/ (API endpoints)
205
- ├── services/ (business logic)
206
- ├── models/ (database models)
207
- ├── schemas/ (Pydantic models)
208
- └── dependencies/ (shared deps)
209
-
210
- By feature:
211
- ├── users/
212
- │ ├── routes.py
213
- │ ├── service.py
214
- │ └── schemas.py
215
- └── products/
216
- └── ...
217
- ```
218
-
219
- ---
220
-
221
- ## 5. Django Principles (2025)
222
-
223
- ### Django Async (Django 5.0+)
224
-
225
- ```
226
- Django supports async:
227
- ├── Async views
228
- ├── Async middleware
229
- ├── Async ORM (limited)
230
- └── ASGI deployment
231
-
232
- When to use async in Django:
233
- ├── External API calls
234
- ├── WebSocket (Channels)
235
- ├── High-concurrency views
236
- └── Background task triggering
237
- ```
238
-
239
- ### Django Best Practices
240
-
241
- ```
242
- Model design:
243
- ├── Fat models, thin views
244
- ├── Use managers for common queries
245
- ├── Abstract base classes for shared fields
246
-
247
- Views:
248
- ├── Class-based for complex CRUD
249
- ├── Function-based for simple endpoints
250
- ├── Use viewsets with DRF
251
-
252
- Queries:
253
- ├── select_related() for FKs
254
- ├── prefetch_related() for M2M
255
- ├── Avoid N+1 queries
256
- └── Use .only() for specific fields
257
- ```
258
-
259
- ---
260
-
261
- ## 6. FastAPI Principles
262
-
263
- ### async def vs def in FastAPI
264
-
265
- ```
266
- Use async def when:
267
- ├── Using async database drivers
268
- ├── Making async HTTP calls
269
- ├── I/O-bound operations
270
- └── Want to handle concurrency
271
-
272
- Use def when:
273
- ├── Blocking operations
274
- ├── Sync database drivers
275
- ├── CPU-bound work
276
- └── FastAPI runs in threadpool automatically
277
- ```
278
-
279
- ### Dependency Injection
280
-
281
- ```
282
- Use dependencies for:
283
- ├── Database sessions
284
- ├── Current user / Auth
285
- ├── Configuration
286
- ├── Shared resources
287
-
288
- Benefits:
289
- ├── Testability (mock dependencies)
290
- ├── Clean separation
291
- ├── Automatic cleanup (yield)
292
- ```
293
-
294
- ### Pydantic v2 Integration
295
-
296
- ```python
297
- # FastAPI + Pydantic are tightly integrated:
298
-
299
- # Request validation
300
- @app.post("/users")
301
- async def create(user: UserCreate) -> UserResponse:
302
- # user is already validated
303
- ...
304
-
305
- # Response serialization
306
- # Return type becomes response schema
307
- ```
308
-
309
- ---
310
-
311
- ## 7. Background Tasks
312
-
313
- ### Selection Guide
314
-
315
- | Solution | Best For |
316
- |----------|----------|
317
- | **BackgroundTasks** | Simple, in-process tasks |
318
- | **Celery** | Distributed, complex workflows |
319
- | **ARQ** | Async, Redis-based |
320
- | **RQ** | Simple Redis queue |
321
- | **Dramatiq** | Actor-based, simpler than Celery |
322
-
323
- ### When to Use Each
324
-
325
- ```
326
- FastAPI BackgroundTasks:
327
- ├── Quick operations
328
- ├── No persistence needed
329
- ├── Fire-and-forget
330
- └── Same process
331
-
332
- Celery/ARQ:
333
- ├── Long-running tasks
334
- ├── Need retry logic
335
- ├── Distributed workers
336
- ├── Persistent queue
337
- └── Complex workflows
338
- ```
339
-
340
- ---
341
-
342
- ## 8. Error Handling Principles
343
-
344
- ### Exception Strategy
345
-
346
- ```
347
- In FastAPI:
348
- ├── Create custom exception classes
349
- ├── Register exception handlers
350
- ├── Return consistent error format
351
- └── Log without exposing internals
352
-
353
- Pattern:
354
- ├── Raise domain exceptions in services
355
- ├── Catch and transform in handlers
356
- └── Client gets clean error response
357
- ```
358
-
359
- ### Error Response Philosophy
360
-
361
- ```
362
- Include:
363
- ├── Error code (programmatic)
364
- ├── Message (human readable)
365
- ├── Details (field-level when applicable)
366
- └── NOT stack traces (security)
367
- ```
368
-
369
- ---
370
-
371
- ## 9. Testing Principles
372
-
373
- ### Testing Strategy
374
-
375
- | Type | Purpose | Tools |
376
- |------|---------|-------|
377
- | **Unit** | Business logic | pytest |
378
- | **Integration** | API endpoints | pytest + httpx/TestClient |
379
- | **E2E** | Full workflows | pytest + DB |
380
-
381
- ### Async Testing
382
-
383
- ```python
384
- # Use pytest-asyncio for async tests
385
-
386
- import pytest
387
- from httpx import AsyncClient
388
-
389
- @pytest.mark.asyncio
390
- async def test_endpoint():
391
- async with AsyncClient(app=app, base_url="http://test") as client:
392
- response = await client.get("/users")
393
- assert response.status_code == 200
394
- ```
395
-
396
- ### Fixtures Strategy
397
-
398
- ```
399
- Common fixtures:
400
- ├── db_session → Database connection
401
- ├── client → Test client
402
- ├── authenticated_user → User with token
403
- └── sample_data → Test data setup
404
- ```
405
-
406
- ---
407
-
408
- ## 10. Decision Checklist
409
-
410
- Before implementing:
411
-
412
- - [ ] **Asked user about framework preference?**
413
- - [ ] **Chosen framework for THIS context?** (not just default)
414
- - [ ] **Decided async vs sync?**
415
- - [ ] **Planned type hint strategy?**
416
- - [ ] **Defined project structure?**
417
- - [ ] **Planned error handling?**
418
- - [ ] **Considered background tasks?**
419
-
420
- ---
421
-
422
- ## 11. Anti-Patterns to Avoid
423
-
424
- ### ❌ DON'T:
425
- - Default to Django for simple APIs (FastAPI may be better)
426
- - Use sync libraries in async code
427
- - Skip type hints for public APIs
428
- - Put business logic in routes/views
429
- - Ignore N+1 queries
430
- - Mix async and sync carelessly
431
-
432
- ### ✅ DO:
433
- - Choose framework based on context
434
- - Ask about async requirements
435
- - Use Pydantic for validation
436
- - Separate concerns (routes → services → repos)
437
- - Test critical paths
438
-
439
- ---
440
-
441
- > **Remember**: Python patterns are about decision-making for YOUR specific context. Don't copy code—think about what serves your application best.
1
+ ---
2
+ name: python-patterns
3
+ description: Python development principles and decision-making. Framework selection, async patterns, type hints, project structure. Teaches thinking, not copying.
4
+ allowed-tools: Read, Write, Edit, Glob, Grep
5
+ ---
6
+
7
+ # Python Patterns
8
+
9
+ > Python development principles and decision-making for 2025.
10
+ > **Learn to THINK, not memorize patterns.**
11
+
12
+ ---
13
+
14
+ ## ⚠️ How to Use This Skill
15
+
16
+ This skill teaches **decision-making principles**, not fixed code to copy.
17
+
18
+ - ASK user for framework preference when unclear
19
+ - Choose async vs sync based on CONTEXT
20
+ - Don't default to same framework every time
21
+
22
+ ---
23
+
24
+ ## 1. Framework Selection (2025)
25
+
26
+ ### Decision Tree
27
+
28
+ ```
29
+ What are you building?
30
+
31
+ ├── API-first / Microservices
32
+ │ └── FastAPI (async, modern, fast)
33
+
34
+ ├── Full-stack web / CMS / Admin
35
+ │ └── Django (batteries-included)
36
+
37
+ ├── Simple / Script / Learning
38
+ │ └── Flask (minimal, flexible)
39
+
40
+ ├── AI/ML API serving
41
+ │ └── FastAPI (Pydantic, async, uvicorn)
42
+
43
+ └── Background workers
44
+ └── Celery + any framework
45
+ ```
46
+
47
+ ### Comparison Principles
48
+
49
+ | Factor | FastAPI | Django | Flask |
50
+ |--------|---------|--------|-------|
51
+ | **Best for** | APIs, microservices | Full-stack, CMS | Simple, learning |
52
+ | **Async** | Native | Django 5.0+ | Via extensions |
53
+ | **Admin** | Manual | Built-in | Via extensions |
54
+ | **ORM** | Choose your own | Django ORM | Choose your own |
55
+ | **Learning curve** | Low | Medium | Low |
56
+
57
+ ### Selection Questions to Ask:
58
+ 1. Is this API-only or full-stack?
59
+ 2. Need admin interface?
60
+ 3. Team familiar with async?
61
+ 4. Existing infrastructure?
62
+
63
+ ---
64
+
65
+ ## 2. Async vs Sync Decision
66
+
67
+ ### When to Use Async
68
+
69
+ ```
70
+ async def is better when:
71
+ ├── I/O-bound operations (database, HTTP, file)
72
+ ├── Many concurrent connections
73
+ ├── Real-time features
74
+ ├── Microservices communication
75
+ └── FastAPI/Starlette/Django ASGI
76
+
77
+ def (sync) is better when:
78
+ ├── CPU-bound operations
79
+ ├── Simple scripts
80
+ ├── Legacy codebase
81
+ ├── Team unfamiliar with async
82
+ └── Blocking libraries (no async version)
83
+ ```
84
+
85
+ ### The Golden Rule
86
+
87
+ ```
88
+ I/O-bound → async (waiting for external)
89
+ CPU-bound → sync + multiprocessing (computing)
90
+
91
+ Don't:
92
+ ├── Mix sync and async carelessly
93
+ ├── Use sync libraries in async code
94
+ └── Force async for CPU work
95
+ ```
96
+
97
+ ### Async Library Selection
98
+
99
+ | Need | Async Library |
100
+ |------|---------------|
101
+ | HTTP client | httpx |
102
+ | PostgreSQL | asyncpg |
103
+ | Redis | aioredis / redis-py async |
104
+ | File I/O | aiofiles |
105
+ | Database ORM | SQLAlchemy 2.0 async, Tortoise |
106
+
107
+ ---
108
+
109
+ ## 3. Type Hints Strategy
110
+
111
+ ### When to Type
112
+
113
+ ```
114
+ Always type:
115
+ ├── Function parameters
116
+ ├── Return types
117
+ ├── Class attributes
118
+ ├── Public APIs
119
+
120
+ Can skip:
121
+ ├── Local variables (let inference work)
122
+ ├── One-off scripts
123
+ ├── Tests (usually)
124
+ ```
125
+
126
+ ### Common Type Patterns
127
+
128
+ ```python
129
+ # These are patterns, understand them:
130
+
131
+ # Optional → might be None
132
+ from typing import Optional
133
+ def find_user(id: int) -> Optional[User]: ...
134
+
135
+ # Union → one of multiple types
136
+ def process(data: str | dict) -> None: ...
137
+
138
+ # Generic collections
139
+ def get_items() -> list[Item]: ...
140
+ def get_mapping() -> dict[str, int]: ...
141
+
142
+ # Callable
143
+ from typing import Callable
144
+ def apply(fn: Callable[[int], str]) -> str: ...
145
+ ```
146
+
147
+ ### Pydantic for Validation
148
+
149
+ ```
150
+ When to use Pydantic:
151
+ ├── API request/response models
152
+ ├── Configuration/settings
153
+ ├── Data validation
154
+ ├── Serialization
155
+
156
+ Benefits:
157
+ ├── Runtime validation
158
+ ├── Auto-generated JSON schema
159
+ ├── Works with FastAPI natively
160
+ └── Clear error messages
161
+ ```
162
+
163
+ ---
164
+
165
+ ## 4. Project Structure Principles
166
+
167
+ ### Structure Selection
168
+
169
+ ```
170
+ Small project / Script:
171
+ ├── main.py
172
+ ├── utils.py
173
+ └── requirements.txt
174
+
175
+ Medium API:
176
+ ├── app/
177
+ │ ├── __init__.py
178
+ │ ├── main.py
179
+ │ ├── models/
180
+ │ ├── routes/
181
+ │ ├── services/
182
+ │ └── schemas/
183
+ ├── tests/
184
+ └── pyproject.toml
185
+
186
+ Large application:
187
+ ├── src/
188
+ │ └── myapp/
189
+ │ ├── core/
190
+ │ ├── api/
191
+ │ ├── services/
192
+ │ ├── models/
193
+ │ └── ...
194
+ ├── tests/
195
+ └── pyproject.toml
196
+ ```
197
+
198
+ ### FastAPI Structure Principles
199
+
200
+ ```
201
+ Organize by feature or layer:
202
+
203
+ By layer:
204
+ ├── routes/ (API endpoints)
205
+ ├── services/ (business logic)
206
+ ├── models/ (database models)
207
+ ├── schemas/ (Pydantic models)
208
+ └── dependencies/ (shared deps)
209
+
210
+ By feature:
211
+ ├── users/
212
+ │ ├── routes.py
213
+ │ ├── service.py
214
+ │ └── schemas.py
215
+ └── products/
216
+ └── ...
217
+ ```
218
+
219
+ ---
220
+
221
+ ## 5. Django Principles (2025)
222
+
223
+ ### Django Async (Django 5.0+)
224
+
225
+ ```
226
+ Django supports async:
227
+ ├── Async views
228
+ ├── Async middleware
229
+ ├── Async ORM (limited)
230
+ └── ASGI deployment
231
+
232
+ When to use async in Django:
233
+ ├── External API calls
234
+ ├── WebSocket (Channels)
235
+ ├── High-concurrency views
236
+ └── Background task triggering
237
+ ```
238
+
239
+ ### Django Best Practices
240
+
241
+ ```
242
+ Model design:
243
+ ├── Fat models, thin views
244
+ ├── Use managers for common queries
245
+ ├── Abstract base classes for shared fields
246
+
247
+ Views:
248
+ ├── Class-based for complex CRUD
249
+ ├── Function-based for simple endpoints
250
+ ├── Use viewsets with DRF
251
+
252
+ Queries:
253
+ ├── select_related() for FKs
254
+ ├── prefetch_related() for M2M
255
+ ├── Avoid N+1 queries
256
+ └── Use .only() for specific fields
257
+ ```
258
+
259
+ ---
260
+
261
+ ## 6. FastAPI Principles
262
+
263
+ ### async def vs def in FastAPI
264
+
265
+ ```
266
+ Use async def when:
267
+ ├── Using async database drivers
268
+ ├── Making async HTTP calls
269
+ ├── I/O-bound operations
270
+ └── Want to handle concurrency
271
+
272
+ Use def when:
273
+ ├── Blocking operations
274
+ ├── Sync database drivers
275
+ ├── CPU-bound work
276
+ └── FastAPI runs in threadpool automatically
277
+ ```
278
+
279
+ ### Dependency Injection
280
+
281
+ ```
282
+ Use dependencies for:
283
+ ├── Database sessions
284
+ ├── Current user / Auth
285
+ ├── Configuration
286
+ ├── Shared resources
287
+
288
+ Benefits:
289
+ ├── Testability (mock dependencies)
290
+ ├── Clean separation
291
+ ├── Automatic cleanup (yield)
292
+ ```
293
+
294
+ ### Pydantic v2 Integration
295
+
296
+ ```python
297
+ # FastAPI + Pydantic are tightly integrated:
298
+
299
+ # Request validation
300
+ @app.post("/users")
301
+ async def create(user: UserCreate) -> UserResponse:
302
+ # user is already validated
303
+ ...
304
+
305
+ # Response serialization
306
+ # Return type becomes response schema
307
+ ```
308
+
309
+ ---
310
+
311
+ ## 7. Background Tasks
312
+
313
+ ### Selection Guide
314
+
315
+ | Solution | Best For |
316
+ |----------|----------|
317
+ | **BackgroundTasks** | Simple, in-process tasks |
318
+ | **Celery** | Distributed, complex workflows |
319
+ | **ARQ** | Async, Redis-based |
320
+ | **RQ** | Simple Redis queue |
321
+ | **Dramatiq** | Actor-based, simpler than Celery |
322
+
323
+ ### When to Use Each
324
+
325
+ ```
326
+ FastAPI BackgroundTasks:
327
+ ├── Quick operations
328
+ ├── No persistence needed
329
+ ├── Fire-and-forget
330
+ └── Same process
331
+
332
+ Celery/ARQ:
333
+ ├── Long-running tasks
334
+ ├── Need retry logic
335
+ ├── Distributed workers
336
+ ├── Persistent queue
337
+ └── Complex workflows
338
+ ```
339
+
340
+ ---
341
+
342
+ ## 8. Error Handling Principles
343
+
344
+ ### Exception Strategy
345
+
346
+ ```
347
+ In FastAPI:
348
+ ├── Create custom exception classes
349
+ ├── Register exception handlers
350
+ ├── Return consistent error format
351
+ └── Log without exposing internals
352
+
353
+ Pattern:
354
+ ├── Raise domain exceptions in services
355
+ ├── Catch and transform in handlers
356
+ └── Client gets clean error response
357
+ ```
358
+
359
+ ### Error Response Philosophy
360
+
361
+ ```
362
+ Include:
363
+ ├── Error code (programmatic)
364
+ ├── Message (human readable)
365
+ ├── Details (field-level when applicable)
366
+ └── NOT stack traces (security)
367
+ ```
368
+
369
+ ---
370
+
371
+ ## 9. Testing Principles
372
+
373
+ ### Testing Strategy
374
+
375
+ | Type | Purpose | Tools |
376
+ |------|---------|-------|
377
+ | **Unit** | Business logic | pytest |
378
+ | **Integration** | API endpoints | pytest + httpx/TestClient |
379
+ | **E2E** | Full workflows | pytest + DB |
380
+
381
+ ### Async Testing
382
+
383
+ ```python
384
+ # Use pytest-asyncio for async tests
385
+
386
+ import pytest
387
+ from httpx import AsyncClient
388
+
389
+ @pytest.mark.asyncio
390
+ async def test_endpoint():
391
+ async with AsyncClient(app=app, base_url="http://test") as client:
392
+ response = await client.get("/users")
393
+ assert response.status_code == 200
394
+ ```
395
+
396
+ ### Fixtures Strategy
397
+
398
+ ```
399
+ Common fixtures:
400
+ ├── db_session → Database connection
401
+ ├── client → Test client
402
+ ├── authenticated_user → User with token
403
+ └── sample_data → Test data setup
404
+ ```
405
+
406
+ ---
407
+
408
+ ## 10. Decision Checklist
409
+
410
+ Before implementing:
411
+
412
+ - [ ] **Asked user about framework preference?**
413
+ - [ ] **Chosen framework for THIS context?** (not just default)
414
+ - [ ] **Decided async vs sync?**
415
+ - [ ] **Planned type hint strategy?**
416
+ - [ ] **Defined project structure?**
417
+ - [ ] **Planned error handling?**
418
+ - [ ] **Considered background tasks?**
419
+
420
+ ---
421
+
422
+ ## 11. Anti-Patterns to Avoid
423
+
424
+ ### ❌ DON'T:
425
+ - Default to Django for simple APIs (FastAPI may be better)
426
+ - Use sync libraries in async code
427
+ - Skip type hints for public APIs
428
+ - Put business logic in routes/views
429
+ - Ignore N+1 queries
430
+ - Mix async and sync carelessly
431
+
432
+ ### ✅ DO:
433
+ - Choose framework based on context
434
+ - Ask about async requirements
435
+ - Use Pydantic for validation
436
+ - Separate concerns (routes → services → repos)
437
+ - Test critical paths
438
+
439
+ ---
440
+
441
+ > **Remember**: Python patterns are about decision-making for YOUR specific context. Don't copy code—think about what serves your application best.