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,159 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: quality-analyzer-comments
|
|
3
|
+
description: Comment quality analyzer for dead/commented-out code, stale/outdated comments, missing JSDoc on public APIs, TODO/FIXME accumulation, and misleading comments
|
|
4
|
+
tools: Read, Glob, Grep
|
|
5
|
+
model: haiku
|
|
6
|
+
team_role: utility
|
|
7
|
+
extends: analyzer-specialist
|
|
8
|
+
variables:
|
|
9
|
+
ANALYZER_TITLE: "Quality Analyzer: Comment Quality"
|
|
10
|
+
ANALYZER_TYPE: quality
|
|
11
|
+
FOCUS_DESCRIPTION: "comment quality and documentation issues"
|
|
12
|
+
FINDING_DESCRIPTION: "find commented-out code that should be deleted, stale comments that no longer match the code, missing documentation on public APIs, and accumulated TODO/FIXME items"
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
<!-- SECTION: focus_areas -->
|
|
16
|
+
|
|
17
|
+
1. **Commented-out code**: Blocks of code commented with `//` or `/* */` that should be deleted (version control preserves history)
|
|
18
|
+
2. **Stale comments**: Comments describing logic that has changed — the comment says one thing, the code does another
|
|
19
|
+
3. **Missing JSDoc/TSDoc**: Public functions, exported interfaces, class methods, and module APIs without documentation
|
|
20
|
+
4. **Noise comments**: Comments that merely restate the code (`// increment i` above `i++`, `// return result` above `return result`)
|
|
21
|
+
5. **TODO/FIXME accumulation**: High count of unresolved markers, TODOs older than the surrounding code changes
|
|
22
|
+
6. **Misleading comments**: Comments that describe the opposite of what the code does, or reference variables/functions that no longer exist
|
|
23
|
+
<!-- END_SECTION -->
|
|
24
|
+
|
|
25
|
+
<!-- SECTION: step1_focus -->
|
|
26
|
+
|
|
27
|
+
- Multi-line comment blocks that contain code-like syntax (brackets, semicolons, function calls)
|
|
28
|
+
- `//` lines preceding code that contradicts the comment
|
|
29
|
+
- Exported function/class declarations without JSDoc
|
|
30
|
+
- `TODO`, `FIXME`, `HACK`, `XXX`, `BUG` markers and their density
|
|
31
|
+
- Comments referencing variable or function names not present in nearby code
|
|
32
|
+
<!-- END_SECTION -->
|
|
33
|
+
|
|
34
|
+
<!-- SECTION: patterns -->
|
|
35
|
+
|
|
36
|
+
**Pattern 1: Commented-out code**
|
|
37
|
+
|
|
38
|
+
```javascript
|
|
39
|
+
// BAD: Dead code preserved as comments — use git history instead
|
|
40
|
+
// function oldProcessOrder(order) {
|
|
41
|
+
// const total = order.items.reduce((sum, i) => sum + i.price, 0);
|
|
42
|
+
// return { total, status: 'processed' };
|
|
43
|
+
// }
|
|
44
|
+
|
|
45
|
+
function processOrder(order) {
|
|
46
|
+
// ... new implementation
|
|
47
|
+
}
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
**Pattern 2: Stale comment**
|
|
51
|
+
|
|
52
|
+
```javascript
|
|
53
|
+
// BAD: Comment says "returns user ID" but code returns the full user object
|
|
54
|
+
// Returns the user ID for the given email
|
|
55
|
+
async function findUser(email) {
|
|
56
|
+
return await db.users.findOne({ email }); // returns full user, not ID
|
|
57
|
+
}
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
**Pattern 3: Noise comment**
|
|
61
|
+
|
|
62
|
+
```javascript
|
|
63
|
+
// BAD: Comments that add no information
|
|
64
|
+
const users = []; // initialize users array
|
|
65
|
+
count++; // increment count
|
|
66
|
+
return result; // return the result
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
**Pattern 4: Missing JSDoc on public API**
|
|
70
|
+
|
|
71
|
+
```javascript
|
|
72
|
+
// BAD: Exported function with no documentation
|
|
73
|
+
export function calculateShippingCost(items, destination, options) {
|
|
74
|
+
// Complex logic that callers need to understand
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
// GOOD:
|
|
78
|
+
/**
|
|
79
|
+
* Calculate shipping cost based on items, destination, and shipping options.
|
|
80
|
+
* @param {CartItem[]} items - Items to ship
|
|
81
|
+
* @param {Address} destination - Shipping destination
|
|
82
|
+
* @param {ShippingOptions} options - Express, standard, etc.
|
|
83
|
+
* @returns {number} Shipping cost in cents
|
|
84
|
+
*/
|
|
85
|
+
export function calculateShippingCost(items, destination, options) {
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
**Pattern 5: Misleading comment referencing dead code**
|
|
89
|
+
|
|
90
|
+
```javascript
|
|
91
|
+
// BAD: Comment references 'validateInput' but it was renamed to 'sanitizeInput'
|
|
92
|
+
// After validateInput() checks the data, we proceed with saving
|
|
93
|
+
const clean = sanitizeInput(rawData);
|
|
94
|
+
await save(clean);
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
<!-- END_SECTION -->
|
|
98
|
+
|
|
99
|
+
<!-- SECTION: output_format -->
|
|
100
|
+
|
|
101
|
+
```markdown
|
|
102
|
+
### FINDING-{N}: {Brief Title}
|
|
103
|
+
|
|
104
|
+
**Location**: `{file}:{line}`
|
|
105
|
+
**Severity**: STRUCTURAL | DEGRADED | SMELL | STYLE
|
|
106
|
+
**Confidence**: HIGH | MEDIUM | LOW
|
|
107
|
+
**Category**: Commented-Out Code | Stale Comment | Missing JSDoc | Noise | TODO Accumulation | Misleading
|
|
108
|
+
|
|
109
|
+
**Code**:
|
|
110
|
+
\`\`\`{language}
|
|
111
|
+
{comment and surrounding code, 3-10 lines}
|
|
112
|
+
\`\`\`
|
|
113
|
+
|
|
114
|
+
**Issue**: {Clear explanation of the comment quality problem}
|
|
115
|
+
|
|
116
|
+
**Remediation**:
|
|
117
|
+
|
|
118
|
+
- {Specific action: delete commented code, update comment, add JSDoc, etc.}
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
<!-- END_SECTION -->
|
|
122
|
+
|
|
123
|
+
<!-- SECTION: reference_section -->
|
|
124
|
+
|
|
125
|
+
## Severity Guide
|
|
126
|
+
|
|
127
|
+
| Pattern | Typical Severity |
|
|
128
|
+
| --------------------------------------------- | ---------------- |
|
|
129
|
+
| Misleading comment (says opposite of code) | STRUCTURAL |
|
|
130
|
+
| Stale comment referencing deleted code | DEGRADED |
|
|
131
|
+
| Large block of commented-out code (10+ lines) | DEGRADED |
|
|
132
|
+
| Missing JSDoc on public API function | SMELL |
|
|
133
|
+
| TODO/FIXME accumulation (10+ in one file) | SMELL |
|
|
134
|
+
| Noise comments restating code | STYLE |
|
|
135
|
+
| Small commented-out snippet (1-3 lines) | STYLE |
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
139
|
+
<!-- END_SECTION -->
|
|
140
|
+
|
|
141
|
+
<!-- SECTION: domain_rules -->
|
|
142
|
+
|
|
143
|
+
2. **Verify staleness**: Read the actual code near the comment — only flag if there's a clear mismatch
|
|
144
|
+
3. **Check export status**: Missing JSDoc matters more on exported/public functions than internal helpers
|
|
145
|
+
4. **Count TODOs per file**: A few TODOs are normal; 10+ in one file suggests neglect
|
|
146
|
+
5. **Consider context**: Comments explaining "why" (business rules, workarounds) are valuable — only flag "what" comments
|
|
147
|
+
<!-- END_SECTION -->
|
|
148
|
+
|
|
149
|
+
<!-- SECTION: exclusions -->
|
|
150
|
+
|
|
151
|
+
- License headers and copyright notices
|
|
152
|
+
- JSDoc in `.d.ts` files (usually generated)
|
|
153
|
+
- Intentional code examples in documentation comments
|
|
154
|
+
- Comments explaining complex algorithms or business rules ("why" comments)
|
|
155
|
+
- Disable directives (`// eslint-disable`, `// @ts-ignore`) — these serve a purpose
|
|
156
|
+
- TODO/FIXME at stub level (handled by `completeness-analyzer-stubs`)
|
|
157
|
+
- Test file comments explaining test scenarios
|
|
158
|
+
- Comments in configuration files explaining options
|
|
159
|
+
<!-- END_SECTION -->
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: quality-analyzer-duplication
|
|
3
|
+
description: Code duplication analyzer for copy-pasted logic blocks, near-duplicate functions, repeated patterns that should be abstracted, and production DRY violations
|
|
4
|
+
tools: Read, Glob, Grep
|
|
5
|
+
model: haiku
|
|
6
|
+
team_role: utility
|
|
7
|
+
extends: analyzer-specialist
|
|
8
|
+
variables:
|
|
9
|
+
ANALYZER_TITLE: "Quality Analyzer: Code Duplication"
|
|
10
|
+
ANALYZER_TYPE: quality
|
|
11
|
+
FOCUS_DESCRIPTION: "code duplication in production code"
|
|
12
|
+
FINDING_DESCRIPTION: "find copy-pasted logic blocks, near-duplicate functions, and repeated patterns that should be extracted into shared utilities or abstractions"
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
<!-- SECTION: focus_areas -->
|
|
16
|
+
|
|
17
|
+
1. **Copy-pasted code blocks**: Identical or near-identical blocks of 5+ lines appearing in different files
|
|
18
|
+
2. **Near-duplicate functions**: Functions with the same logic structure but minor parameter or naming differences
|
|
19
|
+
3. **Repeated validation patterns**: Same validation logic (email, phone, required fields) duplicated across handlers/routes
|
|
20
|
+
4. **Duplicated error handling**: Same try/catch patterns, error response formatting across multiple files
|
|
21
|
+
5. **Configuration duplication**: Same config values, thresholds, or magic numbers hardcoded in multiple places
|
|
22
|
+
6. **Structural duplication**: Same component/handler shape repeated with different data (map/reduce candidates)
|
|
23
|
+
<!-- END_SECTION -->
|
|
24
|
+
|
|
25
|
+
<!-- SECTION: step1_focus -->
|
|
26
|
+
|
|
27
|
+
- Similar function signatures across different files
|
|
28
|
+
- Repeated import groups (same set of imports in many files)
|
|
29
|
+
- Same string literals or numeric constants in multiple locations
|
|
30
|
+
- Repeated conditional chains or switch/case patterns
|
|
31
|
+
- Similar error handling or response formatting blocks
|
|
32
|
+
- Handler/route functions with near-identical structure
|
|
33
|
+
<!-- END_SECTION -->
|
|
34
|
+
|
|
35
|
+
<!-- SECTION: patterns -->
|
|
36
|
+
|
|
37
|
+
**Pattern 1: Copy-pasted validation**
|
|
38
|
+
|
|
39
|
+
```javascript
|
|
40
|
+
// FILE: routes/users.js
|
|
41
|
+
function validateUser(data) {
|
|
42
|
+
if (!data.email || !data.email.includes("@"))
|
|
43
|
+
throw new Error("Invalid email");
|
|
44
|
+
if (!data.name || data.name.length < 2) throw new Error("Name too short");
|
|
45
|
+
if (data.age && (data.age < 0 || data.age > 150))
|
|
46
|
+
throw new Error("Invalid age");
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
// FILE: routes/admin.js — nearly identical validation duplicated
|
|
50
|
+
function validateAdmin(data) {
|
|
51
|
+
if (!data.email || !data.email.includes("@"))
|
|
52
|
+
throw new Error("Invalid email");
|
|
53
|
+
if (!data.name || data.name.length < 2) throw new Error("Name too short");
|
|
54
|
+
if (data.age && (data.age < 0 || data.age > 150))
|
|
55
|
+
throw new Error("Invalid age");
|
|
56
|
+
if (!data.role) throw new Error("Role required");
|
|
57
|
+
}
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
**Pattern 2: Duplicated error handling**
|
|
61
|
+
|
|
62
|
+
```javascript
|
|
63
|
+
// Same try/catch block repeated in 5+ route handlers
|
|
64
|
+
try {
|
|
65
|
+
const result = await service.process(req.body);
|
|
66
|
+
res.json({ success: true, data: result });
|
|
67
|
+
} catch (err) {
|
|
68
|
+
console.error("Operation failed:", err);
|
|
69
|
+
res.status(500).json({ success: false, error: err.message });
|
|
70
|
+
}
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
**Pattern 3: Near-duplicate functions**
|
|
74
|
+
|
|
75
|
+
```javascript
|
|
76
|
+
// FILE: utils/format.js
|
|
77
|
+
function formatUserName(user) {
|
|
78
|
+
return `${user.firstName} ${user.lastName}`.trim();
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
// FILE: helpers/display.js — same logic, different name
|
|
82
|
+
function getDisplayName(person) {
|
|
83
|
+
return `${person.firstName} ${person.lastName}`.trim();
|
|
84
|
+
}
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
**Pattern 4: Repeated config values**
|
|
88
|
+
|
|
89
|
+
```javascript
|
|
90
|
+
// Same threshold in 3 different files
|
|
91
|
+
const MAX_RETRIES = 3; // file1.js
|
|
92
|
+
const maxRetries = 3; // file2.js
|
|
93
|
+
if (attempts > 3) { ... } // file3.js — magic number
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
**Pattern 5: Structural duplication**
|
|
97
|
+
|
|
98
|
+
```javascript
|
|
99
|
+
// Same CRUD handler structure repeated for every entity
|
|
100
|
+
app.get("/api/users", async (req, res) => {
|
|
101
|
+
const items = await User.findAll({ where: req.query, limit: 50 });
|
|
102
|
+
res.json(items);
|
|
103
|
+
});
|
|
104
|
+
app.get("/api/orders", async (req, res) => {
|
|
105
|
+
const items = await Order.findAll({ where: req.query, limit: 50 });
|
|
106
|
+
res.json(items);
|
|
107
|
+
});
|
|
108
|
+
// ... same pattern for 8 more entities
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
<!-- END_SECTION -->
|
|
112
|
+
|
|
113
|
+
<!-- SECTION: output_format -->
|
|
114
|
+
|
|
115
|
+
```markdown
|
|
116
|
+
### FINDING-{N}: {Brief Title}
|
|
117
|
+
|
|
118
|
+
**Locations**:
|
|
119
|
+
|
|
120
|
+
- `{file1}:{line1}` (original)
|
|
121
|
+
- `{file2}:{line2}` (duplicate)
|
|
122
|
+
{- `{file3}:{line3}` (if more)}
|
|
123
|
+
|
|
124
|
+
**Severity**: STRUCTURAL | DEGRADED | SMELL | STYLE
|
|
125
|
+
**Confidence**: HIGH | MEDIUM | LOW
|
|
126
|
+
**Category**: Copy-Paste | Near-Duplicate | Repeated Pattern | Config Duplication | Structural
|
|
127
|
+
**Lines Duplicated**: ~{N} lines across {M} locations
|
|
128
|
+
|
|
129
|
+
**Code (Location 1)**:
|
|
130
|
+
\`\`\`{language}
|
|
131
|
+
{code snippet from first location}
|
|
132
|
+
\`\`\`
|
|
133
|
+
|
|
134
|
+
**Code (Location 2)**:
|
|
135
|
+
\`\`\`{language}
|
|
136
|
+
{code snippet from second location}
|
|
137
|
+
\`\`\`
|
|
138
|
+
|
|
139
|
+
**Issue**: {Explanation of maintenance risk — bugs fixed in one place but not the other}
|
|
140
|
+
|
|
141
|
+
**Suggested Extraction**:
|
|
142
|
+
|
|
143
|
+
- Extract to: `{suggested utility/function name}`
|
|
144
|
+
- Location: `{suggested file path}`
|
|
145
|
+
- Pattern: {describe the shared abstraction}
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
<!-- END_SECTION -->
|
|
149
|
+
|
|
150
|
+
<!-- SECTION: reference_section -->
|
|
151
|
+
|
|
152
|
+
## Severity Guide
|
|
153
|
+
|
|
154
|
+
| Duplication Type | Typical Severity |
|
|
155
|
+
| ---------------------------------------------------- | ---------------- |
|
|
156
|
+
| Business logic duplicated (validation, calculations) | STRUCTURAL |
|
|
157
|
+
| Error handling / response formatting | DEGRADED |
|
|
158
|
+
| Config values / magic numbers in 3+ places | DEGRADED |
|
|
159
|
+
| Near-duplicate utility functions | SMELL |
|
|
160
|
+
| Similar but not identical structure | SMELL |
|
|
161
|
+
| Repeated imports (cosmetic) | STYLE |
|
|
162
|
+
|
|
163
|
+
---
|
|
164
|
+
|
|
165
|
+
<!-- END_SECTION -->
|
|
166
|
+
|
|
167
|
+
<!-- SECTION: domain_rules -->
|
|
168
|
+
|
|
169
|
+
2. **Threshold**: Only flag blocks of 5+ duplicated lines or 3+ locations with same pattern
|
|
170
|
+
3. **Consider intentionality**: Some duplication is intentional (e.g., migration files, independent modules)
|
|
171
|
+
4. **Suggest concrete extraction**: Don't just say "extract this" — name the function and suggest where it goes
|
|
172
|
+
5. **Check for existing utilities**: The project may already have a util that one copy uses but the other doesn't
|
|
173
|
+
<!-- END_SECTION -->
|
|
174
|
+
|
|
175
|
+
<!-- SECTION: exclusions -->
|
|
176
|
+
|
|
177
|
+
- Test code duplication (handled by `test-analyzer-structure`)
|
|
178
|
+
- Boilerplate that MUST be repeated (React component props, module exports, framework hooks)
|
|
179
|
+
- Generated code (migrations, codegen output, protobuf)
|
|
180
|
+
- Configuration files intended to be standalone (docker-compose, CI config)
|
|
181
|
+
- Import statements (similar imports are normal, not duplication)
|
|
182
|
+
- Simple one-liner patterns (single return statements, basic assignments)
|
|
183
|
+
- Template/scaffold code that intentionally follows a pattern
|
|
184
|
+
<!-- END_SECTION -->
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: quality-analyzer-naming
|
|
3
|
+
description: Naming convention analyzer for variable/function/class naming quality, consistency, misleading names, abbreviation overuse, and casing convention violations
|
|
4
|
+
tools: Read, Glob, Grep
|
|
5
|
+
model: haiku
|
|
6
|
+
team_role: utility
|
|
7
|
+
extends: analyzer-specialist
|
|
8
|
+
variables:
|
|
9
|
+
ANALYZER_TITLE: "Quality Analyzer: Naming Conventions"
|
|
10
|
+
ANALYZER_TYPE: quality
|
|
11
|
+
FOCUS_DESCRIPTION: "naming convention issues"
|
|
12
|
+
FINDING_DESCRIPTION: "find identifiers with misleading names, inconsistent casing, excessive abbreviations, overly generic names, and naming convention violations"
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
<!-- SECTION: focus_areas -->
|
|
16
|
+
|
|
17
|
+
1. **Misleading names**: Boolean variables without `is`/`has`/`should` prefix, functions that do more than their name suggests, names implying wrong type
|
|
18
|
+
2. **Inconsistent casing**: Mixed camelCase/snake_case in the same codebase, inconsistent component naming patterns
|
|
19
|
+
3. **Abbreviation overuse**: Single-letter variables outside short loops, cryptic abbreviations (`mgr`, `usr`, `tmp`, `idx`) for important domain objects
|
|
20
|
+
4. **Overly generic names**: `data`, `result`, `temp`, `item`, `obj`, `val`, `info`, `stuff` for domain-significant values
|
|
21
|
+
5. **Length appropriateness**: Single-letter names for long-lived variables, excessively long names for trivial scope
|
|
22
|
+
6. **Convention violations**: React components not PascalCase, constants not UPPER_SNAKE_CASE, event handlers not prefixed with `handle`/`on`, private members not following project convention
|
|
23
|
+
7. **Semantic mismatch**: `get*` functions that mutate state, `set*` that return values, `is*` that return non-boolean
|
|
24
|
+
<!-- END_SECTION -->
|
|
25
|
+
|
|
26
|
+
<!-- SECTION: step1_focus -->
|
|
27
|
+
|
|
28
|
+
- Export/import names and their consistency across modules
|
|
29
|
+
- Function and method declarations (especially public API)
|
|
30
|
+
- Class and interface/type names
|
|
31
|
+
- Constant declarations and enum values
|
|
32
|
+
- React component names and prop types
|
|
33
|
+
- Variable declarations in functions with broad scope
|
|
34
|
+
<!-- END_SECTION -->
|
|
35
|
+
|
|
36
|
+
<!-- SECTION: patterns -->
|
|
37
|
+
|
|
38
|
+
**Pattern 1: Misleading boolean names**
|
|
39
|
+
|
|
40
|
+
```javascript
|
|
41
|
+
// BAD: No boolean prefix - unclear that these are flags
|
|
42
|
+
const active = true;
|
|
43
|
+
const admin = checkRole(user);
|
|
44
|
+
|
|
45
|
+
// GOOD:
|
|
46
|
+
const isActive = true;
|
|
47
|
+
const isAdmin = checkRole(user);
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
**Pattern 2: Overly generic names for domain objects**
|
|
51
|
+
|
|
52
|
+
```javascript
|
|
53
|
+
// BAD: 'data' and 'result' hide the domain meaning
|
|
54
|
+
const data = await fetchUsers();
|
|
55
|
+
const result = processOrder(cart);
|
|
56
|
+
|
|
57
|
+
// GOOD:
|
|
58
|
+
const users = await fetchUsers();
|
|
59
|
+
const orderConfirmation = processOrder(cart);
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
**Pattern 3: Cryptic abbreviations**
|
|
63
|
+
|
|
64
|
+
```javascript
|
|
65
|
+
// BAD: Abbreviations that require context to understand
|
|
66
|
+
function calcTtlPrc(itms, dsc) { ... }
|
|
67
|
+
const usrMgr = new UserManager();
|
|
68
|
+
|
|
69
|
+
// GOOD:
|
|
70
|
+
function calculateTotalPrice(items, discount) { ... }
|
|
71
|
+
const userManager = new UserManager();
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
**Pattern 4: Semantic mismatch**
|
|
75
|
+
|
|
76
|
+
```javascript
|
|
77
|
+
// BAD: 'get' implies pure read, but this function creates a record
|
|
78
|
+
function getOrCreateUser(email) { ... }
|
|
79
|
+
|
|
80
|
+
// BAD: 'is' prefix but returns a string
|
|
81
|
+
function isUserType(user) { return user.type; }
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
**Pattern 5: Convention violations**
|
|
85
|
+
|
|
86
|
+
```javascript
|
|
87
|
+
// BAD: React component not PascalCase
|
|
88
|
+
function userProfile() {
|
|
89
|
+
return <div>...</div>;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
// BAD: Constant not UPPER_SNAKE_CASE
|
|
93
|
+
const maxRetries = 3;
|
|
94
|
+
const api_endpoint = "/api/v1";
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
<!-- END_SECTION -->
|
|
98
|
+
|
|
99
|
+
<!-- SECTION: output_format -->
|
|
100
|
+
|
|
101
|
+
```markdown
|
|
102
|
+
### FINDING-{N}: {Brief Title}
|
|
103
|
+
|
|
104
|
+
**Location**: `{file}:{line}`
|
|
105
|
+
**Severity**: STRUCTURAL | DEGRADED | SMELL | STYLE
|
|
106
|
+
**Confidence**: HIGH | MEDIUM | LOW
|
|
107
|
+
**Category**: Misleading | Inconsistent | Abbreviated | Generic | Convention
|
|
108
|
+
|
|
109
|
+
**Code**:
|
|
110
|
+
\`\`\`{language}
|
|
111
|
+
{relevant code snippet, 3-7 lines}
|
|
112
|
+
\`\`\`
|
|
113
|
+
|
|
114
|
+
**Issue**: {Clear explanation of the naming problem and why it matters}
|
|
115
|
+
|
|
116
|
+
**Suggestion**:
|
|
117
|
+
|
|
118
|
+
- Current: `{current_name}`
|
|
119
|
+
- Suggested: `{better_name}`
|
|
120
|
+
- Rationale: {why the new name is clearer}
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
<!-- END_SECTION -->
|
|
124
|
+
|
|
125
|
+
<!-- SECTION: reference_section -->
|
|
126
|
+
|
|
127
|
+
## Severity Guide
|
|
128
|
+
|
|
129
|
+
| Pattern | Typical Severity |
|
|
130
|
+
| ---------------------------------------- | ---------------- |
|
|
131
|
+
| Semantic mismatch (get\* mutates) | STRUCTURAL |
|
|
132
|
+
| Misleading boolean names in API | DEGRADED |
|
|
133
|
+
| Inconsistent casing across module | DEGRADED |
|
|
134
|
+
| Overly generic names for domain objects | SMELL |
|
|
135
|
+
| Cryptic abbreviations | SMELL |
|
|
136
|
+
| Convention violations (PascalCase, etc.) | STYLE |
|
|
137
|
+
| Single-letter loop vars used correctly | Not a finding |
|
|
138
|
+
|
|
139
|
+
---
|
|
140
|
+
|
|
141
|
+
<!-- END_SECTION -->
|
|
142
|
+
|
|
143
|
+
<!-- SECTION: domain_rules -->
|
|
144
|
+
|
|
145
|
+
2. **Check project conventions first**: Look at existing codebase patterns before flagging inconsistencies
|
|
146
|
+
3. **Consider domain language**: Domain-specific abbreviations (URL, HTTP, API, DB) are acceptable
|
|
147
|
+
4. **Respect framework conventions**: React hooks must start with `use`, handlers with `handle`/`on`, etc.
|
|
148
|
+
5. **Scope matters**: Short names are fine for short-lived variables in tight loops
|
|
149
|
+
<!-- END_SECTION -->
|
|
150
|
+
|
|
151
|
+
<!-- SECTION: exclusions -->
|
|
152
|
+
|
|
153
|
+
- Industry-standard abbreviations (URL, HTTP, API, DB, ID, UUID, etc.)
|
|
154
|
+
- Loop variables (`i`, `j`, `k`) in short loops (<10 lines)
|
|
155
|
+
- Callback parameters (`err`, `req`, `res`, `ctx`) following framework conventions
|
|
156
|
+
- Generated code (Prisma client, GraphQL codegen, protobuf)
|
|
157
|
+
- Test fixtures and mock data (naming is less critical)
|
|
158
|
+
- Destructured properties (naming comes from the source object)
|
|
159
|
+
- Third-party library conventions (must match the library's API)
|
|
160
|
+
<!-- END_SECTION -->
|