aigroup-workflow 2.2.1 → 2.2.3

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 (653) hide show
  1. package/.claude/commands/fix-build.md +10 -5
  2. package/.claude/commands/init-project.md +13 -8
  3. package/.claude/commands/plan.md +15 -8
  4. package/.claude/commands/review.md +12 -6
  5. package/.claude/commands/tdd.md +11 -5
  6. package/.claude/commands/workflow-start.md +20 -11
  7. package/.claude/settings.json +28 -0
  8. package/.codex/agents/architect.toml +207 -0
  9. package/.codex/agents/build-error-resolver.toml +110 -0
  10. package/.codex/agents/code-reviewer.toml +233 -0
  11. package/.codex/agents/doc-updater.toml +103 -0
  12. package/.codex/agents/e2e-runner.toml +103 -0
  13. package/.codex/agents/get-current-datetime.toml +23 -0
  14. package/.codex/agents/init-architect.toml +181 -0
  15. package/.codex/agents/planner.toml +208 -0
  16. package/.codex/agents/refactor-cleaner.toml +81 -0
  17. package/.codex/agents/rust-reviewer.toml +90 -0
  18. package/.codex/agents/security-reviewer.toml +104 -0
  19. package/.codex/agents/tdd-guide.toml +87 -0
  20. package/.codex/config.toml +22 -39
  21. package/AGENTS.md +2 -2
  22. package/CLAUDE.md +23 -1
  23. package/LICENSE +20 -20
  24. package/README.md +333 -333
  25. package/agents/a11y-architect.md +141 -141
  26. package/agents/architect.md +211 -211
  27. package/agents/build-error-resolver.md +114 -114
  28. package/agents/chief-of-staff.md +151 -151
  29. package/agents/code-architect.md +71 -71
  30. package/agents/code-explorer.md +69 -69
  31. package/agents/code-reviewer.md +237 -237
  32. package/agents/code-simplifier.md +47 -47
  33. package/agents/comment-analyzer.md +45 -45
  34. package/agents/conversation-analyzer.md +52 -52
  35. package/agents/cpp-build-resolver.md +90 -90
  36. package/agents/cpp-reviewer.md +72 -72
  37. package/agents/csharp-reviewer.md +101 -101
  38. package/agents/dart-build-resolver.md +201 -201
  39. package/agents/database-reviewer.md +91 -91
  40. package/agents/doc-updater.md +107 -107
  41. package/agents/docs-lookup.md +68 -68
  42. package/agents/e2e-runner.md +107 -107
  43. package/agents/flutter-reviewer.md +243 -243
  44. package/agents/gan-evaluator.md +209 -209
  45. package/agents/gan-generator.md +131 -131
  46. package/agents/gan-planner.md +99 -99
  47. package/agents/get-current-datetime.md +26 -26
  48. package/agents/go-build-resolver.md +94 -94
  49. package/agents/go-reviewer.md +76 -76
  50. package/agents/harness-optimizer.md +35 -35
  51. package/agents/healthcare-reviewer.md +83 -83
  52. package/agents/java-build-resolver.md +153 -153
  53. package/agents/java-reviewer.md +92 -92
  54. package/agents/kotlin-build-resolver.md +118 -118
  55. package/agents/kotlin-reviewer.md +159 -159
  56. package/agents/loop-operator.md +36 -36
  57. package/agents/opensource-forker.md +198 -198
  58. package/agents/opensource-packager.md +249 -249
  59. package/agents/opensource-sanitizer.md +188 -188
  60. package/agents/performance-optimizer.md +446 -446
  61. package/agents/planner.md +212 -212
  62. package/agents/pr-test-analyzer.md +45 -45
  63. package/agents/python-reviewer.md +98 -98
  64. package/agents/pytorch-build-resolver.md +120 -120
  65. package/agents/refactor-cleaner.md +85 -85
  66. package/agents/rust-build-resolver.md +148 -148
  67. package/agents/rust-reviewer.md +94 -94
  68. package/agents/security-reviewer.md +108 -108
  69. package/agents/seo-specialist.md +59 -59
  70. package/agents/silent-failure-hunter.md +50 -50
  71. package/agents/tdd-guide.md +91 -91
  72. package/agents/type-design-analyzer.md +41 -41
  73. package/agents/typescript-reviewer.md +112 -112
  74. package/cli/commands/update.mjs +1 -1
  75. package/cli/utils/scaffold.mjs +53 -0
  76. package/docs/rules/agents.md +166 -50
  77. package/docs/rules/cpp/coding-style.md +44 -44
  78. package/docs/rules/cpp/hooks.md +39 -39
  79. package/docs/rules/cpp/patterns.md +51 -51
  80. package/docs/rules/cpp/security.md +51 -51
  81. package/docs/rules/cpp/testing.md +44 -44
  82. package/docs/rules/csharp/coding-style.md +72 -72
  83. package/docs/rules/csharp/hooks.md +25 -25
  84. package/docs/rules/csharp/patterns.md +50 -50
  85. package/docs/rules/csharp/security.md +58 -58
  86. package/docs/rules/csharp/testing.md +46 -46
  87. package/docs/rules/dart/coding-style.md +159 -159
  88. package/docs/rules/dart/hooks.md +66 -66
  89. package/docs/rules/dart/patterns.md +261 -261
  90. package/docs/rules/dart/security.md +135 -135
  91. package/docs/rules/dart/testing.md +215 -215
  92. package/docs/rules/golang/coding-style.md +32 -32
  93. package/docs/rules/golang/hooks.md +17 -17
  94. package/docs/rules/golang/patterns.md +45 -45
  95. package/docs/rules/golang/security.md +34 -34
  96. package/docs/rules/golang/testing.md +31 -31
  97. package/docs/rules/java/coding-style.md +114 -114
  98. package/docs/rules/java/hooks.md +18 -18
  99. package/docs/rules/java/patterns.md +146 -146
  100. package/docs/rules/java/security.md +100 -100
  101. package/docs/rules/java/testing.md +131 -131
  102. package/docs/rules/java_zn/coding-style.md +169 -0
  103. package/docs/rules/java_zn/mybatis.md +102 -0
  104. package/docs/rules/kotlin/coding-style.md +86 -86
  105. package/docs/rules/kotlin/hooks.md +17 -17
  106. package/docs/rules/kotlin/patterns.md +146 -146
  107. package/docs/rules/kotlin/security.md +82 -82
  108. package/docs/rules/kotlin/testing.md +128 -128
  109. package/docs/rules/perl/coding-style.md +46 -46
  110. package/docs/rules/perl/hooks.md +22 -22
  111. package/docs/rules/perl/patterns.md +76 -76
  112. package/docs/rules/perl/security.md +69 -69
  113. package/docs/rules/perl/testing.md +54 -54
  114. package/docs/rules/php/coding-style.md +40 -40
  115. package/docs/rules/php/hooks.md +24 -24
  116. package/docs/rules/php/patterns.md +33 -33
  117. package/docs/rules/php/security.md +37 -37
  118. package/docs/rules/php/testing.md +39 -39
  119. package/docs/rules/python/coding-style.md +42 -42
  120. package/docs/rules/python/hooks.md +19 -19
  121. package/docs/rules/python/patterns.md +39 -39
  122. package/docs/rules/python/security.md +30 -30
  123. package/docs/rules/python/testing.md +38 -38
  124. package/docs/rules/rust/coding-style.md +151 -151
  125. package/docs/rules/rust/hooks.md +16 -16
  126. package/docs/rules/rust/patterns.md +168 -168
  127. package/docs/rules/rust/security.md +141 -141
  128. package/docs/rules/rust/testing.md +154 -154
  129. package/docs/rules/swift/coding-style.md +47 -47
  130. package/docs/rules/swift/hooks.md +20 -20
  131. package/docs/rules/swift/patterns.md +66 -66
  132. package/docs/rules/swift/security.md +33 -33
  133. package/docs/rules/swift/testing.md +45 -45
  134. package/docs/rules/typescript/coding-style.md +199 -199
  135. package/docs/rules/typescript/hooks.md +22 -22
  136. package/docs/rules/typescript/patterns.md +52 -52
  137. package/docs/rules/typescript/security.md +28 -28
  138. package/docs/rules/typescript/testing.md +18 -18
  139. package/docs/rules/web/coding-style.md +96 -96
  140. package/docs/rules/web/design-quality.md +62 -62
  141. package/docs/rules/web/hooks.md +120 -120
  142. package/docs/rules/web/patterns.md +79 -79
  143. package/docs/rules/web/performance.md +64 -64
  144. package/docs/rules/web/security.md +57 -57
  145. package/docs/rules/web/testing.md +55 -55
  146. package/docs/templates/README.md +36 -36
  147. package/docs/templates/ai-project-final.md +124 -124
  148. package/docs/templates/ai-project.md +105 -105
  149. package/docs/templates/api.md +157 -157
  150. package/docs/templates/bug.md +62 -62
  151. package/docs/templates/code-review.md +87 -87
  152. package/docs/templates/generic.md +116 -116
  153. package/docs/templates/implementation-plan.md +1 -1
  154. package/docs/templates/meeting.md +68 -68
  155. package/docs/templates/prd.md +98 -98
  156. package/docs/templates/ui.md +134 -134
  157. package/docs/workflow-pipeline.md +5 -5
  158. package/package.json +40 -39
  159. package/skills/SUPERPOWERS-LICENSE +21 -21
  160. package/skills/ai-ml/fine-tuning-expert/SKILL.md +162 -162
  161. package/skills/ai-ml/fine-tuning-expert/references/dataset-preparation.md +540 -540
  162. package/skills/ai-ml/fine-tuning-expert/references/deployment-optimization.md +673 -673
  163. package/skills/ai-ml/fine-tuning-expert/references/evaluation-metrics.md +597 -597
  164. package/skills/ai-ml/fine-tuning-expert/references/hyperparameter-tuning.md +565 -565
  165. package/skills/ai-ml/fine-tuning-expert/references/lora-peft.md +347 -347
  166. package/skills/ai-ml/ml-pipeline/SKILL.md +159 -159
  167. package/skills/ai-ml/ml-pipeline/references/experiment-tracking.md +833 -833
  168. package/skills/ai-ml/ml-pipeline/references/feature-engineering.md +631 -631
  169. package/skills/ai-ml/ml-pipeline/references/model-validation.md +978 -978
  170. package/skills/ai-ml/ml-pipeline/references/pipeline-orchestration.md +907 -907
  171. package/skills/ai-ml/ml-pipeline/references/training-pipelines.md +782 -782
  172. package/skills/ai-ml/rag-architect/SKILL.md +194 -194
  173. package/skills/ai-ml/rag-architect/references/chunking-strategies.md +878 -878
  174. package/skills/ai-ml/rag-architect/references/embedding-models.md +561 -561
  175. package/skills/ai-ml/rag-architect/references/rag-evaluation.md +833 -833
  176. package/skills/ai-ml/rag-architect/references/retrieval-optimization.md +795 -795
  177. package/skills/ai-ml/rag-architect/references/vector-databases.md +589 -589
  178. package/skills/ai-ml/spark-engineer/SKILL.md +148 -148
  179. package/skills/ai-ml/spark-engineer/references/partitioning-caching.md +543 -543
  180. package/skills/ai-ml/spark-engineer/references/performance-tuning.md +544 -544
  181. package/skills/ai-ml/spark-engineer/references/rdd-operations.md +599 -599
  182. package/skills/ai-ml/spark-engineer/references/spark-sql-dataframes.md +474 -474
  183. package/skills/ai-ml/spark-engineer/references/streaming-patterns.md +786 -786
  184. package/skills/backend/api-designer/SKILL.md +217 -217
  185. package/skills/backend/api-designer/references/error-handling.md +541 -541
  186. package/skills/backend/api-designer/references/openapi.md +824 -824
  187. package/skills/backend/api-designer/references/pagination.md +494 -494
  188. package/skills/backend/api-designer/references/rest-patterns.md +335 -335
  189. package/skills/backend/api-designer/references/versioning.md +391 -391
  190. package/skills/backend/architecture-designer/SKILL.md +117 -117
  191. package/skills/backend/architecture-designer/references/adr-template.md +116 -116
  192. package/skills/backend/architecture-designer/references/architecture-patterns.md +111 -111
  193. package/skills/backend/architecture-designer/references/database-selection.md +102 -102
  194. package/skills/backend/architecture-designer/references/nfr-checklist.md +112 -112
  195. package/skills/backend/architecture-designer/references/system-design.md +100 -100
  196. package/skills/backend/code-documenter/SKILL.md +147 -147
  197. package/skills/backend/code-documenter/references/api-docs-fastapi-django.md +166 -166
  198. package/skills/backend/code-documenter/references/api-docs-nestjs-express.md +220 -220
  199. package/skills/backend/code-documenter/references/coverage-reports.md +125 -125
  200. package/skills/backend/code-documenter/references/documentation-systems.md +333 -333
  201. package/skills/backend/code-documenter/references/interactive-api-docs.md +531 -531
  202. package/skills/backend/code-documenter/references/python-docstrings.md +121 -121
  203. package/skills/backend/code-documenter/references/typescript-jsdoc.md +145 -145
  204. package/skills/backend/code-documenter/references/user-guides-tutorials.md +530 -530
  205. package/skills/backend/debugging-wizard/SKILL.md +105 -105
  206. package/skills/backend/debugging-wizard/references/common-patterns.md +132 -132
  207. package/skills/backend/debugging-wizard/references/debugging-tools.md +140 -140
  208. package/skills/backend/debugging-wizard/references/quick-fixes.md +177 -177
  209. package/skills/backend/debugging-wizard/references/strategies.md +142 -142
  210. package/skills/backend/debugging-wizard/references/systematic-debugging.md +367 -367
  211. package/skills/backend/feature-forge/SKILL.md +98 -98
  212. package/skills/backend/feature-forge/references/acceptance-criteria.md +104 -104
  213. package/skills/backend/feature-forge/references/ears-syntax.md +99 -99
  214. package/skills/backend/feature-forge/references/interview-questions.md +150 -150
  215. package/skills/backend/feature-forge/references/pre-discovery-subagents.md +54 -54
  216. package/skills/backend/feature-forge/references/specification-template.md +103 -103
  217. package/skills/backend/fullstack-guardian/SKILL.md +105 -105
  218. package/skills/backend/fullstack-guardian/references/api-design-standards.md +307 -307
  219. package/skills/backend/fullstack-guardian/references/architecture-decisions.md +350 -350
  220. package/skills/backend/fullstack-guardian/references/backend-patterns.md +237 -237
  221. package/skills/backend/fullstack-guardian/references/common-patterns.md +134 -134
  222. package/skills/backend/fullstack-guardian/references/deliverables-checklist.md +354 -354
  223. package/skills/backend/fullstack-guardian/references/design-template.md +91 -91
  224. package/skills/backend/fullstack-guardian/references/error-handling.md +135 -135
  225. package/skills/backend/fullstack-guardian/references/frontend-patterns.md +340 -340
  226. package/skills/backend/fullstack-guardian/references/integration-patterns.md +333 -333
  227. package/skills/backend/fullstack-guardian/references/security-checklist.md +106 -106
  228. package/skills/backend/graphql-architect/SKILL.md +146 -146
  229. package/skills/backend/graphql-architect/references/federation.md +418 -418
  230. package/skills/backend/graphql-architect/references/migration-from-rest.md +1141 -1141
  231. package/skills/backend/graphql-architect/references/resolvers.md +425 -425
  232. package/skills/backend/graphql-architect/references/schema-design.md +393 -393
  233. package/skills/backend/graphql-architect/references/security.md +569 -569
  234. package/skills/backend/graphql-architect/references/subscriptions.md +510 -510
  235. package/skills/backend/legacy-modernizer/SKILL.md +137 -137
  236. package/skills/backend/legacy-modernizer/references/legacy-testing.md +381 -381
  237. package/skills/backend/legacy-modernizer/references/migration-strategies.md +423 -423
  238. package/skills/backend/legacy-modernizer/references/refactoring-patterns.md +395 -395
  239. package/skills/backend/legacy-modernizer/references/strangler-fig-pattern.md +281 -281
  240. package/skills/backend/legacy-modernizer/references/system-assessment.md +487 -487
  241. package/skills/backend/microservices-architect/SKILL.md +164 -164
  242. package/skills/backend/microservices-architect/references/communication.md +499 -499
  243. package/skills/backend/microservices-architect/references/data.md +721 -721
  244. package/skills/backend/microservices-architect/references/decomposition.md +344 -344
  245. package/skills/backend/microservices-architect/references/observability.md +805 -805
  246. package/skills/backend/microservices-architect/references/patterns.md +603 -603
  247. package/skills/database/database-optimizer/SKILL.md +147 -147
  248. package/skills/database/database-optimizer/references/index-strategies.md +331 -331
  249. package/skills/database/database-optimizer/references/monitoring-analysis.md +501 -501
  250. package/skills/database/database-optimizer/references/mysql-tuning.md +452 -452
  251. package/skills/database/database-optimizer/references/postgresql-tuning.md +413 -413
  252. package/skills/database/database-optimizer/references/query-optimization.md +251 -251
  253. package/skills/database/postgres-pro/SKILL.md +152 -152
  254. package/skills/database/postgres-pro/references/extensions.md +404 -404
  255. package/skills/database/postgres-pro/references/jsonb.md +321 -321
  256. package/skills/database/postgres-pro/references/maintenance.md +481 -481
  257. package/skills/database/postgres-pro/references/performance.md +265 -265
  258. package/skills/database/postgres-pro/references/replication.md +446 -446
  259. package/skills/database/sql-pro/SKILL.md +129 -129
  260. package/skills/database/sql-pro/references/database-design.md +402 -402
  261. package/skills/database/sql-pro/references/dialect-differences.md +419 -419
  262. package/skills/database/sql-pro/references/optimization.md +384 -384
  263. package/skills/database/sql-pro/references/query-patterns.md +285 -285
  264. package/skills/database/sql-pro/references/window-functions.md +328 -328
  265. package/skills/dotnet/csharp-developer/SKILL.md +125 -125
  266. package/skills/dotnet/csharp-developer/references/aspnet-core.md +394 -394
  267. package/skills/dotnet/csharp-developer/references/blazor.md +553 -553
  268. package/skills/dotnet/csharp-developer/references/entity-framework.md +409 -409
  269. package/skills/dotnet/csharp-developer/references/modern-csharp.md +248 -248
  270. package/skills/dotnet/csharp-developer/references/performance.md +498 -498
  271. package/skills/dotnet/dotnet-core-expert/SKILL.md +138 -138
  272. package/skills/dotnet/dotnet-core-expert/references/authentication.md +546 -546
  273. package/skills/dotnet/dotnet-core-expert/references/clean-architecture.md +455 -455
  274. package/skills/dotnet/dotnet-core-expert/references/cloud-native.md +548 -548
  275. package/skills/dotnet/dotnet-core-expert/references/entity-framework.md +440 -440
  276. package/skills/dotnet/dotnet-core-expert/references/minimal-apis.md +319 -319
  277. package/skills/frontend/angular-architect/SKILL.md +152 -152
  278. package/skills/frontend/angular-architect/references/components.md +297 -297
  279. package/skills/frontend/angular-architect/references/ngrx.md +401 -401
  280. package/skills/frontend/angular-architect/references/routing.md +361 -361
  281. package/skills/frontend/angular-architect/references/rxjs.md +319 -319
  282. package/skills/frontend/angular-architect/references/testing.md +405 -405
  283. package/skills/frontend/design-commands/design.md +91 -91
  284. package/skills/frontend/design-commands/handoff.md +97 -97
  285. package/skills/frontend/design-commands/prototype.md +120 -120
  286. package/skills/frontend/design-commands/spec.md +160 -160
  287. package/skills/frontend/design-commands/style.md +78 -78
  288. package/skills/frontend/flutter-expert/SKILL.md +138 -138
  289. package/skills/frontend/flutter-expert/references/bloc-state.md +259 -259
  290. package/skills/frontend/flutter-expert/references/gorouter-navigation.md +119 -119
  291. package/skills/frontend/flutter-expert/references/performance.md +99 -99
  292. package/skills/frontend/flutter-expert/references/project-structure.md +118 -118
  293. package/skills/frontend/flutter-expert/references/riverpod-state.md +130 -130
  294. package/skills/frontend/flutter-expert/references/widget-patterns.md +123 -123
  295. package/skills/frontend/nextjs-developer/SKILL.md +143 -143
  296. package/skills/frontend/nextjs-developer/references/app-router.md +311 -311
  297. package/skills/frontend/nextjs-developer/references/data-fetching.md +482 -482
  298. package/skills/frontend/nextjs-developer/references/deployment.md +545 -545
  299. package/skills/frontend/nextjs-developer/references/server-actions.md +462 -462
  300. package/skills/frontend/nextjs-developer/references/server-components.md +384 -384
  301. package/skills/frontend/react-expert/SKILL.md +149 -149
  302. package/skills/frontend/react-expert/references/hooks-patterns.md +162 -162
  303. package/skills/frontend/react-expert/references/migration-class-to-modern.md +1119 -1119
  304. package/skills/frontend/react-expert/references/performance.md +168 -168
  305. package/skills/frontend/react-expert/references/react-19-features.md +174 -174
  306. package/skills/frontend/react-expert/references/server-components.md +143 -143
  307. package/skills/frontend/react-expert/references/state-management.md +171 -171
  308. package/skills/frontend/react-expert/references/testing-react.md +174 -174
  309. package/skills/frontend/react-native-expert/SKILL.md +185 -185
  310. package/skills/frontend/react-native-expert/references/expo-router.md +187 -187
  311. package/skills/frontend/react-native-expert/references/list-optimization.md +204 -204
  312. package/skills/frontend/react-native-expert/references/platform-handling.md +188 -188
  313. package/skills/frontend/react-native-expert/references/project-structure.md +171 -171
  314. package/skills/frontend/react-native-expert/references/storage-hooks.md +173 -173
  315. package/skills/frontend/senior-frontend/SKILL.md +477 -477
  316. package/skills/frontend/senior-frontend/references/frontend_best_practices.md +806 -806
  317. package/skills/frontend/senior-frontend/references/nextjs_optimization_guide.md +724 -724
  318. package/skills/frontend/senior-frontend/references/react_patterns.md +746 -746
  319. package/skills/frontend/senior-frontend/scripts/bundle_analyzer.py +407 -407
  320. package/skills/frontend/senior-frontend/scripts/component_generator.py +329 -329
  321. package/skills/frontend/senior-frontend/scripts/frontend_scaffolder.py +1005 -1005
  322. package/skills/frontend/ui-ux-pro-max/SKILL.md +386 -386
  323. package/skills/frontend/ui-ux-pro-max/data/charts.csv +26 -26
  324. package/skills/frontend/ui-ux-pro-max/data/colors.csv +97 -97
  325. package/skills/frontend/ui-ux-pro-max/data/icons.csv +101 -101
  326. package/skills/frontend/ui-ux-pro-max/data/landing.csv +31 -31
  327. package/skills/frontend/ui-ux-pro-max/data/products.csv +96 -96
  328. package/skills/frontend/ui-ux-pro-max/data/react-performance.csv +45 -45
  329. package/skills/frontend/ui-ux-pro-max/data/stacks/astro.csv +54 -54
  330. package/skills/frontend/ui-ux-pro-max/data/stacks/flutter.csv +53 -53
  331. package/skills/frontend/ui-ux-pro-max/data/stacks/html-tailwind.csv +56 -56
  332. package/skills/frontend/ui-ux-pro-max/data/stacks/jetpack-compose.csv +53 -53
  333. package/skills/frontend/ui-ux-pro-max/data/stacks/nextjs.csv +53 -53
  334. package/skills/frontend/ui-ux-pro-max/data/stacks/nuxt-ui.csv +51 -51
  335. package/skills/frontend/ui-ux-pro-max/data/stacks/nuxtjs.csv +59 -59
  336. package/skills/frontend/ui-ux-pro-max/data/stacks/react-native.csv +52 -52
  337. package/skills/frontend/ui-ux-pro-max/data/stacks/react.csv +54 -54
  338. package/skills/frontend/ui-ux-pro-max/data/stacks/shadcn.csv +61 -61
  339. package/skills/frontend/ui-ux-pro-max/data/stacks/svelte.csv +54 -54
  340. package/skills/frontend/ui-ux-pro-max/data/stacks/swiftui.csv +51 -51
  341. package/skills/frontend/ui-ux-pro-max/data/stacks/vue.csv +50 -50
  342. package/skills/frontend/ui-ux-pro-max/data/styles.csv +68 -68
  343. package/skills/frontend/ui-ux-pro-max/data/typography.csv +57 -57
  344. package/skills/frontend/ui-ux-pro-max/data/ui-reasoning.csv +101 -101
  345. package/skills/frontend/ui-ux-pro-max/data/ux-guidelines.csv +99 -99
  346. package/skills/frontend/ui-ux-pro-max/data/web-interface.csv +31 -31
  347. package/skills/frontend/ui-ux-pro-max/scripts/core.py +253 -253
  348. package/skills/frontend/ui-ux-pro-max/scripts/design_system.py +1067 -1067
  349. package/skills/frontend/ui-ux-pro-max/scripts/search.py +114 -114
  350. package/skills/frontend/vue-expert/SKILL.md +98 -98
  351. package/skills/frontend/vue-expert/references/build-tooling.md +480 -480
  352. package/skills/frontend/vue-expert/references/components.md +448 -448
  353. package/skills/frontend/vue-expert/references/composition-api.md +299 -299
  354. package/skills/frontend/vue-expert/references/mobile-hybrid.md +636 -636
  355. package/skills/frontend/vue-expert/references/nuxt.md +669 -669
  356. package/skills/frontend/vue-expert/references/state-management.md +449 -449
  357. package/skills/frontend/vue-expert/references/typescript.md +584 -584
  358. package/skills/frontend/vue-expert-js/SKILL.md +167 -167
  359. package/skills/frontend/vue-expert-js/references/component-architecture.md +219 -219
  360. package/skills/frontend/vue-expert-js/references/composables-patterns.md +183 -183
  361. package/skills/frontend/vue-expert-js/references/jsdoc-typing.md +535 -535
  362. package/skills/frontend/vue-expert-js/references/state-management.md +249 -249
  363. package/skills/frontend/vue-expert-js/references/testing-patterns.md +237 -237
  364. package/skills/go-rust-cpp/cpp-pro/SKILL.md +115 -115
  365. package/skills/go-rust-cpp/cpp-pro/references/build-tooling.md +440 -440
  366. package/skills/go-rust-cpp/cpp-pro/references/concurrency.md +437 -437
  367. package/skills/go-rust-cpp/cpp-pro/references/memory-performance.md +397 -397
  368. package/skills/go-rust-cpp/cpp-pro/references/modern-cpp.md +304 -304
  369. package/skills/go-rust-cpp/cpp-pro/references/templates.md +357 -357
  370. package/skills/go-rust-cpp/golang-pro/SKILL.md +122 -122
  371. package/skills/go-rust-cpp/golang-pro/references/concurrency.md +329 -329
  372. package/skills/go-rust-cpp/golang-pro/references/generics.md +442 -442
  373. package/skills/go-rust-cpp/golang-pro/references/interfaces.md +432 -432
  374. package/skills/go-rust-cpp/golang-pro/references/project-structure.md +477 -477
  375. package/skills/go-rust-cpp/golang-pro/references/testing.md +451 -451
  376. package/skills/go-rust-cpp/rust-engineer/SKILL.md +167 -167
  377. package/skills/go-rust-cpp/rust-engineer/references/async.md +458 -458
  378. package/skills/go-rust-cpp/rust-engineer/references/error-handling.md +334 -334
  379. package/skills/go-rust-cpp/rust-engineer/references/ownership.md +278 -278
  380. package/skills/go-rust-cpp/rust-engineer/references/testing.md +470 -470
  381. package/skills/go-rust-cpp/rust-engineer/references/traits.md +413 -413
  382. package/skills/infra/cli-developer/SKILL.md +113 -113
  383. package/skills/infra/cli-developer/references/design-patterns.md +221 -221
  384. package/skills/infra/cli-developer/references/go-cli.md +540 -540
  385. package/skills/infra/cli-developer/references/node-cli.md +383 -383
  386. package/skills/infra/cli-developer/references/python-cli.md +422 -422
  387. package/skills/infra/cli-developer/references/ux-patterns.md +448 -448
  388. package/skills/infra/cloud-architect/SKILL.md +216 -216
  389. package/skills/infra/cloud-architect/references/aws.md +394 -394
  390. package/skills/infra/cloud-architect/references/azure.md +562 -562
  391. package/skills/infra/cloud-architect/references/cost.md +582 -582
  392. package/skills/infra/cloud-architect/references/gcp.md +633 -633
  393. package/skills/infra/cloud-architect/references/multi-cloud.md +483 -483
  394. package/skills/infra/devops-engineer/SKILL.md +144 -144
  395. package/skills/infra/devops-engineer/references/deployment-strategies.md +241 -241
  396. package/skills/infra/devops-engineer/references/docker-patterns.md +113 -113
  397. package/skills/infra/devops-engineer/references/github-actions.md +139 -139
  398. package/skills/infra/devops-engineer/references/incident-response.md +331 -331
  399. package/skills/infra/devops-engineer/references/kubernetes.md +154 -154
  400. package/skills/infra/devops-engineer/references/platform-engineering.md +417 -417
  401. package/skills/infra/devops-engineer/references/release-automation.md +527 -527
  402. package/skills/infra/devops-engineer/references/terraform-iac.md +141 -141
  403. package/skills/infra/kubernetes-specialist/SKILL.md +241 -241
  404. package/skills/infra/kubernetes-specialist/references/configuration.md +452 -452
  405. package/skills/infra/kubernetes-specialist/references/cost-optimization.md +458 -458
  406. package/skills/infra/kubernetes-specialist/references/custom-operators.md +563 -563
  407. package/skills/infra/kubernetes-specialist/references/gitops.md +530 -530
  408. package/skills/infra/kubernetes-specialist/references/helm-charts.md +912 -912
  409. package/skills/infra/kubernetes-specialist/references/multi-cluster.md +507 -507
  410. package/skills/infra/kubernetes-specialist/references/networking.md +447 -447
  411. package/skills/infra/kubernetes-specialist/references/service-mesh.md +459 -459
  412. package/skills/infra/kubernetes-specialist/references/storage.md +535 -535
  413. package/skills/infra/kubernetes-specialist/references/troubleshooting.md +414 -414
  414. package/skills/infra/kubernetes-specialist/references/workloads.md +377 -377
  415. package/skills/infra/mcp-developer/SKILL.md +143 -143
  416. package/skills/infra/mcp-developer/references/protocol.md +244 -244
  417. package/skills/infra/mcp-developer/references/python-sdk.md +367 -367
  418. package/skills/infra/mcp-developer/references/resources.md +554 -554
  419. package/skills/infra/mcp-developer/references/tools.md +480 -480
  420. package/skills/infra/mcp-developer/references/typescript-sdk.md +350 -350
  421. package/skills/infra/monitoring-expert/SKILL.md +176 -176
  422. package/skills/infra/monitoring-expert/references/alerting-rules.md +141 -141
  423. package/skills/infra/monitoring-expert/references/application-profiling.md +331 -331
  424. package/skills/infra/monitoring-expert/references/capacity-planning.md +344 -344
  425. package/skills/infra/monitoring-expert/references/dashboards.md +126 -126
  426. package/skills/infra/monitoring-expert/references/opentelemetry.md +123 -123
  427. package/skills/infra/monitoring-expert/references/performance-testing.md +269 -269
  428. package/skills/infra/monitoring-expert/references/prometheus-metrics.md +136 -136
  429. package/skills/infra/monitoring-expert/references/structured-logging.md +142 -142
  430. package/skills/infra/sre-engineer/SKILL.md +181 -181
  431. package/skills/infra/sre-engineer/references/automation-toil.md +492 -492
  432. package/skills/infra/sre-engineer/references/error-budget-policy.md +334 -334
  433. package/skills/infra/sre-engineer/references/incident-chaos.md +576 -576
  434. package/skills/infra/sre-engineer/references/monitoring-alerting.md +424 -424
  435. package/skills/infra/sre-engineer/references/slo-sli-management.md +238 -238
  436. package/skills/infra/terraform-engineer/SKILL.md +143 -143
  437. package/skills/infra/terraform-engineer/references/best-practices.md +583 -583
  438. package/skills/infra/terraform-engineer/references/module-patterns.md +297 -297
  439. package/skills/infra/terraform-engineer/references/providers.md +452 -452
  440. package/skills/infra/terraform-engineer/references/state-management.md +371 -371
  441. package/skills/infra/terraform-engineer/references/testing.md +486 -486
  442. package/skills/infra/websocket-engineer/SKILL.md +168 -168
  443. package/skills/infra/websocket-engineer/references/alternatives.md +391 -391
  444. package/skills/infra/websocket-engineer/references/patterns.md +400 -400
  445. package/skills/infra/websocket-engineer/references/protocol.md +195 -195
  446. package/skills/infra/websocket-engineer/references/scaling.md +333 -333
  447. package/skills/infra/websocket-engineer/references/security.md +474 -474
  448. package/skills/java/java-architect/SKILL.md +132 -132
  449. package/skills/java/java-architect/references/jpa-optimization.md +393 -393
  450. package/skills/java/java-architect/references/reactive-webflux.md +356 -356
  451. package/skills/java/java-architect/references/spring-boot-setup.md +269 -269
  452. package/skills/java/java-architect/references/spring-security.md +445 -445
  453. package/skills/java/java-architect/references/testing-patterns.md +500 -500
  454. package/skills/java/kotlin-specialist/SKILL.md +147 -147
  455. package/skills/java/kotlin-specialist/references/android-compose.md +419 -419
  456. package/skills/java/kotlin-specialist/references/coroutines-flow.md +276 -276
  457. package/skills/java/kotlin-specialist/references/dsl-idioms.md +421 -421
  458. package/skills/java/kotlin-specialist/references/ktor-server.md +426 -426
  459. package/skills/java/kotlin-specialist/references/multiplatform-kmp.md +380 -380
  460. package/skills/java/spring-boot-engineer/SKILL.md +196 -195
  461. package/skills/java/spring-boot-engineer/references/cloud.md +498 -498
  462. package/skills/java/spring-boot-engineer/references/data.md +381 -381
  463. package/skills/java/spring-boot-engineer/references/mybatis-plus.md +592 -0
  464. package/skills/java/spring-boot-engineer/references/security.md +459 -459
  465. package/skills/java/spring-boot-engineer/references/testing.md +545 -545
  466. package/skills/java/spring-boot-engineer/references/web.md +295 -295
  467. package/skills/java/spring-boot-engineer_zn/SKILL.md +129 -0
  468. package/skills/java/spring-boot-engineer_zn/references/architecture.md +23 -0
  469. package/skills/java/spring-boot-engineer_zn/references/concurrency.md +9 -0
  470. package/skills/java/spring-boot-engineer_zn/references/exception-logging.md +31 -0
  471. package/skills/java/spring-boot-engineer_zn/references/persistence.md +13 -0
  472. package/skills/java/spring-boot-engineer_zn/references/pojo-lombok.md +48 -0
  473. package/skills/java/spring-boot-engineer_zn/references/security.md +9 -0
  474. package/skills/java/spring-boot-engineer_zn/references/testing.md +7 -0
  475. package/skills/java/spring-boot-engineer_zn/references/validation.md +80 -0
  476. package/skills/javascript/javascript-pro/SKILL.md +132 -132
  477. package/skills/javascript/javascript-pro/references/async-patterns.md +334 -334
  478. package/skills/javascript/javascript-pro/references/browser-apis.md +398 -398
  479. package/skills/javascript/javascript-pro/references/modern-syntax.md +272 -272
  480. package/skills/javascript/javascript-pro/references/modules.md +357 -357
  481. package/skills/javascript/javascript-pro/references/node-essentials.md +471 -471
  482. package/skills/javascript/nestjs-expert/SKILL.md +206 -206
  483. package/skills/javascript/nestjs-expert/references/authentication.md +166 -166
  484. package/skills/javascript/nestjs-expert/references/controllers-routing.md +111 -111
  485. package/skills/javascript/nestjs-expert/references/dtos-validation.md +153 -153
  486. package/skills/javascript/nestjs-expert/references/migration-from-express.md +1237 -1237
  487. package/skills/javascript/nestjs-expert/references/services-di.md +140 -140
  488. package/skills/javascript/nestjs-expert/references/testing-patterns.md +186 -186
  489. package/skills/javascript/typescript-pro/SKILL.md +145 -145
  490. package/skills/javascript/typescript-pro/references/advanced-types.md +259 -259
  491. package/skills/javascript/typescript-pro/references/configuration.md +445 -445
  492. package/skills/javascript/typescript-pro/references/patterns.md +484 -484
  493. package/skills/javascript/typescript-pro/references/type-guards.md +352 -352
  494. package/skills/javascript/typescript-pro/references/utility-types.md +329 -329
  495. package/skills/php/laravel-specialist/SKILL.md +262 -262
  496. package/skills/php/laravel-specialist/references/eloquent.md +351 -351
  497. package/skills/php/laravel-specialist/references/livewire.md +512 -512
  498. package/skills/php/laravel-specialist/references/queues.md +423 -423
  499. package/skills/php/laravel-specialist/references/routing.md +362 -362
  500. package/skills/php/laravel-specialist/references/testing.md +522 -522
  501. package/skills/php/php-pro/SKILL.md +206 -206
  502. package/skills/php/php-pro/references/async-patterns.md +412 -412
  503. package/skills/php/php-pro/references/laravel-patterns.md +377 -377
  504. package/skills/php/php-pro/references/modern-php-features.md +323 -323
  505. package/skills/php/php-pro/references/symfony-patterns.md +466 -466
  506. package/skills/php/php-pro/references/testing-quality.md +466 -466
  507. package/skills/product/competitive-analysis/SKILL.md +257 -257
  508. package/skills/product/meeting-notes/SKILL.md +266 -266
  509. package/skills/product/prd-template/SKILL.md +150 -150
  510. package/skills/product/stakeholder-update/SKILL.md +225 -225
  511. package/skills/product/user-research-synthesis/SKILL.md +235 -235
  512. package/skills/python/django-expert/SKILL.md +162 -162
  513. package/skills/python/django-expert/references/authentication.md +145 -145
  514. package/skills/python/django-expert/references/drf-serializers.md +148 -148
  515. package/skills/python/django-expert/references/models-orm.md +151 -151
  516. package/skills/python/django-expert/references/testing-django.md +204 -204
  517. package/skills/python/django-expert/references/viewsets-views.md +153 -153
  518. package/skills/python/fastapi-expert/SKILL.md +185 -185
  519. package/skills/python/fastapi-expert/references/async-sqlalchemy.md +146 -146
  520. package/skills/python/fastapi-expert/references/authentication.md +159 -159
  521. package/skills/python/fastapi-expert/references/endpoints-routing.md +142 -142
  522. package/skills/python/fastapi-expert/references/migration-from-django.md +996 -996
  523. package/skills/python/fastapi-expert/references/pydantic-v2.md +135 -135
  524. package/skills/python/fastapi-expert/references/testing-async.md +159 -159
  525. package/skills/python/pandas-pro/SKILL.md +178 -178
  526. package/skills/python/pandas-pro/references/aggregation-groupby.md +545 -545
  527. package/skills/python/pandas-pro/references/data-cleaning.md +500 -500
  528. package/skills/python/pandas-pro/references/dataframe-operations.md +420 -420
  529. package/skills/python/pandas-pro/references/merging-joining.md +596 -596
  530. package/skills/python/pandas-pro/references/performance-optimization.md +597 -597
  531. package/skills/python/python-pro/SKILL.md +177 -177
  532. package/skills/python/python-pro/references/async-patterns.md +356 -356
  533. package/skills/python/python-pro/references/packaging.md +460 -460
  534. package/skills/python/python-pro/references/standard-library.md +378 -378
  535. package/skills/python/python-pro/references/testing.md +404 -404
  536. package/skills/python/python-pro/references/type-system.md +290 -290
  537. package/skills/quality/chaos-engineer/SKILL.md +182 -182
  538. package/skills/quality/chaos-engineer/references/chaos-tools.md +511 -511
  539. package/skills/quality/chaos-engineer/references/experiment-design.md +229 -229
  540. package/skills/quality/chaos-engineer/references/game-days.md +434 -434
  541. package/skills/quality/chaos-engineer/references/infrastructure-chaos.md +348 -348
  542. package/skills/quality/chaos-engineer/references/kubernetes-chaos.md +432 -432
  543. package/skills/quality/code-reviewer/SKILL.md +119 -119
  544. package/skills/quality/code-reviewer/references/common-issues.md +142 -142
  545. package/skills/quality/code-reviewer/references/feedback-examples.md +144 -144
  546. package/skills/quality/code-reviewer/references/receiving-feedback.md +238 -238
  547. package/skills/quality/code-reviewer/references/report-template.md +109 -109
  548. package/skills/quality/code-reviewer/references/review-checklist.md +88 -88
  549. package/skills/quality/code-reviewer/references/spec-compliance-review.md +258 -258
  550. package/skills/quality/playwright-expert/SKILL.md +169 -169
  551. package/skills/quality/playwright-expert/references/api-mocking.md +140 -140
  552. package/skills/quality/playwright-expert/references/configuration.md +155 -155
  553. package/skills/quality/playwright-expert/references/debugging-flaky.md +150 -150
  554. package/skills/quality/playwright-expert/references/page-object-model.md +152 -152
  555. package/skills/quality/playwright-expert/references/selectors-locators.md +119 -119
  556. package/skills/quality/secure-code-guardian/SKILL.md +191 -191
  557. package/skills/quality/secure-code-guardian/references/authentication.md +136 -136
  558. package/skills/quality/secure-code-guardian/references/input-validation.md +146 -146
  559. package/skills/quality/secure-code-guardian/references/owasp-prevention.md +135 -135
  560. package/skills/quality/secure-code-guardian/references/security-headers.md +133 -133
  561. package/skills/quality/secure-code-guardian/references/xss-csrf.md +157 -157
  562. package/skills/quality/security-reviewer/SKILL.md +103 -103
  563. package/skills/quality/security-reviewer/references/infrastructure-security.md +268 -268
  564. package/skills/quality/security-reviewer/references/penetration-testing.md +268 -268
  565. package/skills/quality/security-reviewer/references/report-template.md +170 -170
  566. package/skills/quality/security-reviewer/references/sast-tools.md +117 -117
  567. package/skills/quality/security-reviewer/references/secret-scanning.md +125 -125
  568. package/skills/quality/security-reviewer/references/vulnerability-patterns.md +152 -152
  569. package/skills/quality/senior-qa/README.md +196 -196
  570. package/skills/quality/senior-qa/SKILL.md +399 -399
  571. package/skills/quality/senior-qa/references/qa_best_practices.md +964 -964
  572. package/skills/quality/senior-qa/references/test_automation_patterns.md +1009 -1009
  573. package/skills/quality/senior-qa/references/testing_strategies.md +649 -649
  574. package/skills/quality/senior-qa/scripts/coverage_analyzer.py +836 -836
  575. package/skills/quality/senior-qa/scripts/e2e_test_scaffolder.py +820 -820
  576. package/skills/quality/senior-qa/scripts/test_suite_generator.py +605 -605
  577. package/skills/quality/tdd-guide/HOW_TO_USE.md +313 -313
  578. package/skills/quality/tdd-guide/README.md +680 -680
  579. package/skills/quality/tdd-guide/SKILL.md +122 -122
  580. package/skills/quality/tdd-guide/assets/expected_output.json +77 -77
  581. package/skills/quality/tdd-guide/assets/sample_input_python.json +39 -39
  582. package/skills/quality/tdd-guide/assets/sample_input_typescript.json +36 -36
  583. package/skills/quality/tdd-guide/references/ci-integration.md +195 -195
  584. package/skills/quality/tdd-guide/references/framework-guide.md +206 -206
  585. package/skills/quality/tdd-guide/references/tdd-best-practices.md +128 -128
  586. package/skills/quality/tdd-guide/scripts/coverage_analyzer.py +434 -434
  587. package/skills/quality/tdd-guide/scripts/fixture_generator.py +440 -440
  588. package/skills/quality/tdd-guide/scripts/format_detector.py +384 -384
  589. package/skills/quality/tdd-guide/scripts/framework_adapter.py +428 -428
  590. package/skills/quality/tdd-guide/scripts/metrics_calculator.py +456 -456
  591. package/skills/quality/tdd-guide/scripts/output_formatter.py +354 -354
  592. package/skills/quality/tdd-guide/scripts/tdd_workflow.py +474 -474
  593. package/skills/quality/tdd-guide/scripts/test_generator.py +438 -438
  594. package/skills/quality/test-master/SKILL.md +94 -94
  595. package/skills/quality/test-master/references/automation-frameworks.md +294 -294
  596. package/skills/quality/test-master/references/e2e-testing.md +128 -128
  597. package/skills/quality/test-master/references/integration-testing.md +120 -120
  598. package/skills/quality/test-master/references/performance-testing.md +118 -118
  599. package/skills/quality/test-master/references/qa-methodology.md +247 -247
  600. package/skills/quality/test-master/references/security-testing.md +127 -127
  601. package/skills/quality/test-master/references/tdd-iron-laws.md +174 -174
  602. package/skills/quality/test-master/references/test-reports.md +104 -104
  603. package/skills/quality/test-master/references/testing-anti-patterns.md +231 -231
  604. package/skills/quality/test-master/references/unit-testing.md +113 -113
  605. package/skills/ruby/rails-expert/SKILL.md +154 -154
  606. package/skills/ruby/rails-expert/references/active-record.md +244 -244
  607. package/skills/ruby/rails-expert/references/api-development.md +401 -401
  608. package/skills/ruby/rails-expert/references/background-jobs.md +272 -272
  609. package/skills/ruby/rails-expert/references/hotwire-turbo.md +228 -228
  610. package/skills/ruby/rails-expert/references/rspec-testing.md +367 -367
  611. package/skills/swift/swift-expert/SKILL.md +163 -163
  612. package/skills/swift/swift-expert/references/async-concurrency.md +360 -360
  613. package/skills/swift/swift-expert/references/memory-performance.md +377 -377
  614. package/skills/swift/swift-expert/references/protocol-oriented.md +354 -354
  615. package/skills/swift/swift-expert/references/swiftui-patterns.md +291 -291
  616. package/skills/swift/swift-expert/references/testing-patterns.md +399 -399
  617. package/skills/workflow/brainstorming/SKILL.md +164 -164
  618. package/skills/workflow/brainstorming/scripts/frame-template.html +214 -214
  619. package/skills/workflow/brainstorming/scripts/helper.js +88 -88
  620. package/skills/workflow/brainstorming/scripts/server.cjs +354 -354
  621. package/skills/workflow/brainstorming/scripts/start-server.sh +148 -148
  622. package/skills/workflow/brainstorming/scripts/stop-server.sh +56 -56
  623. package/skills/workflow/brainstorming/spec-document-reviewer-prompt.md +49 -49
  624. package/skills/workflow/brainstorming/visual-companion.md +287 -287
  625. package/skills/workflow/documentation/SKILL.md +45 -45
  626. package/skills/workflow/entropy-management/SKILL.md +115 -115
  627. package/skills/workflow/executing-plans/SKILL.md +70 -70
  628. package/skills/workflow/finishing-a-development-branch/SKILL.md +200 -200
  629. package/skills/workflow/receiving-code-review/SKILL.md +213 -213
  630. package/skills/workflow/requesting-code-review/SKILL.md +105 -105
  631. package/skills/workflow/requesting-code-review/code-reviewer.md +146 -146
  632. package/skills/workflow/requirement-engineering/SKILL.md +111 -111
  633. package/skills/workflow/systematic-debugging/CREATION-LOG.md +119 -119
  634. package/skills/workflow/systematic-debugging/SKILL.md +296 -296
  635. package/skills/workflow/systematic-debugging/condition-based-waiting-example.ts +158 -158
  636. package/skills/workflow/systematic-debugging/condition-based-waiting.md +115 -115
  637. package/skills/workflow/systematic-debugging/defense-in-depth.md +122 -122
  638. package/skills/workflow/systematic-debugging/find-polluter.sh +63 -63
  639. package/skills/workflow/systematic-debugging/root-cause-tracing.md +169 -169
  640. package/skills/workflow/systematic-debugging/test-academic.md +14 -14
  641. package/skills/workflow/systematic-debugging/test-pressure-1.md +58 -58
  642. package/skills/workflow/systematic-debugging/test-pressure-2.md +68 -68
  643. package/skills/workflow/systematic-debugging/test-pressure-3.md +69 -69
  644. package/skills/workflow/using-git-worktrees/SKILL.md +218 -218
  645. package/skills/workflow/verification-before-completion/SKILL.md +139 -139
  646. package/skills/workflow/writing-plans/SKILL.md +151 -151
  647. package/skills/workflow/writing-plans/plan-document-reviewer-prompt.md +49 -49
  648. package/skills/workflow/writing-skills/SKILL.md +655 -655
  649. package/skills/workflow/writing-skills/anthropic-best-practices.md +1150 -1150
  650. package/skills/workflow/writing-skills/examples/CLAUDE_MD_TESTING.md +189 -189
  651. package/skills/workflow/writing-skills/persuasion-principles.md +187 -187
  652. package/skills/workflow/writing-skills/render-graphs.js +168 -168
  653. package/skills/workflow/writing-skills/testing-skills-with-subagents.md +384 -384
@@ -1,413 +1,413 @@
1
- # PostgreSQL Tuning
2
-
3
- ## Memory Configuration
4
-
5
- ### Shared Buffers
6
-
7
- ```sql
8
- -- Recommended: 25% of system RAM (up to 40% for dedicated DB server)
9
- -- For 16GB RAM server:
10
- ALTER SYSTEM SET shared_buffers = '4GB';
11
-
12
- -- Check current setting
13
- SHOW shared_buffers;
14
-
15
- -- Monitor buffer hit ratio (target: >99%)
16
- SELECT
17
- sum(heap_blks_read) as heap_read,
18
- sum(heap_blks_hit) as heap_hit,
19
- round(sum(heap_blks_hit) / nullif(sum(heap_blks_hit) + sum(heap_blks_read), 0) * 100, 2) as cache_hit_ratio
20
- FROM pg_statio_user_tables;
21
- ```
22
-
23
- ### Work Memory
24
-
25
- ```sql
26
- -- Per-operation memory for sorting/hashing
27
- -- Recommended: (Total RAM * 0.25) / max_connections
28
- -- For 16GB RAM, 100 connections: ~40MB
29
- ALTER SYSTEM SET work_mem = '40MB';
30
-
31
- -- Monitor sorts
32
- SELECT
33
- query,
34
- calls,
35
- total_exec_time,
36
- mean_exec_time,
37
- min_exec_time,
38
- max_exec_time
39
- FROM pg_stat_statements
40
- WHERE query LIKE '%ORDER BY%' OR query LIKE '%GROUP BY%'
41
- ORDER BY total_exec_time DESC
42
- LIMIT 10;
43
-
44
- -- Set per-session for large operations
45
- SET work_mem = '256MB';
46
- SELECT ... ORDER BY ... LIMIT 1000;
47
- RESET work_mem;
48
- ```
49
-
50
- ### Maintenance Work Memory
51
-
52
- ```sql
53
- -- For VACUUM, CREATE INDEX, ALTER TABLE
54
- -- Recommended: 1-2GB for production systems
55
- ALTER SYSTEM SET maintenance_work_mem = '2GB';
56
-
57
- -- Autovacuum workers use proportional amount
58
- ALTER SYSTEM SET autovacuum_work_mem = '512MB';
59
- ```
60
-
61
- ### Effective Cache Size
62
-
63
- ```sql
64
- -- Planner hint for available OS cache
65
- -- Recommended: 50-75% of total RAM
66
- -- For 16GB RAM:
67
- ALTER SYSTEM SET effective_cache_size = '12GB';
68
- ```
69
-
70
- ## Query Planner Settings
71
-
72
- ### Statistics Target
73
-
74
- ```sql
75
- -- Default is 100, increase for better estimates on complex queries
76
- ALTER SYSTEM SET default_statistics_target = 200;
77
-
78
- -- Per-column statistics for specific columns
79
- ALTER TABLE users ALTER COLUMN email SET STATISTICS 500;
80
-
81
- -- Force statistics update
82
- ANALYZE users;
83
-
84
- -- Check statistics quality
85
- SELECT
86
- schemaname, tablename, attname,
87
- n_distinct, correlation
88
- FROM pg_stats
89
- WHERE tablename = 'users';
90
- ```
91
-
92
- ### Parallel Query Configuration
93
-
94
- ```sql
95
- -- Enable parallel queries
96
- ALTER SYSTEM SET max_parallel_workers_per_gather = 4;
97
- ALTER SYSTEM SET max_parallel_workers = 8;
98
- ALTER SYSTEM SET parallel_setup_cost = 100;
99
- ALTER SYSTEM SET parallel_tuple_cost = 0.01;
100
-
101
- -- Minimum rows to consider parallel execution
102
- ALTER SYSTEM SET min_parallel_table_scan_size = '8MB';
103
- ALTER SYSTEM SET min_parallel_index_scan_size = '512kB';
104
-
105
- -- Check if query uses parallel execution
106
- EXPLAIN (ANALYZE, BUFFERS)
107
- SELECT COUNT(*) FROM large_table WHERE condition = 'value';
108
- -- Look for "Parallel Seq Scan" or "Gather" nodes
109
- ```
110
-
111
- ### Join and Scan Methods
112
-
113
- ```sql
114
- -- Enable all join methods (usually all enabled by default)
115
- ALTER SYSTEM SET enable_hashjoin = on;
116
- ALTER SYSTEM SET enable_mergejoin = on;
117
- ALTER SYSTEM SET enable_nestloop = on;
118
-
119
- -- Cost parameters (adjust based on hardware)
120
- ALTER SYSTEM SET random_page_cost = 1.1; -- For SSD (default 4.0 is for HDD)
121
- ALTER SYSTEM SET seq_page_cost = 1.0;
122
-
123
- -- Disable methods for testing (don't do in production)
124
- SET enable_seqscan = off; -- Force index usage for testing
125
- ```
126
-
127
- ## Write Performance Optimization
128
-
129
- ### WAL Configuration
130
-
131
- ```sql
132
- -- WAL write strategy
133
- ALTER SYSTEM SET wal_buffers = '16MB';
134
- ALTER SYSTEM SET wal_writer_delay = '200ms';
135
-
136
- -- Checkpoint configuration
137
- ALTER SYSTEM SET checkpoint_completion_target = 0.9;
138
- ALTER SYSTEM SET max_wal_size = '2GB';
139
- ALTER SYSTEM SET min_wal_size = '1GB';
140
-
141
- -- Monitor checkpoints
142
- SELECT
143
- checkpoints_timed,
144
- checkpoints_req,
145
- checkpoint_write_time,
146
- checkpoint_sync_time,
147
- buffers_checkpoint,
148
- buffers_clean,
149
- buffers_backend
150
- FROM pg_stat_bgwriter;
151
-
152
- -- Too many requested checkpoints = increase max_wal_size
153
- ```
154
-
155
- ### Commit Delays
156
-
157
- ```sql
158
- -- Group commits (trade latency for throughput)
159
- ALTER SYSTEM SET commit_delay = 10000; -- 10ms
160
- ALTER SYSTEM SET commit_siblings = 5;
161
-
162
- -- Asynchronous commit (trade durability for speed)
163
- -- Use cautiously - risk losing recent commits on crash
164
- ALTER SYSTEM SET synchronous_commit = 'off';
165
-
166
- -- Or per-transaction
167
- BEGIN;
168
- SET LOCAL synchronous_commit = 'off';
169
- INSERT INTO logs (...) VALUES (...);
170
- COMMIT;
171
- ```
172
-
173
- ## VACUUM and Autovacuum
174
-
175
- ### Autovacuum Configuration
176
-
177
- ```sql
178
- -- Enable autovacuum (should always be on)
179
- ALTER SYSTEM SET autovacuum = on;
180
-
181
- -- Autovacuum worker settings
182
- ALTER SYSTEM SET autovacuum_max_workers = 4;
183
- ALTER SYSTEM SET autovacuum_naptime = '30s';
184
-
185
- -- Thresholds for triggering autovacuum
186
- ALTER SYSTEM SET autovacuum_vacuum_scale_factor = 0.1; -- 10% dead tuples
187
- ALTER SYSTEM SET autovacuum_vacuum_threshold = 50;
188
-
189
- -- Analyze thresholds
190
- ALTER SYSTEM SET autovacuum_analyze_scale_factor = 0.05; -- 5% changed
191
- ALTER SYSTEM SET autovacuum_analyze_threshold = 50;
192
-
193
- -- Per-table autovacuum settings for high-churn tables
194
- ALTER TABLE busy_table SET (
195
- autovacuum_vacuum_scale_factor = 0.01, -- More aggressive
196
- autovacuum_vacuum_cost_delay = 2, -- Faster vacuum
197
- autovacuum_vacuum_cost_limit = 1000
198
- );
199
- ```
200
-
201
- ### Manual Vacuum Operations
202
-
203
- ```sql
204
- -- Full vacuum (locks table, reclaims space)
205
- VACUUM FULL users; -- Use sparingly, requires exclusive lock
206
-
207
- -- Regular vacuum (non-locking)
208
- VACUUM (ANALYZE, VERBOSE) users;
209
-
210
- -- Check table bloat
211
- SELECT
212
- schemaname, tablename,
213
- pg_size_pretty(pg_total_relation_size(schemaname||'.'||tablename)) as total_size,
214
- pg_size_pretty(pg_relation_size(schemaname||'.'||tablename)) as table_size,
215
- n_dead_tup,
216
- n_live_tup,
217
- round(n_dead_tup * 100.0 / NULLIF(n_live_tup + n_dead_tup, 0), 2) as dead_pct
218
- FROM pg_stat_user_tables
219
- WHERE n_live_tup > 0
220
- ORDER BY n_dead_tup DESC;
221
-
222
- -- Monitor autovacuum activity
223
- SELECT
224
- schemaname, relname,
225
- last_vacuum, last_autovacuum,
226
- last_analyze, last_autoanalyze,
227
- vacuum_count, autovacuum_count,
228
- analyze_count, autoanalyze_count
229
- FROM pg_stat_user_tables
230
- ORDER BY last_autovacuum DESC NULLS LAST;
231
- ```
232
-
233
- ## Connection Pooling
234
-
235
- ### Configuration
236
-
237
- ```sql
238
- -- Max connections (keep reasonable to manage memory)
239
- ALTER SYSTEM SET max_connections = 200;
240
-
241
- -- Reserved connections for superuser
242
- ALTER SYSTEM SET superuser_reserved_connections = 3;
243
-
244
- -- Connection lifecycle
245
- ALTER SYSTEM SET idle_in_transaction_session_timeout = '5min';
246
- ALTER SYSTEM SET statement_timeout = '30s'; -- Per-query timeout
247
-
248
- -- Monitor connections
249
- SELECT
250
- state,
251
- count(*),
252
- max(now() - state_change) as max_idle_time
253
- FROM pg_stat_activity
254
- WHERE state IS NOT NULL
255
- GROUP BY state;
256
-
257
- -- Find long-running queries
258
- SELECT
259
- pid,
260
- now() - pg_stat_activity.query_start AS duration,
261
- query,
262
- state
263
- FROM pg_stat_activity
264
- WHERE (now() - pg_stat_activity.query_start) > interval '5 minutes'
265
- AND state != 'idle';
266
- ```
267
-
268
- ## Lock Management
269
-
270
- ### Lock Monitoring
271
-
272
- ```sql
273
- -- Check current locks
274
- SELECT
275
- locktype,
276
- relation::regclass,
277
- mode,
278
- granted,
279
- pid,
280
- pg_blocking_pids(pid) as blocked_by
281
- FROM pg_locks
282
- WHERE NOT granted
283
- ORDER BY relation;
284
-
285
- -- Find blocking queries
286
- SELECT
287
- blocked_locks.pid AS blocked_pid,
288
- blocked_activity.usename AS blocked_user,
289
- blocking_locks.pid AS blocking_pid,
290
- blocking_activity.usename AS blocking_user,
291
- blocked_activity.query AS blocked_statement,
292
- blocking_activity.query AS blocking_statement
293
- FROM pg_catalog.pg_locks blocked_locks
294
- JOIN pg_catalog.pg_stat_activity blocked_activity ON blocked_activity.pid = blocked_locks.pid
295
- JOIN pg_catalog.pg_locks blocking_locks ON blocking_locks.locktype = blocked_locks.locktype
296
- AND blocking_locks.relation = blocked_locks.relation
297
- AND blocking_locks.pid != blocked_locks.pid
298
- JOIN pg_catalog.pg_stat_activity blocking_activity ON blocking_activity.pid = blocking_locks.pid
299
- WHERE NOT blocked_locks.granted;
300
-
301
- -- Deadlock configuration
302
- ALTER SYSTEM SET deadlock_timeout = '1s';
303
- ALTER SYSTEM SET log_lock_waits = on;
304
- ```
305
-
306
- ## Partitioning
307
-
308
- ### Range Partitioning
309
-
310
- ```sql
311
- -- Create partitioned table
312
- CREATE TABLE events (
313
- id BIGSERIAL,
314
- event_type VARCHAR(50),
315
- created_at TIMESTAMP NOT NULL,
316
- data JSONB
317
- ) PARTITION BY RANGE (created_at);
318
-
319
- -- Create partitions
320
- CREATE TABLE events_2024_01 PARTITION OF events
321
- FOR VALUES FROM ('2024-01-01') TO ('2024-02-01');
322
-
323
- CREATE TABLE events_2024_02 PARTITION OF events
324
- FOR VALUES FROM ('2024-02-01') TO ('2024-03-01');
325
-
326
- -- Create indexes on partitions
327
- CREATE INDEX idx_events_2024_01_type ON events_2024_01(event_type);
328
- CREATE INDEX idx_events_2024_02_type ON events_2024_02(event_type);
329
-
330
- -- Query uses partition pruning
331
- EXPLAIN (ANALYZE)
332
- SELECT * FROM events
333
- WHERE created_at >= '2024-01-15' AND created_at < '2024-01-20';
334
- -- Should show "Partitions pruned: X"
335
- ```
336
-
337
- ## Performance Monitoring
338
-
339
- ### Key Metrics Queries
340
-
341
- ```sql
342
- -- pg_stat_statements (install extension first)
343
- CREATE EXTENSION IF NOT EXISTS pg_stat_statements;
344
-
345
- -- Top slow queries
346
- SELECT
347
- round(total_exec_time::numeric, 2) as total_time,
348
- calls,
349
- round(mean_exec_time::numeric, 2) as mean_time,
350
- round((100 * total_exec_time / sum(total_exec_time) OVER ())::numeric, 2) as pct,
351
- query
352
- FROM pg_stat_statements
353
- ORDER BY total_exec_time DESC
354
- LIMIT 10;
355
-
356
- -- Cache hit ratio by table
357
- SELECT
358
- schemaname,
359
- tablename,
360
- heap_blks_hit,
361
- heap_blks_read,
362
- round(100.0 * heap_blks_hit / NULLIF(heap_blks_hit + heap_blks_read, 0), 2) as cache_hit_pct
363
- FROM pg_statio_user_tables
364
- WHERE heap_blks_hit + heap_blks_read > 0
365
- ORDER BY heap_blks_read DESC;
366
-
367
- -- Index usage statistics
368
- SELECT
369
- schemaname,
370
- tablename,
371
- indexname,
372
- idx_scan,
373
- idx_tup_read,
374
- idx_tup_fetch,
375
- pg_size_pretty(pg_relation_size(indexrelid)) as size
376
- FROM pg_stat_user_indexes
377
- ORDER BY idx_scan DESC;
378
- ```
379
-
380
- ## Configuration File Example
381
-
382
- ```ini
383
- # postgresql.conf - Production optimized for 16GB RAM server
384
-
385
- # Memory
386
- shared_buffers = 4GB
387
- effective_cache_size = 12GB
388
- work_mem = 40MB
389
- maintenance_work_mem = 2GB
390
-
391
- # WAL
392
- wal_buffers = 16MB
393
- checkpoint_completion_target = 0.9
394
- max_wal_size = 2GB
395
-
396
- # Query Planner
397
- default_statistics_target = 200
398
- random_page_cost = 1.1 # SSD
399
- effective_io_concurrency = 200 # SSD
400
-
401
- # Parallel Queries
402
- max_parallel_workers_per_gather = 4
403
- max_parallel_workers = 8
404
-
405
- # Connections
406
- max_connections = 200
407
-
408
- # Logging
409
- log_min_duration_statement = 1000 # Log queries > 1s
410
- log_line_prefix = '%t [%p]: [%l-1] user=%u,db=%d,app=%a,client=%h '
411
- log_checkpoints = on
412
- log_lock_waits = on
413
- ```
1
+ # PostgreSQL Tuning
2
+
3
+ ## Memory Configuration
4
+
5
+ ### Shared Buffers
6
+
7
+ ```sql
8
+ -- Recommended: 25% of system RAM (up to 40% for dedicated DB server)
9
+ -- For 16GB RAM server:
10
+ ALTER SYSTEM SET shared_buffers = '4GB';
11
+
12
+ -- Check current setting
13
+ SHOW shared_buffers;
14
+
15
+ -- Monitor buffer hit ratio (target: >99%)
16
+ SELECT
17
+ sum(heap_blks_read) as heap_read,
18
+ sum(heap_blks_hit) as heap_hit,
19
+ round(sum(heap_blks_hit) / nullif(sum(heap_blks_hit) + sum(heap_blks_read), 0) * 100, 2) as cache_hit_ratio
20
+ FROM pg_statio_user_tables;
21
+ ```
22
+
23
+ ### Work Memory
24
+
25
+ ```sql
26
+ -- Per-operation memory for sorting/hashing
27
+ -- Recommended: (Total RAM * 0.25) / max_connections
28
+ -- For 16GB RAM, 100 connections: ~40MB
29
+ ALTER SYSTEM SET work_mem = '40MB';
30
+
31
+ -- Monitor sorts
32
+ SELECT
33
+ query,
34
+ calls,
35
+ total_exec_time,
36
+ mean_exec_time,
37
+ min_exec_time,
38
+ max_exec_time
39
+ FROM pg_stat_statements
40
+ WHERE query LIKE '%ORDER BY%' OR query LIKE '%GROUP BY%'
41
+ ORDER BY total_exec_time DESC
42
+ LIMIT 10;
43
+
44
+ -- Set per-session for large operations
45
+ SET work_mem = '256MB';
46
+ SELECT ... ORDER BY ... LIMIT 1000;
47
+ RESET work_mem;
48
+ ```
49
+
50
+ ### Maintenance Work Memory
51
+
52
+ ```sql
53
+ -- For VACUUM, CREATE INDEX, ALTER TABLE
54
+ -- Recommended: 1-2GB for production systems
55
+ ALTER SYSTEM SET maintenance_work_mem = '2GB';
56
+
57
+ -- Autovacuum workers use proportional amount
58
+ ALTER SYSTEM SET autovacuum_work_mem = '512MB';
59
+ ```
60
+
61
+ ### Effective Cache Size
62
+
63
+ ```sql
64
+ -- Planner hint for available OS cache
65
+ -- Recommended: 50-75% of total RAM
66
+ -- For 16GB RAM:
67
+ ALTER SYSTEM SET effective_cache_size = '12GB';
68
+ ```
69
+
70
+ ## Query Planner Settings
71
+
72
+ ### Statistics Target
73
+
74
+ ```sql
75
+ -- Default is 100, increase for better estimates on complex queries
76
+ ALTER SYSTEM SET default_statistics_target = 200;
77
+
78
+ -- Per-column statistics for specific columns
79
+ ALTER TABLE users ALTER COLUMN email SET STATISTICS 500;
80
+
81
+ -- Force statistics update
82
+ ANALYZE users;
83
+
84
+ -- Check statistics quality
85
+ SELECT
86
+ schemaname, tablename, attname,
87
+ n_distinct, correlation
88
+ FROM pg_stats
89
+ WHERE tablename = 'users';
90
+ ```
91
+
92
+ ### Parallel Query Configuration
93
+
94
+ ```sql
95
+ -- Enable parallel queries
96
+ ALTER SYSTEM SET max_parallel_workers_per_gather = 4;
97
+ ALTER SYSTEM SET max_parallel_workers = 8;
98
+ ALTER SYSTEM SET parallel_setup_cost = 100;
99
+ ALTER SYSTEM SET parallel_tuple_cost = 0.01;
100
+
101
+ -- Minimum rows to consider parallel execution
102
+ ALTER SYSTEM SET min_parallel_table_scan_size = '8MB';
103
+ ALTER SYSTEM SET min_parallel_index_scan_size = '512kB';
104
+
105
+ -- Check if query uses parallel execution
106
+ EXPLAIN (ANALYZE, BUFFERS)
107
+ SELECT COUNT(*) FROM large_table WHERE condition = 'value';
108
+ -- Look for "Parallel Seq Scan" or "Gather" nodes
109
+ ```
110
+
111
+ ### Join and Scan Methods
112
+
113
+ ```sql
114
+ -- Enable all join methods (usually all enabled by default)
115
+ ALTER SYSTEM SET enable_hashjoin = on;
116
+ ALTER SYSTEM SET enable_mergejoin = on;
117
+ ALTER SYSTEM SET enable_nestloop = on;
118
+
119
+ -- Cost parameters (adjust based on hardware)
120
+ ALTER SYSTEM SET random_page_cost = 1.1; -- For SSD (default 4.0 is for HDD)
121
+ ALTER SYSTEM SET seq_page_cost = 1.0;
122
+
123
+ -- Disable methods for testing (don't do in production)
124
+ SET enable_seqscan = off; -- Force index usage for testing
125
+ ```
126
+
127
+ ## Write Performance Optimization
128
+
129
+ ### WAL Configuration
130
+
131
+ ```sql
132
+ -- WAL write strategy
133
+ ALTER SYSTEM SET wal_buffers = '16MB';
134
+ ALTER SYSTEM SET wal_writer_delay = '200ms';
135
+
136
+ -- Checkpoint configuration
137
+ ALTER SYSTEM SET checkpoint_completion_target = 0.9;
138
+ ALTER SYSTEM SET max_wal_size = '2GB';
139
+ ALTER SYSTEM SET min_wal_size = '1GB';
140
+
141
+ -- Monitor checkpoints
142
+ SELECT
143
+ checkpoints_timed,
144
+ checkpoints_req,
145
+ checkpoint_write_time,
146
+ checkpoint_sync_time,
147
+ buffers_checkpoint,
148
+ buffers_clean,
149
+ buffers_backend
150
+ FROM pg_stat_bgwriter;
151
+
152
+ -- Too many requested checkpoints = increase max_wal_size
153
+ ```
154
+
155
+ ### Commit Delays
156
+
157
+ ```sql
158
+ -- Group commits (trade latency for throughput)
159
+ ALTER SYSTEM SET commit_delay = 10000; -- 10ms
160
+ ALTER SYSTEM SET commit_siblings = 5;
161
+
162
+ -- Asynchronous commit (trade durability for speed)
163
+ -- Use cautiously - risk losing recent commits on crash
164
+ ALTER SYSTEM SET synchronous_commit = 'off';
165
+
166
+ -- Or per-transaction
167
+ BEGIN;
168
+ SET LOCAL synchronous_commit = 'off';
169
+ INSERT INTO logs (...) VALUES (...);
170
+ COMMIT;
171
+ ```
172
+
173
+ ## VACUUM and Autovacuum
174
+
175
+ ### Autovacuum Configuration
176
+
177
+ ```sql
178
+ -- Enable autovacuum (should always be on)
179
+ ALTER SYSTEM SET autovacuum = on;
180
+
181
+ -- Autovacuum worker settings
182
+ ALTER SYSTEM SET autovacuum_max_workers = 4;
183
+ ALTER SYSTEM SET autovacuum_naptime = '30s';
184
+
185
+ -- Thresholds for triggering autovacuum
186
+ ALTER SYSTEM SET autovacuum_vacuum_scale_factor = 0.1; -- 10% dead tuples
187
+ ALTER SYSTEM SET autovacuum_vacuum_threshold = 50;
188
+
189
+ -- Analyze thresholds
190
+ ALTER SYSTEM SET autovacuum_analyze_scale_factor = 0.05; -- 5% changed
191
+ ALTER SYSTEM SET autovacuum_analyze_threshold = 50;
192
+
193
+ -- Per-table autovacuum settings for high-churn tables
194
+ ALTER TABLE busy_table SET (
195
+ autovacuum_vacuum_scale_factor = 0.01, -- More aggressive
196
+ autovacuum_vacuum_cost_delay = 2, -- Faster vacuum
197
+ autovacuum_vacuum_cost_limit = 1000
198
+ );
199
+ ```
200
+
201
+ ### Manual Vacuum Operations
202
+
203
+ ```sql
204
+ -- Full vacuum (locks table, reclaims space)
205
+ VACUUM FULL users; -- Use sparingly, requires exclusive lock
206
+
207
+ -- Regular vacuum (non-locking)
208
+ VACUUM (ANALYZE, VERBOSE) users;
209
+
210
+ -- Check table bloat
211
+ SELECT
212
+ schemaname, tablename,
213
+ pg_size_pretty(pg_total_relation_size(schemaname||'.'||tablename)) as total_size,
214
+ pg_size_pretty(pg_relation_size(schemaname||'.'||tablename)) as table_size,
215
+ n_dead_tup,
216
+ n_live_tup,
217
+ round(n_dead_tup * 100.0 / NULLIF(n_live_tup + n_dead_tup, 0), 2) as dead_pct
218
+ FROM pg_stat_user_tables
219
+ WHERE n_live_tup > 0
220
+ ORDER BY n_dead_tup DESC;
221
+
222
+ -- Monitor autovacuum activity
223
+ SELECT
224
+ schemaname, relname,
225
+ last_vacuum, last_autovacuum,
226
+ last_analyze, last_autoanalyze,
227
+ vacuum_count, autovacuum_count,
228
+ analyze_count, autoanalyze_count
229
+ FROM pg_stat_user_tables
230
+ ORDER BY last_autovacuum DESC NULLS LAST;
231
+ ```
232
+
233
+ ## Connection Pooling
234
+
235
+ ### Configuration
236
+
237
+ ```sql
238
+ -- Max connections (keep reasonable to manage memory)
239
+ ALTER SYSTEM SET max_connections = 200;
240
+
241
+ -- Reserved connections for superuser
242
+ ALTER SYSTEM SET superuser_reserved_connections = 3;
243
+
244
+ -- Connection lifecycle
245
+ ALTER SYSTEM SET idle_in_transaction_session_timeout = '5min';
246
+ ALTER SYSTEM SET statement_timeout = '30s'; -- Per-query timeout
247
+
248
+ -- Monitor connections
249
+ SELECT
250
+ state,
251
+ count(*),
252
+ max(now() - state_change) as max_idle_time
253
+ FROM pg_stat_activity
254
+ WHERE state IS NOT NULL
255
+ GROUP BY state;
256
+
257
+ -- Find long-running queries
258
+ SELECT
259
+ pid,
260
+ now() - pg_stat_activity.query_start AS duration,
261
+ query,
262
+ state
263
+ FROM pg_stat_activity
264
+ WHERE (now() - pg_stat_activity.query_start) > interval '5 minutes'
265
+ AND state != 'idle';
266
+ ```
267
+
268
+ ## Lock Management
269
+
270
+ ### Lock Monitoring
271
+
272
+ ```sql
273
+ -- Check current locks
274
+ SELECT
275
+ locktype,
276
+ relation::regclass,
277
+ mode,
278
+ granted,
279
+ pid,
280
+ pg_blocking_pids(pid) as blocked_by
281
+ FROM pg_locks
282
+ WHERE NOT granted
283
+ ORDER BY relation;
284
+
285
+ -- Find blocking queries
286
+ SELECT
287
+ blocked_locks.pid AS blocked_pid,
288
+ blocked_activity.usename AS blocked_user,
289
+ blocking_locks.pid AS blocking_pid,
290
+ blocking_activity.usename AS blocking_user,
291
+ blocked_activity.query AS blocked_statement,
292
+ blocking_activity.query AS blocking_statement
293
+ FROM pg_catalog.pg_locks blocked_locks
294
+ JOIN pg_catalog.pg_stat_activity blocked_activity ON blocked_activity.pid = blocked_locks.pid
295
+ JOIN pg_catalog.pg_locks blocking_locks ON blocking_locks.locktype = blocked_locks.locktype
296
+ AND blocking_locks.relation = blocked_locks.relation
297
+ AND blocking_locks.pid != blocked_locks.pid
298
+ JOIN pg_catalog.pg_stat_activity blocking_activity ON blocking_activity.pid = blocking_locks.pid
299
+ WHERE NOT blocked_locks.granted;
300
+
301
+ -- Deadlock configuration
302
+ ALTER SYSTEM SET deadlock_timeout = '1s';
303
+ ALTER SYSTEM SET log_lock_waits = on;
304
+ ```
305
+
306
+ ## Partitioning
307
+
308
+ ### Range Partitioning
309
+
310
+ ```sql
311
+ -- Create partitioned table
312
+ CREATE TABLE events (
313
+ id BIGSERIAL,
314
+ event_type VARCHAR(50),
315
+ created_at TIMESTAMP NOT NULL,
316
+ data JSONB
317
+ ) PARTITION BY RANGE (created_at);
318
+
319
+ -- Create partitions
320
+ CREATE TABLE events_2024_01 PARTITION OF events
321
+ FOR VALUES FROM ('2024-01-01') TO ('2024-02-01');
322
+
323
+ CREATE TABLE events_2024_02 PARTITION OF events
324
+ FOR VALUES FROM ('2024-02-01') TO ('2024-03-01');
325
+
326
+ -- Create indexes on partitions
327
+ CREATE INDEX idx_events_2024_01_type ON events_2024_01(event_type);
328
+ CREATE INDEX idx_events_2024_02_type ON events_2024_02(event_type);
329
+
330
+ -- Query uses partition pruning
331
+ EXPLAIN (ANALYZE)
332
+ SELECT * FROM events
333
+ WHERE created_at >= '2024-01-15' AND created_at < '2024-01-20';
334
+ -- Should show "Partitions pruned: X"
335
+ ```
336
+
337
+ ## Performance Monitoring
338
+
339
+ ### Key Metrics Queries
340
+
341
+ ```sql
342
+ -- pg_stat_statements (install extension first)
343
+ CREATE EXTENSION IF NOT EXISTS pg_stat_statements;
344
+
345
+ -- Top slow queries
346
+ SELECT
347
+ round(total_exec_time::numeric, 2) as total_time,
348
+ calls,
349
+ round(mean_exec_time::numeric, 2) as mean_time,
350
+ round((100 * total_exec_time / sum(total_exec_time) OVER ())::numeric, 2) as pct,
351
+ query
352
+ FROM pg_stat_statements
353
+ ORDER BY total_exec_time DESC
354
+ LIMIT 10;
355
+
356
+ -- Cache hit ratio by table
357
+ SELECT
358
+ schemaname,
359
+ tablename,
360
+ heap_blks_hit,
361
+ heap_blks_read,
362
+ round(100.0 * heap_blks_hit / NULLIF(heap_blks_hit + heap_blks_read, 0), 2) as cache_hit_pct
363
+ FROM pg_statio_user_tables
364
+ WHERE heap_blks_hit + heap_blks_read > 0
365
+ ORDER BY heap_blks_read DESC;
366
+
367
+ -- Index usage statistics
368
+ SELECT
369
+ schemaname,
370
+ tablename,
371
+ indexname,
372
+ idx_scan,
373
+ idx_tup_read,
374
+ idx_tup_fetch,
375
+ pg_size_pretty(pg_relation_size(indexrelid)) as size
376
+ FROM pg_stat_user_indexes
377
+ ORDER BY idx_scan DESC;
378
+ ```
379
+
380
+ ## Configuration File Example
381
+
382
+ ```ini
383
+ # postgresql.conf - Production optimized for 16GB RAM server
384
+
385
+ # Memory
386
+ shared_buffers = 4GB
387
+ effective_cache_size = 12GB
388
+ work_mem = 40MB
389
+ maintenance_work_mem = 2GB
390
+
391
+ # WAL
392
+ wal_buffers = 16MB
393
+ checkpoint_completion_target = 0.9
394
+ max_wal_size = 2GB
395
+
396
+ # Query Planner
397
+ default_statistics_target = 200
398
+ random_page_cost = 1.1 # SSD
399
+ effective_io_concurrency = 200 # SSD
400
+
401
+ # Parallel Queries
402
+ max_parallel_workers_per_gather = 4
403
+ max_parallel_workers = 8
404
+
405
+ # Connections
406
+ max_connections = 200
407
+
408
+ # Logging
409
+ log_min_duration_statement = 1000 # Log queries > 1s
410
+ log_line_prefix = '%t [%p]: [%l-1] user=%u,db=%d,app=%a,client=%h '
411
+ log_checkpoints = on
412
+ log_lock_waits = on
413
+ ```