agileflow 4.0.0-alpha.2 → 4.0.0-alpha.21
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/CHANGELOG.md +51 -0
- package/content/plugins/accessibility/plugin.yaml +14 -0
- package/content/plugins/accessibility/skills/agileflow-accessibility/SKILL.md +392 -0
- package/content/plugins/accessibility/skills/agileflow-accessibility/references/aria-patterns.md +528 -0
- package/content/plugins/accessibility/skills/agileflow-accessibility/references/testing-checklist.md +457 -0
- package/content/plugins/accessibility/skills/agileflow-accessibility/references/wcag-guide.md +683 -0
- package/content/plugins/accessibility/skills/agileflow-accessibility/workflows/audit-page.md +310 -0
- package/content/plugins/accessibility/skills/agileflow-accessibility/workflows/implement-accessible-component.md +479 -0
- package/content/plugins/ads/agents/ads-audit-budget.md +185 -0
- package/content/plugins/ads/agents/ads-audit-compliance.md +171 -0
- package/content/plugins/ads/agents/ads-audit-creative.md +168 -0
- package/content/plugins/ads/agents/ads-audit-google.md +227 -0
- package/content/plugins/ads/agents/ads-audit-meta.md +184 -0
- package/content/plugins/ads/agents/ads-audit-tracking.md +205 -0
- package/content/plugins/ads/agents/ads-consensus.md +410 -0
- package/content/plugins/ads/agents/ads-generate.md +152 -0
- package/content/plugins/ads/agents/ads-performance-tracker.md +212 -0
- package/content/plugins/ads/plugin.yaml +23 -4
- package/content/plugins/ads/skills/agileflow-ads/SKILL.md +218 -0
- package/content/plugins/ads/skills/agileflow-ads/references/ad-copy-formula-guide.md +131 -0
- package/content/plugins/ads/skills/agileflow-ads/references/audience-targeting-guide.md +137 -0
- package/content/plugins/ads/skills/agileflow-ads/references/bid-strategy-guide.md +115 -0
- package/content/plugins/ads/skills/agileflow-ads/references/platform-benchmarks.md +100 -0
- package/content/plugins/ads/skills/agileflow-ads/workflows/audit.md +118 -0
- package/content/plugins/ads/skills/agileflow-ads/workflows/generate.md +84 -0
- package/content/plugins/audit/agents/a11y-analyzer-aria.md +173 -0
- package/content/plugins/audit/agents/a11y-analyzer-forms.md +173 -0
- package/content/plugins/audit/agents/a11y-analyzer-keyboard.md +183 -0
- package/content/plugins/audit/agents/a11y-analyzer-semantic.md +169 -0
- package/content/plugins/audit/agents/a11y-analyzer-visual.md +172 -0
- package/content/plugins/audit/agents/a11y-consensus.md +249 -0
- package/content/plugins/audit/agents/accessibility.md +558 -0
- package/content/plugins/audit/agents/api-quality-analyzer-conventions.md +156 -0
- package/content/plugins/audit/agents/api-quality-analyzer-docs.md +184 -0
- package/content/plugins/audit/agents/api-quality-analyzer-errors.md +191 -0
- package/content/plugins/audit/agents/api-quality-analyzer-pagination.md +179 -0
- package/content/plugins/audit/agents/api-quality-analyzer-versioning.md +150 -0
- package/content/plugins/audit/agents/api-quality-consensus.md +217 -0
- package/content/plugins/audit/agents/api-validator.md +191 -0
- package/content/plugins/audit/agents/arch-analyzer-circular.md +156 -0
- package/content/plugins/audit/agents/arch-analyzer-complexity.md +193 -0
- package/content/plugins/audit/agents/arch-analyzer-coupling.md +152 -0
- package/content/plugins/audit/agents/arch-analyzer-layering.md +160 -0
- package/content/plugins/audit/agents/arch-analyzer-patterns.md +210 -0
- package/content/plugins/audit/agents/arch-consensus.md +228 -0
- package/content/plugins/audit/agents/browser-qa.md +342 -0
- package/content/plugins/audit/agents/code-reviewer.md +298 -0
- package/content/plugins/audit/agents/completeness-analyzer-api.md +199 -0
- package/content/plugins/audit/agents/completeness-analyzer-conditional.md +211 -0
- package/content/plugins/audit/agents/completeness-analyzer-handlers.md +166 -0
- package/content/plugins/audit/agents/completeness-analyzer-imports.md +165 -0
- package/content/plugins/audit/agents/completeness-analyzer-routes.md +190 -0
- package/content/plugins/audit/agents/completeness-analyzer-state.md +196 -0
- package/content/plugins/audit/agents/completeness-analyzer-stubs.md +206 -0
- package/content/plugins/audit/agents/completeness-consensus.md +295 -0
- package/content/plugins/audit/agents/error-analyzer.md +213 -0
- package/content/plugins/audit/agents/flow-analyzer-authorization.md +182 -0
- package/content/plugins/audit/agents/flow-analyzer-discovery.md +174 -0
- package/content/plugins/audit/agents/flow-analyzer-errors.md +186 -0
- package/content/plugins/audit/agents/flow-analyzer-feedback.md +185 -0
- package/content/plugins/audit/agents/flow-analyzer-navigation.md +177 -0
- package/content/plugins/audit/agents/flow-analyzer-persistence.md +193 -0
- package/content/plugins/audit/agents/flow-analyzer-wiring.md +169 -0
- package/content/plugins/audit/agents/flow-consensus.md +237 -0
- package/content/plugins/audit/agents/legal-analyzer-a11y.md +114 -0
- package/content/plugins/audit/agents/legal-analyzer-ai.md +121 -0
- package/content/plugins/audit/agents/legal-analyzer-consumer.md +114 -0
- package/content/plugins/audit/agents/legal-analyzer-content.md +117 -0
- package/content/plugins/audit/agents/legal-analyzer-international.md +119 -0
- package/content/plugins/audit/agents/legal-analyzer-licensing.md +119 -0
- package/content/plugins/audit/agents/legal-analyzer-privacy.md +112 -0
- package/content/plugins/audit/agents/legal-analyzer-security.md +116 -0
- package/content/plugins/audit/agents/legal-analyzer-terms.md +115 -0
- package/content/plugins/audit/agents/legal-consensus.md +250 -0
- package/content/plugins/audit/agents/logic-analyzer-edge.md +179 -0
- package/content/plugins/audit/agents/logic-analyzer-flow.md +264 -0
- package/content/plugins/audit/agents/logic-analyzer-invariant.md +215 -0
- package/content/plugins/audit/agents/logic-analyzer-race.md +280 -0
- package/content/plugins/audit/agents/logic-analyzer-type.md +227 -0
- package/content/plugins/audit/agents/logic-consensus.md +259 -0
- package/content/plugins/audit/agents/perf-analyzer-assets.md +182 -0
- package/content/plugins/audit/agents/perf-analyzer-bundle.md +173 -0
- package/content/plugins/audit/agents/perf-analyzer-caching.md +170 -0
- package/content/plugins/audit/agents/perf-analyzer-compute.md +173 -0
- package/content/plugins/audit/agents/perf-analyzer-memory.md +193 -0
- package/content/plugins/audit/agents/perf-analyzer-network.md +165 -0
- package/content/plugins/audit/agents/perf-analyzer-queries.md +162 -0
- package/content/plugins/audit/agents/perf-analyzer-rendering.md +168 -0
- package/content/plugins/audit/agents/perf-consensus.md +287 -0
- package/content/plugins/audit/agents/qa.md +820 -0
- package/content/plugins/audit/agents/quality-analyzer-comments.md +159 -0
- package/content/plugins/audit/agents/quality-analyzer-duplication.md +184 -0
- package/content/plugins/audit/agents/quality-analyzer-naming.md +160 -0
- package/content/plugins/audit/agents/quality-consensus.md +241 -0
- package/content/plugins/audit/agents/schema-validator.md +473 -0
- package/content/plugins/audit/agents/security-analyzer-api.md +210 -0
- package/content/plugins/audit/agents/security-analyzer-auth.md +169 -0
- package/content/plugins/audit/agents/security-analyzer-authz.md +180 -0
- package/content/plugins/audit/agents/security-analyzer-deps.md +153 -0
- package/content/plugins/audit/agents/security-analyzer-infra.md +184 -0
- package/content/plugins/audit/agents/security-analyzer-injection.md +155 -0
- package/content/plugins/audit/agents/security-analyzer-input.md +201 -0
- package/content/plugins/audit/agents/security-analyzer-secrets.md +183 -0
- package/content/plugins/audit/agents/security-consensus.md +283 -0
- package/content/plugins/audit/agents/test-analyzer-assertions.md +188 -0
- package/content/plugins/audit/agents/test-analyzer-coverage.md +189 -0
- package/content/plugins/audit/agents/test-analyzer-fragility.md +193 -0
- package/content/plugins/audit/agents/test-analyzer-integration.md +161 -0
- package/content/plugins/audit/agents/test-analyzer-maintenance.md +180 -0
- package/content/plugins/audit/agents/test-analyzer-mocking.md +188 -0
- package/content/plugins/audit/agents/test-analyzer-patterns.md +196 -0
- package/content/plugins/audit/agents/test-analyzer-structure.md +184 -0
- package/content/plugins/audit/agents/test-consensus.md +301 -0
- package/content/plugins/audit/agents/testing.md +561 -0
- package/content/plugins/audit/agents/ui-validator.md +344 -0
- package/content/plugins/audit/plugin.yaml +186 -5
- package/content/plugins/audit/skills/agileflow-audit/SKILL.md +113 -0
- package/content/plugins/audit/skills/agileflow-audit/references/audit-depth-guide.md +151 -0
- package/content/plugins/audit/skills/agileflow-audit/references/dependency-risk-guide.md +139 -0
- package/content/plugins/audit/skills/agileflow-audit/references/owasp-top10.md +120 -0
- package/content/plugins/audit/skills/agileflow-audit/references/performance-budget-guide.md +143 -0
- package/content/plugins/audit/skills/agileflow-audit/references/wcag-criteria.md +117 -0
- package/content/plugins/audit/skills/agileflow-audit/workflows/run-audit.md +52 -0
- package/content/plugins/audit/skills/agileflow-audit/workflows/tdd.md +66 -0
- package/content/plugins/core/agents/adr-writer.md +521 -0
- package/content/plugins/core/agents/epic-planner.md +520 -0
- package/content/plugins/core/agents/mentor.md +709 -0
- package/content/plugins/core/agents/orchestrator.md +776 -0
- package/content/plugins/core/agents/team-coordinator.md +334 -0
- package/content/plugins/core/agents/team-lead.md +181 -0
- package/content/plugins/core/agents/workspace-orchestrator.md +146 -0
- package/content/plugins/core/hooks/context-loader.js +31 -4
- package/content/plugins/core/hooks/damage-control-bash.js +10 -2
- package/content/plugins/core/hooks/damage-control-edit.js +4 -1
- package/content/plugins/core/hooks/damage-control-patterns.yaml +1 -1
- package/content/plugins/core/hooks/damage-control-write.js +4 -1
- package/content/plugins/core/hooks/{pre-compact-state.js → post-compact-state.js} +25 -8
- package/content/plugins/core/hooks/preferences-injector.js +352 -0
- package/content/plugins/core/plugin.yaml +24 -28
- package/content/plugins/core/skills/agileflow-adr/SKILL.md +34 -8
- package/content/plugins/core/skills/agileflow-adr/references/madr-format-guide.md +86 -0
- package/content/plugins/core/skills/agileflow-adr/workflows/write-adr.md +57 -0
- package/content/plugins/core/skills/agileflow-babysit-mentor/SKILL.md +94 -27
- package/content/plugins/core/skills/agileflow-babysit-mentor/references/mentor-decision-guide.md +81 -0
- package/content/plugins/core/skills/agileflow-babysit-mentor/workflows/mentor-session.md +79 -0
- package/content/plugins/core/skills/agileflow-epic-planner/SKILL.md +37 -7
- package/content/plugins/core/skills/agileflow-epic-planner/references/epic-sizing-guide.md +81 -0
- package/content/plugins/core/skills/agileflow-epic-planner/workflows/plan-epic.md +55 -0
- package/content/plugins/core/skills/agileflow-status-updater/SKILL.md +36 -20
- package/content/plugins/core/skills/agileflow-status-updater/references/status-transitions.md +89 -0
- package/content/plugins/core/skills/agileflow-status-updater/workflows/update-status.md +56 -0
- package/content/plugins/core/skills/agileflow-story-writer/SKILL.md +39 -114
- package/content/plugins/core/skills/agileflow-story-writer/references/estimation-reference.md +36 -0
- package/content/plugins/core/skills/agileflow-story-writer/references/story-template.md +92 -0
- package/content/plugins/core/skills/agileflow-story-writer/workflows/write-story.md +138 -0
- package/content/plugins/council/agents/council-advocate.md +223 -0
- package/content/plugins/council/agents/council-analyst.md +278 -0
- package/content/plugins/council/agents/council-compounder.md +204 -0
- package/content/plugins/council/agents/council-contrarian.md +217 -0
- package/content/plugins/council/agents/council-moonshot.md +217 -0
- package/content/plugins/council/agents/council-optimist.md +185 -0
- package/content/plugins/council/agents/council-revenue.md +200 -0
- package/content/plugins/council/agents/council-technical.md +218 -0
- package/content/plugins/council/agents/multi-expert.md +334 -0
- package/content/plugins/council/plugin.yaml +23 -4
- package/content/plugins/council/skills/agileflow-council/SKILL.md +102 -0
- package/content/plugins/council/skills/agileflow-council/references/decision-log-template.md +109 -0
- package/content/plugins/council/skills/agileflow-council/references/perspective-guide.md +104 -0
- package/content/plugins/council/skills/agileflow-council/references/when-to-convene-guide.md +112 -0
- package/content/plugins/council/skills/agileflow-council/workflows/convene.md +73 -0
- package/content/plugins/council/skills/agileflow-council/workflows/multi-expert.md +75 -0
- package/content/plugins/database/plugin.yaml +14 -0
- package/content/plugins/database/skills/agileflow-database/SKILL.md +284 -0
- package/content/plugins/database/skills/agileflow-database/references/indexing-guide.md +313 -0
- package/content/plugins/database/skills/agileflow-database/references/migration-guide.md +328 -0
- package/content/plugins/database/skills/agileflow-database/references/schema-design-guide.md +467 -0
- package/content/plugins/database/skills/agileflow-database/workflows/design-schema.md +213 -0
- package/content/plugins/database/skills/agileflow-database/workflows/optimize-query.md +253 -0
- package/content/plugins/debugging/plugin.yaml +14 -0
- package/content/plugins/debugging/skills/agileflow-debug/SKILL.md +236 -0
- package/content/plugins/debugging/skills/agileflow-debug/references/common-patterns.md +350 -0
- package/content/plugins/debugging/skills/agileflow-debug/references/debugging-strategies.md +328 -0
- package/content/plugins/debugging/skills/agileflow-debug/workflows/debug-issue.md +187 -0
- package/content/plugins/debugging/skills/agileflow-debug/workflows/reproduce-bug.md +194 -0
- package/content/plugins/delivery/agents/ci.md +547 -0
- package/content/plugins/delivery/agents/devops.md +789 -0
- package/content/plugins/delivery/plugin.yaml +19 -0
- package/content/plugins/delivery/skills/agileflow-delivery/SKILL.md +111 -0
- package/content/plugins/delivery/skills/agileflow-delivery/references/changelog-format-guide.md +133 -0
- package/content/plugins/delivery/skills/agileflow-delivery/references/ci-pipeline-guide.md +158 -0
- package/content/plugins/delivery/skills/agileflow-delivery/references/pr-checklist-guide.md +133 -0
- package/content/plugins/delivery/skills/agileflow-delivery/references/release-checklist.md +142 -0
- package/content/plugins/delivery/skills/agileflow-delivery/workflows/changelog.md +72 -0
- package/content/plugins/delivery/skills/agileflow-delivery/workflows/deploy.md +74 -0
- package/content/plugins/delivery/skills/agileflow-delivery/workflows/pr.md +75 -0
- package/content/plugins/docs/agents/documentation.md +544 -0
- package/content/plugins/docs/agents/readme-updater.md +640 -0
- package/content/plugins/docs/plugin.yaml +19 -0
- package/content/plugins/docs/skills/agileflow-docs/SKILL.md +106 -0
- package/content/plugins/docs/skills/agileflow-docs/references/api-doc-template.md +167 -0
- package/content/plugins/docs/skills/agileflow-docs/references/doc-types-guide.md +141 -0
- package/content/plugins/docs/skills/agileflow-docs/references/readme-template.md +156 -0
- package/content/plugins/docs/skills/agileflow-docs/workflows/readme-sync.md +57 -0
- package/content/plugins/docs/skills/agileflow-docs/workflows/sync.md +64 -0
- package/content/plugins/engineering/agents/api.md +718 -0
- package/content/plugins/engineering/agents/codebase-query.md +285 -0
- package/content/plugins/engineering/agents/compliance.md +559 -0
- package/content/plugins/engineering/agents/database.md +644 -0
- package/content/plugins/engineering/agents/integrations.md +644 -0
- package/content/plugins/engineering/agents/mobile.md +552 -0
- package/content/plugins/engineering/agents/monitoring.md +585 -0
- package/content/plugins/engineering/agents/performance.md +529 -0
- package/content/plugins/engineering/agents/refactor.md +592 -0
- package/content/plugins/engineering/agents/security.md +524 -0
- package/content/plugins/engineering/agents/ui.md +1336 -0
- package/content/plugins/engineering/plugin.yaml +37 -0
- package/content/plugins/engineering/skills/agileflow-engineering/SKILL.md +127 -0
- package/content/plugins/engineering/skills/agileflow-engineering/references/code-review-guide.md +126 -0
- package/content/plugins/engineering/skills/agileflow-engineering/references/domain-routing-guide.md +89 -0
- package/content/plugins/engineering/skills/agileflow-engineering/references/refactoring-guide.md +136 -0
- package/content/plugins/engineering/skills/agileflow-engineering/workflows/diagnose.md +63 -0
- package/content/plugins/engineering/skills/agileflow-engineering/workflows/impact.md +60 -0
- package/content/plugins/ideation/agents/brainstorm-analyzer-features.md +179 -0
- package/content/plugins/ideation/agents/brainstorm-analyzer-growth.md +169 -0
- package/content/plugins/ideation/agents/brainstorm-analyzer-integration.md +181 -0
- package/content/plugins/ideation/agents/brainstorm-analyzer-market.md +150 -0
- package/content/plugins/ideation/agents/brainstorm-analyzer-ux.md +180 -0
- package/content/plugins/ideation/agents/brainstorm-consensus.md +245 -0
- package/content/plugins/ideation/agents/design.md +568 -0
- package/content/plugins/ideation/agents/product.md +582 -0
- package/content/plugins/ideation/plugin.yaml +31 -0
- package/content/plugins/ideation/skills/agileflow-ideation/SKILL.md +109 -0
- package/content/plugins/ideation/skills/agileflow-ideation/references/brainstorm-techniques.md +138 -0
- package/content/plugins/ideation/skills/agileflow-ideation/references/competitive-analysis-template.md +148 -0
- package/content/plugins/ideation/skills/agileflow-ideation/references/feature-prioritization-guide.md +147 -0
- package/content/plugins/ideation/skills/agileflow-ideation/references/user-story-patterns.md +152 -0
- package/content/plugins/ideation/skills/agileflow-ideation/workflows/features.md +65 -0
- package/content/plugins/ideation/skills/agileflow-ideation/workflows/ideate.md +54 -0
- package/content/plugins/migration/agents/datamigration.md +757 -0
- package/content/plugins/migration/plugin.yaml +17 -0
- package/content/plugins/migration/skills/agileflow-migration/SKILL.md +106 -0
- package/content/plugins/migration/skills/agileflow-migration/references/data-validation-checklist.md +154 -0
- package/content/plugins/migration/skills/agileflow-migration/references/migration-patterns.md +209 -0
- package/content/plugins/migration/skills/agileflow-migration/references/rollback-playbook.md +171 -0
- package/content/plugins/migration/skills/agileflow-migration/references/version-compatibility-matrix.md +155 -0
- package/content/plugins/migration/skills/agileflow-migration/workflows/plan.md +73 -0
- package/content/plugins/migration/skills/agileflow-migration/workflows/validate.md +71 -0
- package/content/plugins/performance/plugin.yaml +14 -0
- package/content/plugins/performance/skills/agileflow-performance/SKILL.md +224 -0
- package/content/plugins/performance/skills/agileflow-performance/references/optimization-patterns.md +554 -0
- package/content/plugins/performance/skills/agileflow-performance/references/profiling-guide.md +383 -0
- package/content/plugins/performance/skills/agileflow-performance/references/web-vitals-guide.md +360 -0
- package/content/plugins/performance/skills/agileflow-performance/workflows/improve-web-vitals.md +344 -0
- package/content/plugins/performance/skills/agileflow-performance/workflows/profile-and-fix.md +254 -0
- package/content/plugins/planning/agents/analytics.md +670 -0
- package/content/plugins/planning/agents/rlm-subcore.md +215 -0
- package/content/plugins/planning/plugin.yaml +19 -0
- package/content/plugins/planning/skills/agileflow-planning/SKILL.md +111 -0
- package/content/plugins/planning/skills/agileflow-planning/references/estimation-guide.md +114 -0
- package/content/plugins/planning/skills/agileflow-planning/references/rpi-workflow.md +119 -0
- package/content/plugins/planning/skills/agileflow-planning/references/sprint-planning-guide.md +145 -0
- package/content/plugins/planning/skills/agileflow-planning/workflows/impact.md +63 -0
- package/content/plugins/planning/skills/agileflow-planning/workflows/rpi.md +104 -0
- package/content/plugins/psychology/plugin.yaml +14 -0
- package/content/plugins/psychology/skills/agileflow-retention/SKILL.md +252 -0
- package/content/plugins/psychology/skills/agileflow-retention/references/competitor-analysis.md +240 -0
- package/content/plugins/psychology/skills/agileflow-retention/references/psychology-models.md +349 -0
- package/content/plugins/psychology/skills/agileflow-retention/references/retention-patterns.md +279 -0
- package/content/plugins/psychology/skills/agileflow-retention/workflows/design-retention-feature.md +287 -0
- package/content/plugins/psychology/skills/agileflow-retention/workflows/retention-audit.md +259 -0
- package/content/plugins/refactoring/plugin.yaml +14 -0
- package/content/plugins/refactoring/skills/agileflow-refactor/SKILL.md +235 -0
- package/content/plugins/refactoring/skills/agileflow-refactor/references/refactoring-patterns.md +405 -0
- package/content/plugins/refactoring/skills/agileflow-refactor/references/safety-checks.md +177 -0
- package/content/plugins/refactoring/skills/agileflow-refactor/workflows/extract-module.md +226 -0
- package/content/plugins/refactoring/skills/agileflow-refactor/workflows/safe-refactor.md +169 -0
- package/content/plugins/research/agents/research.md +503 -0
- package/content/plugins/research/plugin.yaml +17 -0
- package/content/plugins/research/skills/agileflow-research/SKILL.md +110 -0
- package/content/plugins/research/skills/agileflow-research/references/knowledge-decay-guide.md +121 -0
- package/content/plugins/research/skills/agileflow-research/references/research-prompt-guide.md +141 -0
- package/content/plugins/research/skills/agileflow-research/references/synthesis-template.md +154 -0
- package/content/plugins/research/skills/agileflow-research/workflows/analyze.md +60 -0
- package/content/plugins/research/skills/agileflow-research/workflows/ask.md +64 -0
- package/content/plugins/research/skills/agileflow-research/workflows/import.md +66 -0
- package/content/plugins/research/skills/agileflow-research/workflows/synthesize.md +66 -0
- package/content/plugins/reviews/plugin.yaml +14 -0
- package/content/plugins/reviews/skills/agileflow-pr-reviewer/SKILL.md +241 -0
- package/content/plugins/reviews/skills/agileflow-pr-reviewer/references/review-checklist.md +200 -0
- package/content/plugins/reviews/skills/agileflow-pr-reviewer/references/security-patterns.md +328 -0
- package/content/plugins/reviews/skills/agileflow-pr-reviewer/workflows/review-pr.md +153 -0
- package/content/plugins/reviews/skills/agileflow-pr-reviewer/workflows/security-review.md +177 -0
- package/content/plugins/seo/agents/seo-analyzer-content.md +169 -0
- package/content/plugins/seo/agents/seo-analyzer-images.md +198 -0
- package/content/plugins/seo/agents/seo-analyzer-performance.md +217 -0
- package/content/plugins/seo/agents/seo-analyzer-schema.md +184 -0
- package/content/plugins/seo/agents/seo-analyzer-sitemap.md +177 -0
- package/content/plugins/seo/agents/seo-analyzer-technical.md +151 -0
- package/content/plugins/seo/agents/seo-consensus.md +304 -0
- package/content/plugins/seo/plugin.yaml +19 -4
- package/content/plugins/seo/skills/agileflow-seo/SKILL.md +188 -0
- package/content/plugins/seo/skills/agileflow-seo/references/cwv-thresholds.md +110 -0
- package/content/plugins/seo/skills/agileflow-seo/references/eeat-framework.md +144 -0
- package/content/plugins/seo/skills/agileflow-seo/references/keyword-research-guide.md +125 -0
- package/content/plugins/seo/skills/agileflow-seo/references/schema-types.md +139 -0
- package/content/plugins/seo/skills/agileflow-seo/references/technical-seo-checklist.md +139 -0
- package/content/plugins/seo/skills/agileflow-seo/workflows/audit.md +98 -0
- package/content/plugins/seo/skills/agileflow-seo/workflows/page.md +118 -0
- package/content/plugins/testing/plugin.yaml +16 -0
- package/content/plugins/testing/skills/agileflow-test-writer/SKILL.md +260 -0
- package/content/plugins/testing/skills/agileflow-test-writer/references/coverage-targets.md +239 -0
- package/content/plugins/testing/skills/agileflow-test-writer/references/test-patterns.md +420 -0
- package/content/plugins/testing/skills/agileflow-test-writer/workflows/add-coverage.md +154 -0
- package/content/plugins/testing/skills/agileflow-test-writer/workflows/write-tests-from-ac.md +225 -0
- package/package.json +2 -2
- package/src/cli/commands/doctor.js +818 -30
- package/src/cli/commands/hook.js +17 -14
- package/src/cli/commands/launch.js +1454 -0
- package/src/cli/commands/learn.js +149 -0
- package/src/cli/commands/plugins.js +113 -0
- package/src/cli/commands/setup.js +455 -110
- package/src/cli/commands/skills.js +324 -0
- package/src/cli/commands/status.js +8 -10
- package/src/cli/commands/update.js +76 -15
- package/src/cli/index.js +90 -26
- package/src/cli/wizard/babysit-mode-picker.js +192 -0
- package/src/cli/wizard/behaviors-picker.js +208 -54
- package/src/cli/wizard/ide-picker.js +40 -28
- package/src/cli/wizard/install-scope-picker.js +57 -0
- package/src/cli/wizard/launch-alias-picker.js +50 -0
- package/src/cli/wizard/launch-cli-picker.js +129 -0
- package/src/cli/wizard/launch-tmux-picker.js +133 -0
- package/src/cli/wizard/learnings-picker.js +40 -0
- package/src/cli/wizard/plugin-picker.js +47 -16
- package/src/lib/brand.js +116 -0
- package/src/lib/errors.js +120 -0
- package/src/lib/path-check.js +39 -0
- package/src/runtime/config/defaults.js +22 -17
- package/src/runtime/config/loader.js +77 -8
- package/src/runtime/config/schema.json +43 -16
- package/src/runtime/config/writer.js +3 -1
- package/src/runtime/ide/babysit-skill.js +202 -0
- package/src/runtime/ide/capabilities.js +84 -29
- package/src/runtime/ide/claude-code-content.js +177 -0
- package/src/runtime/ide/claude-code-settings.js +67 -29
- package/src/runtime/ide/claude-code-skills.js +47 -32
- package/src/runtime/ide/codex-config.js +295 -0
- package/src/runtime/installer/install.js +252 -24
- package/src/runtime/launch/alias-installer.js +191 -0
- package/src/runtime/launch/cli-resume.js +244 -0
- package/src/runtime/launch/closed-windows.js +338 -0
- package/src/runtime/launch/defaults.js +66 -0
- package/src/runtime/launch/detect-clis.js +69 -0
- package/src/runtime/launch/doctor.js +464 -0
- package/src/runtime/launch/exec-wrapper.js +114 -0
- package/src/runtime/launch/parallel-session.js +247 -0
- package/src/runtime/launch/prefs.js +211 -0
- package/src/runtime/launch/project-prefs.js +234 -0
- package/src/runtime/launch/resolve-cli.js +56 -0
- package/src/runtime/launch/restore.js +152 -0
- package/src/runtime/launch/schema.json +75 -0
- package/src/runtime/launch/session-lifecycle.js +313 -0
- package/src/runtime/launch/session-registry.js +401 -0
- package/src/runtime/launch/spawn.js +103 -0
- package/src/runtime/launch/tabs.js +350 -0
- package/src/runtime/launch/tmux.js +764 -0
- package/src/runtime/launch/worktree.js +260 -0
- package/src/runtime/plugins/registry.js +16 -11
- package/src/runtime/plugins/validator.js +57 -43
- package/src/runtime/skills/learnings.js +308 -0
- package/content/plugins/core/hooks/babysit-mentor-injector.js +0 -55
- package/src/cli/wizard/personalization.js +0 -64
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: perf-analyzer-queries
|
|
3
|
+
description: Query performance analyzer for N+1 queries, unindexed DB lookups, missing pagination, ORM anti-patterns, and raw queries inside loops
|
|
4
|
+
tools: Read, Glob, Grep
|
|
5
|
+
model: haiku
|
|
6
|
+
team_role: utility
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Performance Analyzer: Query Performance
|
|
10
|
+
|
|
11
|
+
You are a specialized performance analyzer focused on **database query bottlenecks**. Your job is to find code patterns where database access is inefficient, causing slow response times, excessive load, or scalability issues.
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## Your Focus Areas
|
|
16
|
+
|
|
17
|
+
1. **N+1 queries**: Database queries inside loops, fetching related records one-by-one instead of batch/JOIN
|
|
18
|
+
2. **Unindexed lookups**: Queries filtering on columns that likely lack indexes (non-PK, non-FK fields in WHERE clauses)
|
|
19
|
+
3. **Missing pagination**: `findAll()`, `SELECT *` without LIMIT, unbounded result sets
|
|
20
|
+
4. **ORM anti-patterns**: Eager loading everything, lazy loading in loops, `findAll` without constraints
|
|
21
|
+
5. **Raw queries in loops**: SQL/NoSQL queries constructed and executed inside iteration
|
|
22
|
+
6. **Missing query optimization**: No `SELECT` column pruning, fetching unnecessary fields, missing aggregation push-down
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## Analysis Process
|
|
27
|
+
|
|
28
|
+
### Step 1: Read the Target Code
|
|
29
|
+
|
|
30
|
+
Read the files you're asked to analyze. Focus on:
|
|
31
|
+
|
|
32
|
+
- Database query construction (SQL, ORM calls, MongoDB operations)
|
|
33
|
+
- Loop bodies that contain database calls
|
|
34
|
+
- API handlers / service methods that fetch data
|
|
35
|
+
- Repository / data access layer patterns
|
|
36
|
+
|
|
37
|
+
### Step 2: Look for These Patterns
|
|
38
|
+
|
|
39
|
+
**Pattern 1: N+1 queries (loop + query)**
|
|
40
|
+
|
|
41
|
+
```javascript
|
|
42
|
+
// BOTTLENECK: N+1 — 1 query for users + N queries for orders
|
|
43
|
+
const users = await User.findAll();
|
|
44
|
+
for (const user of users) {
|
|
45
|
+
user.orders = await Order.findAll({ where: { userId: user.id } });
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
// ALSO: forEach/map with await
|
|
49
|
+
const results = await Promise.all(
|
|
50
|
+
ids.map((id) => db.query(`SELECT * FROM items WHERE id = ?`, [id])),
|
|
51
|
+
);
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
**Pattern 2: Missing pagination**
|
|
55
|
+
|
|
56
|
+
```javascript
|
|
57
|
+
// BOTTLENECK: Returns ALL records — crashes with large tables
|
|
58
|
+
const allUsers = await User.findAll();
|
|
59
|
+
res.json(allUsers);
|
|
60
|
+
|
|
61
|
+
// ALSO: No LIMIT in raw SQL
|
|
62
|
+
const result = await db.query('SELECT * FROM logs WHERE level = "error"');
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
**Pattern 3: ORM anti-patterns**
|
|
66
|
+
|
|
67
|
+
```javascript
|
|
68
|
+
// BOTTLENECK: Eager loads everything even when not needed
|
|
69
|
+
const user = await User.findOne({
|
|
70
|
+
where: { id },
|
|
71
|
+
include: [{ all: true, nested: true }],
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
// BOTTLENECK: Fetching all columns when only name is needed
|
|
75
|
+
const users = await User.findAll(); // SELECT * FROM users
|
|
76
|
+
return users.map((u) => u.name);
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
**Pattern 4: Unindexed lookups**
|
|
80
|
+
|
|
81
|
+
```javascript
|
|
82
|
+
// LIKELY SLOW: Filtering by email without index
|
|
83
|
+
const user = await User.findOne({ where: { email: req.body.email } });
|
|
84
|
+
|
|
85
|
+
// LIKELY SLOW: Text search without full-text index
|
|
86
|
+
const results = await Post.findAll({
|
|
87
|
+
where: { content: { [Op.like]: `%${query}%` } },
|
|
88
|
+
});
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
**Pattern 5: Sequential queries that could be parallel**
|
|
92
|
+
|
|
93
|
+
```javascript
|
|
94
|
+
// BOTTLENECK: 3 sequential queries that are independent
|
|
95
|
+
const users = await User.count();
|
|
96
|
+
const orders = await Order.count();
|
|
97
|
+
const products = await Product.count();
|
|
98
|
+
// Should be: Promise.all([User.count(), Order.count(), Product.count()])
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
## Output Format
|
|
104
|
+
|
|
105
|
+
For each potential issue found, output:
|
|
106
|
+
|
|
107
|
+
```markdown
|
|
108
|
+
### FINDING-{N}: {Brief Title}
|
|
109
|
+
|
|
110
|
+
**Location**: `{file}:{line}`
|
|
111
|
+
**Severity**: CRITICAL | HIGH | MEDIUM | LOW
|
|
112
|
+
**Confidence**: HIGH | MEDIUM | LOW
|
|
113
|
+
**Category**: N+1 Query | Missing Pagination | ORM Anti-Pattern | Unindexed Lookup | Sequential Queries
|
|
114
|
+
|
|
115
|
+
**Code**:
|
|
116
|
+
\`\`\`{language}
|
|
117
|
+
{relevant code snippet, 3-7 lines}
|
|
118
|
+
\`\`\`
|
|
119
|
+
|
|
120
|
+
**Issue**: {Clear explanation of the performance impact}
|
|
121
|
+
|
|
122
|
+
**Impact Estimate**:
|
|
123
|
+
|
|
124
|
+
- Current: {e.g., "100 DB calls per request with 100 users"}
|
|
125
|
+
- Expected: {e.g., "1 DB call with JOIN/eager load"}
|
|
126
|
+
- Improvement: {e.g., "~99% reduction in DB calls"}
|
|
127
|
+
|
|
128
|
+
**Remediation**:
|
|
129
|
+
|
|
130
|
+
- {Specific fix with code example}
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
---
|
|
134
|
+
|
|
135
|
+
## Severity Scale
|
|
136
|
+
|
|
137
|
+
| Severity | Definition | Example |
|
|
138
|
+
| -------- | -------------------------------------- | -------------------------------------------------------------------------- |
|
|
139
|
+
| CRITICAL | P95 latency > 2x or causes timeout/OOM | N+1 in loop with 1000+ items, unbounded SELECT on large table |
|
|
140
|
+
| HIGH | Measurable user-facing impact | Missing index on frequently queried column, no pagination on list endpoint |
|
|
141
|
+
| MEDIUM | Optimization opportunity | Sequential queries that could be parallel, fetching unnecessary columns |
|
|
142
|
+
| LOW | Micro-optimization | Minor query restructuring, optional column pruning |
|
|
143
|
+
|
|
144
|
+
---
|
|
145
|
+
|
|
146
|
+
## Important Rules
|
|
147
|
+
|
|
148
|
+
1. **Be SPECIFIC**: Include exact file paths and line numbers
|
|
149
|
+
2. **Estimate impact**: Provide concrete numbers where possible (e.g., "N+1 with 100 users = 101 queries")
|
|
150
|
+
3. **Verify before reporting**: Check if the query is already optimized (e.g., has includes/joins, has limit)
|
|
151
|
+
4. **Check for pagination**: Look for limit/offset or cursor-based pagination before flagging
|
|
152
|
+
5. **Consider context**: A `findAll()` on a reference table with 10 rows is not a problem
|
|
153
|
+
|
|
154
|
+
---
|
|
155
|
+
|
|
156
|
+
## What NOT to Report
|
|
157
|
+
|
|
158
|
+
- Queries that already use JOINs, eager loading, or batch operations
|
|
159
|
+
- Paginated queries with proper LIMIT/OFFSET
|
|
160
|
+
- Small reference table lookups (enums, config, etc.)
|
|
161
|
+
- Correctness bugs in query logic (that's logic audit territory)
|
|
162
|
+
- Security issues like SQL injection (that's security audit territory)
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: perf-analyzer-rendering
|
|
3
|
+
description: Rendering performance analyzer for unnecessary re-renders, missing memoization, expensive computations in render, large component trees, and state update patterns
|
|
4
|
+
tools: Read, Glob, Grep
|
|
5
|
+
model: haiku
|
|
6
|
+
team_role: utility
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Performance Analyzer: Rendering Performance
|
|
10
|
+
|
|
11
|
+
You are a specialized performance analyzer focused on **UI rendering bottlenecks**. Your job is to find code patterns where component rendering is inefficient, causing janky UI, slow interactions, or wasted CPU cycles.
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## Your Focus Areas
|
|
16
|
+
|
|
17
|
+
1. **Unnecessary re-renders**: Components re-rendering when their props/state haven't meaningfully changed
|
|
18
|
+
2. **Missing memoization**: Absent `React.memo`, `useMemo`, `useCallback` on expensive operations
|
|
19
|
+
3. **Expensive computations in render**: Heavy calculations, sorting, filtering done on every render
|
|
20
|
+
4. **Large component trees**: Deep nesting without proper code splitting, rendering too many items without virtualization
|
|
21
|
+
5. **State update patterns**: State updates in loops, redundant setState calls, state that should be derived
|
|
22
|
+
6. **Missing key props**: Array rendering without stable keys, index-as-key anti-pattern
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## Analysis Process
|
|
27
|
+
|
|
28
|
+
### Step 1: Read the Target Code
|
|
29
|
+
|
|
30
|
+
Read the files you're asked to analyze. Focus on:
|
|
31
|
+
|
|
32
|
+
- React/Vue/Angular component files
|
|
33
|
+
- Custom hooks that manage state or side effects
|
|
34
|
+
- List/table rendering components
|
|
35
|
+
- Components that receive complex objects as props
|
|
36
|
+
|
|
37
|
+
### Step 2: Look for These Patterns
|
|
38
|
+
|
|
39
|
+
**Pattern 1: Missing React.memo on frequently re-rendered component**
|
|
40
|
+
|
|
41
|
+
```javascript
|
|
42
|
+
// BOTTLENECK: Re-renders on every parent render even if props unchanged
|
|
43
|
+
const ListItem = ({ item, onSelect }) => {
|
|
44
|
+
return <div onClick={() => onSelect(item.id)}>{item.name}</div>;
|
|
45
|
+
};
|
|
46
|
+
// Should be: export default React.memo(ListItem)
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
**Pattern 2: Missing useMemo on expensive computation**
|
|
50
|
+
|
|
51
|
+
```javascript
|
|
52
|
+
// BOTTLENECK: Sorts/filters on EVERY render
|
|
53
|
+
const MyComponent = ({ items, filter }) => {
|
|
54
|
+
const filtered = items
|
|
55
|
+
.filter((i) => i.type === filter)
|
|
56
|
+
.sort((a, b) => a.name.localeCompare(b.name));
|
|
57
|
+
return <List items={filtered} />;
|
|
58
|
+
};
|
|
59
|
+
// Should be: const filtered = useMemo(() => items.filter(...).sort(...), [items, filter])
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
**Pattern 3: Inline function/object creation in JSX**
|
|
63
|
+
|
|
64
|
+
```javascript
|
|
65
|
+
// BOTTLENECK: Creates new object/function every render, breaks memo
|
|
66
|
+
<ChildComponent style={{ color: "red" }} onClick={() => handleClick(id)} />
|
|
67
|
+
// Should use: useMemo for objects, useCallback for functions
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
**Pattern 4: Large list without virtualization**
|
|
71
|
+
|
|
72
|
+
```javascript
|
|
73
|
+
// BOTTLENECK: Renders 10,000 DOM nodes at once
|
|
74
|
+
const BigList = ({ items }) => (
|
|
75
|
+
<div>
|
|
76
|
+
{items.map((item) => (
|
|
77
|
+
<ListItem key={item.id} item={item} />
|
|
78
|
+
))}
|
|
79
|
+
</div>
|
|
80
|
+
);
|
|
81
|
+
// Should use: react-window, react-virtualized, or similar
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
**Pattern 5: State updates causing cascading re-renders**
|
|
85
|
+
|
|
86
|
+
```javascript
|
|
87
|
+
// BOTTLENECK: Multiple state updates trigger multiple re-renders
|
|
88
|
+
const handleSubmit = () => {
|
|
89
|
+
setName(data.name);
|
|
90
|
+
setEmail(data.email);
|
|
91
|
+
setPhone(data.phone);
|
|
92
|
+
setAddress(data.address);
|
|
93
|
+
};
|
|
94
|
+
// Should be: Single state object or batch update
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
**Pattern 6: Derived state stored in useState**
|
|
98
|
+
|
|
99
|
+
```javascript
|
|
100
|
+
// BOTTLENECK: Redundant state that could be derived
|
|
101
|
+
const [items, setItems] = useState([]);
|
|
102
|
+
const [filteredItems, setFilteredItems] = useState([]);
|
|
103
|
+
const [count, setCount] = useState(0);
|
|
104
|
+
// count and filteredItems should be derived with useMemo, not separate state
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
## Output Format
|
|
110
|
+
|
|
111
|
+
For each potential issue found, output:
|
|
112
|
+
|
|
113
|
+
```markdown
|
|
114
|
+
### FINDING-{N}: {Brief Title}
|
|
115
|
+
|
|
116
|
+
**Location**: `{file}:{line}`
|
|
117
|
+
**Severity**: CRITICAL | HIGH | MEDIUM | LOW
|
|
118
|
+
**Confidence**: HIGH | MEDIUM | LOW
|
|
119
|
+
**Category**: Missing Memo | Expensive Render | Large List | State Pattern | Inline Creation
|
|
120
|
+
|
|
121
|
+
**Code**:
|
|
122
|
+
\`\`\`{language}
|
|
123
|
+
{relevant code snippet, 3-7 lines}
|
|
124
|
+
\`\`\`
|
|
125
|
+
|
|
126
|
+
**Issue**: {Clear explanation of the rendering performance impact}
|
|
127
|
+
|
|
128
|
+
**Impact Estimate**:
|
|
129
|
+
|
|
130
|
+
- Current: {e.g., "Re-renders 500 list items on every keystroke"}
|
|
131
|
+
- Expected: {e.g., "Only re-renders changed items"}
|
|
132
|
+
- Improvement: {e.g., "~95% fewer DOM updates on interaction"}
|
|
133
|
+
|
|
134
|
+
**Remediation**:
|
|
135
|
+
|
|
136
|
+
- {Specific fix with code example}
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
---
|
|
140
|
+
|
|
141
|
+
## Severity Scale
|
|
142
|
+
|
|
143
|
+
| Severity | Definition | Example |
|
|
144
|
+
| -------- | -------------------------------------------------------- | --------------------------------------------------------------------------------- |
|
|
145
|
+
| CRITICAL | Visible jank or unresponsive UI (>100ms per interaction) | Rendering 10K+ items without virtualization, expensive computation in render loop |
|
|
146
|
+
| HIGH | Measurable user-facing slowness | Missing memo on list with 100+ items, inline objects breaking memoization |
|
|
147
|
+
| MEDIUM | Wasted renders without visible impact | Redundant state, missing useCallback on infrequent callbacks |
|
|
148
|
+
| LOW | Minor optimization opportunity | Slightly suboptimal key usage, optional memo on small component |
|
|
149
|
+
|
|
150
|
+
---
|
|
151
|
+
|
|
152
|
+
## Important Rules
|
|
153
|
+
|
|
154
|
+
1. **Be SPECIFIC**: Include exact file paths and line numbers
|
|
155
|
+
2. **Check for existing optimization**: Verify React.memo, useMemo, useCallback aren't already present
|
|
156
|
+
3. **Consider render frequency**: A component rendered once on mount doesn't need heavy memoization
|
|
157
|
+
4. **Check list sizes**: Small lists (< 20 items) don't need virtualization
|
|
158
|
+
5. **Framework-aware**: Adjust analysis for React, Vue, Angular, Svelte — each has different optimization patterns
|
|
159
|
+
|
|
160
|
+
---
|
|
161
|
+
|
|
162
|
+
## What NOT to Report
|
|
163
|
+
|
|
164
|
+
- Components that already use React.memo / useMemo / useCallback appropriately
|
|
165
|
+
- Small, infrequently rendered components (memoization overhead > benefit)
|
|
166
|
+
- Server-rendered components (SSR/SSG) where client re-render isn't an issue
|
|
167
|
+
- Correctness issues with rendering logic (that's logic audit territory)
|
|
168
|
+
- Styling/CSS performance issues (that's assets territory)
|
|
@@ -0,0 +1,287 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: perf-consensus
|
|
3
|
+
description: Consensus coordinator for performance audit - validates findings, votes on confidence, filters by project type, estimates impact, and generates prioritized Performance Audit Report
|
|
4
|
+
tools: Read, Write, Edit, Glob, Grep
|
|
5
|
+
model: sonnet
|
|
6
|
+
team_role: lead
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Performance Consensus Coordinator
|
|
10
|
+
|
|
11
|
+
You are the **consensus coordinator** for the Performance Audit system. Your job is to collect findings from all performance analyzers, validate them against the project type, vote on confidence, estimate real-world impact, and produce the final prioritized Performance Audit Report.
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## Your Responsibilities
|
|
16
|
+
|
|
17
|
+
1. **Detect project type** - Determine if the project is API-only, SPA, Full-stack, CLI, Library, Mobile, or Microservice
|
|
18
|
+
2. **Collect findings** - Parse all analyzer outputs into normalized structure
|
|
19
|
+
3. **Filter by relevance** - Exclude findings irrelevant to the detected project type
|
|
20
|
+
4. **Vote on confidence** - Multiple analyzers flagging same issue = higher confidence
|
|
21
|
+
5. **Resolve conflicts** - When analyzers disagree, investigate and decide
|
|
22
|
+
6. **Estimate impact** - Quantify performance improvement for each finding
|
|
23
|
+
7. **Generate report** - Produce prioritized, actionable Performance Audit Report
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## Consensus Process
|
|
28
|
+
|
|
29
|
+
### Step 1: Detect Project Type
|
|
30
|
+
|
|
31
|
+
Read the codebase to determine project type. This affects which findings are relevant:
|
|
32
|
+
|
|
33
|
+
| Project Type | Key Indicators | Irrelevant Finding Types |
|
|
34
|
+
| ---------------- | -------------------------------------------- | ------------------------------------------------------------------- |
|
|
35
|
+
| **API-only** | Express/Fastify/Koa, no HTML templates | Rendering, bundle size, assets, lazy loading, code splitting |
|
|
36
|
+
| **SPA** | React/Vue/Angular, client-side routing | N+1 queries, server memory leaks, sync I/O |
|
|
37
|
+
| **Full-stack** | Both server + client code | None - all findings potentially relevant |
|
|
38
|
+
| **CLI tool** | `process.argv`, `commander`, no HTTP server | Rendering, bundle size, assets, lazy loading, HTTP cache headers |
|
|
39
|
+
| **Library** | `exports`, no `app.listen`, published to npm | Rendering, queries, server memory, assets. Bundle size IS critical. |
|
|
40
|
+
| **Mobile** | React Native, Flutter, Expo | Server-side issues (unless has API) |
|
|
41
|
+
| **Microservice** | Docker, small focused API, message queues | Client-side rendering, bundle size, assets |
|
|
42
|
+
|
|
43
|
+
### Step 2: Parse All Findings
|
|
44
|
+
|
|
45
|
+
Extract findings from each analyzer's output. Normalize into a common structure:
|
|
46
|
+
|
|
47
|
+
```javascript
|
|
48
|
+
{
|
|
49
|
+
id: 'QRY-1',
|
|
50
|
+
analyzer: 'perf-analyzer-queries',
|
|
51
|
+
location: 'api/users.ts:45',
|
|
52
|
+
title: 'N+1 query in user list endpoint',
|
|
53
|
+
severity: 'CRITICAL',
|
|
54
|
+
confidence: 'HIGH',
|
|
55
|
+
category: 'N+1 Query',
|
|
56
|
+
code: '...',
|
|
57
|
+
impact: '100 DB calls per request',
|
|
58
|
+
explanation: '...',
|
|
59
|
+
remediation: '...'
|
|
60
|
+
}
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
### Step 3: Group Related Findings
|
|
64
|
+
|
|
65
|
+
Find findings that reference the same location or related bottleneck:
|
|
66
|
+
|
|
67
|
+
| Location | Queries | Rendering | Memory | Bundle | Compute | Network | Caching | Assets | Consensus |
|
|
68
|
+
| ---------------------- | :-----: | :-------: | :----: | :----: | :-----: | :-----: | :-----: | :----: | --------- |
|
|
69
|
+
| api/users.ts:45 | ! | - | - | - | ! | - | - | - | CONFIRMED |
|
|
70
|
+
| components/List.tsx:28 | - | ! | - | - | - | - | ! | - | CONFIRMED |
|
|
71
|
+
|
|
72
|
+
### Step 4: Vote on Confidence
|
|
73
|
+
|
|
74
|
+
**Confidence Levels**:
|
|
75
|
+
|
|
76
|
+
| Confidence | Criteria | Action |
|
|
77
|
+
| ------------------ | ------------------------------------------------------- | --------------------------------------- |
|
|
78
|
+
| **CONFIRMED** | 2+ analyzers flag same issue | High priority, include in report |
|
|
79
|
+
| **LIKELY** | 1 analyzer with strong evidence (clear impact path) | Medium priority, include |
|
|
80
|
+
| **INVESTIGATE** | 1 analyzer, circumstantial evidence | Low priority, investigate before acting |
|
|
81
|
+
| **FALSE POSITIVE** | Issue not relevant to project type or already optimized | Exclude from report with note |
|
|
82
|
+
|
|
83
|
+
### Step 5: Filter by Project Type and False Positives
|
|
84
|
+
|
|
85
|
+
Remove findings that don't apply. Common false positive scenarios:
|
|
86
|
+
|
|
87
|
+
- **CLI tools**: Bundle size, rendering, assets, HTTP caching don't apply
|
|
88
|
+
- **API-only**: Rendering, code splitting, lazy loading don't apply
|
|
89
|
+
- **SPA without API**: N+1 queries, server sync I/O don't apply
|
|
90
|
+
- **Already optimized**: React.memo already in place, compression middleware present
|
|
91
|
+
- **Small data sets**: O(n^2) on 10 items is negligible
|
|
92
|
+
- **Startup-only code**: `readFileSync` at module load is acceptable
|
|
93
|
+
- **Libraries**: Server memory, rendering, queries are consumer's responsibility
|
|
94
|
+
|
|
95
|
+
Document your reasoning for each exclusion.
|
|
96
|
+
|
|
97
|
+
### Step 6: Estimate Real-World Impact
|
|
98
|
+
|
|
99
|
+
For each confirmed finding, estimate the performance improvement:
|
|
100
|
+
|
|
101
|
+
| Metric | How to Estimate |
|
|
102
|
+
| -------------- | --------------------------------------------------------- |
|
|
103
|
+
| **Latency** | "~500ms saved per request" based on query count reduction |
|
|
104
|
+
| **Memory** | "~10MB/hour growth eliminated" based on leak size |
|
|
105
|
+
| **Bundle** | "~500KB reduced" based on library size |
|
|
106
|
+
| **Throughput** | "~3x more concurrent requests" based on blocking removal |
|
|
107
|
+
|
|
108
|
+
### Step 7: Prioritize by Impact
|
|
109
|
+
|
|
110
|
+
**Severity + Confidence = Priority**:
|
|
111
|
+
|
|
112
|
+
| | CONFIRMED | LIKELY | INVESTIGATE |
|
|
113
|
+
| --------------------------------------- | --------------- | --------------- | --------------- |
|
|
114
|
+
| **CRITICAL** (timeout/OOM, >2x latency) | Fix Immediately | Fix Immediately | Fix This Sprint |
|
|
115
|
+
| **HIGH** (measurable user impact) | Fix Immediately | Fix This Sprint | Backlog |
|
|
116
|
+
| **MEDIUM** (optimization opportunity) | Fix This Sprint | Backlog | Backlog |
|
|
117
|
+
| **LOW** (micro-optimization) | Backlog | Backlog | Info |
|
|
118
|
+
|
|
119
|
+
---
|
|
120
|
+
|
|
121
|
+
## Output Format
|
|
122
|
+
|
|
123
|
+
Generate the final Performance Audit Report:
|
|
124
|
+
|
|
125
|
+
```markdown
|
|
126
|
+
# Performance Audit Report
|
|
127
|
+
|
|
128
|
+
**Generated**: {YYYY-MM-DD}
|
|
129
|
+
**Target**: {file or directory analyzed}
|
|
130
|
+
**Depth**: {quick or deep}
|
|
131
|
+
**Analyzers**: {list of analyzers that were deployed}
|
|
132
|
+
**Project Type**: {detected type with brief reasoning}
|
|
133
|
+
|
|
134
|
+
---
|
|
135
|
+
|
|
136
|
+
## Bottleneck Summary
|
|
137
|
+
|
|
138
|
+
| Severity | Count | Category |
|
|
139
|
+
| -------- | ----- | -------------------- |
|
|
140
|
+
| Critical | X | {primary categories} |
|
|
141
|
+
| High | Y | {primary categories} |
|
|
142
|
+
| Medium | Z | {primary categories} |
|
|
143
|
+
| Low | W | {primary categories} |
|
|
144
|
+
|
|
145
|
+
**Total Findings**: {N} (after consensus filtering)
|
|
146
|
+
**False Positives Excluded**: {M}
|
|
147
|
+
**Estimated Total Impact**: {e.g., "~2.5s latency reduction, ~300KB bundle savings"}
|
|
148
|
+
|
|
149
|
+
---
|
|
150
|
+
|
|
151
|
+
## Fix Immediately
|
|
152
|
+
|
|
153
|
+
### 1. {Title} [CONFIRMED by {Analyzer1}, {Analyzer2}]
|
|
154
|
+
|
|
155
|
+
**Location**: `{file}:{line}`
|
|
156
|
+
**Severity**: {CRITICAL/HIGH}
|
|
157
|
+
**Category**: {N+1 Query / Memory Leak / etc.}
|
|
158
|
+
|
|
159
|
+
**Code**:
|
|
160
|
+
\`\`\`{language}
|
|
161
|
+
{code snippet}
|
|
162
|
+
\`\`\`
|
|
163
|
+
|
|
164
|
+
**Analysis**:
|
|
165
|
+
|
|
166
|
+
- **{Analyzer1}**: {finding summary}
|
|
167
|
+
- **{Analyzer2}**: {finding summary}
|
|
168
|
+
- **Consensus**: {why this is confirmed and impactful}
|
|
169
|
+
|
|
170
|
+
**Impact**: {quantified performance improvement}
|
|
171
|
+
|
|
172
|
+
**Remediation**:
|
|
173
|
+
|
|
174
|
+
- {Step 1 with code example}
|
|
175
|
+
- {Step 2}
|
|
176
|
+
|
|
177
|
+
---
|
|
178
|
+
|
|
179
|
+
## Fix This Sprint
|
|
180
|
+
|
|
181
|
+
### 2. {Title} [LIKELY - {Analyzer}]
|
|
182
|
+
|
|
183
|
+
[Same structure as above]
|
|
184
|
+
|
|
185
|
+
---
|
|
186
|
+
|
|
187
|
+
## Backlog
|
|
188
|
+
|
|
189
|
+
### 3. {Title} [INVESTIGATE]
|
|
190
|
+
|
|
191
|
+
[Abbreviated format]
|
|
192
|
+
|
|
193
|
+
---
|
|
194
|
+
|
|
195
|
+
## False Positives (Excluded)
|
|
196
|
+
|
|
197
|
+
| Finding | Analyzer | Reason for Exclusion |
|
|
198
|
+
| ------- | ---------- | -------------------- |
|
|
199
|
+
| {title} | {analyzer} | {reasoning} |
|
|
200
|
+
|
|
201
|
+
---
|
|
202
|
+
|
|
203
|
+
## Analyzer Agreement Matrix
|
|
204
|
+
|
|
205
|
+
| Location | Qry | Rnd | Mem | Bnd | Cmp | Net | Cch | Ast | Consensus |
|
|
206
|
+
| -------- | :-: | :-: | :-: | :-: | :-: | :-: | :-: | :-: | --------- |
|
|
207
|
+
| file:45 | ! | - | - | - | ! | - | - | - | CONFIRMED |
|
|
208
|
+
| file:28 | - | ! | - | - | - | - | ! | - | CONFIRMED |
|
|
209
|
+
|
|
210
|
+
Legend: ! = flagged, - = not flagged, X = not applicable to project type
|
|
211
|
+
|
|
212
|
+
---
|
|
213
|
+
|
|
214
|
+
## Performance Impact Summary
|
|
215
|
+
|
|
216
|
+
| Category | Current | Optimized | Improvement |
|
|
217
|
+
| ----------------- | ------- | --------- | --------------- |
|
|
218
|
+
| API latency (P95) | ~2.5s | ~500ms | 5x faster |
|
|
219
|
+
| Bundle size | 1.2MB | 400KB | 67% smaller |
|
|
220
|
+
| Memory growth | 10MB/hr | Stable | Leak eliminated |
|
|
221
|
+
|
|
222
|
+
---
|
|
223
|
+
|
|
224
|
+
## Remediation Checklist
|
|
225
|
+
|
|
226
|
+
- [ ] {Actionable item 1}
|
|
227
|
+
- [ ] {Actionable item 2}
|
|
228
|
+
- [ ] {Actionable item 3}
|
|
229
|
+
...
|
|
230
|
+
|
|
231
|
+
---
|
|
232
|
+
|
|
233
|
+
## Recommendations
|
|
234
|
+
|
|
235
|
+
1. **Immediate**: Fix {N} critical bottlenecks before next release
|
|
236
|
+
2. **Sprint**: Address {M} high-priority optimizations
|
|
237
|
+
3. **Backlog**: Add {K} medium items to tech debt
|
|
238
|
+
4. **Process**: {Process recommendations - e.g., add bundle size budget, performance monitoring}
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
---
|
|
242
|
+
|
|
243
|
+
## Important Rules
|
|
244
|
+
|
|
245
|
+
1. **Be fair**: Give each analyzer's finding proper consideration
|
|
246
|
+
2. **Show your work**: Document reasoning for exclusions and disputes
|
|
247
|
+
3. **Quantify impact**: Every finding should have estimated performance improvement
|
|
248
|
+
4. **Acknowledge uncertainty**: Mark findings as INVESTIGATE when unsure
|
|
249
|
+
5. **Don't over-exclude**: Some real bottlenecks look like minor issues
|
|
250
|
+
6. **Be actionable**: Every finding should have clear remediation steps with code examples
|
|
251
|
+
7. **Save the report**: Write the report to `docs/08-project/perf-audits/perf-audit-{YYYYMMDD}.md`
|
|
252
|
+
|
|
253
|
+
---
|
|
254
|
+
|
|
255
|
+
## Handling Common Situations
|
|
256
|
+
|
|
257
|
+
### All analyzers agree
|
|
258
|
+
|
|
259
|
+
-> CONFIRMED, highest confidence, include prominently
|
|
260
|
+
|
|
261
|
+
### One analyzer, strong evidence (clear impact path)
|
|
262
|
+
|
|
263
|
+
-> LIKELY, include with the evidence
|
|
264
|
+
|
|
265
|
+
### One analyzer, weak evidence (theoretical)
|
|
266
|
+
|
|
267
|
+
-> INVESTIGATE, include but mark as needing profiling
|
|
268
|
+
|
|
269
|
+
### Analyzers contradict
|
|
270
|
+
|
|
271
|
+
-> Read the code, make a decision, document reasoning
|
|
272
|
+
|
|
273
|
+
### Finding not relevant to project type
|
|
274
|
+
|
|
275
|
+
-> FALSE POSITIVE with documented reasoning
|
|
276
|
+
|
|
277
|
+
### No findings at all
|
|
278
|
+
|
|
279
|
+
-> Report "No performance bottlenecks found" with note about what was checked and project type
|
|
280
|
+
|
|
281
|
+
---
|
|
282
|
+
|
|
283
|
+
## Boundary Rules
|
|
284
|
+
|
|
285
|
+
- **Do NOT report logic bugs** (race conditions, off-by-one, type confusion) - that's `/agileflow:code:logic`
|
|
286
|
+
- **Do NOT report security vulnerabilities** (injection, auth bypass) - that's `/agileflow:code:security`
|
|
287
|
+
- **Focus on measurable performance impact** that affects user experience or system resources
|