aios-core 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.aios-core/.session/current-session.json +14 -0
- package/.aios-core/cli/commands/generate/index.js +222 -0
- package/.aios-core/cli/commands/manifest/index.js +46 -0
- package/.aios-core/cli/commands/manifest/regenerate.js +96 -0
- package/.aios-core/cli/commands/manifest/validate.js +66 -0
- package/.aios-core/cli/commands/mcp/add.js +234 -0
- package/.aios-core/cli/commands/mcp/index.js +76 -0
- package/.aios-core/cli/commands/mcp/link.js +217 -0
- package/.aios-core/cli/commands/mcp/setup.js +164 -0
- package/.aios-core/cli/commands/mcp/status.js +183 -0
- package/.aios-core/cli/commands/metrics/cleanup.js +91 -0
- package/.aios-core/cli/commands/metrics/index.js +65 -0
- package/.aios-core/cli/commands/metrics/record.js +154 -0
- package/.aios-core/cli/commands/metrics/seed.js +126 -0
- package/.aios-core/cli/commands/metrics/show.js +209 -0
- package/.aios-core/cli/commands/migrate/analyze.js +353 -0
- package/.aios-core/cli/commands/migrate/backup.js +352 -0
- package/.aios-core/cli/commands/migrate/execute.js +292 -0
- package/.aios-core/cli/commands/migrate/index.js +441 -0
- package/.aios-core/cli/commands/migrate/rollback.js +323 -0
- package/.aios-core/cli/commands/migrate/update-imports.js +396 -0
- package/.aios-core/cli/commands/migrate/validate.js +452 -0
- package/.aios-core/cli/commands/qa/index.js +56 -0
- package/.aios-core/cli/commands/qa/run.js +163 -0
- package/.aios-core/cli/commands/qa/status.js +195 -0
- package/.aios-core/cli/commands/workers/formatters/info-formatter.js +274 -0
- package/.aios-core/cli/commands/workers/formatters/list-table.js +265 -0
- package/.aios-core/cli/commands/workers/formatters/list-tree.js +159 -0
- package/.aios-core/cli/commands/workers/index.js +56 -0
- package/.aios-core/cli/commands/workers/info.js +194 -0
- package/.aios-core/cli/commands/workers/list.js +214 -0
- package/.aios-core/cli/commands/workers/search-filters.js +185 -0
- package/.aios-core/cli/commands/workers/search-keyword.js +310 -0
- package/.aios-core/cli/commands/workers/search-semantic.js +293 -0
- package/.aios-core/cli/commands/workers/search.js +154 -0
- package/.aios-core/cli/commands/workers/utils/pagination.js +102 -0
- package/.aios-core/cli/index.js +128 -0
- package/.aios-core/cli/utils/output-formatter-cli.js +232 -0
- package/.aios-core/cli/utils/score-calculator.js +221 -0
- package/.aios-core/core/README.md +229 -0
- package/.aios-core/core/config/config-cache.js +233 -0
- package/.aios-core/core/config/config-loader.js +277 -0
- package/.aios-core/core/data/agent-config-requirements.yaml +368 -0
- package/.aios-core/core/data/aios-kb.md +924 -0
- package/.aios-core/core/data/workflow-patterns.yaml +267 -0
- package/.aios-core/core/docs/SHARD-TRANSLATION-GUIDE.md +335 -0
- package/.aios-core/core/docs/component-creation-guide.md +458 -0
- package/.aios-core/core/docs/session-update-pattern.md +307 -0
- package/.aios-core/core/docs/template-syntax.md +267 -0
- package/.aios-core/core/docs/troubleshooting-guide.md +625 -0
- package/.aios-core/core/elicitation/agent-elicitation.js +272 -0
- package/.aios-core/core/elicitation/elicitation-engine.js +479 -0
- package/.aios-core/core/elicitation/session-manager.js +320 -0
- package/.aios-core/core/elicitation/task-elicitation.js +281 -0
- package/.aios-core/core/elicitation/workflow-elicitation.js +315 -0
- package/.aios-core/core/index.esm.js +42 -0
- package/.aios-core/core/index.js +76 -0
- package/.aios-core/core/manifest/manifest-generator.js +386 -0
- package/.aios-core/core/manifest/manifest-validator.js +429 -0
- package/.aios-core/core/mcp/config-migrator.js +340 -0
- package/.aios-core/core/mcp/global-config-manager.js +369 -0
- package/.aios-core/core/mcp/index.js +34 -0
- package/.aios-core/core/mcp/os-detector.js +188 -0
- package/.aios-core/core/mcp/symlink-manager.js +413 -0
- package/.aios-core/core/migration/migration-config.yaml +83 -0
- package/.aios-core/core/migration/module-mapping.yaml +89 -0
- package/.aios-core/core/quality-gates/base-layer.js +134 -0
- package/.aios-core/core/quality-gates/checklist-generator.js +329 -0
- package/.aios-core/core/quality-gates/focus-area-recommender.js +359 -0
- package/.aios-core/core/quality-gates/human-review-orchestrator.js +529 -0
- package/.aios-core/core/quality-gates/layer1-precommit.js +336 -0
- package/.aios-core/core/quality-gates/layer2-pr-automation.js +324 -0
- package/.aios-core/core/quality-gates/layer3-human-review.js +348 -0
- package/.aios-core/core/quality-gates/notification-manager.js +550 -0
- package/.aios-core/core/quality-gates/quality-gate-config.yaml +86 -0
- package/.aios-core/core/quality-gates/quality-gate-manager.js +601 -0
- package/.aios-core/core/registry/README.md +179 -0
- package/.aios-core/core/registry/build-registry.js +452 -0
- package/.aios-core/core/registry/registry-loader.js +330 -0
- package/.aios-core/core/registry/registry-schema.json +166 -0
- package/.aios-core/core/registry/service-registry.json +6586 -0
- package/.aios-core/core/registry/validate-registry.js +340 -0
- package/.aios-core/core/session/context-detector.js +229 -0
- package/.aios-core/core/session/context-loader.js +288 -0
- package/.aios-core/core/utils/output-formatter.js +298 -0
- package/.aios-core/core/utils/security-utils.js +333 -0
- package/.aios-core/core/utils/yaml-validator.js +419 -0
- package/.aios-core/core-config.yaml +382 -0
- package/.aios-core/data/agent-config-requirements.yaml +368 -0
- package/.aios-core/data/aios-kb.md +924 -0
- package/.aios-core/data/technical-preferences.md +4 -0
- package/.aios-core/data/workflow-patterns.yaml +267 -0
- package/.aios-core/development/README.md +142 -0
- package/.aios-core/development/agent-teams/team-all.yaml +15 -0
- package/.aios-core/development/agent-teams/team-fullstack.yaml +18 -0
- package/.aios-core/development/agent-teams/team-ide-minimal.yaml +10 -0
- package/.aios-core/development/agent-teams/team-no-ui.yaml +13 -0
- package/.aios-core/development/agent-teams/team-qa-focused.yaml +155 -0
- package/.aios-core/development/agents/aios-master.md +339 -0
- package/.aios-core/development/agents/analyst.md +195 -0
- package/.aios-core/development/agents/architect.md +359 -0
- package/.aios-core/development/agents/data-engineer.md +468 -0
- package/.aios-core/development/agents/dev.md +390 -0
- package/.aios-core/development/agents/devops.md +398 -0
- package/.aios-core/development/agents/pm.md +198 -0
- package/.aios-core/development/agents/po.md +256 -0
- package/.aios-core/development/agents/qa.md +312 -0
- package/.aios-core/development/agents/sm.md +220 -0
- package/.aios-core/development/agents/ux-design-expert.md +451 -0
- package/.aios-core/development/scripts/agent-assignment-resolver.js +231 -0
- package/.aios-core/development/scripts/agent-config-loader.js +624 -0
- package/.aios-core/development/scripts/agent-exit-hooks.js +96 -0
- package/.aios-core/development/scripts/apply-inline-greeting-all-agents.js +146 -0
- package/.aios-core/development/scripts/audit-agent-config.js +380 -0
- package/.aios-core/development/scripts/backlog-manager.js +404 -0
- package/.aios-core/development/scripts/batch-update-agents-session-context.js +95 -0
- package/.aios-core/development/scripts/decision-context.js +228 -0
- package/.aios-core/development/scripts/decision-log-generator.js +293 -0
- package/.aios-core/development/scripts/decision-log-indexer.js +284 -0
- package/.aios-core/development/scripts/decision-recorder.js +168 -0
- package/.aios-core/development/scripts/dev-context-loader.js +297 -0
- package/.aios-core/development/scripts/generate-greeting.js +160 -0
- package/.aios-core/development/scripts/greeting-builder.js +866 -0
- package/.aios-core/development/scripts/greeting-config-cli.js +85 -0
- package/.aios-core/development/scripts/greeting-preference-manager.js +145 -0
- package/.aios-core/development/scripts/migrate-task-to-v2.js +377 -0
- package/.aios-core/development/scripts/story-index-generator.js +337 -0
- package/.aios-core/development/scripts/story-manager.js +375 -0
- package/.aios-core/development/scripts/story-update-hook.js +259 -0
- package/.aios-core/development/scripts/task-identifier-resolver.js +145 -0
- package/.aios-core/development/scripts/test-greeting-system.js +142 -0
- package/.aios-core/development/scripts/validate-task-v2.js +319 -0
- package/.aios-core/development/scripts/workflow-navigator.js +214 -0
- package/.aios-core/development/tasks/add-mcp.md +319 -0
- package/.aios-core/development/tasks/advanced-elicitation.md +319 -0
- package/.aios-core/development/tasks/analyst-facilitate-brainstorming.md +342 -0
- package/.aios-core/development/tasks/analyze-framework.md +697 -0
- package/.aios-core/development/tasks/analyze-performance.md +637 -0
- package/.aios-core/development/tasks/apply-qa-fixes.md +340 -0
- package/.aios-core/development/tasks/architect-analyze-impact.md +827 -0
- package/.aios-core/development/tasks/audit-codebase.md +429 -0
- package/.aios-core/development/tasks/audit-tailwind-config.md +270 -0
- package/.aios-core/development/tasks/audit-utilities.md +358 -0
- package/.aios-core/development/tasks/bootstrap-shadcn-library.md +286 -0
- package/.aios-core/development/tasks/brownfield-create-epic.md +486 -0
- package/.aios-core/development/tasks/brownfield-create-story.md +357 -0
- package/.aios-core/development/tasks/build-component.md +478 -0
- package/.aios-core/development/tasks/calculate-roi.md +455 -0
- package/.aios-core/development/tasks/ci-cd-configuration.md +764 -0
- package/.aios-core/development/tasks/cleanup-utilities.md +670 -0
- package/.aios-core/development/tasks/collaborative-edit.md +1109 -0
- package/.aios-core/development/tasks/compose-molecule.md +284 -0
- package/.aios-core/development/tasks/consolidate-patterns.md +414 -0
- package/.aios-core/development/tasks/correct-course.md +280 -0
- package/.aios-core/development/tasks/create-agent.md +322 -0
- package/.aios-core/development/tasks/create-brownfield-story.md +727 -0
- package/.aios-core/development/tasks/create-deep-research-prompt.md +499 -0
- package/.aios-core/development/tasks/create-doc.md +316 -0
- package/.aios-core/development/tasks/create-next-story.md +774 -0
- package/.aios-core/development/tasks/create-suite.md +284 -0
- package/.aios-core/development/tasks/create-task.md +372 -0
- package/.aios-core/development/tasks/create-workflow.md +371 -0
- package/.aios-core/development/tasks/db-analyze-hotpaths.md +572 -0
- package/.aios-core/development/tasks/db-apply-migration.md +381 -0
- package/.aios-core/development/tasks/db-bootstrap.md +642 -0
- package/.aios-core/development/tasks/db-domain-modeling.md +693 -0
- package/.aios-core/development/tasks/db-dry-run.md +293 -0
- package/.aios-core/development/tasks/db-env-check.md +260 -0
- package/.aios-core/development/tasks/db-expansion-pack-integration.md +663 -0
- package/.aios-core/development/tasks/db-explain.md +631 -0
- package/.aios-core/development/tasks/db-impersonate.md +495 -0
- package/.aios-core/development/tasks/db-load-csv.md +593 -0
- package/.aios-core/development/tasks/db-policy-apply.md +653 -0
- package/.aios-core/development/tasks/db-rls-audit.md +411 -0
- package/.aios-core/development/tasks/db-rollback.md +739 -0
- package/.aios-core/development/tasks/db-run-sql.md +613 -0
- package/.aios-core/development/tasks/db-schema-audit.md +1011 -0
- package/.aios-core/development/tasks/db-seed.md +390 -0
- package/.aios-core/development/tasks/db-smoke-test.md +351 -0
- package/.aios-core/development/tasks/db-snapshot.md +569 -0
- package/.aios-core/development/tasks/db-supabase-setup.md +712 -0
- package/.aios-core/development/tasks/db-verify-order.md +515 -0
- package/.aios-core/development/tasks/deprecate-component.md +957 -0
- package/.aios-core/development/tasks/dev-apply-qa-fixes.md +318 -0
- package/.aios-core/development/tasks/dev-backlog-debt.md +469 -0
- package/.aios-core/development/tasks/dev-develop-story.md +846 -0
- package/.aios-core/development/tasks/dev-improve-code-quality.md +873 -0
- package/.aios-core/development/tasks/dev-optimize-performance.md +1034 -0
- package/.aios-core/development/tasks/dev-suggest-refactoring.md +871 -0
- package/.aios-core/development/tasks/dev-validate-next-story.md +349 -0
- package/.aios-core/development/tasks/document-project.md +553 -0
- package/.aios-core/development/tasks/environment-bootstrap.md +1311 -0
- package/.aios-core/development/tasks/execute-checklist.md +301 -0
- package/.aios-core/development/tasks/export-design-tokens-dtcg.md +274 -0
- package/.aios-core/development/tasks/extend-pattern.md +269 -0
- package/.aios-core/development/tasks/extract-tokens.md +467 -0
- package/.aios-core/development/tasks/facilitate-brainstorming-session.md +518 -0
- package/.aios-core/development/tasks/generate-ai-frontend-prompt.md +261 -0
- package/.aios-core/development/tasks/generate-documentation.md +284 -0
- package/.aios-core/development/tasks/generate-migration-strategy.md +522 -0
- package/.aios-core/development/tasks/generate-shock-report.md +501 -0
- package/.aios-core/development/tasks/github-devops-github-pr-automation.md +427 -0
- package/.aios-core/development/tasks/github-devops-pre-push-quality-gate.md +733 -0
- package/.aios-core/development/tasks/github-devops-repository-cleanup.md +374 -0
- package/.aios-core/development/tasks/github-devops-version-management.md +483 -0
- package/.aios-core/development/tasks/improve-self.md +823 -0
- package/.aios-core/development/tasks/index-docs.md +388 -0
- package/.aios-core/development/tasks/init-project-status.md +506 -0
- package/.aios-core/development/tasks/integrate-expansion-pack.md +314 -0
- package/.aios-core/development/tasks/kb-mode-interaction.md +284 -0
- package/.aios-core/development/tasks/learn-patterns.md +901 -0
- package/.aios-core/development/tasks/mcp-workflow.md +437 -0
- package/.aios-core/development/tasks/modify-agent.md +382 -0
- package/.aios-core/development/tasks/modify-task.md +425 -0
- package/.aios-core/development/tasks/modify-workflow.md +466 -0
- package/.aios-core/development/tasks/po-backlog-add.md +370 -0
- package/.aios-core/development/tasks/po-manage-story-backlog.md +523 -0
- package/.aios-core/development/tasks/po-pull-story-from-clickup.md +540 -0
- package/.aios-core/development/tasks/po-pull-story.md +316 -0
- package/.aios-core/development/tasks/po-stories-index.md +351 -0
- package/.aios-core/development/tasks/po-sync-story-to-clickup.md +457 -0
- package/.aios-core/development/tasks/po-sync-story.md +303 -0
- package/.aios-core/development/tasks/pr-automation.md +701 -0
- package/.aios-core/development/tasks/propose-modification.md +843 -0
- package/.aios-core/development/tasks/qa-backlog-add-followup.md +425 -0
- package/.aios-core/development/tasks/qa-gate.md +374 -0
- package/.aios-core/development/tasks/qa-generate-tests.md +1175 -0
- package/.aios-core/development/tasks/qa-nfr-assess.md +558 -0
- package/.aios-core/development/tasks/qa-review-proposal.md +1158 -0
- package/.aios-core/development/tasks/qa-review-story.md +683 -0
- package/.aios-core/development/tasks/qa-risk-profile.md +567 -0
- package/.aios-core/development/tasks/qa-run-tests.md +277 -0
- package/.aios-core/development/tasks/qa-test-design.md +388 -0
- package/.aios-core/development/tasks/qa-trace-requirements.md +477 -0
- package/.aios-core/development/tasks/release-management.md +723 -0
- package/.aios-core/development/tasks/security-audit.md +554 -0
- package/.aios-core/development/tasks/security-scan.md +790 -0
- package/.aios-core/development/tasks/setup-database.md +741 -0
- package/.aios-core/development/tasks/setup-design-system.md +462 -0
- package/.aios-core/development/tasks/setup-github.md +874 -0
- package/.aios-core/development/tasks/setup-llm-routing.md +229 -0
- package/.aios-core/development/tasks/setup-mcp-docker.md +584 -0
- package/.aios-core/development/tasks/shard-doc.md +538 -0
- package/.aios-core/development/tasks/sm-create-next-story.md +480 -0
- package/.aios-core/development/tasks/sync-documentation.md +865 -0
- package/.aios-core/development/tasks/tailwind-upgrade.md +294 -0
- package/.aios-core/development/tasks/test-as-user.md +621 -0
- package/.aios-core/development/tasks/test-validation-task.md +171 -0
- package/.aios-core/development/tasks/undo-last.md +347 -0
- package/.aios-core/development/tasks/update-manifest.md +410 -0
- package/.aios-core/development/tasks/ux-create-wireframe.md +617 -0
- package/.aios-core/development/tasks/ux-ds-scan-artifact.md +672 -0
- package/.aios-core/development/tasks/ux-user-research.md +559 -0
- package/.aios-core/development/tasks/validate-next-story.md +423 -0
- package/.aios-core/development/tasks/validate-structure.md +243 -0
- package/.aios-core/development/workflows/README.md +84 -0
- package/.aios-core/development/workflows/brownfield-fullstack.yaml +297 -0
- package/.aios-core/development/workflows/brownfield-service.yaml +187 -0
- package/.aios-core/development/workflows/brownfield-ui.yaml +197 -0
- package/.aios-core/development/workflows/greenfield-fullstack.yaml +333 -0
- package/.aios-core/development/workflows/greenfield-service.yaml +206 -0
- package/.aios-core/development/workflows/greenfield-ui.yaml +235 -0
- package/.aios-core/docs/SHARD-TRANSLATION-GUIDE.md +335 -0
- package/.aios-core/docs/component-creation-guide.md +458 -0
- package/.aios-core/docs/session-update-pattern.md +307 -0
- package/.aios-core/docs/standards/AGENT-PERSONALIZATION-STANDARD-V1.md +572 -0
- package/.aios-core/docs/standards/AIOS-COLOR-PALETTE-QUICK-REFERENCE.md +185 -0
- package/.aios-core/docs/standards/AIOS-COLOR-PALETTE-V2.1.md +354 -0
- package/.aios-core/docs/standards/AIOS-FRAMEWORK-MASTER.md +1963 -0
- package/.aios-core/docs/standards/AIOS-LIVRO-DE-OURO-V2.1-COMPLETE.md +821 -0
- package/.aios-core/docs/standards/AIOS-LIVRO-DE-OURO-V2.1-SUMMARY.md +1190 -0
- package/.aios-core/docs/standards/AIOS-LIVRO-DE-OURO-V2.1.md +439 -0
- package/.aios-core/docs/standards/AIOS-LIVRO-DE-OURO-V2.2-SUMMARY.md +1339 -0
- package/.aios-core/docs/standards/AIOS-LIVRO-DE-OURO.md +5398 -0
- package/.aios-core/docs/standards/EXECUTOR-DECISION-TREE.md +697 -0
- package/.aios-core/docs/standards/OPEN-SOURCE-VS-SERVICE-DIFFERENCES.md +511 -0
- package/.aios-core/docs/standards/QUALITY-GATES-SPECIFICATION.md +556 -0
- package/.aios-core/docs/standards/STANDARDS-INDEX.md +210 -0
- package/.aios-core/docs/standards/STORY-TEMPLATE-V2-SPECIFICATION.md +550 -0
- package/.aios-core/docs/standards/TASK-FORMAT-SPECIFICATION-V1.md +1414 -0
- package/.aios-core/docs/standards/V3-ARCHITECTURAL-DECISIONS.md +523 -0
- package/.aios-core/docs/template-syntax.md +267 -0
- package/.aios-core/docs/troubleshooting-guide.md +625 -0
- package/.aios-core/elicitation/agent-elicitation.js +272 -0
- package/.aios-core/elicitation/task-elicitation.js +281 -0
- package/.aios-core/elicitation/workflow-elicitation.js +315 -0
- package/.aios-core/index.d.ts +8 -0
- package/.aios-core/index.esm.js +16 -0
- package/.aios-core/index.js +16 -0
- package/.aios-core/infrastructure/README.md +126 -0
- package/.aios-core/infrastructure/index.js +199 -0
- package/.aios-core/infrastructure/integrations/pm-adapters/README.md +59 -0
- package/.aios-core/infrastructure/integrations/pm-adapters/clickup-adapter.js +345 -0
- package/.aios-core/infrastructure/integrations/pm-adapters/github-adapter.js +392 -0
- package/.aios-core/infrastructure/integrations/pm-adapters/jira-adapter.js +448 -0
- package/.aios-core/infrastructure/integrations/pm-adapters/local-adapter.js +175 -0
- package/.aios-core/infrastructure/scripts/_archived/final-todo-count.js +122 -0
- package/.aios-core/infrastructure/scripts/_archived/fix-yaml-formatting.js +89 -0
- package/.aios-core/infrastructure/scripts/_archived/migration-generator.js +780 -0
- package/.aios-core/infrastructure/scripts/_archived/migration-path-generator.js +950 -0
- package/.aios-core/infrastructure/scripts/_archived/phase2-entrada-saida-errors.js +425 -0
- package/.aios-core/infrastructure/scripts/_archived/phase2-spot-check.js +132 -0
- package/.aios-core/infrastructure/scripts/_archived/phase3-tools-scripts-validation.js +381 -0
- package/.aios-core/infrastructure/scripts/_archived/phase4-metadata-performance.js +203 -0
- package/.aios-core/infrastructure/scripts/_archived/test-yaml-parsing.js +24 -0
- package/.aios-core/infrastructure/scripts/_archived/verify-yaml-fix.js +51 -0
- package/.aios-core/infrastructure/scripts/aios-validator.js +294 -0
- package/.aios-core/infrastructure/scripts/approval-workflow.js +643 -0
- package/.aios-core/infrastructure/scripts/atomic-layer-classifier.js +308 -0
- package/.aios-core/infrastructure/scripts/backup-manager.js +607 -0
- package/.aios-core/infrastructure/scripts/batch-creator.js +608 -0
- package/.aios-core/infrastructure/scripts/branch-manager.js +391 -0
- package/.aios-core/infrastructure/scripts/capability-analyzer.js +535 -0
- package/.aios-core/infrastructure/scripts/clickup-helpers.js +226 -0
- package/.aios-core/infrastructure/scripts/code-quality-improver.js +1312 -0
- package/.aios-core/infrastructure/scripts/commit-message-generator.js +850 -0
- package/.aios-core/infrastructure/scripts/component-generator.js +738 -0
- package/.aios-core/infrastructure/scripts/component-metadata.js +627 -0
- package/.aios-core/infrastructure/scripts/component-search.js +277 -0
- package/.aios-core/infrastructure/scripts/config-cache.js +322 -0
- package/.aios-core/infrastructure/scripts/config-loader.js +349 -0
- package/.aios-core/infrastructure/scripts/conflict-resolver.js +675 -0
- package/.aios-core/infrastructure/scripts/coverage-analyzer.js +882 -0
- package/.aios-core/infrastructure/scripts/dependency-analyzer.js +638 -0
- package/.aios-core/infrastructure/scripts/dependency-impact-analyzer.js +703 -0
- package/.aios-core/infrastructure/scripts/diff-generator.js +129 -0
- package/.aios-core/infrastructure/scripts/documentation-integrity/brownfield-analyzer.js +501 -0
- package/.aios-core/infrastructure/scripts/documentation-integrity/config-generator.js +329 -0
- package/.aios-core/infrastructure/scripts/documentation-integrity/deployment-config-loader.js +282 -0
- package/.aios-core/infrastructure/scripts/documentation-integrity/doc-generator.js +331 -0
- package/.aios-core/infrastructure/scripts/documentation-integrity/gitignore-generator.js +313 -0
- package/.aios-core/infrastructure/scripts/documentation-integrity/index.js +74 -0
- package/.aios-core/infrastructure/scripts/documentation-integrity/mode-detector.js +358 -0
- package/.aios-core/infrastructure/scripts/documentation-synchronizer.js +1432 -0
- package/.aios-core/infrastructure/scripts/framework-analyzer.js +746 -0
- package/.aios-core/infrastructure/scripts/git-config-detector.js +293 -0
- package/.aios-core/infrastructure/scripts/git-wrapper.js +443 -0
- package/.aios-core/infrastructure/scripts/improvement-engine.js +758 -0
- package/.aios-core/infrastructure/scripts/improvement-validator.js +710 -0
- package/.aios-core/infrastructure/scripts/llm-routing/install-llm-routing.js +267 -0
- package/.aios-core/infrastructure/scripts/llm-routing/templates/claude-free.cmd +80 -0
- package/.aios-core/infrastructure/scripts/llm-routing/templates/claude-free.sh +62 -0
- package/.aios-core/infrastructure/scripts/llm-routing/templates/claude-max.cmd +26 -0
- package/.aios-core/infrastructure/scripts/llm-routing/templates/claude-max.sh +18 -0
- package/.aios-core/infrastructure/scripts/modification-risk-assessment.js +970 -0
- package/.aios-core/infrastructure/scripts/modification-validator.js +555 -0
- package/.aios-core/infrastructure/scripts/output-formatter.js +297 -0
- package/.aios-core/infrastructure/scripts/performance-analyzer.js +758 -0
- package/.aios-core/infrastructure/scripts/performance-and-error-resolver.js +258 -0
- package/.aios-core/infrastructure/scripts/performance-optimizer.js +1902 -0
- package/.aios-core/infrastructure/scripts/performance-tracker.js +452 -0
- package/.aios-core/infrastructure/scripts/pm-adapter-factory.js +181 -0
- package/.aios-core/infrastructure/scripts/pm-adapter.js +134 -0
- package/.aios-core/infrastructure/scripts/project-status-loader.js +445 -0
- package/.aios-core/infrastructure/scripts/refactoring-suggester.js +1139 -0
- package/.aios-core/infrastructure/scripts/repository-detector.js +64 -0
- package/.aios-core/infrastructure/scripts/sandbox-tester.js +618 -0
- package/.aios-core/infrastructure/scripts/security-checker.js +359 -0
- package/.aios-core/infrastructure/scripts/source-tree-guardian/index.js +375 -0
- package/.aios-core/infrastructure/scripts/source-tree-guardian/manifest-generator.js +410 -0
- package/.aios-core/infrastructure/scripts/source-tree-guardian/rules/naming-rules.yaml +285 -0
- package/.aios-core/infrastructure/scripts/source-tree-guardian/rules/placement-rules.yaml +262 -0
- package/.aios-core/infrastructure/scripts/source-tree-guardian/validator.js +468 -0
- package/.aios-core/infrastructure/scripts/spot-check-validator.js +149 -0
- package/.aios-core/infrastructure/scripts/status-mapper.js +115 -0
- package/.aios-core/infrastructure/scripts/template-engine.js +240 -0
- package/.aios-core/infrastructure/scripts/template-validator.js +279 -0
- package/.aios-core/infrastructure/scripts/test-generator.js +844 -0
- package/.aios-core/infrastructure/scripts/test-quality-assessment.js +1081 -0
- package/.aios-core/infrastructure/scripts/test-utilities-fast.js +126 -0
- package/.aios-core/infrastructure/scripts/test-utilities.js +200 -0
- package/.aios-core/infrastructure/scripts/tool-resolver.js +360 -0
- package/.aios-core/infrastructure/scripts/transaction-manager.js +590 -0
- package/.aios-core/infrastructure/scripts/usage-analytics.js +634 -0
- package/.aios-core/infrastructure/scripts/validate-output-pattern.js +213 -0
- package/.aios-core/infrastructure/scripts/visual-impact-generator.js +1056 -0
- package/.aios-core/infrastructure/scripts/yaml-validator.js +397 -0
- package/.aios-core/infrastructure/templates/coderabbit.yaml.template +279 -0
- package/.aios-core/infrastructure/templates/core-config/core-config-brownfield.tmpl.yaml +182 -0
- package/.aios-core/infrastructure/templates/core-config/core-config-greenfield.tmpl.yaml +127 -0
- package/.aios-core/infrastructure/templates/github-workflows/README.md +109 -0
- package/.aios-core/infrastructure/templates/github-workflows/ci.yml.template +169 -0
- package/.aios-core/infrastructure/templates/github-workflows/pr-automation.yml.template +330 -0
- package/.aios-core/infrastructure/templates/github-workflows/release.yml.template +196 -0
- package/.aios-core/infrastructure/templates/gitignore/gitignore-aios-base.tmpl +63 -0
- package/.aios-core/infrastructure/templates/gitignore/gitignore-brownfield-merge.tmpl +18 -0
- package/.aios-core/infrastructure/templates/gitignore/gitignore-node.tmpl +85 -0
- package/.aios-core/infrastructure/templates/gitignore/gitignore-python.tmpl +145 -0
- package/.aios-core/infrastructure/templates/project-docs/coding-standards-tmpl.md +346 -0
- package/.aios-core/infrastructure/templates/project-docs/source-tree-tmpl.md +177 -0
- package/.aios-core/infrastructure/templates/project-docs/tech-stack-tmpl.md +267 -0
- package/.aios-core/infrastructure/tests/project-status-loader.test.js +394 -0
- package/.aios-core/infrastructure/tests/regression-suite-v2.md +621 -0
- package/.aios-core/infrastructure/tests/utilities-audit-results.json +501 -0
- package/.aios-core/infrastructure/tests/validate-module.js +97 -0
- package/.aios-core/infrastructure/tools/README.md +222 -0
- package/.aios-core/infrastructure/tools/cli/github-cli.yaml +200 -0
- package/.aios-core/infrastructure/tools/cli/llm-routing.yaml +126 -0
- package/.aios-core/infrastructure/tools/cli/railway-cli.yaml +260 -0
- package/.aios-core/infrastructure/tools/cli/supabase-cli.yaml +224 -0
- package/.aios-core/infrastructure/tools/local/ffmpeg.yaml +261 -0
- package/.aios-core/infrastructure/tools/mcp/21st-dev-magic.yaml +127 -0
- package/.aios-core/infrastructure/tools/mcp/browser.yaml +103 -0
- package/.aios-core/infrastructure/tools/mcp/clickup.yaml +534 -0
- package/.aios-core/infrastructure/tools/mcp/context7.yaml +78 -0
- package/.aios-core/infrastructure/tools/mcp/desktop-commander.yaml +180 -0
- package/.aios-core/infrastructure/tools/mcp/exa.yaml +103 -0
- package/.aios-core/infrastructure/tools/mcp/google-workspace.yaml +930 -0
- package/.aios-core/infrastructure/tools/mcp/n8n.yaml +551 -0
- package/.aios-core/infrastructure/tools/mcp/supabase.yaml +808 -0
- package/.aios-core/install-manifest.yaml +347 -0
- package/.aios-core/manifests/agents.csv +1 -0
- package/.aios-core/manifests/schema/manifest-schema.json +190 -0
- package/.aios-core/manifests/tasks.csv +121 -0
- package/.aios-core/manifests/workers.csv +204 -0
- package/.aios-core/package.json +103 -0
- package/.aios-core/product/README.md +56 -0
- package/.aios-core/product/checklists/architect-checklist.md +444 -0
- package/.aios-core/product/checklists/change-checklist.md +183 -0
- package/.aios-core/product/checklists/database-design-checklist.md +119 -0
- package/.aios-core/product/checklists/dba-predeploy-checklist.md +97 -0
- package/.aios-core/product/checklists/dba-rollback-checklist.md +99 -0
- package/.aios-core/product/checklists/pm-checklist.md +376 -0
- package/.aios-core/product/checklists/po-master-checklist.md +442 -0
- package/.aios-core/product/checklists/pre-push-checklist.md +108 -0
- package/.aios-core/product/checklists/release-checklist.md +122 -0
- package/.aios-core/product/checklists/story-dod-checklist.md +102 -0
- package/.aios-core/product/checklists/story-draft-checklist.md +216 -0
- package/.aios-core/product/data/brainstorming-techniques.md +37 -0
- package/.aios-core/product/data/elicitation-methods.md +135 -0
- package/.aios-core/product/data/mode-selection-best-practices.md +471 -0
- package/.aios-core/product/data/test-levels-framework.md +149 -0
- package/.aios-core/product/data/test-priorities-matrix.md +175 -0
- package/.aios-core/product/templates/1mcp-config.yaml +225 -0
- package/.aios-core/product/templates/activation-instructions-inline-greeting.yaml +63 -0
- package/.aios-core/product/templates/activation-instructions-template.md +258 -0
- package/.aios-core/product/templates/adr.hbs +125 -0
- package/.aios-core/product/templates/agent-template.yaml +121 -0
- package/.aios-core/product/templates/architecture-tmpl.yaml +651 -0
- package/.aios-core/product/templates/brainstorming-output-tmpl.yaml +156 -0
- package/.aios-core/product/templates/brownfield-architecture-tmpl.yaml +476 -0
- package/.aios-core/product/templates/brownfield-prd-tmpl.yaml +280 -0
- package/.aios-core/product/templates/changelog-template.md +134 -0
- package/.aios-core/product/templates/command-rationalization-matrix.md +152 -0
- package/.aios-core/product/templates/competitor-analysis-tmpl.yaml +293 -0
- package/.aios-core/product/templates/component-react-tmpl.tsx +98 -0
- package/.aios-core/product/templates/dbdr.hbs +241 -0
- package/.aios-core/product/templates/design-story-tmpl.yaml +587 -0
- package/.aios-core/product/templates/ds-artifact-analysis.md +70 -0
- package/.aios-core/product/templates/engine/elicitation.js +298 -0
- package/.aios-core/product/templates/engine/index.js +308 -0
- package/.aios-core/product/templates/engine/loader.js +231 -0
- package/.aios-core/product/templates/engine/renderer.js +343 -0
- package/.aios-core/product/templates/engine/schemas/adr.schema.json +102 -0
- package/.aios-core/product/templates/engine/schemas/dbdr.schema.json +205 -0
- package/.aios-core/product/templates/engine/schemas/epic.schema.json +175 -0
- package/.aios-core/product/templates/engine/schemas/pmdr.schema.json +175 -0
- package/.aios-core/product/templates/engine/schemas/prd-v2.schema.json +300 -0
- package/.aios-core/product/templates/engine/schemas/prd.schema.json +152 -0
- package/.aios-core/product/templates/engine/schemas/story.schema.json +222 -0
- package/.aios-core/product/templates/engine/schemas/task.schema.json +154 -0
- package/.aios-core/product/templates/engine/validator.js +294 -0
- package/.aios-core/product/templates/epic.hbs +212 -0
- package/.aios-core/product/templates/eslintrc-security.json +32 -0
- package/.aios-core/product/templates/front-end-architecture-tmpl.yaml +206 -0
- package/.aios-core/product/templates/front-end-spec-tmpl.yaml +349 -0
- package/.aios-core/product/templates/fullstack-architecture-tmpl.yaml +805 -0
- package/.aios-core/product/templates/github-actions-cd.yml +212 -0
- package/.aios-core/product/templates/github-actions-ci.yml +172 -0
- package/.aios-core/product/templates/github-pr-template.md +67 -0
- package/.aios-core/product/templates/gordon-mcp.yaml +140 -0
- package/.aios-core/product/templates/ide-rules/antigravity-rules.md +115 -0
- package/.aios-core/product/templates/ide-rules/claude-rules.md +221 -0
- package/.aios-core/product/templates/ide-rules/cline-rules.md +84 -0
- package/.aios-core/product/templates/ide-rules/copilot-rules.md +92 -0
- package/.aios-core/product/templates/ide-rules/cursor-rules.md +115 -0
- package/.aios-core/product/templates/ide-rules/gemini-rules.md +85 -0
- package/.aios-core/product/templates/ide-rules/roo-rules.md +86 -0
- package/.aios-core/product/templates/ide-rules/trae-rules.md +104 -0
- package/.aios-core/product/templates/ide-rules/windsurf-rules.md +80 -0
- package/.aios-core/product/templates/index-strategy-tmpl.yaml +53 -0
- package/.aios-core/product/templates/market-research-tmpl.yaml +252 -0
- package/.aios-core/product/templates/mcp-workflow.js +271 -0
- package/.aios-core/product/templates/migration-plan-tmpl.yaml +1022 -0
- package/.aios-core/product/templates/migration-strategy-tmpl.md +524 -0
- package/.aios-core/product/templates/personalized-agent-template.md +258 -0
- package/.aios-core/product/templates/personalized-checklist-template.md +340 -0
- package/.aios-core/product/templates/personalized-task-template-v2.md +905 -0
- package/.aios-core/product/templates/personalized-task-template.md +344 -0
- package/.aios-core/product/templates/personalized-template-file.yaml +322 -0
- package/.aios-core/product/templates/personalized-workflow-template.yaml +460 -0
- package/.aios-core/product/templates/pmdr.hbs +186 -0
- package/.aios-core/product/templates/prd-tmpl.yaml +202 -0
- package/.aios-core/product/templates/prd-v2.0.hbs +216 -0
- package/.aios-core/product/templates/prd.hbs +201 -0
- package/.aios-core/product/templates/project-brief-tmpl.yaml +221 -0
- package/.aios-core/product/templates/qa-gate-tmpl.yaml +240 -0
- package/.aios-core/product/templates/rls-policies-tmpl.yaml +1203 -0
- package/.aios-core/product/templates/schema-design-tmpl.yaml +428 -0
- package/.aios-core/product/templates/shock-report-tmpl.html +502 -0
- package/.aios-core/product/templates/state-persistence-tmpl.yaml +219 -0
- package/.aios-core/product/templates/story-tmpl.yaml +332 -0
- package/.aios-core/product/templates/story.hbs +263 -0
- package/.aios-core/product/templates/task-execution-report.md +495 -0
- package/.aios-core/product/templates/task-template.md +123 -0
- package/.aios-core/product/templates/task.hbs +170 -0
- package/.aios-core/product/templates/tmpl-comment-on-examples.sql +158 -0
- package/.aios-core/product/templates/tmpl-migration-script.sql +91 -0
- package/.aios-core/product/templates/tmpl-rls-granular-policies.sql +104 -0
- package/.aios-core/product/templates/tmpl-rls-kiss-policy.sql +10 -0
- package/.aios-core/product/templates/tmpl-rls-roles.sql +135 -0
- package/.aios-core/product/templates/tmpl-rls-simple.sql +77 -0
- package/.aios-core/product/templates/tmpl-rls-tenant.sql +152 -0
- package/.aios-core/product/templates/tmpl-rollback-script.sql +77 -0
- package/.aios-core/product/templates/tmpl-seed-data.sql +140 -0
- package/.aios-core/product/templates/tmpl-smoke-test.sql +16 -0
- package/.aios-core/product/templates/tmpl-staging-copy-merge.sql +139 -0
- package/.aios-core/product/templates/tmpl-stored-proc.sql +140 -0
- package/.aios-core/product/templates/tmpl-trigger.sql +152 -0
- package/.aios-core/product/templates/tmpl-view-materialized.sql +133 -0
- package/.aios-core/product/templates/tmpl-view.sql +177 -0
- package/.aios-core/product/templates/token-exports-css-tmpl.css +240 -0
- package/.aios-core/product/templates/token-exports-tailwind-tmpl.js +395 -0
- package/.aios-core/product/templates/tokens-schema-tmpl.yaml +305 -0
- package/.aios-core/product/templates/workflow-template.yaml +134 -0
- package/.aios-core/quality/metrics-collector.js +572 -0
- package/.aios-core/quality/metrics-hook.js +260 -0
- package/.aios-core/quality/schemas/quality-metrics.schema.json +233 -0
- package/.aios-core/quality/seed-metrics.js +336 -0
- package/.aios-core/scripts/README.md +354 -0
- package/.aios-core/scripts/aios-doc-template.md +325 -0
- package/.aios-core/scripts/batch-migrate-phase1.ps1 +36 -0
- package/.aios-core/scripts/batch-migrate-phase2.ps1 +88 -0
- package/.aios-core/scripts/batch-migrate-phase3.ps1 +45 -0
- package/.aios-core/scripts/command-execution-hook.js +201 -0
- package/.aios-core/scripts/context-detector.js +226 -0
- package/.aios-core/scripts/elicitation-engine.js +385 -0
- package/.aios-core/scripts/elicitation-session-manager.js +300 -0
- package/.aios-core/scripts/migrate-framework-docs.sh +300 -0
- package/.aios-core/scripts/session-context-loader.js +286 -0
- package/.aios-core/scripts/test-template-system.js +941 -0
- package/.aios-core/scripts/validate-phase1.ps1 +35 -0
- package/.aios-core/scripts/workflow-management.md +69 -0
- package/.aios-core/tasks/find-component.md.legacy +391 -0
- package/.aios-core/tasks/generate-commit-message.md.legacy +426 -0
- package/.aios-core/tasks/generate-migration.md.legacy +382 -0
- package/.aios-core/tasks/rollback-modification.md.legacy +307 -0
- package/.aios-core/tasks/update-tests.md.legacy +283 -0
- package/.aios-core/user-guide.md +1413 -0
- package/.aios-core/working-in-the-brownfield.md +361 -0
- package/.claude/CLAUDE.md +221 -0
- package/LICENSE +48 -0
- package/README.md +703 -0
- package/bin/aios-init-old.js +532 -0
- package/bin/aios-init-v4.js +390 -0
- package/bin/aios-init.backup-v1.1.4.js +352 -0
- package/bin/aios-init.js +736 -0
- package/bin/aios-minimal.js +26 -0
- package/bin/aios.js +279 -0
- package/bin/migrate-pm-config.js +219 -0
- package/bin/modules/env-config.js +436 -0
- package/bin/modules/mcp-installer.js +383 -0
- package/bin/utils/install-errors.js +339 -0
- package/bin/utils/install-transaction.js +445 -0
- package/index.d.ts +19 -0
- package/index.esm.js +21 -0
- package/index.js +94 -0
- package/package.json +161 -0
- package/packages/installer/package.json +39 -0
- package/packages/installer/src/config/configure-environment.js +312 -0
- package/packages/installer/src/config/templates/core-config-template.js +183 -0
- package/packages/installer/src/config/templates/env-template.js +127 -0
- package/packages/installer/src/config/validation/config-validator.js +243 -0
- package/packages/installer/src/detection/detect-project-type.js +81 -0
- package/packages/installer/src/wizard/wizard.js +244 -0
- package/packages/installer/tests/integration/environment-configuration.test.js +328 -0
- package/packages/installer/tests/integration/wizard-detection.test.js +349 -0
- package/packages/installer/tests/unit/config-validator.test.js +315 -0
- package/packages/installer/tests/unit/detection/detect-project-type.test.js +401 -0
- package/packages/installer/tests/unit/env-template.test.js +185 -0
- package/src/config/ide-configs.js +189 -0
- package/src/installer/aios-core-installer.js +319 -0
- package/src/installer/dependency-installer.js +335 -0
- package/src/utils/aios-colors.js +234 -0
- package/src/wizard/feedback.js +218 -0
- package/src/wizard/ide-config-generator.js +488 -0
- package/src/wizard/ide-selector.js +84 -0
- package/src/wizard/index.js +589 -0
- package/src/wizard/questions.js +249 -0
- package/src/wizard/validation/index.js +120 -0
- package/src/wizard/validation/report-generator.js +269 -0
- package/src/wizard/validation/troubleshooting-system.js +346 -0
- package/src/wizard/validation/validators/config-validator.js +362 -0
- package/src/wizard/validation/validators/dependency-validator.js +333 -0
- package/src/wizard/validation/validators/file-structure-validator.js +181 -0
- package/src/wizard/validation/validators/mcp-health-checker.js +310 -0
- package/src/wizard/validators.js +274 -0
- package/templates/squad/LICENSE +21 -0
- package/templates/squad/README.md +37 -0
- package/templates/squad/agents/example-agent.yaml +36 -0
- package/templates/squad/package.json +19 -0
- package/templates/squad/squad.yaml +25 -0
- package/templates/squad/tasks/example-task.yaml +46 -0
- package/templates/squad/templates/example-template.md +24 -0
- package/templates/squad/tests/example-agent.test.js +53 -0
- package/templates/squad/workflows/example-workflow.yaml +54 -0
- package/tools/package-builder.js +35 -0
|
@@ -0,0 +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)
|