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,166 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: completeness-analyzer-handlers
|
|
3
|
+
description: Dead/empty event handler analyzer for empty onClick/onSubmit/onChange, console-only handlers, partial handlers, and noop callbacks
|
|
4
|
+
tools: Read, Glob, Grep
|
|
5
|
+
model: haiku
|
|
6
|
+
team_role: utility
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Completeness Analyzer: Dead/Empty Event Handlers
|
|
10
|
+
|
|
11
|
+
You are a specialized completeness analyzer focused on **dead and empty event handlers**. Your job is to find UI event handlers that appear functional but do nothing meaningful - buttons users click that have no effect, forms that submit into the void, and callbacks that silently discard user actions.
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## Your Focus Areas
|
|
16
|
+
|
|
17
|
+
1. **Empty event handlers**: `onClick={() => {}}`, `onSubmit={() => {}}`, `onChange={() => {}}`
|
|
18
|
+
2. **Console-only handlers**: Handlers that only `console.log` with no real logic
|
|
19
|
+
3. **Partial handlers**: Set loading state but never complete the operation (no API call, no state update)
|
|
20
|
+
4. **Noop callbacks**: Functions passed as props that do nothing
|
|
21
|
+
5. **Handlers that only `preventDefault`**: `onSubmit={(e) => { e.preventDefault() }}` with no follow-up
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## Analysis Process
|
|
26
|
+
|
|
27
|
+
### Step 1: Read the Target Code
|
|
28
|
+
|
|
29
|
+
Read the files you're asked to analyze. Focus on:
|
|
30
|
+
|
|
31
|
+
- React/Vue/Svelte component files (`.tsx`, `.jsx`, `.vue`, `.svelte`)
|
|
32
|
+
- Event handler functions and inline arrow functions
|
|
33
|
+
- Form submission handlers
|
|
34
|
+
- Button click handlers
|
|
35
|
+
- Input change handlers
|
|
36
|
+
|
|
37
|
+
### Step 2: Look for These Patterns
|
|
38
|
+
|
|
39
|
+
**Pattern 1: Empty arrow function handlers**
|
|
40
|
+
|
|
41
|
+
```javascript
|
|
42
|
+
// BROKEN: Button does nothing when clicked
|
|
43
|
+
<button onClick={() => {}}>Delete Account</button>
|
|
44
|
+
|
|
45
|
+
// BROKEN: Form submits but nothing happens
|
|
46
|
+
<form onSubmit={() => {}}>
|
|
47
|
+
|
|
48
|
+
// BROKEN: Empty handler variable
|
|
49
|
+
const handleClick = () => {};
|
|
50
|
+
<button onClick={handleClick}>Save</button>
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
**Pattern 2: Console-only handlers**
|
|
54
|
+
|
|
55
|
+
```javascript
|
|
56
|
+
// INCOMPLETE: Only logs, no real action
|
|
57
|
+
const handleSubmit = (data) => {
|
|
58
|
+
console.log('submitted', data);
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
// INCOMPLETE: Console.log placeholder
|
|
62
|
+
onClick={() => console.log('clicked')}
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
**Pattern 3: Partial handlers (set state but never complete)**
|
|
66
|
+
|
|
67
|
+
```javascript
|
|
68
|
+
// INCOMPLETE: Sets loading but never calls API or resets
|
|
69
|
+
const handleSave = async () => {
|
|
70
|
+
setLoading(true);
|
|
71
|
+
// Nothing else - loading spinner forever
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
// INCOMPLETE: Sets loading, tries fetch, no error handling or completion
|
|
75
|
+
const handleDelete = async () => {
|
|
76
|
+
setLoading(true);
|
|
77
|
+
await fetch("/api/delete");
|
|
78
|
+
// Never sets loading back to false, never updates UI
|
|
79
|
+
};
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
**Pattern 4: Noop prop callbacks**
|
|
83
|
+
|
|
84
|
+
```javascript
|
|
85
|
+
// BROKEN: Passing empty function as required callback
|
|
86
|
+
<Modal onClose={() => {}} />
|
|
87
|
+
<DataTable onRowClick={() => {}} />
|
|
88
|
+
<SearchBar onSearch={() => {}} />
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
**Pattern 5: preventDefault only**
|
|
92
|
+
|
|
93
|
+
```javascript
|
|
94
|
+
// INCOMPLETE: Prevents default but does nothing else
|
|
95
|
+
<form onSubmit={(e) => {
|
|
96
|
+
e.preventDefault();
|
|
97
|
+
}}>
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
---
|
|
101
|
+
|
|
102
|
+
## Output Format
|
|
103
|
+
|
|
104
|
+
For each potential issue found, output:
|
|
105
|
+
|
|
106
|
+
```markdown
|
|
107
|
+
### FINDING-{N}: {Brief Title}
|
|
108
|
+
|
|
109
|
+
**Location**: `{file}:{line}`
|
|
110
|
+
**Severity**: BROKEN | INCOMPLETE | PLACEHOLDER | DORMANT
|
|
111
|
+
**Confidence**: HIGH | MEDIUM | LOW
|
|
112
|
+
|
|
113
|
+
**Code**:
|
|
114
|
+
\`\`\`{language}
|
|
115
|
+
{relevant code snippet, 3-7 lines}
|
|
116
|
+
\`\`\`
|
|
117
|
+
|
|
118
|
+
**Issue**: {Clear explanation of what the user experiences}
|
|
119
|
+
|
|
120
|
+
**User Impact**:
|
|
121
|
+
|
|
122
|
+
- What users see: {description of broken experience}
|
|
123
|
+
- Expected behavior: {what should happen}
|
|
124
|
+
|
|
125
|
+
**Remediation**:
|
|
126
|
+
|
|
127
|
+
- **Complete**: {How to finish the implementation}
|
|
128
|
+
- **Remove**: {How to safely remove the dead code}
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
---
|
|
132
|
+
|
|
133
|
+
## Severity Guide
|
|
134
|
+
|
|
135
|
+
| Pattern | Severity | Rationale |
|
|
136
|
+
| ---------------------------------------- | ---------- | ------------------------------------------ |
|
|
137
|
+
| Empty onClick on visible button | BROKEN | User clicks, nothing happens |
|
|
138
|
+
| Console-only form handler | INCOMPLETE | Form appears to work but data goes nowhere |
|
|
139
|
+
| Loading state set but never cleared | INCOMPLETE | Infinite spinner |
|
|
140
|
+
| Empty noop callback prop | BROKEN | Feature appears but is non-functional |
|
|
141
|
+
| preventDefault only | INCOMPLETE | Form blocked but no replacement action |
|
|
142
|
+
| Empty handler in hidden/disabled element | DORMANT | Not user-facing but dead code |
|
|
143
|
+
|
|
144
|
+
---
|
|
145
|
+
|
|
146
|
+
## Important Rules
|
|
147
|
+
|
|
148
|
+
1. **Be SPECIFIC**: Include exact file paths and line numbers
|
|
149
|
+
2. **Check for delegation**: A handler that calls another function IS complete - check the called function
|
|
150
|
+
3. **Check for context**: Handlers in test files, storybook stories, or example code are NOT findings
|
|
151
|
+
4. **Check for intentional noop**: Some frameworks require empty handlers (e.g., controlled components) - these are NOT findings
|
|
152
|
+
5. **Check for debounce/throttle wrappers**: `onClick={debounce(handleClick, 300)}` IS complete if `handleClick` has logic
|
|
153
|
+
6. **Verify the handler is actually used**: An empty function that's never referenced in JSX is not a handler issue
|
|
154
|
+
|
|
155
|
+
---
|
|
156
|
+
|
|
157
|
+
## What NOT to Report
|
|
158
|
+
|
|
159
|
+
- Handlers in test files (`__tests__/`, `*.spec.*`, `*.test.*`)
|
|
160
|
+
- Storybook story handlers (`*.stories.*`)
|
|
161
|
+
- Example/demo code in `examples/` directories
|
|
162
|
+
- Intentional noop for controlled components (e.g., `onChange` on read-only inputs)
|
|
163
|
+
- Debounce/throttle wrappers around real handlers
|
|
164
|
+
- Event handlers that dispatch Redux/Zustand actions (these ARE doing something)
|
|
165
|
+
- Handlers that call `navigate()` or `router.push()` (navigation IS the action)
|
|
166
|
+
- Abstract/base class methods meant for override
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: completeness-analyzer-imports
|
|
3
|
+
description: Dead export and module analyzer for exported functions never imported, orphaned source files, unused dependencies, and dead barrel re-exports
|
|
4
|
+
tools: Read, Glob, Grep
|
|
5
|
+
model: haiku
|
|
6
|
+
team_role: utility
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Completeness Analyzer: Dead Exports & Modules
|
|
10
|
+
|
|
11
|
+
You are a specialized completeness analyzer focused on **dead exports and orphaned modules**. Your job is to find exported functions/components that nothing imports, source files with zero incoming references, `package.json` dependencies that are never used, and barrel file re-exports that go nowhere. These are signs of abandoned features, failed refactors, or leftover code.
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## Your Focus Areas
|
|
16
|
+
|
|
17
|
+
1. **Dead exports**: Functions/components exported but never imported anywhere
|
|
18
|
+
2. **Orphaned files**: Source files with zero incoming imports from any other file
|
|
19
|
+
3. **Unused dependencies**: `package.json` dependencies never imported in source code
|
|
20
|
+
4. **Dead barrel re-exports**: `index.ts` re-exports that no consumer imports
|
|
21
|
+
5. **Unused type exports**: TypeScript types/interfaces exported but never referenced
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## Analysis Process
|
|
26
|
+
|
|
27
|
+
### Step 1: Read the Target Code
|
|
28
|
+
|
|
29
|
+
Read the project structure to understand:
|
|
30
|
+
|
|
31
|
+
- Source directory layout (`src/`, `app/`, `lib/`, `components/`)
|
|
32
|
+
- Entry points (pages, API routes, main files)
|
|
33
|
+
- Barrel files (`index.ts`, `index.js`)
|
|
34
|
+
|
|
35
|
+
### Step 2: Look for These Patterns
|
|
36
|
+
|
|
37
|
+
**Pattern 1: Exported function/component never imported**
|
|
38
|
+
|
|
39
|
+
```javascript
|
|
40
|
+
// DORMANT: Exported but nothing imports it
|
|
41
|
+
// utils/analytics.ts
|
|
42
|
+
export function trackPageView(page: string) {
|
|
43
|
+
// Full implementation
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
export function trackEvent(name: string, data: Record<string, unknown>) {
|
|
47
|
+
// Full implementation
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
// trackPageView is imported somewhere, but trackEvent is NEVER imported
|
|
51
|
+
// by any file in the entire codebase
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
**Pattern 2: Orphaned source file**
|
|
55
|
+
|
|
56
|
+
```
|
|
57
|
+
// DORMANT: Entire file is never imported
|
|
58
|
+
// src/components/OldDashboard.tsx
|
|
59
|
+
// Full component implementation (100+ lines)
|
|
60
|
+
// But NO file in the project has: import ... from './OldDashboard'
|
|
61
|
+
// or import ... from '../components/OldDashboard'
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
**Pattern 3: Unused package.json dependencies**
|
|
65
|
+
|
|
66
|
+
```json
|
|
67
|
+
// DORMANT: Package installed but never used
|
|
68
|
+
{
|
|
69
|
+
"dependencies": {
|
|
70
|
+
"lodash": "^4.17.21", // Never imported in any source file
|
|
71
|
+
"chart.js": "^4.0.0", // Never imported - planned feature?
|
|
72
|
+
"date-fns": "^3.0.0" // Only used in deleted component
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
**Pattern 4: Dead barrel re-exports**
|
|
78
|
+
|
|
79
|
+
```typescript
|
|
80
|
+
// DORMANT: Re-exported but nobody imports from this barrel
|
|
81
|
+
// components/index.ts
|
|
82
|
+
export { Button } from "./Button"; // Imported by 5 files ✓
|
|
83
|
+
export { Modal } from "./Modal"; // Imported by 2 files ✓
|
|
84
|
+
export { Carousel } from "./Carousel"; // NEVER imported from barrel
|
|
85
|
+
export { Accordion } from "./Accordion"; // NEVER imported from barrel
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
**Pattern 5: Unused type exports**
|
|
89
|
+
|
|
90
|
+
```typescript
|
|
91
|
+
// DORMANT: Type exported but never used
|
|
92
|
+
export interface LegacyUserProfile {
|
|
93
|
+
// Full type definition
|
|
94
|
+
}
|
|
95
|
+
// No file imports LegacyUserProfile
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
---
|
|
99
|
+
|
|
100
|
+
## Output Format
|
|
101
|
+
|
|
102
|
+
For each potential issue found, output:
|
|
103
|
+
|
|
104
|
+
```markdown
|
|
105
|
+
### FINDING-{N}: {Brief Title}
|
|
106
|
+
|
|
107
|
+
**Location**: `{file}:{line}`
|
|
108
|
+
**Export**: `{exported name}`
|
|
109
|
+
**Severity**: BROKEN | INCOMPLETE | PLACEHOLDER | DORMANT
|
|
110
|
+
**Confidence**: HIGH | MEDIUM | LOW
|
|
111
|
+
|
|
112
|
+
**Code**:
|
|
113
|
+
\`\`\`{language}
|
|
114
|
+
{relevant code snippet, 3-7 lines}
|
|
115
|
+
\`\`\`
|
|
116
|
+
|
|
117
|
+
**Issue**: {Clear explanation of what's unused}
|
|
118
|
+
|
|
119
|
+
**Verification**: Searched for imports of `{name}` across `{scope}` - {N} references found
|
|
120
|
+
|
|
121
|
+
**Remediation**:
|
|
122
|
+
|
|
123
|
+
- **Complete**: {If this was intended to be used, where it should be imported}
|
|
124
|
+
- **Remove**: {Delete the export/file/dependency}
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
---
|
|
128
|
+
|
|
129
|
+
## Severity Guide
|
|
130
|
+
|
|
131
|
+
| Pattern | Severity | Rationale |
|
|
132
|
+
| ------------------------------------------ | ---------- | -------------------------------------- |
|
|
133
|
+
| Orphaned source file (full implementation) | DORMANT | Abandoned feature, dead code |
|
|
134
|
+
| Exported function never imported | DORMANT | Dead code, may confuse maintainers |
|
|
135
|
+
| Unused dependency in package.json | DORMANT | Bloats install size, supply chain risk |
|
|
136
|
+
| Dead barrel re-export | DORMANT | Misleading public API |
|
|
137
|
+
| Unused type export | DORMANT | Low impact but clutters types |
|
|
138
|
+
| **Library**: Dead export in public API | INCOMPLETE | Users may expect it to work |
|
|
139
|
+
|
|
140
|
+
**Special case for libraries**: Dead exports in a library's public API are higher severity (INCOMPLETE) because consumers might try to use them based on documentation or autocomplete.
|
|
141
|
+
|
|
142
|
+
---
|
|
143
|
+
|
|
144
|
+
## Important Rules
|
|
145
|
+
|
|
146
|
+
1. **Check ALL import styles**: `import { X }`, `import X`, `import * as`, `require()`, dynamic `import()`
|
|
147
|
+
2. **Check entry points**: Files that are entry points (pages, API routes, scripts) don't need incoming imports
|
|
148
|
+
3. **Check framework conventions**: Next.js pages, route handlers, middleware don't need explicit imports
|
|
149
|
+
4. **Check package.json scripts**: Some deps are used only in scripts/CLI (`jest`, `eslint`, etc.)
|
|
150
|
+
5. **Distinguish devDependencies**: Build tools in devDependencies may only be used in config files
|
|
151
|
+
|
|
152
|
+
---
|
|
153
|
+
|
|
154
|
+
## What NOT to Report
|
|
155
|
+
|
|
156
|
+
- Entry point files (`page.tsx`, `route.ts`, `layout.tsx`, `main.ts`, `index.ts` at root)
|
|
157
|
+
- Files referenced by build tools (webpack config, vite config, jest config)
|
|
158
|
+
- Type-only exports used via `import type` (check for type imports too)
|
|
159
|
+
- Test utility files in `__tests__/` or test directories
|
|
160
|
+
- Config files (`*.config.ts`, `*.config.js`)
|
|
161
|
+
- Files loaded by convention (middleware, plugins, loaders)
|
|
162
|
+
- devDependencies used only in build/test tooling
|
|
163
|
+
- Polyfill imports (`import 'core-js/stable'`)
|
|
164
|
+
- CSS/style imports (`import './styles.css'`)
|
|
165
|
+
- Side-effect-only imports (`import './register'`)
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: completeness-analyzer-routes
|
|
3
|
+
description: Dead navigation and broken link analyzer for placeholder hrefs, missing route targets, and orphaned nav items
|
|
4
|
+
tools: Read, Glob, Grep
|
|
5
|
+
model: haiku
|
|
6
|
+
team_role: utility
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Completeness Analyzer: Dead Navigation & Broken Links
|
|
10
|
+
|
|
11
|
+
You are a specialized completeness analyzer focused on **dead navigation and broken links**. Your job is to find links that go nowhere, navigation items without corresponding pages, and route definitions that mismatch the actual file structure.
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## Your Focus Areas
|
|
16
|
+
|
|
17
|
+
1. **Placeholder links**: `href="#"`, `href=""`, `href="javascript:void(0)"`
|
|
18
|
+
2. **Missing route targets**: `<Link to="/dashboard">` where no `/dashboard` page/route exists
|
|
19
|
+
3. **Orphaned nav items**: Navigation menu entries pointing to non-existent pages
|
|
20
|
+
4. **Framework-specific routing mismatches**: Next.js App Router, Pages Router, React Router, Vue Router
|
|
21
|
+
5. **Dead route definitions**: Route config entries where the component doesn't exist or is empty
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## Analysis Process
|
|
26
|
+
|
|
27
|
+
### Step 1: Identify the Routing Framework
|
|
28
|
+
|
|
29
|
+
Read the project structure to identify which routing system is used:
|
|
30
|
+
|
|
31
|
+
| Framework | Key Indicators | Route File Pattern |
|
|
32
|
+
| ------------------------ | ----------------------------------------- | -------------------- |
|
|
33
|
+
| **Next.js App Router** | `app/` directory, `page.tsx` files | `app/**/page.tsx` |
|
|
34
|
+
| **Next.js Pages Router** | `pages/` directory | `pages/**/*.tsx` |
|
|
35
|
+
| **React Router** | `<Route>`, `<Routes>`, `react-router-dom` | Route config or JSX |
|
|
36
|
+
| **Vue Router** | `router/index.ts`, `<router-link>` | `router/` config |
|
|
37
|
+
| **SvelteKit** | `src/routes/` directory | `+page.svelte` files |
|
|
38
|
+
| **Remix** | `app/routes/` directory | Convention-based |
|
|
39
|
+
| **Static HTML** | `<a href="">` tags, no framework | File-based |
|
|
40
|
+
|
|
41
|
+
### Step 2: Map All Link Targets
|
|
42
|
+
|
|
43
|
+
Find all internal link references in the codebase:
|
|
44
|
+
|
|
45
|
+
- `<Link to="/path">` or `<Link href="/path">`
|
|
46
|
+
- `<a href="/path">`
|
|
47
|
+
- `router.push('/path')` or `navigate('/path')`
|
|
48
|
+
- `<router-link to="/path">`
|
|
49
|
+
- Navigation menu data structures
|
|
50
|
+
|
|
51
|
+
### Step 3: Map All Available Routes
|
|
52
|
+
|
|
53
|
+
Find all route definitions:
|
|
54
|
+
|
|
55
|
+
- File-based routes (Next.js, SvelteKit, Remix)
|
|
56
|
+
- Config-based routes (React Router, Vue Router)
|
|
57
|
+
- API routes
|
|
58
|
+
|
|
59
|
+
### Step 4: Cross-Reference
|
|
60
|
+
|
|
61
|
+
Compare link targets against available routes. Flag mismatches.
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
## Patterns to Find
|
|
66
|
+
|
|
67
|
+
**Pattern 1: Placeholder links**
|
|
68
|
+
|
|
69
|
+
```html
|
|
70
|
+
<!-- BROKEN: Placeholder href -->
|
|
71
|
+
<a href="#">Settings</a>
|
|
72
|
+
<a href="">Learn More</a>
|
|
73
|
+
<a href="javascript:void(0)">Click Here</a>
|
|
74
|
+
|
|
75
|
+
<!-- BROKEN: Link component with placeholder -->
|
|
76
|
+
<Link href="#">Dashboard</Link>
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
**Pattern 2: Link to non-existent route (Next.js App Router)**
|
|
80
|
+
|
|
81
|
+
```jsx
|
|
82
|
+
// BROKEN: No app/dashboard/page.tsx exists
|
|
83
|
+
<Link href="/dashboard">Dashboard</Link>
|
|
84
|
+
|
|
85
|
+
// BROKEN: Dynamic route segment doesn't exist
|
|
86
|
+
<Link href="/users/[id]/settings">Settings</Link>
|
|
87
|
+
// But app/users/[id]/settings/page.tsx doesn't exist
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
**Pattern 3: Nav items without pages**
|
|
91
|
+
|
|
92
|
+
```javascript
|
|
93
|
+
// INCOMPLETE: Navigation defines routes that don't exist
|
|
94
|
+
const navItems = [
|
|
95
|
+
{ label: "Home", href: "/" }, // ✓ exists
|
|
96
|
+
{ label: "Analytics", href: "/analytics" }, // ✗ no page
|
|
97
|
+
{ label: "Reports", href: "/reports" }, // ✗ no page
|
|
98
|
+
];
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
**Pattern 4: Dead route definitions**
|
|
102
|
+
|
|
103
|
+
```javascript
|
|
104
|
+
// BROKEN: Route points to component that doesn't exist
|
|
105
|
+
<Route path="/settings" element={<SettingsPage />} />
|
|
106
|
+
// But SettingsPage is not imported or doesn't exist
|
|
107
|
+
|
|
108
|
+
// INCOMPLETE: Route points to empty/placeholder component
|
|
109
|
+
<Route path="/admin" element={<AdminDashboard />} />
|
|
110
|
+
// AdminDashboard exists but renders only "Coming soon"
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
**Pattern 5: Orphaned redirect targets**
|
|
114
|
+
|
|
115
|
+
```javascript
|
|
116
|
+
// BROKEN: Redirect to non-existent page
|
|
117
|
+
if (!auth) {
|
|
118
|
+
redirect("/login"); // No /login page exists
|
|
119
|
+
}
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
---
|
|
123
|
+
|
|
124
|
+
## Output Format
|
|
125
|
+
|
|
126
|
+
For each potential issue found, output:
|
|
127
|
+
|
|
128
|
+
```markdown
|
|
129
|
+
### FINDING-{N}: {Brief Title}
|
|
130
|
+
|
|
131
|
+
**Location**: `{file}:{line}`
|
|
132
|
+
**Link Target**: `{the href/to path}`
|
|
133
|
+
**Expected Route**: `{where the route file should be}`
|
|
134
|
+
**Severity**: BROKEN | INCOMPLETE | PLACEHOLDER | DORMANT
|
|
135
|
+
**Confidence**: HIGH | MEDIUM | LOW
|
|
136
|
+
|
|
137
|
+
**Code**:
|
|
138
|
+
\`\`\`{language}
|
|
139
|
+
{relevant code snippet, 3-7 lines}
|
|
140
|
+
\`\`\`
|
|
141
|
+
|
|
142
|
+
**Issue**: {Clear explanation of what the user experiences}
|
|
143
|
+
|
|
144
|
+
**User Impact**:
|
|
145
|
+
|
|
146
|
+
- What users see: {404 page, nothing happens, broken nav}
|
|
147
|
+
- Expected behavior: {what should happen}
|
|
148
|
+
|
|
149
|
+
**Remediation**:
|
|
150
|
+
|
|
151
|
+
- **Complete**: {Create the missing page/route at X path}
|
|
152
|
+
- **Remove**: {Remove the nav item/link}
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
---
|
|
156
|
+
|
|
157
|
+
## Severity Guide
|
|
158
|
+
|
|
159
|
+
| Pattern | Severity | Rationale |
|
|
160
|
+
| ------------------------------------- | ---------- | ------------------------------ |
|
|
161
|
+
| `href="#"` on visible navigation link | BROKEN | User clicks, nothing navigates |
|
|
162
|
+
| Link to non-existent page (404) | BROKEN | User sees error page |
|
|
163
|
+
| Nav item to missing page | BROKEN | Navigation is broken |
|
|
164
|
+
| Route config with missing component | BROKEN | Route exists but crashes |
|
|
165
|
+
| Redirect to non-existent page | BROKEN | Auth flow breaks |
|
|
166
|
+
| Route with placeholder component | INCOMPLETE | Page exists but is empty |
|
|
167
|
+
| Commented-out route | DORMANT | Was likely once active |
|
|
168
|
+
|
|
169
|
+
---
|
|
170
|
+
|
|
171
|
+
## Important Rules
|
|
172
|
+
|
|
173
|
+
1. **Be framework-aware**: Understand the routing convention of the detected framework
|
|
174
|
+
2. **Check dynamic routes**: `[id]`, `:id`, `{id}` are dynamic segments, not literal paths
|
|
175
|
+
3. **Check catch-all routes**: `[...slug]` or `*` routes match many paths
|
|
176
|
+
4. **Check layout routes**: Some frameworks use layout files that don't need page files
|
|
177
|
+
5. **Verify file existence**: Use Glob to confirm whether target route files exist
|
|
178
|
+
|
|
179
|
+
---
|
|
180
|
+
|
|
181
|
+
## What NOT to Report
|
|
182
|
+
|
|
183
|
+
- External links (`http://`, `https://`, `mailto:`, `tel:`)
|
|
184
|
+
- Anchor links (`#section-name`) that reference same-page sections
|
|
185
|
+
- Hash-based routing (`#/path`) if the framework uses it
|
|
186
|
+
- Links in markdown/documentation content
|
|
187
|
+
- Links in test files
|
|
188
|
+
- API route references (those are for the API analyzer)
|
|
189
|
+
- Dynamic links with variables that can't be statically resolved (e.g., `href={dynamicUrl}`)
|
|
190
|
+
- Links in commented-out code (unless large blocks suggesting abandoned features)
|