aios-core 2.1.6 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (367) hide show
  1. package/.aios-core/core/README.md +229 -229
  2. package/.aios-core/core/data/agent-config-requirements.yaml +368 -368
  3. package/.aios-core/core/data/aios-kb.md +923 -923
  4. package/.aios-core/core/data/workflow-patterns.yaml +267 -267
  5. package/.aios-core/core/docs/SHARD-TRANSLATION-GUIDE.md +335 -335
  6. package/.aios-core/core/docs/component-creation-guide.md +457 -457
  7. package/.aios-core/core/docs/session-update-pattern.md +307 -307
  8. package/.aios-core/core/docs/template-syntax.md +266 -266
  9. package/.aios-core/core/docs/troubleshooting-guide.md +624 -624
  10. package/.aios-core/core/elicitation/elicitation-engine.js +1 -1
  11. package/.aios-core/core/index.esm.js +42 -42
  12. package/.aios-core/core/index.js +1 -1
  13. package/.aios-core/core/migration/migration-config.yaml +83 -83
  14. package/.aios-core/core/migration/module-mapping.yaml +89 -89
  15. package/.aios-core/core/quality-gates/layer2-pr-automation.js +1 -1
  16. package/.aios-core/core/quality-gates/quality-gate-config.yaml +86 -86
  17. package/.aios-core/core/registry/README.md +179 -179
  18. package/.aios-core/core/utils/security-utils.js +1 -1
  19. package/.aios-core/core-config.yaml +391 -382
  20. package/.aios-core/data/agent-config-requirements.yaml +368 -368
  21. package/.aios-core/data/aios-kb.md +923 -923
  22. package/.aios-core/data/technical-preferences.md +3 -3
  23. package/.aios-core/data/workflow-patterns.yaml +267 -267
  24. package/.aios-core/development/README.md +142 -142
  25. package/.aios-core/development/agent-teams/team-all.yaml +15 -15
  26. package/.aios-core/development/agent-teams/team-fullstack.yaml +18 -18
  27. package/.aios-core/development/agent-teams/team-ide-minimal.yaml +10 -10
  28. package/.aios-core/development/agent-teams/team-no-ui.yaml +13 -13
  29. package/.aios-core/development/agent-teams/team-qa-focused.yaml +155 -155
  30. package/.aios-core/development/agents/aios-master.md +339 -339
  31. package/.aios-core/development/agents/analyst.md +195 -195
  32. package/.aios-core/development/agents/architect.md +359 -359
  33. package/.aios-core/development/agents/data-engineer.md +468 -468
  34. package/.aios-core/development/agents/dev.md +390 -390
  35. package/.aios-core/development/agents/devops.md +398 -398
  36. package/.aios-core/development/agents/pm.md +198 -198
  37. package/.aios-core/development/agents/po.md +256 -256
  38. package/.aios-core/development/agents/qa.md +312 -312
  39. package/.aios-core/development/agents/sm.md +220 -220
  40. package/.aios-core/development/agents/ux-design-expert.md +451 -451
  41. package/.aios-core/development/scripts/greeting-config-cli.js +85 -85
  42. package/.aios-core/development/tasks/add-mcp.md +319 -319
  43. package/.aios-core/development/tasks/advanced-elicitation.md +318 -318
  44. package/.aios-core/development/tasks/analyst-facilitate-brainstorming.md +341 -341
  45. package/.aios-core/development/tasks/analyze-framework.md +696 -696
  46. package/.aios-core/development/tasks/analyze-performance.md +637 -637
  47. package/.aios-core/development/tasks/apply-qa-fixes.md +340 -340
  48. package/.aios-core/development/tasks/architect-analyze-impact.md +826 -826
  49. package/.aios-core/development/tasks/audit-codebase.md +429 -429
  50. package/.aios-core/development/tasks/audit-tailwind-config.md +270 -270
  51. package/.aios-core/development/tasks/audit-utilities.md +358 -358
  52. package/.aios-core/development/tasks/bootstrap-shadcn-library.md +286 -286
  53. package/.aios-core/development/tasks/brownfield-create-epic.md +485 -485
  54. package/.aios-core/development/tasks/brownfield-create-story.md +356 -356
  55. package/.aios-core/development/tasks/build-component.md +478 -478
  56. package/.aios-core/development/tasks/calculate-roi.md +455 -455
  57. package/.aios-core/development/tasks/ci-cd-configuration.md +764 -764
  58. package/.aios-core/development/tasks/cleanup-utilities.md +670 -670
  59. package/.aios-core/development/tasks/collaborative-edit.md +1108 -1108
  60. package/.aios-core/development/tasks/compose-molecule.md +284 -284
  61. package/.aios-core/development/tasks/consolidate-patterns.md +414 -414
  62. package/.aios-core/development/tasks/correct-course.md +279 -279
  63. package/.aios-core/development/tasks/create-agent.md +321 -321
  64. package/.aios-core/development/tasks/create-brownfield-story.md +726 -726
  65. package/.aios-core/development/tasks/create-deep-research-prompt.md +498 -498
  66. package/.aios-core/development/tasks/create-doc.md +316 -316
  67. package/.aios-core/development/tasks/create-next-story.md +774 -774
  68. package/.aios-core/development/tasks/create-suite.md +283 -283
  69. package/.aios-core/development/tasks/create-task.md +371 -371
  70. package/.aios-core/development/tasks/create-workflow.md +370 -370
  71. package/.aios-core/development/tasks/db-analyze-hotpaths.md +572 -572
  72. package/.aios-core/development/tasks/db-apply-migration.md +381 -381
  73. package/.aios-core/development/tasks/db-bootstrap.md +642 -642
  74. package/.aios-core/development/tasks/db-domain-modeling.md +693 -693
  75. package/.aios-core/development/tasks/db-dry-run.md +293 -293
  76. package/.aios-core/development/tasks/db-env-check.md +260 -260
  77. package/.aios-core/development/tasks/db-expansion-pack-integration.md +663 -663
  78. package/.aios-core/development/tasks/db-explain.md +631 -631
  79. package/.aios-core/development/tasks/db-impersonate.md +495 -495
  80. package/.aios-core/development/tasks/db-load-csv.md +593 -593
  81. package/.aios-core/development/tasks/db-policy-apply.md +653 -653
  82. package/.aios-core/development/tasks/db-rls-audit.md +411 -411
  83. package/.aios-core/development/tasks/db-rollback.md +739 -739
  84. package/.aios-core/development/tasks/db-run-sql.md +613 -613
  85. package/.aios-core/development/tasks/db-schema-audit.md +1011 -1011
  86. package/.aios-core/development/tasks/db-seed.md +390 -390
  87. package/.aios-core/development/tasks/db-smoke-test.md +351 -351
  88. package/.aios-core/development/tasks/db-snapshot.md +569 -569
  89. package/.aios-core/development/tasks/db-supabase-setup.md +712 -712
  90. package/.aios-core/development/tasks/db-verify-order.md +515 -515
  91. package/.aios-core/development/tasks/deprecate-component.md +956 -956
  92. package/.aios-core/development/tasks/dev-apply-qa-fixes.md +318 -318
  93. package/.aios-core/development/tasks/dev-backlog-debt.md +469 -469
  94. package/.aios-core/development/tasks/dev-develop-story.md +846 -846
  95. package/.aios-core/development/tasks/dev-improve-code-quality.md +872 -872
  96. package/.aios-core/development/tasks/dev-optimize-performance.md +1033 -1033
  97. package/.aios-core/development/tasks/dev-suggest-refactoring.md +870 -870
  98. package/.aios-core/development/tasks/dev-validate-next-story.md +348 -348
  99. package/.aios-core/development/tasks/document-project.md +552 -552
  100. package/.aios-core/development/tasks/environment-bootstrap.md +1311 -1311
  101. package/.aios-core/development/tasks/execute-checklist.md +301 -301
  102. package/.aios-core/development/tasks/export-design-tokens-dtcg.md +274 -274
  103. package/.aios-core/development/tasks/extend-pattern.md +269 -269
  104. package/.aios-core/development/tasks/extract-tokens.md +467 -467
  105. package/.aios-core/development/tasks/facilitate-brainstorming-session.md +518 -518
  106. package/.aios-core/development/tasks/generate-ai-frontend-prompt.md +260 -260
  107. package/.aios-core/development/tasks/generate-documentation.md +284 -284
  108. package/.aios-core/development/tasks/generate-migration-strategy.md +522 -522
  109. package/.aios-core/development/tasks/generate-shock-report.md +501 -501
  110. package/.aios-core/development/tasks/github-devops-github-pr-automation.md +427 -427
  111. package/.aios-core/development/tasks/github-devops-pre-push-quality-gate.md +733 -733
  112. package/.aios-core/development/tasks/github-devops-repository-cleanup.md +374 -374
  113. package/.aios-core/development/tasks/github-devops-version-management.md +483 -483
  114. package/.aios-core/development/tasks/improve-self.md +822 -822
  115. package/.aios-core/development/tasks/index-docs.md +387 -387
  116. package/.aios-core/development/tasks/init-project-status.md +506 -506
  117. package/.aios-core/development/tasks/integrate-expansion-pack.md +314 -314
  118. package/.aios-core/development/tasks/kb-mode-interaction.md +283 -283
  119. package/.aios-core/development/tasks/learn-patterns.md +900 -900
  120. package/.aios-core/development/tasks/mcp-workflow.md +437 -437
  121. package/.aios-core/development/tasks/modify-agent.md +381 -381
  122. package/.aios-core/development/tasks/modify-task.md +424 -424
  123. package/.aios-core/development/tasks/modify-workflow.md +465 -465
  124. package/.aios-core/development/tasks/po-backlog-add.md +370 -370
  125. package/.aios-core/development/tasks/po-manage-story-backlog.md +523 -523
  126. package/.aios-core/development/tasks/po-pull-story-from-clickup.md +540 -540
  127. package/.aios-core/development/tasks/po-pull-story.md +316 -316
  128. package/.aios-core/development/tasks/po-stories-index.md +351 -351
  129. package/.aios-core/development/tasks/po-sync-story-to-clickup.md +457 -457
  130. package/.aios-core/development/tasks/po-sync-story.md +303 -303
  131. package/.aios-core/development/tasks/pr-automation.md +701 -701
  132. package/.aios-core/development/tasks/propose-modification.md +842 -842
  133. package/.aios-core/development/tasks/qa-backlog-add-followup.md +425 -425
  134. package/.aios-core/development/tasks/qa-gate.md +373 -373
  135. package/.aios-core/development/tasks/qa-generate-tests.md +1174 -1174
  136. package/.aios-core/development/tasks/qa-nfr-assess.md +557 -557
  137. package/.aios-core/development/tasks/qa-review-proposal.md +1157 -1157
  138. package/.aios-core/development/tasks/qa-review-story.md +682 -682
  139. package/.aios-core/development/tasks/qa-risk-profile.md +566 -566
  140. package/.aios-core/development/tasks/qa-run-tests.md +277 -277
  141. package/.aios-core/development/tasks/qa-test-design.md +387 -387
  142. package/.aios-core/development/tasks/qa-trace-requirements.md +476 -476
  143. package/.aios-core/development/tasks/release-management.md +723 -723
  144. package/.aios-core/development/tasks/security-audit.md +554 -554
  145. package/.aios-core/development/tasks/security-scan.md +790 -790
  146. package/.aios-core/development/tasks/setup-database.md +741 -741
  147. package/.aios-core/development/tasks/setup-design-system.md +462 -462
  148. package/.aios-core/development/tasks/setup-github.md +874 -874
  149. package/.aios-core/development/tasks/setup-llm-routing.md +1 -1
  150. package/.aios-core/development/tasks/setup-mcp-docker.md +584 -584
  151. package/.aios-core/development/tasks/setup-project-docs.md +1 -1
  152. package/.aios-core/development/tasks/shard-doc.md +537 -537
  153. package/.aios-core/development/tasks/sm-create-next-story.md +480 -480
  154. package/.aios-core/development/tasks/sync-documentation.md +864 -864
  155. package/.aios-core/development/tasks/tailwind-upgrade.md +294 -294
  156. package/.aios-core/development/tasks/test-as-user.md +621 -621
  157. package/.aios-core/development/tasks/test-validation-task.md +171 -171
  158. package/.aios-core/development/tasks/undo-last.md +346 -346
  159. package/.aios-core/development/tasks/update-manifest.md +409 -409
  160. package/.aios-core/development/tasks/ux-create-wireframe.md +617 -617
  161. package/.aios-core/development/tasks/ux-ds-scan-artifact.md +672 -672
  162. package/.aios-core/development/tasks/ux-user-research.md +559 -559
  163. package/.aios-core/development/tasks/validate-next-story.md +422 -422
  164. package/.aios-core/development/workflows/README.md +83 -83
  165. package/.aios-core/development/workflows/brownfield-fullstack.yaml +297 -297
  166. package/.aios-core/development/workflows/brownfield-service.yaml +187 -187
  167. package/.aios-core/development/workflows/brownfield-ui.yaml +197 -197
  168. package/.aios-core/development/workflows/greenfield-fullstack.yaml +333 -333
  169. package/.aios-core/development/workflows/greenfield-service.yaml +206 -206
  170. package/.aios-core/development/workflows/greenfield-ui.yaml +235 -235
  171. package/.aios-core/docs/SHARD-TRANSLATION-GUIDE.md +335 -335
  172. package/.aios-core/docs/component-creation-guide.md +457 -457
  173. package/.aios-core/docs/session-update-pattern.md +307 -307
  174. package/.aios-core/docs/standards/AGENT-PERSONALIZATION-STANDARD-V1.md +572 -572
  175. package/.aios-core/docs/standards/AIOS-COLOR-PALETTE-QUICK-REFERENCE.md +185 -185
  176. package/.aios-core/docs/standards/AIOS-COLOR-PALETTE-V2.1.md +354 -354
  177. package/.aios-core/docs/standards/AIOS-FRAMEWORK-MASTER.md +1963 -1963
  178. package/.aios-core/docs/standards/AIOS-LIVRO-DE-OURO-V2.1-COMPLETE.md +821 -821
  179. package/.aios-core/docs/standards/AIOS-LIVRO-DE-OURO-V2.1-SUMMARY.md +1190 -1190
  180. package/.aios-core/docs/standards/AIOS-LIVRO-DE-OURO-V2.1.md +439 -439
  181. package/.aios-core/docs/standards/AIOS-LIVRO-DE-OURO-V2.2-SUMMARY.md +1339 -1339
  182. package/.aios-core/docs/standards/AIOS-LIVRO-DE-OURO.md +5398 -5398
  183. package/.aios-core/docs/standards/EXECUTOR-DECISION-TREE.md +697 -697
  184. package/.aios-core/docs/standards/OPEN-SOURCE-VS-SERVICE-DIFFERENCES.md +511 -511
  185. package/.aios-core/docs/standards/QUALITY-GATES-SPECIFICATION.md +556 -556
  186. package/.aios-core/docs/standards/STANDARDS-INDEX.md +210 -210
  187. package/.aios-core/docs/standards/STORY-TEMPLATE-V2-SPECIFICATION.md +550 -550
  188. package/.aios-core/docs/standards/TASK-FORMAT-SPECIFICATION-V1.md +1414 -1414
  189. package/.aios-core/docs/standards/V3-ARCHITECTURAL-DECISIONS.md +523 -523
  190. package/.aios-core/docs/template-syntax.md +266 -266
  191. package/.aios-core/docs/troubleshooting-guide.md +624 -624
  192. package/.aios-core/index.esm.js +15 -15
  193. package/.aios-core/index.js +1 -1
  194. package/.aios-core/infrastructure/README.md +126 -126
  195. package/.aios-core/infrastructure/integrations/pm-adapters/README.md +59 -59
  196. package/.aios-core/infrastructure/scripts/approval-workflow.js +1 -1
  197. package/.aios-core/infrastructure/scripts/batch-creator.js +1 -1
  198. package/.aios-core/infrastructure/scripts/component-generator.js +3 -3
  199. package/.aios-core/infrastructure/scripts/component-metadata.js +1 -1
  200. package/.aios-core/infrastructure/scripts/component-search.js +1 -1
  201. package/.aios-core/infrastructure/scripts/coverage-analyzer.js +1 -1
  202. package/.aios-core/infrastructure/scripts/dependency-analyzer.js +1 -1
  203. package/.aios-core/infrastructure/scripts/dependency-impact-analyzer.js +1 -1
  204. package/.aios-core/infrastructure/scripts/framework-analyzer.js +1 -1
  205. package/.aios-core/infrastructure/scripts/improvement-engine.js +1 -1
  206. package/.aios-core/infrastructure/scripts/llm-routing/install-llm-routing.js +26 -13
  207. package/.aios-core/infrastructure/scripts/llm-routing/templates/claude-free-tracked.cmd +127 -0
  208. package/.aios-core/infrastructure/scripts/llm-routing/templates/claude-free-tracked.sh +108 -0
  209. package/.aios-core/infrastructure/scripts/llm-routing/templates/deepseek-proxy.cmd +71 -0
  210. package/.aios-core/infrastructure/scripts/llm-routing/templates/deepseek-proxy.sh +65 -0
  211. package/.aios-core/infrastructure/scripts/llm-routing/templates/deepseek-usage.cmd +51 -0
  212. package/.aios-core/infrastructure/scripts/llm-routing/templates/deepseek-usage.sh +16 -0
  213. package/.aios-core/infrastructure/scripts/llm-routing/usage-tracker/index.js +549 -0
  214. package/.aios-core/infrastructure/scripts/modification-risk-assessment.js +1 -1
  215. package/.aios-core/infrastructure/scripts/performance-analyzer.js +1 -1
  216. package/.aios-core/infrastructure/scripts/pm-adapter.js +134 -134
  217. package/.aios-core/infrastructure/scripts/repository-detector.js +3 -3
  218. package/.aios-core/infrastructure/scripts/template-engine.js +1 -1
  219. package/.aios-core/infrastructure/scripts/template-validator.js +1 -1
  220. package/.aios-core/infrastructure/scripts/test-generator.js +1 -1
  221. package/.aios-core/infrastructure/scripts/test-quality-assessment.js +1 -1
  222. package/.aios-core/infrastructure/scripts/transaction-manager.js +1 -1
  223. package/.aios-core/infrastructure/scripts/usage-analytics.js +1 -1
  224. package/.aios-core/infrastructure/scripts/visual-impact-generator.js +2 -2
  225. package/.aios-core/infrastructure/templates/github-workflows/README.md +109 -109
  226. package/.aios-core/infrastructure/tests/regression-suite-v2.md +621 -621
  227. package/.aios-core/infrastructure/tools/README.md +222 -222
  228. package/.aios-core/infrastructure/tools/cli/github-cli.yaml +200 -200
  229. package/.aios-core/infrastructure/tools/cli/railway-cli.yaml +260 -260
  230. package/.aios-core/infrastructure/tools/cli/supabase-cli.yaml +224 -224
  231. package/.aios-core/infrastructure/tools/local/ffmpeg.yaml +261 -261
  232. package/.aios-core/infrastructure/tools/mcp/21st-dev-magic.yaml +127 -127
  233. package/.aios-core/infrastructure/tools/mcp/browser.yaml +103 -103
  234. package/.aios-core/infrastructure/tools/mcp/clickup.yaml +534 -534
  235. package/.aios-core/infrastructure/tools/mcp/context7.yaml +78 -78
  236. package/.aios-core/infrastructure/tools/mcp/desktop-commander.yaml +180 -180
  237. package/.aios-core/infrastructure/tools/mcp/exa.yaml +103 -103
  238. package/.aios-core/infrastructure/tools/mcp/google-workspace.yaml +930 -930
  239. package/.aios-core/infrastructure/tools/mcp/n8n.yaml +551 -551
  240. package/.aios-core/infrastructure/tools/mcp/supabase.yaml +808 -808
  241. package/.aios-core/install-manifest.yaml +347 -347
  242. package/.aios-core/product/README.md +56 -56
  243. package/.aios-core/product/checklists/accessibility-wcag-checklist.md +80 -0
  244. package/.aios-core/product/checklists/architect-checklist.md +443 -443
  245. package/.aios-core/product/checklists/change-checklist.md +182 -182
  246. package/.aios-core/product/checklists/component-quality-checklist.md +74 -0
  247. package/.aios-core/product/checklists/database-design-checklist.md +119 -119
  248. package/.aios-core/product/checklists/dba-predeploy-checklist.md +97 -97
  249. package/.aios-core/product/checklists/dba-rollback-checklist.md +99 -99
  250. package/.aios-core/product/checklists/migration-readiness-checklist.md +75 -0
  251. package/.aios-core/product/checklists/pattern-audit-checklist.md +88 -0
  252. package/.aios-core/product/checklists/pm-checklist.md +375 -375
  253. package/.aios-core/product/checklists/po-master-checklist.md +441 -441
  254. package/.aios-core/product/checklists/pre-push-checklist.md +108 -108
  255. package/.aios-core/product/checklists/release-checklist.md +122 -122
  256. package/.aios-core/product/checklists/story-dod-checklist.md +101 -101
  257. package/.aios-core/product/checklists/story-draft-checklist.md +215 -215
  258. package/.aios-core/product/data/atomic-design-principles.md +108 -0
  259. package/.aios-core/product/data/brainstorming-techniques.md +36 -36
  260. package/.aios-core/product/data/consolidation-algorithms.md +142 -0
  261. package/.aios-core/product/data/database-best-practices.md +182 -0
  262. package/.aios-core/product/data/design-token-best-practices.md +107 -0
  263. package/.aios-core/product/data/elicitation-methods.md +134 -134
  264. package/.aios-core/product/data/integration-patterns.md +207 -0
  265. package/.aios-core/product/data/migration-safety-guide.md +329 -0
  266. package/.aios-core/product/data/mode-selection-best-practices.md +471 -471
  267. package/.aios-core/product/data/postgres-tuning-guide.md +300 -0
  268. package/.aios-core/product/data/rls-security-patterns.md +333 -0
  269. package/.aios-core/product/data/roi-calculation-guide.md +142 -0
  270. package/.aios-core/product/data/supabase-patterns.md +330 -0
  271. package/.aios-core/product/data/test-levels-framework.md +148 -148
  272. package/.aios-core/product/data/test-priorities-matrix.md +174 -174
  273. package/.aios-core/product/data/wcag-compliance-guide.md +267 -0
  274. package/.aios-core/product/templates/1mcp-config.yaml +225 -225
  275. package/.aios-core/product/templates/activation-instructions-inline-greeting.yaml +63 -63
  276. package/.aios-core/product/templates/activation-instructions-template.md +258 -258
  277. package/.aios-core/product/templates/agent-template.yaml +120 -120
  278. package/.aios-core/product/templates/architecture-tmpl.yaml +650 -650
  279. package/.aios-core/product/templates/brainstorming-output-tmpl.yaml +155 -155
  280. package/.aios-core/product/templates/brownfield-architecture-tmpl.yaml +475 -475
  281. package/.aios-core/product/templates/brownfield-prd-tmpl.yaml +279 -279
  282. package/.aios-core/product/templates/changelog-template.md +134 -134
  283. package/.aios-core/product/templates/command-rationalization-matrix.md +152 -152
  284. package/.aios-core/product/templates/competitor-analysis-tmpl.yaml +292 -292
  285. package/.aios-core/product/templates/design-story-tmpl.yaml +587 -587
  286. package/.aios-core/product/templates/ds-artifact-analysis.md +70 -70
  287. package/.aios-core/product/templates/front-end-architecture-tmpl.yaml +205 -205
  288. package/.aios-core/product/templates/front-end-spec-tmpl.yaml +348 -348
  289. package/.aios-core/product/templates/fullstack-architecture-tmpl.yaml +804 -804
  290. package/.aios-core/product/templates/github-pr-template.md +67 -67
  291. package/.aios-core/product/templates/gordon-mcp.yaml +140 -140
  292. package/.aios-core/product/templates/ide-rules/antigravity-rules.md +115 -115
  293. package/.aios-core/product/templates/ide-rules/claude-rules.md +221 -221
  294. package/.aios-core/product/templates/ide-rules/cline-rules.md +84 -84
  295. package/.aios-core/product/templates/ide-rules/copilot-rules.md +92 -92
  296. package/.aios-core/product/templates/ide-rules/cursor-rules.md +115 -115
  297. package/.aios-core/product/templates/ide-rules/gemini-rules.md +85 -85
  298. package/.aios-core/product/templates/ide-rules/roo-rules.md +86 -86
  299. package/.aios-core/product/templates/ide-rules/trae-rules.md +104 -104
  300. package/.aios-core/product/templates/ide-rules/windsurf-rules.md +80 -80
  301. package/.aios-core/product/templates/index-strategy-tmpl.yaml +53 -53
  302. package/.aios-core/product/templates/market-research-tmpl.yaml +251 -251
  303. package/.aios-core/product/templates/mcp-workflow.js +271 -271
  304. package/.aios-core/product/templates/migration-plan-tmpl.yaml +1022 -1022
  305. package/.aios-core/product/templates/migration-strategy-tmpl.md +524 -524
  306. package/.aios-core/product/templates/personalized-agent-template.md +258 -258
  307. package/.aios-core/product/templates/personalized-checklist-template.md +340 -340
  308. package/.aios-core/product/templates/personalized-task-template-v2.md +905 -905
  309. package/.aios-core/product/templates/personalized-task-template.md +344 -344
  310. package/.aios-core/product/templates/personalized-template-file.yaml +322 -322
  311. package/.aios-core/product/templates/personalized-workflow-template.yaml +460 -460
  312. package/.aios-core/product/templates/prd-tmpl.yaml +201 -201
  313. package/.aios-core/product/templates/project-brief-tmpl.yaml +220 -220
  314. package/.aios-core/product/templates/qa-gate-tmpl.yaml +240 -240
  315. package/.aios-core/product/templates/rls-policies-tmpl.yaml +1203 -1203
  316. package/.aios-core/product/templates/schema-design-tmpl.yaml +428 -428
  317. package/.aios-core/product/templates/state-persistence-tmpl.yaml +219 -219
  318. package/.aios-core/product/templates/story-tmpl.yaml +331 -331
  319. package/.aios-core/product/templates/task-execution-report.md +495 -495
  320. package/.aios-core/product/templates/task-template.md +122 -122
  321. package/.aios-core/product/templates/token-exports-tailwind-tmpl.js +395 -395
  322. package/.aios-core/product/templates/tokens-schema-tmpl.yaml +305 -305
  323. package/.aios-core/product/templates/workflow-template.yaml +133 -133
  324. package/.aios-core/scripts/README.md +354 -354
  325. package/.aios-core/scripts/aios-doc-template.md +325 -325
  326. package/.aios-core/scripts/elicitation-engine.js +1 -1
  327. package/.aios-core/scripts/test-template-system.js +1 -1
  328. package/.aios-core/scripts/workflow-management.md +69 -69
  329. package/.aios-core/user-guide.md +1413 -1413
  330. package/.aios-core/working-in-the-brownfield.md +361 -361
  331. package/LICENSE +1 -1
  332. package/README.md +702 -703
  333. package/bin/aios-init-old.js +3 -3
  334. package/bin/aios-init-v4.js +1 -1
  335. package/bin/aios-init.backup-v1.1.4.js +1 -1
  336. package/bin/aios-init.js +3 -3
  337. package/bin/aios.js +279 -279
  338. package/bin/utils/install-errors.js +339 -339
  339. package/bin/utils/install-transaction.js +445 -445
  340. package/index.d.ts +18 -18
  341. package/index.esm.js +20 -20
  342. package/index.js +6 -6
  343. package/package.json +8 -10
  344. package/packages/installer/src/config/templates/env-template.js +27 -4
  345. package/packages/installer/src/detection/detect-project-type.js +81 -81
  346. package/packages/installer/tests/integration/wizard-detection.test.js +8 -6
  347. package/packages/installer/tests/unit/env-template.test.js +8 -8
  348. package/src/config/ide-configs.js +1 -1
  349. package/src/wizard/feedback.js +2 -2
  350. package/src/wizard/index.js +1 -1
  351. package/src/wizard/validation/report-generator.js +1 -1
  352. package/src/wizard/validation/troubleshooting-system.js +13 -13
  353. package/.aios-core/infrastructure/scripts/_archived/final-todo-count.js +0 -122
  354. package/.aios-core/infrastructure/scripts/_archived/fix-yaml-formatting.js +0 -89
  355. package/.aios-core/infrastructure/scripts/_archived/migration-generator.js +0 -780
  356. package/.aios-core/infrastructure/scripts/_archived/migration-path-generator.js +0 -950
  357. package/.aios-core/infrastructure/scripts/_archived/phase2-entrada-saida-errors.js +0 -425
  358. package/.aios-core/infrastructure/scripts/_archived/phase2-spot-check.js +0 -132
  359. package/.aios-core/infrastructure/scripts/_archived/phase3-tools-scripts-validation.js +0 -381
  360. package/.aios-core/infrastructure/scripts/_archived/phase4-metadata-performance.js +0 -203
  361. package/.aios-core/infrastructure/scripts/_archived/test-yaml-parsing.js +0 -24
  362. package/.aios-core/infrastructure/scripts/_archived/verify-yaml-fix.js +0 -51
  363. package/.aios-core/tasks/find-component.md.legacy +0 -391
  364. package/.aios-core/tasks/generate-commit-message.md.legacy +0 -426
  365. package/.aios-core/tasks/generate-migration.md.legacy +0 -382
  366. package/.aios-core/tasks/rollback-modification.md.legacy +0 -307
  367. package/.aios-core/tasks/update-tests.md.legacy +0 -283
@@ -1,637 +1,637 @@
1
- # Task: Analyze Performance
2
-
3
- **Purpose**: Query performance analysis and optimization (explain plans, hotpath detection, interactive optimization)
4
-
5
- **Elicit**: true
6
-
7
- **Consolidated From (Story 6.1.2.3):**
8
- - `db-explain.md` - Query execution plan analysis
9
- - `db-analyze-hotpaths.md` - Performance bottleneck detection
10
- - `query-optimization.md` - Interactive query optimization (if existed)
11
-
12
- ---
13
-
14
- ## Execution Modes
15
-
16
- **Choose your execution mode:**
17
-
18
- ### 1. YOLO Mode - Fast, Autonomous (0-1 prompts)
19
- - Autonomous decision making with logging
20
- - Minimal user interaction
21
- - **Best for:** Simple, deterministic tasks
22
-
23
- ### 2. Interactive Mode - Balanced, Educational (5-10 prompts) **[DEFAULT]**
24
- - Explicit decision checkpoints
25
- - Educational explanations
26
- - **Best for:** Learning, complex decisions
27
-
28
- ### 3. Pre-Flight Planning - Comprehensive Upfront Planning
29
- - Task analysis phase (identify all ambiguities)
30
- - Zero ambiguity execution
31
- - **Best for:** Ambiguous requirements, critical work
32
-
33
- **Parameter:** `mode` (optional, default: `interactive`)
34
-
35
- ---
36
-
37
- ## Task Definition (AIOS Task Format V1.0)
38
-
39
- ```yaml
40
- task: analyzePerformance()
41
- responsável: Dex (Builder)
42
- responsavel_type: Agente
43
- atomic_layer: Strategy
44
-
45
- **Entrada:**
46
- - campo: target
47
- tipo: string
48
- origem: User Input
49
- obrigatório: true
50
- validação: Valid path or identifier
51
-
52
- - campo: options
53
- tipo: object
54
- origem: config
55
- obrigatório: false
56
- validação: Analysis configuration
57
-
58
- - campo: depth
59
- tipo: number
60
- origem: User Input
61
- obrigatório: false
62
- validação: Default: 1 (0-3)
63
-
64
- **Saída:**
65
- - campo: analysis_report
66
- tipo: object
67
- destino: File (.ai/*.json)
68
- persistido: true
69
-
70
- - campo: findings
71
- tipo: array
72
- destino: Memory
73
- persistido: false
74
-
75
- - campo: metrics
76
- tipo: object
77
- destino: Memory
78
- persistido: false
79
- ```
80
-
81
- ---
82
-
83
- ## Pre-Conditions
84
-
85
- **Purpose:** Validate prerequisites BEFORE task execution (blocking)
86
-
87
- **Checklist:**
88
-
89
- ```yaml
90
- pre-conditions:
91
- - [ ] Target exists and is accessible; analysis tools available
92
- tipo: pre-condition
93
- blocker: true
94
- validação: |
95
- Check target exists and is accessible; analysis tools available
96
- error_message: "Pre-condition failed: Target exists and is accessible; analysis tools available"
97
- ```
98
-
99
- ---
100
-
101
- ## Post-Conditions
102
-
103
- **Purpose:** Validate execution success AFTER task completes
104
-
105
- **Checklist:**
106
-
107
- ```yaml
108
- post-conditions:
109
- - [ ] Analysis complete; report generated; no critical issues
110
- tipo: post-condition
111
- blocker: true
112
- validação: |
113
- Verify analysis complete; report generated; no critical issues
114
- error_message: "Post-condition failed: Analysis complete; report generated; no critical issues"
115
- ```
116
-
117
- ---
118
-
119
- ## Acceptance Criteria
120
-
121
- **Purpose:** Definitive pass/fail criteria for task completion
122
-
123
- **Checklist:**
124
-
125
- ```yaml
126
- acceptance-criteria:
127
- - [ ] Analysis accurate; all targets covered; report complete
128
- tipo: acceptance-criterion
129
- blocker: true
130
- validação: |
131
- Assert analysis accurate; all targets covered; report complete
132
- error_message: "Acceptance criterion not met: Analysis accurate; all targets covered; report complete"
133
- ```
134
-
135
- ---
136
-
137
- ## Tools
138
-
139
- **External/shared resources used by this task:**
140
-
141
- - **Tool:** code-analyzer
142
- - **Purpose:** Static code analysis and metrics
143
- - **Source:** .aios-core/utils/code-analyzer.js
144
-
145
- - **Tool:** file-system
146
- - **Purpose:** Recursive directory traversal
147
- - **Source:** Node.js fs module
148
-
149
- ---
150
-
151
- ## Scripts
152
-
153
- **Agent-specific code for this task:**
154
-
155
- - **Script:** analyze-codebase.js
156
- - **Purpose:** Codebase analysis and reporting
157
- - **Language:** JavaScript
158
- - **Location:** .aios-core/scripts/analyze-codebase.js
159
-
160
- ---
161
-
162
- ## Error Handling
163
-
164
- **Strategy:** fallback
165
-
166
- **Common Errors:**
167
-
168
- 1. **Error:** Target Not Accessible
169
- - **Cause:** Path does not exist or permissions denied
170
- - **Resolution:** Verify path and check permissions
171
- - **Recovery:** Skip inaccessible paths, continue with accessible ones
172
-
173
- 2. **Error:** Analysis Timeout
174
- - **Cause:** Analysis exceeds time limit for large codebases
175
- - **Resolution:** Reduce analysis depth or scope
176
- - **Recovery:** Return partial results with timeout warning
177
-
178
- 3. **Error:** Memory Limit Exceeded
179
- - **Cause:** Large codebase exceeds memory allocation
180
- - **Resolution:** Process in batches or increase memory limit
181
- - **Recovery:** Graceful degradation to summary analysis
182
-
183
- ---
184
-
185
- ## Performance
186
-
187
- **Expected Metrics:**
188
-
189
- ```yaml
190
- duration_expected: 5-20 min (estimated)
191
- cost_estimated: $0.003-0.015
192
- token_usage: ~2,000-8,000 tokens
193
- ```
194
-
195
- **Optimization Notes:**
196
- - Iterative analysis with depth limits; cache intermediate results; batch similar operations
197
-
198
- ---
199
-
200
- ## Metadata
201
-
202
- ```yaml
203
- story: N/A
204
- version: 1.0.0
205
- dependencies:
206
- - N/A
207
- tags:
208
- - analysis
209
- - metrics
210
- updated_at: 2025-11-17
211
- ```
212
-
213
- ---
214
-
215
-
216
- ## Elicitation
217
-
218
- **Prompt user to select analysis type:**
219
-
220
- ```
221
- Select performance analysis type:
222
-
223
- 1. **query** - Analyze specific query execution plan
224
- 2. **hotpaths** - Detect performance bottlenecks across system
225
- 3. **interactive** - Interactive query optimization session
226
-
227
- Which type? [query/hotpaths/interactive]:
228
- ```
229
-
230
- **Capture:** `{type}`
231
-
232
- **If type=query, also prompt:**
233
- ```
234
- Enter SQL query to analyze (or file path):
235
- ```
236
-
237
- **Capture:** `{query}`
238
-
239
- ---
240
-
241
- ## Process
242
-
243
- ### Type: Query Analysis (EXPLAIN)
244
-
245
- **When:** User selects `query`
246
-
247
- **Purpose:** Analyze execution plan for specific query
248
-
249
- #### Step 1: Validate Query
250
-
251
- ```bash
252
- # Check if query is a file path
253
- if [[ -f "$QUERY" ]]; then
254
- QUERY_SQL=$(cat "$QUERY")
255
- else
256
- QUERY_SQL="$QUERY"
257
- fi
258
-
259
- # Validate SQL syntax (basic)
260
- echo "$QUERY_SQL" | grep -iE '^(SELECT|WITH|EXPLAIN)' || {
261
- echo "❌ Error: Query must start with SELECT, WITH, or EXPLAIN"
262
- exit 1
263
- }
264
- ```
265
-
266
- #### Step 2: Run EXPLAIN ANALYZE
267
-
268
- ```bash
269
- psql "$SUPABASE_DB_URL" -v ON_ERROR_STOP=1 <<SQL
270
- \echo '=== Query Performance Analysis ==='
271
- \echo ''
272
- \echo 'Query:'
273
- \echo '$QUERY_SQL'
274
- \echo ''
275
- \echo '=== Execution Plan (EXPLAIN ANALYZE) ==='
276
-
277
- EXPLAIN (ANALYZE, BUFFERS, VERBOSE, FORMAT TEXT)
278
- $QUERY_SQL;
279
-
280
- \echo ''
281
- \echo '=== JSON Format (for tools) ==='
282
-
283
- EXPLAIN (ANALYZE, BUFFERS, FORMAT JSON)
284
- $QUERY_SQL;
285
-
286
- SQL
287
- ```
288
-
289
- #### Step 3: Analyze Results
290
-
291
- ```bash
292
- psql "$SUPABASE_DB_URL" -v ON_ERROR_STOP=1 <<'SQL'
293
- \echo ''
294
- \echo '=== Performance Recommendations ==='
295
-
296
- -- Check for sequential scans on large tables
297
- SELECT
298
- schemaname,
299
- tablename,
300
- seq_scan,
301
- seq_tup_read,
302
- idx_scan,
303
- CASE
304
- WHEN seq_scan > idx_scan THEN '⚠️ Consider adding index'
305
- WHEN seq_tup_read > 10000 THEN '⚠️ Large sequential scan detected'
306
- ELSE '✓ Looks good'
307
- END AS recommendation
308
- FROM pg_stat_user_tables
309
- WHERE schemaname = 'public'
310
- AND (seq_scan > idx_scan OR seq_tup_read > 10000)
311
- ORDER BY seq_tup_read DESC
312
- LIMIT 10;
313
-
314
- SQL
315
- ```
316
-
317
- ---
318
-
319
- ### Type: Hotpaths Analysis
320
-
321
- **When:** User selects `hotpaths`
322
-
323
- **Purpose:** Detect performance bottlenecks across entire system
324
-
325
- ```bash
326
- psql "$SUPABASE_DB_URL" -v ON_ERROR_STOP=1 <<'SQL'
327
- \echo '=== Performance Hotpaths Analysis ==='
328
- \echo ''
329
-
330
- -- 1. Slowest Queries (requires pg_stat_statements extension)
331
- \echo '1. Top 10 Slowest Queries:'
332
- SELECT
333
- LEFT(query, 80) AS query_preview,
334
- calls,
335
- ROUND(total_exec_time::numeric / 1000, 2) AS total_seconds,
336
- ROUND(mean_exec_time::numeric, 2) AS avg_ms,
337
- ROUND((100 * total_exec_time / SUM(total_exec_time) OVER ())::numeric, 2) AS percent_total
338
- FROM pg_stat_statements
339
- WHERE query NOT LIKE '%pg_stat_statements%'
340
- ORDER BY total_exec_time DESC
341
- LIMIT 10;
342
-
343
- \echo ''
344
- \echo '2. Most Frequent Queries:'
345
- SELECT
346
- LEFT(query, 80) AS query_preview,
347
- calls,
348
- ROUND(mean_exec_time::numeric, 2) AS avg_ms,
349
- ROUND(total_exec_time::numeric / 1000, 2) AS total_seconds
350
- FROM pg_stat_statements
351
- WHERE query NOT LIKE '%pg_stat_statements%'
352
- ORDER BY calls DESC
353
- LIMIT 10;
354
-
355
- \echo ''
356
- \echo '3. Tables with Most Sequential Scans:'
357
- SELECT
358
- schemaname,
359
- tablename,
360
- seq_scan,
361
- seq_tup_read,
362
- idx_scan,
363
- n_live_tup AS approx_rows,
364
- ROUND((seq_tup_read::numeric / NULLIF(seq_scan, 0)), 0) AS avg_rows_per_scan
365
- FROM pg_stat_user_tables
366
- WHERE schemaname = 'public'
367
- AND seq_scan > 0
368
- ORDER BY seq_tup_read DESC
369
- LIMIT 10;
370
-
371
- \echo ''
372
- \echo '4. Tables with Bloat (Dead Tuples):'
373
- SELECT
374
- schemaname,
375
- tablename,
376
- n_live_tup,
377
- n_dead_tup,
378
- ROUND((n_dead_tup::numeric / NULLIF(n_live_tup, 0) * 100), 2) AS dead_tuple_percent,
379
- last_vacuum,
380
- last_autovacuum
381
- FROM pg_stat_user_tables
382
- WHERE schemaname = 'public'
383
- AND n_dead_tup > 100
384
- ORDER BY n_dead_tup DESC
385
- LIMIT 10;
386
-
387
- \echo ''
388
- \echo '5. Missing Indexes (Foreign Keys without indexes):'
389
- SELECT
390
- t.tablename,
391
- c.column_name,
392
- pg_size_pretty(pg_relation_size(t.tablename::regclass)) AS table_size,
393
- 'CREATE INDEX idx_' || t.tablename || '_' || c.column_name || ' ON ' || t.tablename || '(' || c.column_name || ');' AS suggested_index
394
- FROM pg_tables t
395
- JOIN information_schema.columns c ON c.table_name = t.tablename
396
- LEFT JOIN pg_indexes i ON i.tablename = t.tablename
397
- AND i.indexdef LIKE '%' || c.column_name || '%'
398
- WHERE t.schemaname = 'public'
399
- AND c.table_schema = 'public'
400
- AND c.column_name LIKE '%_id'
401
- AND c.column_name != 'id'
402
- AND i.indexname IS NULL
403
- ORDER BY pg_relation_size(t.tablename::regclass) DESC
404
- LIMIT 10;
405
-
406
- \echo ''
407
- \echo '6. Index Usage Statistics:'
408
- SELECT
409
- schemaname,
410
- tablename,
411
- indexname,
412
- idx_scan,
413
- idx_tup_read,
414
- idx_tup_fetch,
415
- pg_size_pretty(pg_relation_size(indexrelid)) AS index_size,
416
- CASE
417
- WHEN idx_scan = 0 THEN '❌ Unused - consider dropping'
418
- WHEN idx_scan < 100 THEN '⚠️ Low usage'
419
- ELSE '✓ Active'
420
- END AS usage_status
421
- FROM pg_stat_user_indexes
422
- WHERE schemaname = 'public'
423
- ORDER BY idx_scan ASC, pg_relation_size(indexrelid) DESC
424
- LIMIT 15;
425
-
426
- \echo ''
427
- \echo '7. Cache Hit Ratio (should be > 99%):'
428
- SELECT
429
- 'Index Hit Rate' AS metric,
430
- ROUND((SUM(idx_blks_hit) / NULLIF(SUM(idx_blks_hit + idx_blks_read), 0) * 100)::numeric, 2) AS percentage
431
- FROM pg_statio_user_indexes
432
- UNION ALL
433
- SELECT
434
- 'Table Hit Rate' AS metric,
435
- ROUND((SUM(heap_blks_hit) / NULLIF(SUM(heap_blks_hit + heap_blks_read), 0) * 100)::numeric, 2) AS percentage
436
- FROM pg_statio_user_tables;
437
-
438
- \echo ''
439
- \echo '8. Connection Pool Status:'
440
- SELECT
441
- COUNT(*) AS total_connections,
442
- COUNT(*) FILTER (WHERE state = 'active') AS active,
443
- COUNT(*) FILTER (WHERE state = 'idle') AS idle,
444
- COUNT(*) FILTER (WHERE state = 'idle in transaction') AS idle_in_transaction,
445
- MAX(EXTRACT(EPOCH FROM (NOW() - query_start))) AS longest_query_seconds
446
- FROM pg_stat_activity
447
- WHERE datname = current_database();
448
-
449
- SQL
450
- ```
451
-
452
- ---
453
-
454
- ### Type: Interactive Optimization
455
-
456
- **When:** User selects `interactive`
457
-
458
- **Purpose:** Guided query optimization session
459
-
460
- ```bash
461
- \echo '=== Interactive Query Optimization Session ==='
462
- \echo ''
463
- \echo 'This will guide you through optimizing a slow query.'
464
- \echo ''
465
-
466
- # Prompt for query
467
- read -p "Paste your slow query: " SLOW_QUERY
468
-
469
- # Step 1: Current performance
470
- psql "$SUPABASE_DB_URL" -v ON_ERROR_STOP=1 <<SQL
471
- \echo ''
472
- \echo 'Step 1: Current Performance Baseline'
473
- \echo ''
474
-
475
- \timing on
476
- EXPLAIN (ANALYZE, BUFFERS)
477
- $SLOW_QUERY;
478
- \timing off
479
-
480
- SQL
481
-
482
- # Step 2: Analyze table statistics
483
- psql "$SUPABASE_DB_URL" -v ON_ERROR_STOP=1 <<'SQL'
484
- \echo ''
485
- \echo 'Step 2: Table Statistics'
486
- \echo ''
487
-
488
- -- Extract table names from query (basic regex)
489
- -- This is simplified - actual implementation would parse query
490
- SELECT
491
- schemaname,
492
- tablename,
493
- n_live_tup AS row_count,
494
- seq_scan,
495
- idx_scan,
496
- n_tup_ins,
497
- n_tup_upd,
498
- n_tup_del,
499
- last_vacuum,
500
- last_analyze
501
- FROM pg_stat_user_tables
502
- WHERE schemaname = 'public'
503
- ORDER BY n_live_tup DESC;
504
-
505
- SQL
506
-
507
- # Step 3: Suggest indexes
508
- \echo ''
509
- \echo 'Step 3: Index Suggestions'
510
- \echo ''
511
- \echo 'Based on your query, consider these indexes:'
512
- \echo ''
513
- \echo ' 1. Check WHERE clause columns - add index'
514
- \echo ' 2. Check JOIN columns - add composite index'
515
- \echo ' 3. Check ORDER BY columns - add index'
516
- \echo ''
517
- read -p "Would you like to see existing indexes? (y/n): " SHOW_INDEXES
518
-
519
- if [[ "$SHOW_INDEXES" == "y" ]]; then
520
- psql "$SUPABASE_DB_URL" -v ON_ERROR_STOP=1 <<'SQL'
521
- SELECT
522
- schemaname,
523
- tablename,
524
- indexname,
525
- indexdef
526
- FROM pg_indexes
527
- WHERE schemaname = 'public'
528
- ORDER BY tablename, indexname;
529
- SQL
530
- fi
531
-
532
- # Step 4: Optimization recommendations
533
- \echo ''
534
- \echo 'Step 4: General Optimization Tips'
535
- \echo ''
536
- \echo ' ✓ Use EXPLAIN ANALYZE to understand execution'
537
- \echo ' ✓ Add indexes on WHERE/JOIN/ORDER BY columns'
538
- \echo ' ✓ Avoid SELECT * - specify only needed columns'
539
- \echo ' ✓ Use LIMIT for large result sets'
540
- \echo ' ✓ Consider materialized views for complex aggregations'
541
- \echo ' ✓ Use connection pooling (Supabase Pooler)'
542
- \echo ' ✓ Run VACUUM ANALYZE periodically'
543
- \echo ''
544
-
545
- read -p "Create index now? (y/n): " CREATE_INDEX
546
-
547
- if [[ "$CREATE_INDEX" == "y" ]]; then
548
- read -p "Enter index SQL: " INDEX_SQL
549
- psql "$SUPABASE_DB_URL" -v ON_ERROR_STOP=1 <<SQL
550
- $INDEX_SQL;
551
- \echo 'Index created. Re-run EXPLAIN to see improvement.'
552
- SQL
553
- fi
554
- ```
555
-
556
- ---
557
-
558
- ## Output Examples
559
-
560
- ### Query Analysis Output
561
-
562
- ```
563
- === Query Performance Analysis ===
564
-
565
- Query:
566
- SELECT u.*, COUNT(p.id) FROM users u LEFT JOIN posts p ON p.user_id = u.id GROUP BY u.id;
567
-
568
- === Execution Plan (EXPLAIN ANALYZE) ===
569
-
570
- HashAggregate (cost=1234.56..1234.78 rows=22 width=520) (actual time=12.345..12.456 rows=22 loops=1)
571
- -> Hash Left Join (cost=45.67..890.12 rows=34567 width=512) (actual time=2.345..10.123 rows=34567 loops=1)
572
- Hash Cond: (p.user_id = u.id)
573
- -> Seq Scan on posts p (cost=0.00..678.90 rows=34567 width=8) (actual time=0.012..5.678 rows=34567 loops=1)
574
- -> Hash (cost=23.45..23.45 rows=22 width=504) (actual time=0.234..0.234 rows=22 loops=1)
575
- -> Seq Scan on users u (cost=0.00..23.45 rows=22 width=504) (actual time=0.012..0.123 rows=22 loops=1)
576
- Planning Time: 1.234 ms
577
- Execution Time: 12.567 ms
578
- ```
579
-
580
- ### Hotpaths Output
581
-
582
- ```
583
- === Performance Hotpaths Analysis ===
584
-
585
- 1. Top 10 Slowest Queries:
586
- query_preview | calls | total_seconds | avg_ms | percent_total
587
- --------------------------------------------------+-------+---------------+--------+---------------
588
- SELECT * FROM large_table WHERE complex_cond... | 1234 | 123.45 | 100.04 | 45.67
589
- UPDATE users SET last_seen = NOW() WHERE... | 5678 | 67.89 | 11.95 | 25.12
590
-
591
- ... (additional output)
592
- ```
593
-
594
- ---
595
-
596
- ## Recommendations by Analysis Type
597
-
598
- ### After Query Analysis
599
-
600
- - **Seq Scan → Index Scan:** Add index on WHERE clause columns
601
- - **High execution time:** Consider query rewrite or caching
602
- - **High buffer reads:** Add indexes to reduce I/O
603
-
604
- ### After Hotpaths Analysis
605
-
606
- - **High seq_scan:** Add indexes on frequently scanned tables
607
- - **High dead_tup:** Run VACUUM ANALYZE
608
- - **Unused indexes:** Drop to reduce write overhead
609
- - **Low cache hit:** Increase shared_buffers or optimize queries
610
-
611
- ### After Interactive Optimization
612
-
613
- - Test index impact with EXPLAIN ANALYZE before/after
614
- - Monitor query performance over time
615
- - Document optimization decisions
616
-
617
- ---
618
-
619
- ## Related Commands
620
-
621
- - `*security-audit` - Check for missing indexes on FKs
622
- - `*verify-order {migration}` - Validate index creation order
623
- - `*create-migration-plan` - Plan index additions
624
- - `*explain {query}` - Legacy command (deprecated, use `*analyze-performance query`)
625
-
626
- ---
627
-
628
- **Prerequisites:**
629
-
630
- - `pg_stat_statements` extension enabled for hotpaths analysis:
631
- ```sql
632
- CREATE EXTENSION IF NOT EXISTS pg_stat_statements;
633
- ```
634
-
635
- ---
636
-
637
- **Note:** This consolidated task replaces `db-explain.md` and `db-analyze-hotpaths.md` (deprecated in v3.0)
1
+ # Task: Analyze Performance
2
+
3
+ **Purpose**: Query performance analysis and optimization (explain plans, hotpath detection, interactive optimization)
4
+
5
+ **Elicit**: true
6
+
7
+ **Consolidated From (Story 6.1.2.3):**
8
+ - `db-explain.md` - Query execution plan analysis
9
+ - `db-analyze-hotpaths.md` - Performance bottleneck detection
10
+ - `query-optimization.md` - Interactive query optimization (if existed)
11
+
12
+ ---
13
+
14
+ ## Execution Modes
15
+
16
+ **Choose your execution mode:**
17
+
18
+ ### 1. YOLO Mode - Fast, Autonomous (0-1 prompts)
19
+ - Autonomous decision making with logging
20
+ - Minimal user interaction
21
+ - **Best for:** Simple, deterministic tasks
22
+
23
+ ### 2. Interactive Mode - Balanced, Educational (5-10 prompts) **[DEFAULT]**
24
+ - Explicit decision checkpoints
25
+ - Educational explanations
26
+ - **Best for:** Learning, complex decisions
27
+
28
+ ### 3. Pre-Flight Planning - Comprehensive Upfront Planning
29
+ - Task analysis phase (identify all ambiguities)
30
+ - Zero ambiguity execution
31
+ - **Best for:** Ambiguous requirements, critical work
32
+
33
+ **Parameter:** `mode` (optional, default: `interactive`)
34
+
35
+ ---
36
+
37
+ ## Task Definition (AIOS Task Format V1.0)
38
+
39
+ ```yaml
40
+ task: analyzePerformance()
41
+ responsável: Dex (Builder)
42
+ responsavel_type: Agente
43
+ atomic_layer: Strategy
44
+
45
+ **Entrada:**
46
+ - campo: target
47
+ tipo: string
48
+ origem: User Input
49
+ obrigatório: true
50
+ validação: Valid path or identifier
51
+
52
+ - campo: options
53
+ tipo: object
54
+ origem: config
55
+ obrigatório: false
56
+ validação: Analysis configuration
57
+
58
+ - campo: depth
59
+ tipo: number
60
+ origem: User Input
61
+ obrigatório: false
62
+ validação: Default: 1 (0-3)
63
+
64
+ **Saída:**
65
+ - campo: analysis_report
66
+ tipo: object
67
+ destino: File (.ai/*.json)
68
+ persistido: true
69
+
70
+ - campo: findings
71
+ tipo: array
72
+ destino: Memory
73
+ persistido: false
74
+
75
+ - campo: metrics
76
+ tipo: object
77
+ destino: Memory
78
+ persistido: false
79
+ ```
80
+
81
+ ---
82
+
83
+ ## Pre-Conditions
84
+
85
+ **Purpose:** Validate prerequisites BEFORE task execution (blocking)
86
+
87
+ **Checklist:**
88
+
89
+ ```yaml
90
+ pre-conditions:
91
+ - [ ] Target exists and is accessible; analysis tools available
92
+ tipo: pre-condition
93
+ blocker: true
94
+ validação: |
95
+ Check target exists and is accessible; analysis tools available
96
+ error_message: "Pre-condition failed: Target exists and is accessible; analysis tools available"
97
+ ```
98
+
99
+ ---
100
+
101
+ ## Post-Conditions
102
+
103
+ **Purpose:** Validate execution success AFTER task completes
104
+
105
+ **Checklist:**
106
+
107
+ ```yaml
108
+ post-conditions:
109
+ - [ ] Analysis complete; report generated; no critical issues
110
+ tipo: post-condition
111
+ blocker: true
112
+ validação: |
113
+ Verify analysis complete; report generated; no critical issues
114
+ error_message: "Post-condition failed: Analysis complete; report generated; no critical issues"
115
+ ```
116
+
117
+ ---
118
+
119
+ ## Acceptance Criteria
120
+
121
+ **Purpose:** Definitive pass/fail criteria for task completion
122
+
123
+ **Checklist:**
124
+
125
+ ```yaml
126
+ acceptance-criteria:
127
+ - [ ] Analysis accurate; all targets covered; report complete
128
+ tipo: acceptance-criterion
129
+ blocker: true
130
+ validação: |
131
+ Assert analysis accurate; all targets covered; report complete
132
+ error_message: "Acceptance criterion not met: Analysis accurate; all targets covered; report complete"
133
+ ```
134
+
135
+ ---
136
+
137
+ ## Tools
138
+
139
+ **External/shared resources used by this task:**
140
+
141
+ - **Tool:** code-analyzer
142
+ - **Purpose:** Static code analysis and metrics
143
+ - **Source:** .aios-core/utils/code-analyzer.js
144
+
145
+ - **Tool:** file-system
146
+ - **Purpose:** Recursive directory traversal
147
+ - **Source:** Node.js fs module
148
+
149
+ ---
150
+
151
+ ## Scripts
152
+
153
+ **Agent-specific code for this task:**
154
+
155
+ - **Script:** analyze-codebase.js
156
+ - **Purpose:** Codebase analysis and reporting
157
+ - **Language:** JavaScript
158
+ - **Location:** .aios-core/scripts/analyze-codebase.js
159
+
160
+ ---
161
+
162
+ ## Error Handling
163
+
164
+ **Strategy:** fallback
165
+
166
+ **Common Errors:**
167
+
168
+ 1. **Error:** Target Not Accessible
169
+ - **Cause:** Path does not exist or permissions denied
170
+ - **Resolution:** Verify path and check permissions
171
+ - **Recovery:** Skip inaccessible paths, continue with accessible ones
172
+
173
+ 2. **Error:** Analysis Timeout
174
+ - **Cause:** Analysis exceeds time limit for large codebases
175
+ - **Resolution:** Reduce analysis depth or scope
176
+ - **Recovery:** Return partial results with timeout warning
177
+
178
+ 3. **Error:** Memory Limit Exceeded
179
+ - **Cause:** Large codebase exceeds memory allocation
180
+ - **Resolution:** Process in batches or increase memory limit
181
+ - **Recovery:** Graceful degradation to summary analysis
182
+
183
+ ---
184
+
185
+ ## Performance
186
+
187
+ **Expected Metrics:**
188
+
189
+ ```yaml
190
+ duration_expected: 5-20 min (estimated)
191
+ cost_estimated: $0.003-0.015
192
+ token_usage: ~2,000-8,000 tokens
193
+ ```
194
+
195
+ **Optimization Notes:**
196
+ - Iterative analysis with depth limits; cache intermediate results; batch similar operations
197
+
198
+ ---
199
+
200
+ ## Metadata
201
+
202
+ ```yaml
203
+ story: N/A
204
+ version: 1.0.0
205
+ dependencies:
206
+ - N/A
207
+ tags:
208
+ - analysis
209
+ - metrics
210
+ updated_at: 2025-11-17
211
+ ```
212
+
213
+ ---
214
+
215
+
216
+ ## Elicitation
217
+
218
+ **Prompt user to select analysis type:**
219
+
220
+ ```
221
+ Select performance analysis type:
222
+
223
+ 1. **query** - Analyze specific query execution plan
224
+ 2. **hotpaths** - Detect performance bottlenecks across system
225
+ 3. **interactive** - Interactive query optimization session
226
+
227
+ Which type? [query/hotpaths/interactive]:
228
+ ```
229
+
230
+ **Capture:** `{type}`
231
+
232
+ **If type=query, also prompt:**
233
+ ```
234
+ Enter SQL query to analyze (or file path):
235
+ ```
236
+
237
+ **Capture:** `{query}`
238
+
239
+ ---
240
+
241
+ ## Process
242
+
243
+ ### Type: Query Analysis (EXPLAIN)
244
+
245
+ **When:** User selects `query`
246
+
247
+ **Purpose:** Analyze execution plan for specific query
248
+
249
+ #### Step 1: Validate Query
250
+
251
+ ```bash
252
+ # Check if query is a file path
253
+ if [[ -f "$QUERY" ]]; then
254
+ QUERY_SQL=$(cat "$QUERY")
255
+ else
256
+ QUERY_SQL="$QUERY"
257
+ fi
258
+
259
+ # Validate SQL syntax (basic)
260
+ echo "$QUERY_SQL" | grep -iE '^(SELECT|WITH|EXPLAIN)' || {
261
+ echo "❌ Error: Query must start with SELECT, WITH, or EXPLAIN"
262
+ exit 1
263
+ }
264
+ ```
265
+
266
+ #### Step 2: Run EXPLAIN ANALYZE
267
+
268
+ ```bash
269
+ psql "$SUPABASE_DB_URL" -v ON_ERROR_STOP=1 <<SQL
270
+ \echo '=== Query Performance Analysis ==='
271
+ \echo ''
272
+ \echo 'Query:'
273
+ \echo '$QUERY_SQL'
274
+ \echo ''
275
+ \echo '=== Execution Plan (EXPLAIN ANALYZE) ==='
276
+
277
+ EXPLAIN (ANALYZE, BUFFERS, VERBOSE, FORMAT TEXT)
278
+ $QUERY_SQL;
279
+
280
+ \echo ''
281
+ \echo '=== JSON Format (for tools) ==='
282
+
283
+ EXPLAIN (ANALYZE, BUFFERS, FORMAT JSON)
284
+ $QUERY_SQL;
285
+
286
+ SQL
287
+ ```
288
+
289
+ #### Step 3: Analyze Results
290
+
291
+ ```bash
292
+ psql "$SUPABASE_DB_URL" -v ON_ERROR_STOP=1 <<'SQL'
293
+ \echo ''
294
+ \echo '=== Performance Recommendations ==='
295
+
296
+ -- Check for sequential scans on large tables
297
+ SELECT
298
+ schemaname,
299
+ tablename,
300
+ seq_scan,
301
+ seq_tup_read,
302
+ idx_scan,
303
+ CASE
304
+ WHEN seq_scan > idx_scan THEN '⚠️ Consider adding index'
305
+ WHEN seq_tup_read > 10000 THEN '⚠️ Large sequential scan detected'
306
+ ELSE '✓ Looks good'
307
+ END AS recommendation
308
+ FROM pg_stat_user_tables
309
+ WHERE schemaname = 'public'
310
+ AND (seq_scan > idx_scan OR seq_tup_read > 10000)
311
+ ORDER BY seq_tup_read DESC
312
+ LIMIT 10;
313
+
314
+ SQL
315
+ ```
316
+
317
+ ---
318
+
319
+ ### Type: Hotpaths Analysis
320
+
321
+ **When:** User selects `hotpaths`
322
+
323
+ **Purpose:** Detect performance bottlenecks across entire system
324
+
325
+ ```bash
326
+ psql "$SUPABASE_DB_URL" -v ON_ERROR_STOP=1 <<'SQL'
327
+ \echo '=== Performance Hotpaths Analysis ==='
328
+ \echo ''
329
+
330
+ -- 1. Slowest Queries (requires pg_stat_statements extension)
331
+ \echo '1. Top 10 Slowest Queries:'
332
+ SELECT
333
+ LEFT(query, 80) AS query_preview,
334
+ calls,
335
+ ROUND(total_exec_time::numeric / 1000, 2) AS total_seconds,
336
+ ROUND(mean_exec_time::numeric, 2) AS avg_ms,
337
+ ROUND((100 * total_exec_time / SUM(total_exec_time) OVER ())::numeric, 2) AS percent_total
338
+ FROM pg_stat_statements
339
+ WHERE query NOT LIKE '%pg_stat_statements%'
340
+ ORDER BY total_exec_time DESC
341
+ LIMIT 10;
342
+
343
+ \echo ''
344
+ \echo '2. Most Frequent Queries:'
345
+ SELECT
346
+ LEFT(query, 80) AS query_preview,
347
+ calls,
348
+ ROUND(mean_exec_time::numeric, 2) AS avg_ms,
349
+ ROUND(total_exec_time::numeric / 1000, 2) AS total_seconds
350
+ FROM pg_stat_statements
351
+ WHERE query NOT LIKE '%pg_stat_statements%'
352
+ ORDER BY calls DESC
353
+ LIMIT 10;
354
+
355
+ \echo ''
356
+ \echo '3. Tables with Most Sequential Scans:'
357
+ SELECT
358
+ schemaname,
359
+ tablename,
360
+ seq_scan,
361
+ seq_tup_read,
362
+ idx_scan,
363
+ n_live_tup AS approx_rows,
364
+ ROUND((seq_tup_read::numeric / NULLIF(seq_scan, 0)), 0) AS avg_rows_per_scan
365
+ FROM pg_stat_user_tables
366
+ WHERE schemaname = 'public'
367
+ AND seq_scan > 0
368
+ ORDER BY seq_tup_read DESC
369
+ LIMIT 10;
370
+
371
+ \echo ''
372
+ \echo '4. Tables with Bloat (Dead Tuples):'
373
+ SELECT
374
+ schemaname,
375
+ tablename,
376
+ n_live_tup,
377
+ n_dead_tup,
378
+ ROUND((n_dead_tup::numeric / NULLIF(n_live_tup, 0) * 100), 2) AS dead_tuple_percent,
379
+ last_vacuum,
380
+ last_autovacuum
381
+ FROM pg_stat_user_tables
382
+ WHERE schemaname = 'public'
383
+ AND n_dead_tup > 100
384
+ ORDER BY n_dead_tup DESC
385
+ LIMIT 10;
386
+
387
+ \echo ''
388
+ \echo '5. Missing Indexes (Foreign Keys without indexes):'
389
+ SELECT
390
+ t.tablename,
391
+ c.column_name,
392
+ pg_size_pretty(pg_relation_size(t.tablename::regclass)) AS table_size,
393
+ 'CREATE INDEX idx_' || t.tablename || '_' || c.column_name || ' ON ' || t.tablename || '(' || c.column_name || ');' AS suggested_index
394
+ FROM pg_tables t
395
+ JOIN information_schema.columns c ON c.table_name = t.tablename
396
+ LEFT JOIN pg_indexes i ON i.tablename = t.tablename
397
+ AND i.indexdef LIKE '%' || c.column_name || '%'
398
+ WHERE t.schemaname = 'public'
399
+ AND c.table_schema = 'public'
400
+ AND c.column_name LIKE '%_id'
401
+ AND c.column_name != 'id'
402
+ AND i.indexname IS NULL
403
+ ORDER BY pg_relation_size(t.tablename::regclass) DESC
404
+ LIMIT 10;
405
+
406
+ \echo ''
407
+ \echo '6. Index Usage Statistics:'
408
+ SELECT
409
+ schemaname,
410
+ tablename,
411
+ indexname,
412
+ idx_scan,
413
+ idx_tup_read,
414
+ idx_tup_fetch,
415
+ pg_size_pretty(pg_relation_size(indexrelid)) AS index_size,
416
+ CASE
417
+ WHEN idx_scan = 0 THEN '❌ Unused - consider dropping'
418
+ WHEN idx_scan < 100 THEN '⚠️ Low usage'
419
+ ELSE '✓ Active'
420
+ END AS usage_status
421
+ FROM pg_stat_user_indexes
422
+ WHERE schemaname = 'public'
423
+ ORDER BY idx_scan ASC, pg_relation_size(indexrelid) DESC
424
+ LIMIT 15;
425
+
426
+ \echo ''
427
+ \echo '7. Cache Hit Ratio (should be > 99%):'
428
+ SELECT
429
+ 'Index Hit Rate' AS metric,
430
+ ROUND((SUM(idx_blks_hit) / NULLIF(SUM(idx_blks_hit + idx_blks_read), 0) * 100)::numeric, 2) AS percentage
431
+ FROM pg_statio_user_indexes
432
+ UNION ALL
433
+ SELECT
434
+ 'Table Hit Rate' AS metric,
435
+ ROUND((SUM(heap_blks_hit) / NULLIF(SUM(heap_blks_hit + heap_blks_read), 0) * 100)::numeric, 2) AS percentage
436
+ FROM pg_statio_user_tables;
437
+
438
+ \echo ''
439
+ \echo '8. Connection Pool Status:'
440
+ SELECT
441
+ COUNT(*) AS total_connections,
442
+ COUNT(*) FILTER (WHERE state = 'active') AS active,
443
+ COUNT(*) FILTER (WHERE state = 'idle') AS idle,
444
+ COUNT(*) FILTER (WHERE state = 'idle in transaction') AS idle_in_transaction,
445
+ MAX(EXTRACT(EPOCH FROM (NOW() - query_start))) AS longest_query_seconds
446
+ FROM pg_stat_activity
447
+ WHERE datname = current_database();
448
+
449
+ SQL
450
+ ```
451
+
452
+ ---
453
+
454
+ ### Type: Interactive Optimization
455
+
456
+ **When:** User selects `interactive`
457
+
458
+ **Purpose:** Guided query optimization session
459
+
460
+ ```bash
461
+ \echo '=== Interactive Query Optimization Session ==='
462
+ \echo ''
463
+ \echo 'This will guide you through optimizing a slow query.'
464
+ \echo ''
465
+
466
+ # Prompt for query
467
+ read -p "Paste your slow query: " SLOW_QUERY
468
+
469
+ # Step 1: Current performance
470
+ psql "$SUPABASE_DB_URL" -v ON_ERROR_STOP=1 <<SQL
471
+ \echo ''
472
+ \echo 'Step 1: Current Performance Baseline'
473
+ \echo ''
474
+
475
+ \timing on
476
+ EXPLAIN (ANALYZE, BUFFERS)
477
+ $SLOW_QUERY;
478
+ \timing off
479
+
480
+ SQL
481
+
482
+ # Step 2: Analyze table statistics
483
+ psql "$SUPABASE_DB_URL" -v ON_ERROR_STOP=1 <<'SQL'
484
+ \echo ''
485
+ \echo 'Step 2: Table Statistics'
486
+ \echo ''
487
+
488
+ -- Extract table names from query (basic regex)
489
+ -- This is simplified - actual implementation would parse query
490
+ SELECT
491
+ schemaname,
492
+ tablename,
493
+ n_live_tup AS row_count,
494
+ seq_scan,
495
+ idx_scan,
496
+ n_tup_ins,
497
+ n_tup_upd,
498
+ n_tup_del,
499
+ last_vacuum,
500
+ last_analyze
501
+ FROM pg_stat_user_tables
502
+ WHERE schemaname = 'public'
503
+ ORDER BY n_live_tup DESC;
504
+
505
+ SQL
506
+
507
+ # Step 3: Suggest indexes
508
+ \echo ''
509
+ \echo 'Step 3: Index Suggestions'
510
+ \echo ''
511
+ \echo 'Based on your query, consider these indexes:'
512
+ \echo ''
513
+ \echo ' 1. Check WHERE clause columns - add index'
514
+ \echo ' 2. Check JOIN columns - add composite index'
515
+ \echo ' 3. Check ORDER BY columns - add index'
516
+ \echo ''
517
+ read -p "Would you like to see existing indexes? (y/n): " SHOW_INDEXES
518
+
519
+ if [[ "$SHOW_INDEXES" == "y" ]]; then
520
+ psql "$SUPABASE_DB_URL" -v ON_ERROR_STOP=1 <<'SQL'
521
+ SELECT
522
+ schemaname,
523
+ tablename,
524
+ indexname,
525
+ indexdef
526
+ FROM pg_indexes
527
+ WHERE schemaname = 'public'
528
+ ORDER BY tablename, indexname;
529
+ SQL
530
+ fi
531
+
532
+ # Step 4: Optimization recommendations
533
+ \echo ''
534
+ \echo 'Step 4: General Optimization Tips'
535
+ \echo ''
536
+ \echo ' ✓ Use EXPLAIN ANALYZE to understand execution'
537
+ \echo ' ✓ Add indexes on WHERE/JOIN/ORDER BY columns'
538
+ \echo ' ✓ Avoid SELECT * - specify only needed columns'
539
+ \echo ' ✓ Use LIMIT for large result sets'
540
+ \echo ' ✓ Consider materialized views for complex aggregations'
541
+ \echo ' ✓ Use connection pooling (Supabase Pooler)'
542
+ \echo ' ✓ Run VACUUM ANALYZE periodically'
543
+ \echo ''
544
+
545
+ read -p "Create index now? (y/n): " CREATE_INDEX
546
+
547
+ if [[ "$CREATE_INDEX" == "y" ]]; then
548
+ read -p "Enter index SQL: " INDEX_SQL
549
+ psql "$SUPABASE_DB_URL" -v ON_ERROR_STOP=1 <<SQL
550
+ $INDEX_SQL;
551
+ \echo 'Index created. Re-run EXPLAIN to see improvement.'
552
+ SQL
553
+ fi
554
+ ```
555
+
556
+ ---
557
+
558
+ ## Output Examples
559
+
560
+ ### Query Analysis Output
561
+
562
+ ```
563
+ === Query Performance Analysis ===
564
+
565
+ Query:
566
+ SELECT u.*, COUNT(p.id) FROM users u LEFT JOIN posts p ON p.user_id = u.id GROUP BY u.id;
567
+
568
+ === Execution Plan (EXPLAIN ANALYZE) ===
569
+
570
+ HashAggregate (cost=1234.56..1234.78 rows=22 width=520) (actual time=12.345..12.456 rows=22 loops=1)
571
+ -> Hash Left Join (cost=45.67..890.12 rows=34567 width=512) (actual time=2.345..10.123 rows=34567 loops=1)
572
+ Hash Cond: (p.user_id = u.id)
573
+ -> Seq Scan on posts p (cost=0.00..678.90 rows=34567 width=8) (actual time=0.012..5.678 rows=34567 loops=1)
574
+ -> Hash (cost=23.45..23.45 rows=22 width=504) (actual time=0.234..0.234 rows=22 loops=1)
575
+ -> Seq Scan on users u (cost=0.00..23.45 rows=22 width=504) (actual time=0.012..0.123 rows=22 loops=1)
576
+ Planning Time: 1.234 ms
577
+ Execution Time: 12.567 ms
578
+ ```
579
+
580
+ ### Hotpaths Output
581
+
582
+ ```
583
+ === Performance Hotpaths Analysis ===
584
+
585
+ 1. Top 10 Slowest Queries:
586
+ query_preview | calls | total_seconds | avg_ms | percent_total
587
+ --------------------------------------------------+-------+---------------+--------+---------------
588
+ SELECT * FROM large_table WHERE complex_cond... | 1234 | 123.45 | 100.04 | 45.67
589
+ UPDATE users SET last_seen = NOW() WHERE... | 5678 | 67.89 | 11.95 | 25.12
590
+
591
+ ... (additional output)
592
+ ```
593
+
594
+ ---
595
+
596
+ ## Recommendations by Analysis Type
597
+
598
+ ### After Query Analysis
599
+
600
+ - **Seq Scan → Index Scan:** Add index on WHERE clause columns
601
+ - **High execution time:** Consider query rewrite or caching
602
+ - **High buffer reads:** Add indexes to reduce I/O
603
+
604
+ ### After Hotpaths Analysis
605
+
606
+ - **High seq_scan:** Add indexes on frequently scanned tables
607
+ - **High dead_tup:** Run VACUUM ANALYZE
608
+ - **Unused indexes:** Drop to reduce write overhead
609
+ - **Low cache hit:** Increase shared_buffers or optimize queries
610
+
611
+ ### After Interactive Optimization
612
+
613
+ - Test index impact with EXPLAIN ANALYZE before/after
614
+ - Monitor query performance over time
615
+ - Document optimization decisions
616
+
617
+ ---
618
+
619
+ ## Related Commands
620
+
621
+ - `*security-audit` - Check for missing indexes on FKs
622
+ - `*verify-order {migration}` - Validate index creation order
623
+ - `*create-migration-plan` - Plan index additions
624
+ - `*explain {query}` - Legacy command (deprecated, use `*analyze-performance query`)
625
+
626
+ ---
627
+
628
+ **Prerequisites:**
629
+
630
+ - `pg_stat_statements` extension enabled for hotpaths analysis:
631
+ ```sql
632
+ CREATE EXTENSION IF NOT EXISTS pg_stat_statements;
633
+ ```
634
+
635
+ ---
636
+
637
+ **Note:** This consolidated task replaces `db-explain.md` and `db-analyze-hotpaths.md` (deprecated in v3.0)