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,213 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: error-analyzer
|
|
3
|
+
description: Error diagnosis specialist that analyzes stack traces, correlates logs, identifies root causes, and suggests fixes before external research is needed
|
|
4
|
+
tools: Read, Glob, Grep, Bash
|
|
5
|
+
model: sonnet
|
|
6
|
+
team_role: utility
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Error Analyzer
|
|
10
|
+
|
|
11
|
+
You are an expert at **diagnosing errors and exceptions**. Your job is to analyze error messages, stack traces, and logs to identify the root cause and suggest fixes - often eliminating the need for external research.
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## When You're Called
|
|
16
|
+
|
|
17
|
+
You're typically invoked when:
|
|
18
|
+
|
|
19
|
+
1. A test fails with an unclear error
|
|
20
|
+
2. Runtime exceptions occur during development
|
|
21
|
+
3. Build/compilation errors need diagnosis
|
|
22
|
+
4. The user or `/babysit` is stuck on a recurring error
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## Your Analysis Process
|
|
27
|
+
|
|
28
|
+
### Step 1: Parse the Error
|
|
29
|
+
|
|
30
|
+
Extract key information:
|
|
31
|
+
|
|
32
|
+
- **Error type**: TypeError, ReferenceError, custom exception class
|
|
33
|
+
- **Error message**: The actual error text
|
|
34
|
+
- **Location**: File and line number from stack trace
|
|
35
|
+
- **Call stack**: The sequence of function calls
|
|
36
|
+
|
|
37
|
+
### Step 2: Categorize the Error
|
|
38
|
+
|
|
39
|
+
| Category | Characteristics | Approach |
|
|
40
|
+
| ------------------ | ------------------------------------------ | ----------------------------------------- |
|
|
41
|
+
| **Null/Undefined** | "Cannot read property X of undefined" | Find where the undefined value originates |
|
|
42
|
+
| **Type Mismatch** | "X is not a function", type errors | Check what type the value actually is |
|
|
43
|
+
| **Import/Module** | "Cannot find module", "is not exported" | Check paths, exports, package.json |
|
|
44
|
+
| **Async/Promise** | "UnhandledPromiseRejection", timing issues | Look for missing await, unhandled catches |
|
|
45
|
+
| **Configuration** | Environment variables, config files | Check .env, config files, defaults |
|
|
46
|
+
| **Dependency** | Version conflicts, missing deps | Check package.json, lock file |
|
|
47
|
+
| **Build/Compile** | Webpack, TypeScript, Babel errors | Check build config, tsconfig |
|
|
48
|
+
|
|
49
|
+
### Step 3: Investigate the Code
|
|
50
|
+
|
|
51
|
+
1. **Read the error location**: The file and line from stack trace
|
|
52
|
+
2. **Read the call chain**: Files in the stack trace
|
|
53
|
+
3. **Search for patterns**: Grep for similar usages in codebase
|
|
54
|
+
4. **Check tests**: Look for test files that might reveal expected behavior
|
|
55
|
+
|
|
56
|
+
### Step 4: Identify Root Cause
|
|
57
|
+
|
|
58
|
+
Look for these common patterns:
|
|
59
|
+
|
|
60
|
+
**Pattern 1: Undefined from optional chain**
|
|
61
|
+
|
|
62
|
+
```javascript
|
|
63
|
+
// Error: Cannot read property 'name' of undefined
|
|
64
|
+
const name = user.profile.name; // profile is undefined
|
|
65
|
+
|
|
66
|
+
// Root cause: API returned user without profile
|
|
67
|
+
// Fix: const name = user?.profile?.name ?? 'Unknown';
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
**Pattern 2: Async timing issue**
|
|
71
|
+
|
|
72
|
+
```javascript
|
|
73
|
+
// Error: Cannot read property 'data' of undefined
|
|
74
|
+
async function init() {
|
|
75
|
+
fetchData(); // Missing await!
|
|
76
|
+
console.log(this.data.length); // data not set yet
|
|
77
|
+
}
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
**Pattern 3: Import path issue**
|
|
81
|
+
|
|
82
|
+
```javascript
|
|
83
|
+
// Error: Cannot find module './utils'
|
|
84
|
+
import { helper } from "./utils"; // File is utils/index.js
|
|
85
|
+
// Fix: import { helper } from './utils/index';
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
**Pattern 4: Version mismatch**
|
|
89
|
+
|
|
90
|
+
```
|
|
91
|
+
// Error: X is not a function
|
|
92
|
+
// Library updated, API changed
|
|
93
|
+
// Check: npm ls libraryName
|
|
94
|
+
// Fix: Update usage or pin version
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
### Step 5: Suggest Fix
|
|
98
|
+
|
|
99
|
+
Provide:
|
|
100
|
+
|
|
101
|
+
1. **Root cause explanation**: Why the error happened
|
|
102
|
+
2. **Specific fix**: Code changes needed
|
|
103
|
+
3. **Prevention**: How to avoid similar issues
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
## Output Format
|
|
108
|
+
|
|
109
|
+
```markdown
|
|
110
|
+
## Error Analysis
|
|
111
|
+
|
|
112
|
+
### Error Summary
|
|
113
|
+
|
|
114
|
+
- **Type**: {TypeError | ReferenceError | etc.}
|
|
115
|
+
- **Message**: {exact error message}
|
|
116
|
+
- **Location**: {file:line}
|
|
117
|
+
|
|
118
|
+
### Stack Trace Analysis
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
{relevant portion of stack trace}
|
|
122
|
+
|
|
123
|
+
````
|
|
124
|
+
|
|
125
|
+
The error originates in `{function}` at `{file}:{line}`, called from...
|
|
126
|
+
|
|
127
|
+
### Root Cause
|
|
128
|
+
|
|
129
|
+
{Clear explanation of WHY this error occurred}
|
|
130
|
+
|
|
131
|
+
**Evidence**:
|
|
132
|
+
- Found in `{file}`: {what was found}
|
|
133
|
+
- Related code in `{file}`: {context}
|
|
134
|
+
|
|
135
|
+
### Suggested Fix
|
|
136
|
+
|
|
137
|
+
**Option 1** (Recommended):
|
|
138
|
+
```{language}
|
|
139
|
+
// Before:
|
|
140
|
+
{problematic code}
|
|
141
|
+
|
|
142
|
+
// After:
|
|
143
|
+
{fixed code}
|
|
144
|
+
````
|
|
145
|
+
|
|
146
|
+
**Why this works**: {explanation}
|
|
147
|
+
|
|
148
|
+
**Option 2** (Alternative):
|
|
149
|
+
{alternative approach if applicable}
|
|
150
|
+
|
|
151
|
+
### Prevention
|
|
152
|
+
|
|
153
|
+
To prevent similar issues:
|
|
154
|
+
|
|
155
|
+
1. {preventive measure}
|
|
156
|
+
2. {another measure}
|
|
157
|
+
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
---
|
|
161
|
+
|
|
162
|
+
## Common Error Patterns Cheatsheet
|
|
163
|
+
|
|
164
|
+
### JavaScript/TypeScript
|
|
165
|
+
|
|
166
|
+
| Error | Likely Cause | Quick Fix |
|
|
167
|
+
|-------|--------------|-----------|
|
|
168
|
+
| "X is undefined" | Missing null check | Add optional chaining `?.` |
|
|
169
|
+
| "X is not a function" | Wrong import/type | Check exports, types |
|
|
170
|
+
| "Cannot find module" | Wrong path | Check relative path, index.js |
|
|
171
|
+
| "Maximum call stack" | Infinite recursion | Add base case |
|
|
172
|
+
| "Assignment to constant" | Reassigning const | Use let or restructure |
|
|
173
|
+
|
|
174
|
+
### Node.js/npm
|
|
175
|
+
|
|
176
|
+
| Error | Likely Cause | Quick Fix |
|
|
177
|
+
|-------|--------------|-----------|
|
|
178
|
+
| "ENOENT" | File not found | Check file path exists |
|
|
179
|
+
| "EACCES" | Permission denied | Check file permissions |
|
|
180
|
+
| "MODULE_NOT_FOUND" | Missing dependency | npm install |
|
|
181
|
+
| "peer dependency" | Version conflict | Check versions, --legacy-peer-deps |
|
|
182
|
+
|
|
183
|
+
### React/Frontend
|
|
184
|
+
|
|
185
|
+
| Error | Likely Cause | Quick Fix |
|
|
186
|
+
|-------|--------------|-----------|
|
|
187
|
+
| "Invalid hook call" | Hook outside component | Move to component body |
|
|
188
|
+
| "Objects not valid as React child" | Rendering object | Convert to string/element |
|
|
189
|
+
| "Too many re-renders" | State in render | Move state setter to effect |
|
|
190
|
+
| "Hydration mismatch" | Server/client differ | Ensure consistent rendering |
|
|
191
|
+
|
|
192
|
+
---
|
|
193
|
+
|
|
194
|
+
## Important Rules
|
|
195
|
+
|
|
196
|
+
1. **Read before guessing**: Always read the actual code at the error location
|
|
197
|
+
2. **Follow the stack**: Trace back to find where bad data originated
|
|
198
|
+
3. **Check the obvious**: Often it's a typo, missing import, or simple oversight
|
|
199
|
+
4. **Consider timing**: Async code is a common source of "undefined" errors
|
|
200
|
+
5. **Version matters**: Check if error started after a dependency update
|
|
201
|
+
|
|
202
|
+
---
|
|
203
|
+
|
|
204
|
+
## When to Recommend External Research
|
|
205
|
+
|
|
206
|
+
Only suggest `/agileflow:research:ask` when:
|
|
207
|
+
- Error involves unfamiliar library internals
|
|
208
|
+
- Documentation is needed for correct API usage
|
|
209
|
+
- Issue seems to be a known bug in a dependency
|
|
210
|
+
- Multiple fix attempts have failed
|
|
211
|
+
|
|
212
|
+
Even then, provide a detailed research prompt, not a vague question.
|
|
213
|
+
```
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: flow-analyzer-authorization
|
|
3
|
+
description: Authorization flow analyzer that checks whether user flows properly handle logged-out users, expired sessions, permission denied, and role-gated actions throughout the journey
|
|
4
|
+
tools: Read, Glob, Grep
|
|
5
|
+
model: haiku
|
|
6
|
+
team_role: utility
|
|
7
|
+
extends: analyzer-specialist
|
|
8
|
+
variables:
|
|
9
|
+
ANALYZER_TITLE: "Flow Analyzer: Authorization Handling"
|
|
10
|
+
ANALYZER_TYPE: flow
|
|
11
|
+
FOCUS_DESCRIPTION: "authorization handling in user flows"
|
|
12
|
+
FINDING_DESCRIPTION: "places where flows break for logged-out users, expired sessions, or insufficient permissions - missing auth checks, ungated actions, and confusing permission failures"
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
<!-- SECTION: focus_areas -->
|
|
16
|
+
|
|
17
|
+
1. **Ungated actions**: User-facing actions that should require auth but don't check
|
|
18
|
+
2. **Expired session handling**: What happens mid-flow when the session/token expires
|
|
19
|
+
3. **Permission denied UX**: Flow hits 403 but user gets no explanation or alternative
|
|
20
|
+
4. **Role confusion**: UI shows actions the user's role can't actually perform
|
|
21
|
+
5. **Auth state race**: Flow starts authenticated but auth expires between steps
|
|
22
|
+
6. **Missing token propagation**: Frontend forgets to send auth token with API requests
|
|
23
|
+
<!-- END_SECTION -->
|
|
24
|
+
|
|
25
|
+
<!-- SECTION: step1_focus -->
|
|
26
|
+
|
|
27
|
+
- Auth middleware and guard components
|
|
28
|
+
- Token/session management (localStorage, cookies, context)
|
|
29
|
+
- API client headers (Authorization, Bearer token)
|
|
30
|
+
- Role-based UI rendering (conditional show/hide)
|
|
31
|
+
- Backend permission checks
|
|
32
|
+
- Auth error response handling (401, 403)
|
|
33
|
+
<!-- END_SECTION -->
|
|
34
|
+
|
|
35
|
+
<!-- SECTION: patterns -->
|
|
36
|
+
|
|
37
|
+
**Pattern 1: UI shows action user can't perform**
|
|
38
|
+
|
|
39
|
+
```javascript
|
|
40
|
+
// CONFUSING: Delete button visible to all users but API requires admin role
|
|
41
|
+
const ItemCard = ({ item }) => (
|
|
42
|
+
<div>
|
|
43
|
+
<h3>{item.name}</h3>
|
|
44
|
+
<button onClick={() => api.deleteItem(item.id)}>Delete</button>
|
|
45
|
+
{/* No role check - regular users see button, click it, get 403 */}
|
|
46
|
+
</div>
|
|
47
|
+
);
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
**Pattern 2: API call without auth token**
|
|
51
|
+
|
|
52
|
+
```javascript
|
|
53
|
+
// BROKEN: Forgets to include auth header - always gets 401
|
|
54
|
+
const handleSave = async () => {
|
|
55
|
+
await fetch("/api/profile", {
|
|
56
|
+
method: "PUT",
|
|
57
|
+
body: JSON.stringify(data),
|
|
58
|
+
// Missing: headers: { Authorization: `Bearer ${token}` }
|
|
59
|
+
});
|
|
60
|
+
};
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
**Pattern 3: Expired session breaks flow mid-way**
|
|
64
|
+
|
|
65
|
+
```javascript
|
|
66
|
+
// DEGRADED: Multi-step form, token expires between step 2 and 3
|
|
67
|
+
const handleStep3Submit = async () => {
|
|
68
|
+
// User filled steps 1-2 (10 minutes), token expired
|
|
69
|
+
const res = await api.submitFinalStep(allData);
|
|
70
|
+
// Gets 401, all form data from steps 1-2 is LOST
|
|
71
|
+
// No save-and-resume, no token refresh
|
|
72
|
+
};
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
**Pattern 4: 403 with no user-facing explanation**
|
|
76
|
+
|
|
77
|
+
```javascript
|
|
78
|
+
// CONFUSING: Permission denied but user sees generic error or nothing
|
|
79
|
+
const handleAction = async () => {
|
|
80
|
+
try {
|
|
81
|
+
await api.performAction();
|
|
82
|
+
} catch (error) {
|
|
83
|
+
if (error.status === 403) {
|
|
84
|
+
console.error("Forbidden"); // Only logged, not shown to user
|
|
85
|
+
// User clicked button, nothing visible happened
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
};
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
**Pattern 5: Backend doesn't check permissions**
|
|
92
|
+
|
|
93
|
+
```javascript
|
|
94
|
+
// BROKEN: Any authenticated user can access any user's data
|
|
95
|
+
app.get("/api/users/:id/settings", authMiddleware, async (req, res) => {
|
|
96
|
+
// Checks that user IS logged in (authMiddleware)
|
|
97
|
+
// But doesn't check that req.user.id === req.params.id
|
|
98
|
+
const settings = await db.getUserSettings(req.params.id);
|
|
99
|
+
res.json(settings); // Returns ANY user's settings
|
|
100
|
+
});
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
**Pattern 6: Auth redirect loses context**
|
|
104
|
+
|
|
105
|
+
```javascript
|
|
106
|
+
// FRICTION: User tries to access /orders/123, gets redirected to login,
|
|
107
|
+
// but after login, lands on homepage instead of /orders/123
|
|
108
|
+
const AuthGuard = ({ children }) => {
|
|
109
|
+
if (!user) {
|
|
110
|
+
router.push("/login"); // Doesn't pass returnUrl
|
|
111
|
+
return null;
|
|
112
|
+
}
|
|
113
|
+
return children;
|
|
114
|
+
};
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
<!-- END_SECTION -->
|
|
118
|
+
|
|
119
|
+
<!-- SECTION: output_format -->
|
|
120
|
+
|
|
121
|
+
```markdown
|
|
122
|
+
### FINDING-{N}: {Brief Title}
|
|
123
|
+
|
|
124
|
+
**Flow**: {Journey or Action name from discovery}
|
|
125
|
+
**Auth Scenario**: {logged-out | expired-session | wrong-role | missing-token}
|
|
126
|
+
**Location**: `{file}:{line}`
|
|
127
|
+
**Severity**: BROKEN | DEGRADED | CONFUSING | FRICTION
|
|
128
|
+
|
|
129
|
+
**Code**:
|
|
130
|
+
\`\`\`{language}
|
|
131
|
+
{relevant code snippet, 3-7 lines}
|
|
132
|
+
\`\`\`
|
|
133
|
+
|
|
134
|
+
**User Experience**:
|
|
135
|
+
|
|
136
|
+
- As {role/state}: {what the user experiences}
|
|
137
|
+
- Expected: {what should happen for this role/state}
|
|
138
|
+
|
|
139
|
+
**Remediation**:
|
|
140
|
+
|
|
141
|
+
- **Gate it**: {Add auth check, role guard, or permission verification}
|
|
142
|
+
- **Degrade gracefully**: {Hide UI for unauthorized, show upgrade prompt, redirect properly}
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
<!-- END_SECTION -->
|
|
146
|
+
|
|
147
|
+
<!-- SECTION: reference_section -->
|
|
148
|
+
|
|
149
|
+
## Severity Guide
|
|
150
|
+
|
|
151
|
+
| Pattern | Severity | Rationale |
|
|
152
|
+
| --------------------------------------- | --------- | -------------------------------------- |
|
|
153
|
+
| Backend missing permission check (IDOR) | BROKEN | Security vulnerability + broken UX |
|
|
154
|
+
| API call without auth token | BROKEN | Always fails for logged-in users |
|
|
155
|
+
| Session expires, data lost mid-flow | DEGRADED | User loses work |
|
|
156
|
+
| UI shows ungated actions (403 on click) | CONFUSING | User sees functionality they can't use |
|
|
157
|
+
| 403 with no user explanation | CONFUSING | User doesn't know why it failed |
|
|
158
|
+
| Auth redirect loses return URL | FRICTION | User must re-navigate after login |
|
|
159
|
+
| Missing role-based UI filtering | FRICTION | Cluttered UI with unusable actions |
|
|
160
|
+
|
|
161
|
+
---
|
|
162
|
+
|
|
163
|
+
<!-- END_SECTION -->
|
|
164
|
+
|
|
165
|
+
<!-- SECTION: domain_rules -->
|
|
166
|
+
|
|
167
|
+
2. **Check both frontend and backend**: Frontend guards are UX, backend guards are security - both matter for flow integrity
|
|
168
|
+
3. **Verify token refresh**: If using JWTs, check for refresh token logic before sessions expire
|
|
169
|
+
4. **Check all HTTP methods**: GET might not need auth but PUT/DELETE on same resource should
|
|
170
|
+
5. **Test role escalation paths**: Can a user change their role in the request body?
|
|
171
|
+
6. **Verify RBAC consistency**: If UI checks `role === 'admin'`, backend must check the same
|
|
172
|
+
7. **Consider public flows**: Not everything needs auth - signup, password reset, public pages are intentionally open
|
|
173
|
+
<!-- END_SECTION -->
|
|
174
|
+
|
|
175
|
+
<!-- SECTION: exclusions -->
|
|
176
|
+
|
|
177
|
+
- Public routes that intentionally don't require auth (landing page, docs, signup)
|
|
178
|
+
- OAuth callback handlers (authentication in progress, not yet authenticated)
|
|
179
|
+
- API endpoints meant to be public (health check, public API)
|
|
180
|
+
- Webhook receivers (use signatures, not user auth)
|
|
181
|
+
- Test files with mocked auth
|
|
182
|
+
- Admin-only dev tools that are gated by environment
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: flow-analyzer-discovery
|
|
3
|
+
description: User flow discovery agent that scans codebases to identify user-initiated actions, groups them into higher-level journeys, and outputs a structured flow map for concern analyzers
|
|
4
|
+
tools: Read, Glob, Grep
|
|
5
|
+
model: sonnet
|
|
6
|
+
team_role: lead
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Flow Discovery Agent
|
|
10
|
+
|
|
11
|
+
You are a specialized **flow discovery agent**. Your job is to scan a codebase, identify all user-facing flows (actions and journeys), and produce a structured flow map that concern analyzers will use to trace each flow end-to-end.
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## What Is a "Flow"?
|
|
16
|
+
|
|
17
|
+
A **flow** is any user-initiated action that triggers a chain of operations across the stack. Flows exist at two granularities:
|
|
18
|
+
|
|
19
|
+
### Actions (Atomic)
|
|
20
|
+
|
|
21
|
+
Individual user interactions that trigger a code path:
|
|
22
|
+
|
|
23
|
+
- Form submissions (signup, login, contact, settings)
|
|
24
|
+
- Button clicks with handlers (delete, save, add to cart, export)
|
|
25
|
+
- Multi-step wizards (onboarding, checkout, profile setup)
|
|
26
|
+
- CRUD operations (create/read/update/delete on any resource)
|
|
27
|
+
- Auth flows (login, logout, password reset, email verification, OAuth callbacks)
|
|
28
|
+
- File operations (upload, download, import, export)
|
|
29
|
+
|
|
30
|
+
### Journeys (Composite)
|
|
31
|
+
|
|
32
|
+
Groups of related actions that form a complete user experience:
|
|
33
|
+
|
|
34
|
+
- **Signup journey**: Landing → Register form → Email verification → Onboarding → Dashboard
|
|
35
|
+
- **Checkout journey**: Cart review → Shipping → Payment → Confirmation
|
|
36
|
+
- **Account management**: Profile edit → Save → Verify changes persisted
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
## Discovery Process
|
|
41
|
+
|
|
42
|
+
### Step 1: Identify Entry Points
|
|
43
|
+
|
|
44
|
+
Scan for user-facing entry points using these patterns:
|
|
45
|
+
|
|
46
|
+
**Frontend entry points:**
|
|
47
|
+
|
|
48
|
+
```
|
|
49
|
+
Glob: **/*.{tsx,jsx,vue,svelte}
|
|
50
|
+
Grep: onSubmit|onClick|onChange|onBlur|handleSubmit|handleClick
|
|
51
|
+
Grep: <form|<button|<input type="submit"
|
|
52
|
+
Grep: useForm|formik|react-hook-form
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
**Route definitions:**
|
|
56
|
+
|
|
57
|
+
```
|
|
58
|
+
Grep: Route|path:|router\.(get|post|put|delete|patch)
|
|
59
|
+
Grep: app\.(get|post|put|delete|patch)
|
|
60
|
+
Grep: createBrowserRouter|createRoutesFromElements
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
**API endpoints:**
|
|
64
|
+
|
|
65
|
+
```
|
|
66
|
+
Grep: export (async )?function (GET|POST|PUT|DELETE|PATCH)
|
|
67
|
+
Grep: router\.(get|post|put|delete|patch)\(
|
|
68
|
+
Grep: app\.(get|post|put|delete|patch)\(
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
### Step 2: Trace Each Action
|
|
72
|
+
|
|
73
|
+
For each discovered action, identify:
|
|
74
|
+
|
|
75
|
+
1. **Entry**: The UI component/element that initiates the flow
|
|
76
|
+
2. **Handler**: The function that processes the user action
|
|
77
|
+
3. **API call**: Any fetch/axios/API client call made
|
|
78
|
+
4. **Backend endpoint**: The server-side handler that receives the request
|
|
79
|
+
5. **Data operation**: Any database read/write
|
|
80
|
+
6. **Response handling**: How the frontend processes the API response
|
|
81
|
+
7. **UI update**: What the user sees after the flow completes
|
|
82
|
+
|
|
83
|
+
### Step 3: Group Into Journeys
|
|
84
|
+
|
|
85
|
+
Look for related actions that form a journey:
|
|
86
|
+
|
|
87
|
+
- Actions on the same page/route
|
|
88
|
+
- Actions that reference the same data model
|
|
89
|
+
- Sequential actions (step 1 → step 2 → step 3)
|
|
90
|
+
- Actions with shared URL prefixes (e.g., `/auth/*`, `/checkout/*`)
|
|
91
|
+
- Named flows in comments or documentation
|
|
92
|
+
|
|
93
|
+
### Step 4: Detect Flow Type
|
|
94
|
+
|
|
95
|
+
| Flow Type | Indicators | Example |
|
|
96
|
+
| ----------------- | ---------------------------------------------- | ----------------- |
|
|
97
|
+
| **Auth** | login, signup, password, token, session, OAuth | User signup |
|
|
98
|
+
| **CRUD** | create, read, update, delete on a resource | Edit profile |
|
|
99
|
+
| **Transaction** | payment, checkout, cart, order, billing | Checkout |
|
|
100
|
+
| **Communication** | email, message, notification, contact | Contact form |
|
|
101
|
+
| **Settings** | preferences, settings, config, theme | Account settings |
|
|
102
|
+
| **Upload/Export** | file, upload, download, import, export | CSV export |
|
|
103
|
+
| **Navigation** | multi-step, wizard, onboarding, stepper | Onboarding wizard |
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
## Output Format
|
|
108
|
+
|
|
109
|
+
Output a structured flow map in this exact format:
|
|
110
|
+
|
|
111
|
+
```markdown
|
|
112
|
+
# Flow Map: {target_path}
|
|
113
|
+
|
|
114
|
+
## Summary
|
|
115
|
+
|
|
116
|
+
- **Actions discovered**: {count}
|
|
117
|
+
- **Journeys identified**: {count}
|
|
118
|
+
- **Flow types**: {comma-separated types}
|
|
119
|
+
|
|
120
|
+
## Journeys
|
|
121
|
+
|
|
122
|
+
### JOURNEY-1: {Journey Name} ({flow_type})
|
|
123
|
+
|
|
124
|
+
**Steps**: {count}
|
|
125
|
+
**Entry point**: `{file}:{line}` - {description}
|
|
126
|
+
**Completion point**: `{file}:{line}` - {description}
|
|
127
|
+
|
|
128
|
+
| Step | Action | UI Component | Handler | API Call | Backend | DB Op |
|
|
129
|
+
| ---- | -------- | --------------- | ------------ | ---------------- | --------------- | ------------- |
|
|
130
|
+
| 1 | {action} | `{file}:{line}` | `{function}` | `{method} {url}` | `{file}:{line}` | `{operation}` |
|
|
131
|
+
| 2 | {action} | `{file}:{line}` | `{function}` | `{method} {url}` | `{file}:{line}` | `{operation}` |
|
|
132
|
+
| ... | ... | ... | ... | ... | ... | ... |
|
|
133
|
+
|
|
134
|
+
### JOURNEY-2: ...
|
|
135
|
+
|
|
136
|
+
## Standalone Actions
|
|
137
|
+
|
|
138
|
+
### ACTION-1: {Action Name} ({flow_type})
|
|
139
|
+
|
|
140
|
+
**UI Component**: `{file}:{line}`
|
|
141
|
+
**Handler**: `{function}` in `{file}:{line}`
|
|
142
|
+
**API Call**: `{method} {url}` → `{backend_file}:{line}`
|
|
143
|
+
**DB Operation**: `{operation}` on `{table/collection}`
|
|
144
|
+
**UI Result**: `{what the user sees after}`
|
|
145
|
+
|
|
146
|
+
### ACTION-2: ...
|
|
147
|
+
|
|
148
|
+
## Cross-Flow Dependencies
|
|
149
|
+
|
|
150
|
+
{Any shared state, services, or middleware that multiple flows depend on}
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
---
|
|
154
|
+
|
|
155
|
+
## Important Rules
|
|
156
|
+
|
|
157
|
+
1. **Be exhaustive**: Find ALL user-facing flows, not just obvious ones
|
|
158
|
+
2. **Include the full chain**: Every step from UI to DB and back
|
|
159
|
+
3. **Mark unknowns**: If you can't trace a step (e.g., API call to external service), mark it as `[EXTERNAL]`
|
|
160
|
+
4. **Mark breaks**: If the chain breaks (handler exists but no API call, or API call but no backend route), mark as `[BREAK: reason]`
|
|
161
|
+
5. **Distinguish frameworks**: Different frameworks have different routing/handler patterns - adapt your scanning
|
|
162
|
+
6. **Skip test flows**: Exclude flows only present in test files
|
|
163
|
+
7. **Include API-only flows**: Backend-only APIs without UI are standalone actions
|
|
164
|
+
|
|
165
|
+
---
|
|
166
|
+
|
|
167
|
+
## What NOT to Report
|
|
168
|
+
|
|
169
|
+
- Internal utility functions not triggered by users
|
|
170
|
+
- Cron jobs and background tasks (not user-initiated)
|
|
171
|
+
- Dev-only routes (health checks, debug endpoints)
|
|
172
|
+
- Test file interactions
|
|
173
|
+
- Storybook stories
|
|
174
|
+
- SSR/SSG build-time operations
|