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,259 @@
|
|
|
1
|
+
# Workflow: Retention Audit
|
|
2
|
+
|
|
3
|
+
**Follow this when:** the user wants to audit their existing product for retention gaps, understand why users are churning, or get a prioritized list of retention improvements.
|
|
4
|
+
|
|
5
|
+
**Time estimate:** 60–120 minutes for a thorough audit. Can be done in 20 minutes for a quick scan.
|
|
6
|
+
|
|
7
|
+
**Output:** A prioritized gap list with specific recommendations, organized by psychological model and impact vs. effort.
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Before you start
|
|
12
|
+
|
|
13
|
+
Ask the user for the following information (or infer from context):
|
|
14
|
+
|
|
15
|
+
1. What type of product is this? (mobile app, SaaS, consumer web, marketplace, etc.)
|
|
16
|
+
2. What is the primary retention metric? (D1/D7/D30 retention, DAU/MAU, churn rate, session frequency)
|
|
17
|
+
3. What are the current baseline numbers for that metric?
|
|
18
|
+
4. Where in the funnel is the biggest drop-off? (acquisition → activation → retention → revenue → referral)
|
|
19
|
+
5. Do they have a defined "aha moment" — a specific action that correlates with long-term retention?
|
|
20
|
+
|
|
21
|
+
If the user doesn't know the answer to questions 3–5, note that identifying these is part of the audit.
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## Step 1: Define and baseline the retention metric
|
|
26
|
+
|
|
27
|
+
**Goal:** Know exactly what you're measuring before recommending any mechanic.
|
|
28
|
+
|
|
29
|
+
Actions:
|
|
30
|
+
|
|
31
|
+
1. Identify the primary retention metric for this product type:
|
|
32
|
+
- Mobile consumer app → D1 / D7 / D30 retention
|
|
33
|
+
- SaaS / subscription → D30 / D90 retention, monthly churn rate
|
|
34
|
+
- Daily-use utility (messaging, email) → DAU/MAU ratio
|
|
35
|
+
- Social / community product → D7 / session frequency per week
|
|
36
|
+
2. Get the current baseline number if available
|
|
37
|
+
3. Identify the benchmark for the product category (e.g., D30 retention > 25% is good for mobile apps; DAU/MAU > 20% is good for most products)
|
|
38
|
+
4. Note the gap between current and benchmark
|
|
39
|
+
|
|
40
|
+
**Output:** "We're measuring D7 retention. Current: 18%. Benchmark for this category: 30%. Gap: 12 percentage points."
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## Step 2: Map the current user journey
|
|
45
|
+
|
|
46
|
+
**Goal:** Understand the full path from signup to retained user, and find where most users exit.
|
|
47
|
+
|
|
48
|
+
Actions:
|
|
49
|
+
|
|
50
|
+
1. Walk through the product from a new user's perspective (or ask the user to describe it)
|
|
51
|
+
2. Map each step: Signup → Onboarding → First value → Return visit → Habit
|
|
52
|
+
3. Note which steps require decisions, effort, or motivation
|
|
53
|
+
4. Identify where users most commonly drop off (ask for data if available; otherwise estimate from product knowledge)
|
|
54
|
+
5. Identify the "aha moment" — the specific action that signals a user will be retained
|
|
55
|
+
- If undefined: ask "What do your most retained users do in their first week that casual users don't?"
|
|
56
|
+
- Common examples: Facebook (7 friends in 10 days), Slack (2,000 messages exchanged), Dropbox (first file uploaded)
|
|
57
|
+
|
|
58
|
+
**Output:** A journey map with drop-off points marked and the aha moment identified (or TBD with a research recommendation).
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
## Step 3: Audit against the Hook Model
|
|
63
|
+
|
|
64
|
+
**Goal:** Assess whether the product has a functional habit loop.
|
|
65
|
+
|
|
66
|
+
For each phase, score 1–5 (1 = absent/broken, 5 = excellent):
|
|
67
|
+
|
|
68
|
+
**Trigger audit**
|
|
69
|
+
|
|
70
|
+
- What external triggers exist? (push notifications, emails, badges)
|
|
71
|
+
- Are these triggers behavioral (user-action-triggered) or scheduled (marketing calendar)?
|
|
72
|
+
- What internal trigger is the product trying to own? (boredom, FOMO, loneliness, anxiety, curiosity)
|
|
73
|
+
- Do users report opening the app without a specific external trigger? (if yes: internal triggers are forming)
|
|
74
|
+
- Score: `/5`
|
|
75
|
+
|
|
76
|
+
**Action audit**
|
|
77
|
+
|
|
78
|
+
- What is the single most important action the product wants users to take?
|
|
79
|
+
- How many steps separate the external trigger from that action?
|
|
80
|
+
- What are the friction points in reaching that action? (login walls, decision points, loading time)
|
|
81
|
+
- Score: `/5`
|
|
82
|
+
|
|
83
|
+
**Variable reward audit**
|
|
84
|
+
|
|
85
|
+
- What reward does the user receive after completing the core action?
|
|
86
|
+
- Is the reward variable or predictable?
|
|
87
|
+
- Which reward type does it represent: Tribe (social), Hunt (information), or Self (mastery)?
|
|
88
|
+
- Does the user feel in control during the reward phase, or constrained?
|
|
89
|
+
- Score: `/5`
|
|
90
|
+
|
|
91
|
+
**Investment audit**
|
|
92
|
+
|
|
93
|
+
- What does the user leave behind after each session?
|
|
94
|
+
- Does that stored value increase over time? (e.g., recommendations get better, more followers, more content)
|
|
95
|
+
- Does the user feel the product would be painful to leave because of what they've invested?
|
|
96
|
+
- Score: `/5`
|
|
97
|
+
|
|
98
|
+
**Hook Model total:** `/20`
|
|
99
|
+
|
|
100
|
+
Interpretation:
|
|
101
|
+
|
|
102
|
+
- 16–20: Strong habit loop. Focus on growth, not retention mechanics.
|
|
103
|
+
- 10–15: Moderate loop. Specific phases need work. Prioritize lowest-scoring phase.
|
|
104
|
+
- Under 10: Weak or broken loop. Retention mechanics are unlikely to work until the core loop is fixed.
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
## Step 4: Audit against the Fogg Behavior Model
|
|
109
|
+
|
|
110
|
+
**Goal:** Find where motivation or ability is insufficient in critical flows.
|
|
111
|
+
|
|
112
|
+
**For each critical action (onboarding completion, first core action, first return visit):**
|
|
113
|
+
|
|
114
|
+
1. **Motivation audit:**
|
|
115
|
+
- Is the value proposition clear before the user is asked to take this action?
|
|
116
|
+
- Is there social proof, urgency, or benefit framing near the action?
|
|
117
|
+
- Would a user with moderate motivation still take this action?
|
|
118
|
+
- Identify specific moments where motivation is likely to drop
|
|
119
|
+
|
|
120
|
+
2. **Ability audit:**
|
|
121
|
+
- Walk through each step: how long does it take? how much does it cost? how much cognitive load?
|
|
122
|
+
- Are there steps that require decisions without enough information to decide well?
|
|
123
|
+
- Are there unnecessary steps that could be removed or defaulted?
|
|
124
|
+
- Apply Fogg's 6 simplicity factors to the critical path
|
|
125
|
+
|
|
126
|
+
3. **Prompt audit:**
|
|
127
|
+
- Are users prompted at the right moment, or does the prompt fire when motivation is low?
|
|
128
|
+
- Are prompts generic (scheduled) or behavioral (triggered by user state)?
|
|
129
|
+
- Is there a facilitator prompt catching users who are mid-flow and almost done?
|
|
130
|
+
|
|
131
|
+
**Output:** List of specific friction points and motivation drops, with the step in the flow where each occurs.
|
|
132
|
+
|
|
133
|
+
---
|
|
134
|
+
|
|
135
|
+
## Step 5: Notification strategy audit
|
|
136
|
+
|
|
137
|
+
**Goal:** Evaluate whether the notification strategy supports or undermines retention.
|
|
138
|
+
|
|
139
|
+
Questions to answer:
|
|
140
|
+
|
|
141
|
+
1. How many notification types exist? List them all.
|
|
142
|
+
2. For each: is it triggered by user behavior or by a marketing schedule?
|
|
143
|
+
3. What is the average weekly notification count per user?
|
|
144
|
+
4. What is the notification opt-out rate? (>20% is a warning sign)
|
|
145
|
+
5. Are there "streak at risk" or loss-aversion notifications?
|
|
146
|
+
6. Are there recovery mechanics for users who have lapsed?
|
|
147
|
+
|
|
148
|
+
Score each notification type:
|
|
149
|
+
|
|
150
|
+
- Behavioral trigger (high relevance): strong keep
|
|
151
|
+
- Milestone trigger (user's own progress): keep
|
|
152
|
+
- Social trigger (friend activity): keep
|
|
153
|
+
- Marketing/scheduled blast: reduce or eliminate
|
|
154
|
+
|
|
155
|
+
**Output:** Notification audit with keep/improve/remove recommendation for each type.
|
|
156
|
+
|
|
157
|
+
---
|
|
158
|
+
|
|
159
|
+
## Step 6: Identify the keystone habit
|
|
160
|
+
|
|
161
|
+
**Goal:** Find the single behavior that, if habitual, makes everything else in the product stick.
|
|
162
|
+
|
|
163
|
+
Questions:
|
|
164
|
+
|
|
165
|
+
1. What is the behavior that your most retained users do that casual users don't?
|
|
166
|
+
2. What is the minimum frequency of that behavior that predicts long-term retention?
|
|
167
|
+
3. Is the product designed to make that behavior frictionless and rewarding?
|
|
168
|
+
4. Is there an anchor (existing routine) that could trigger this behavior?
|
|
169
|
+
|
|
170
|
+
**Output:** The keystone habit, current state (frictionless vs. too much friction), and recommended design change.
|
|
171
|
+
|
|
172
|
+
---
|
|
173
|
+
|
|
174
|
+
## Step 7: Score the retention mechanics inventory
|
|
175
|
+
|
|
176
|
+
**Goal:** Check which mechanics exist and how well they're implemented.
|
|
177
|
+
|
|
178
|
+
For each mechanic, score: Missing (0) / Exists but weak (1) / Well-implemented (2):
|
|
179
|
+
|
|
180
|
+
| Mechanic | Present? | Quality | Notes |
|
|
181
|
+
| ----------------------------------------- | -------- | ------- | ----- |
|
|
182
|
+
| Streaks | | | |
|
|
183
|
+
| Progress bars / completion | | | |
|
|
184
|
+
| Variable rewards | | | |
|
|
185
|
+
| Social proof | | | |
|
|
186
|
+
| Personalized onboarding / aha moment path | | | |
|
|
187
|
+
| Behavioral notifications | | | |
|
|
188
|
+
| Endowed progress | | | |
|
|
189
|
+
| Loss aversion mechanics | | | |
|
|
190
|
+
| Social features / relatedness | | | |
|
|
191
|
+
| Investment mechanics | | | |
|
|
192
|
+
|
|
193
|
+
**Mechanics score:** `/20`
|
|
194
|
+
|
|
195
|
+
---
|
|
196
|
+
|
|
197
|
+
## Step 8: Synthesize findings and prioritize
|
|
198
|
+
|
|
199
|
+
**Goal:** Create a prioritized gap list the team can act on.
|
|
200
|
+
|
|
201
|
+
Prioritization framework:
|
|
202
|
+
|
|
203
|
+
- **Impact:** How much would fixing this improve the primary retention metric? (H/M/L)
|
|
204
|
+
- **Effort:** How much engineering and design work is required? (H/M/L)
|
|
205
|
+
- **Priority:** High impact + low effort = do first. High impact + high effort = plan as a project. Low impact = deprioritize.
|
|
206
|
+
|
|
207
|
+
**Priority 1 (do immediately):** Low effort, high impact
|
|
208
|
+
|
|
209
|
+
- Typically: fixing a broken notification trigger, adding loss-aversion framing to an existing notification, adding a streak recovery mechanic, reducing friction in a critical flow
|
|
210
|
+
|
|
211
|
+
**Priority 2 (plan as a feature):** High impact, moderate/high effort
|
|
212
|
+
|
|
213
|
+
- Typically: redesigning onboarding around aha moment, adding streak system, redesigning reward phase
|
|
214
|
+
|
|
215
|
+
**Priority 3 (nice to have):** Low impact or low confidence
|
|
216
|
+
|
|
217
|
+
- Typically: social proof additions, gamification experiments, investment mechanic improvements
|
|
218
|
+
|
|
219
|
+
---
|
|
220
|
+
|
|
221
|
+
## Output format
|
|
222
|
+
|
|
223
|
+
Structure the audit output as:
|
|
224
|
+
|
|
225
|
+
```
|
|
226
|
+
RETENTION AUDIT SUMMARY
|
|
227
|
+
========================
|
|
228
|
+
|
|
229
|
+
Product: [name]
|
|
230
|
+
Primary metric: [metric]
|
|
231
|
+
Current baseline: [number]
|
|
232
|
+
Category benchmark: [number]
|
|
233
|
+
Gap: [gap]
|
|
234
|
+
|
|
235
|
+
HOOK MODEL SCORE: [X/20]
|
|
236
|
+
Trigger: [X/5] — [key finding]
|
|
237
|
+
Action: [X/5] — [key finding]
|
|
238
|
+
Variable Reward: [X/5] — [key finding]
|
|
239
|
+
Investment: [X/5] — [key finding]
|
|
240
|
+
|
|
241
|
+
FOGG AUDIT: [2–3 key friction points]
|
|
242
|
+
|
|
243
|
+
NOTIFICATION AUDIT: [summary]
|
|
244
|
+
|
|
245
|
+
KEYSTONE HABIT: [identified or TBD with recommendation]
|
|
246
|
+
|
|
247
|
+
MECHANICS INVENTORY: [X/20]
|
|
248
|
+
|
|
249
|
+
PRIORITY 1 GAPS (do immediately):
|
|
250
|
+
1. [Specific recommendation] — expected impact: [H/M/L] — effort: [H/M/L]
|
|
251
|
+
2. ...
|
|
252
|
+
|
|
253
|
+
PRIORITY 2 GAPS (plan as features):
|
|
254
|
+
1. [Specific recommendation]
|
|
255
|
+
2. ...
|
|
256
|
+
|
|
257
|
+
PRIORITY 3 (nice to have):
|
|
258
|
+
1. ...
|
|
259
|
+
```
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
id: refactoring
|
|
2
|
+
name: Refactoring
|
|
3
|
+
description: Safe refactoring with impact analysis and test-first verification.
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
enabledByDefault: false
|
|
6
|
+
cannotDisable: false
|
|
7
|
+
depends: []
|
|
8
|
+
provides:
|
|
9
|
+
skills:
|
|
10
|
+
- id: agileflow-refactor
|
|
11
|
+
dir: skills/agileflow-refactor
|
|
12
|
+
agents: []
|
|
13
|
+
hooks: []
|
|
14
|
+
templates: []
|
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: agileflow-refactor
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
category: agileflow/refactoring
|
|
5
|
+
description: |
|
|
6
|
+
Use when the user wants to improve existing code without changing its
|
|
7
|
+
observable behaviour. Applies safe refactoring patterns — extract
|
|
8
|
+
method/class, simplify conditionals, remove dead code, rename for
|
|
9
|
+
clarity — with an impact analysis and test-gate verification before
|
|
10
|
+
any change is made.
|
|
11
|
+
triggers:
|
|
12
|
+
keywords:
|
|
13
|
+
- refactor
|
|
14
|
+
- clean up
|
|
15
|
+
- extract
|
|
16
|
+
- simplify
|
|
17
|
+
- too complex
|
|
18
|
+
- technical debt
|
|
19
|
+
- dead code
|
|
20
|
+
- rename
|
|
21
|
+
- restructure
|
|
22
|
+
- improve readability
|
|
23
|
+
- this is a mess
|
|
24
|
+
- hard to understand
|
|
25
|
+
- duplicate code
|
|
26
|
+
- god class
|
|
27
|
+
- long method
|
|
28
|
+
priority: 50
|
|
29
|
+
exclude:
|
|
30
|
+
- refactor to a new framework (migration, not refactoring)
|
|
31
|
+
- extract requirements (product management context)
|
|
32
|
+
provides:
|
|
33
|
+
agents: []
|
|
34
|
+
learns:
|
|
35
|
+
enabled: true
|
|
36
|
+
file: _learnings/refactor.yaml
|
|
37
|
+
maxEntries: 50
|
|
38
|
+
depends:
|
|
39
|
+
skills: []
|
|
40
|
+
plugins: [core]
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
# AgileFlow Refactor
|
|
44
|
+
|
|
45
|
+
Safe, systematic refactoring with impact analysis, test gates, and incremental change — improves code quality without breaking behaviour.
|
|
46
|
+
|
|
47
|
+
## When this skill activates
|
|
48
|
+
|
|
49
|
+
- User wants to clean up, simplify, or restructure code
|
|
50
|
+
- User identifies technical debt or hard-to-maintain code
|
|
51
|
+
- User wants to extract a reusable module or function
|
|
52
|
+
- User says a function or class is "too complex" or "too long"
|
|
53
|
+
- User wants to remove dead code or duplicate logic
|
|
54
|
+
- User wants to rename for clarity
|
|
55
|
+
- User is preparing code for a feature addition (make it easy to change, then change it)
|
|
56
|
+
|
|
57
|
+
## Opening discovery flow
|
|
58
|
+
|
|
59
|
+
**When invoked without a specific target, ask once to understand scope and intent.**
|
|
60
|
+
|
|
61
|
+
```xml
|
|
62
|
+
<invoke name="AskUserQuestion">
|
|
63
|
+
<parameter name="questions">[
|
|
64
|
+
{
|
|
65
|
+
"question": "What would you like to refactor?",
|
|
66
|
+
"header": "Refactoring target",
|
|
67
|
+
"multiSelect": false,
|
|
68
|
+
"options": [
|
|
69
|
+
{"label": "A specific function or method that's too long or complex (Recommended)", "description": "Paste the function and I'll suggest extractions, simplifications, and naming improvements"},
|
|
70
|
+
{"label": "A class or module with too many responsibilities", "description": "Point me at the file — I'll identify which responsibilities should move to their own class"},
|
|
71
|
+
{"label": "Duplicate code across multiple files", "description": "Show me the duplication and I'll design a shared abstraction"},
|
|
72
|
+
{"label": "Clean up dead code or unused exports", "description": "I'll analyse the codebase for unused functions, variables, and modules"},
|
|
73
|
+
{"label": "Rename for clarity (variables, functions, files)", "description": "Tell me what feels poorly named and I'll suggest better names with impact analysis"},
|
|
74
|
+
{"label": "Reduce cyclomatic complexity in a function", "description": "I'll restructure conditionals using guard clauses, early returns, and strategy pattern"}
|
|
75
|
+
]
|
|
76
|
+
}
|
|
77
|
+
]</parameter>
|
|
78
|
+
</invoke>
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
## Refactoring principles
|
|
82
|
+
|
|
83
|
+
### 1. Tests first
|
|
84
|
+
|
|
85
|
+
**Never refactor without a test safety net.** If the code doesn't have tests, write characterisation tests before touching anything.
|
|
86
|
+
|
|
87
|
+
> "Make it easy to change, then change it."
|
|
88
|
+
|
|
89
|
+
```
|
|
90
|
+
Step 1: Write/confirm tests exist → they pass
|
|
91
|
+
Step 2: Refactor
|
|
92
|
+
Step 3: Tests still pass → behaviour preserved
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
If tests don't exist: offer to write them first (use `agileflow-test-writer`), or at minimum characterise the current behaviour.
|
|
96
|
+
|
|
97
|
+
### 2. One refactoring at a time
|
|
98
|
+
|
|
99
|
+
Don't rename AND restructure AND extract in one change. Small, focused refactors are safer and easier to review. Each step should:
|
|
100
|
+
|
|
101
|
+
- Be independently committtable
|
|
102
|
+
- Leave the tests green
|
|
103
|
+
- Do exactly one kind of improvement
|
|
104
|
+
|
|
105
|
+
### 3. Boy Scout Rule
|
|
106
|
+
|
|
107
|
+
"Always leave the code a little better than you found it." When touching a file for another purpose, fix obvious issues:
|
|
108
|
+
|
|
109
|
+
- Rename a confusing variable
|
|
110
|
+
- Extract a magic number to a constant
|
|
111
|
+
- Remove a dead branch
|
|
112
|
+
|
|
113
|
+
But don't go beyond what's proportionate to the change at hand.
|
|
114
|
+
|
|
115
|
+
### 4. No behaviour changes
|
|
116
|
+
|
|
117
|
+
A refactoring, by definition, does not change observable behaviour. If the change would alter:
|
|
118
|
+
|
|
119
|
+
- Function inputs/outputs
|
|
120
|
+
- Error types thrown
|
|
121
|
+
- Side effects
|
|
122
|
+
- Performance characteristics in a user-visible way
|
|
123
|
+
|
|
124
|
+
...then it is not a pure refactoring — it is a feature change. Flag this to the user.
|
|
125
|
+
|
|
126
|
+
## Impact analysis before every refactoring
|
|
127
|
+
|
|
128
|
+
Before making any change, assess:
|
|
129
|
+
|
|
130
|
+
| Question | Why it matters |
|
|
131
|
+
| --------------------------------------------------------------- | --------------------------------------- |
|
|
132
|
+
| What calls this function/uses this module? | Determines blast radius |
|
|
133
|
+
| Are there tests covering this code? | Determines safety of the change |
|
|
134
|
+
| Is this a public API (used by consumers outside this codebase)? | Determines if this is a breaking change |
|
|
135
|
+
| Are there feature flags or A/B tests touching this code? | Could change which variant runs |
|
|
136
|
+
| Are there any type definitions that reference this? | Types may need updating too |
|
|
137
|
+
|
|
138
|
+
Run a quick search before refactoring:
|
|
139
|
+
|
|
140
|
+
- Find all usages: `grep -r "functionName" src/`
|
|
141
|
+
- Find all imports: `grep -r "from './module'" src/`
|
|
142
|
+
- Check for dynamic calls: `functionName\(` as a pattern
|
|
143
|
+
|
|
144
|
+
## Common refactoring patterns
|
|
145
|
+
|
|
146
|
+
See `references/refactoring-patterns.md` for the full catalogue. Quick reference:
|
|
147
|
+
|
|
148
|
+
| Pattern | When to apply |
|
|
149
|
+
| ------------------------------------- | ---------------------------------------------------------- |
|
|
150
|
+
| Extract function | Function > 20 lines, or section has a clear single purpose |
|
|
151
|
+
| Extract class | Class has > 2 responsibilities, or file > 300 lines |
|
|
152
|
+
| Replace conditional with guard clause | Nested if/else with happy path buried in conditions |
|
|
153
|
+
| Replace magic number with constant | Numeric literal used without explanation |
|
|
154
|
+
| Extract variable | Complex expression used more than once |
|
|
155
|
+
| Rename for clarity | Variable/function name doesn't describe what it does |
|
|
156
|
+
| Dead code removal | Function never called; variable never read |
|
|
157
|
+
| Consolidate duplicate conditionals | Same condition checked in multiple places |
|
|
158
|
+
| Replace inheritance with composition | Subclass only uses 10% of the parent's interface |
|
|
159
|
+
| Introduce parameter object | Function takes > 4 parameters |
|
|
160
|
+
|
|
161
|
+
## Code smell signals
|
|
162
|
+
|
|
163
|
+
| Smell | Typical pattern | Refactoring to apply |
|
|
164
|
+
| -------------------------- | ------------------------------------------------------- | ---------------------------------------------- |
|
|
165
|
+
| Long method | > 30 lines | Extract function |
|
|
166
|
+
| Large class | > 300 lines or > 5 public methods | Extract class |
|
|
167
|
+
| Duplicate code | Same block in 2+ places | Extract function or module |
|
|
168
|
+
| Long parameter list | > 4 parameters | Introduce parameter object |
|
|
169
|
+
| Deeply nested conditionals | > 3 levels of nesting | Guard clauses, early returns |
|
|
170
|
+
| Magic numbers | `if (status === 3)` | Named constant `if (status === ORDER_SHIPPED)` |
|
|
171
|
+
| Dead code | Function defined but never called | Delete (with a search to confirm) |
|
|
172
|
+
| Inconsistent naming | `getUser`, `fetchAccount`, `loadProfile` for same thing | Normalise naming convention |
|
|
173
|
+
| God object | One class doing everything | Extract multiple focused classes |
|
|
174
|
+
| Shotgun surgery | One change requires edits in 10 files | Consolidate into a single place |
|
|
175
|
+
|
|
176
|
+
## Refactoring safety checklist
|
|
177
|
+
|
|
178
|
+
See `references/safety-checks.md` for the full checklist. Before any refactoring:
|
|
179
|
+
|
|
180
|
+
- [ ] Tests exist and pass
|
|
181
|
+
- [ ] Impact analysis complete (know who calls this)
|
|
182
|
+
- [ ] Not a public API without a deprecation plan
|
|
183
|
+
- [ ] Change is scoped to one pattern at a time
|
|
184
|
+
- [ ] Can be committed independently (doesn't depend on other uncommitted changes)
|
|
185
|
+
|
|
186
|
+
After refactoring:
|
|
187
|
+
|
|
188
|
+
- [ ] Tests still pass
|
|
189
|
+
- [ ] No new linting errors introduced
|
|
190
|
+
- [ ] PR diff is readable (reviewer can understand what changed and why)
|
|
191
|
+
- [ ] Commit message describes the refactoring pattern used
|
|
192
|
+
|
|
193
|
+
## SOLID principles as refactoring targets
|
|
194
|
+
|
|
195
|
+
| Principle | Violation signal | Refactoring |
|
|
196
|
+
| --------------------------- | --------------------------------------------------- | ----------------------------------- |
|
|
197
|
+
| **S** Single Responsibility | Class does X and Y and Z | Extract class per responsibility |
|
|
198
|
+
| **O** Open/Closed | Adding a feature requires modifying existing code | Introduce strategy / plugin pattern |
|
|
199
|
+
| **L** Liskov Substitution | Subclass overrides parent method to throw | Prefer composition over inheritance |
|
|
200
|
+
| **I** Interface Segregation | Interface has methods most implementors don't need | Split interface |
|
|
201
|
+
| **D** Dependency Inversion | High-level module imports concrete low-level module | Inject dependency via interface |
|
|
202
|
+
|
|
203
|
+
## Self-improving learnings
|
|
204
|
+
|
|
205
|
+
`_learnings/refactor.yaml` records:
|
|
206
|
+
|
|
207
|
+
- Preferred naming conventions for this project (camelCase, snake_case, etc.)
|
|
208
|
+
- Established module boundaries (what belongs where)
|
|
209
|
+
- Patterns the team uses (e.g. repository pattern, service layer)
|
|
210
|
+
- Previous refactoring outcomes — what was improved and how
|
|
211
|
+
|
|
212
|
+
## Integration
|
|
213
|
+
|
|
214
|
+
- **agileflow-test-writer** — write or verify tests before any refactor begins; tests are the safety net that lets refactoring proceed without fear
|
|
215
|
+
- **agileflow-audit** — use the audit skill to identify what needs refactoring; audit finds the code quality, duplication, and complexity issues, refactor fixes them
|
|
216
|
+
- **agileflow-engineering** — when refactoring is part of a feature story, coordinate with engineering so the feature lands in already-cleaned code
|
|
217
|
+
- **agileflow-pr-reviewer** — invoke after refactoring to confirm the changes preserved observable behaviour and meet style standards
|
|
218
|
+
- **agileflow-performance** — when a refactor is performance-motivated (N+1 queries, blocking renders), pair with performance to measure before and after
|
|
219
|
+
- **agileflow-debug** — if a refactor introduces a regression, hand off immediately to debug rather than reverting blindly
|
|
220
|
+
- **agileflow-adr** — document significant refactoring decisions (module boundary changes, pattern migrations) as ADRs before executing them on large codebases
|
|
221
|
+
- **agileflow-migration** — when a refactor involves a library upgrade or API migration alongside the structural cleanup, use migration to handle the version-specific steps
|
|
222
|
+
|
|
223
|
+
## References
|
|
224
|
+
|
|
225
|
+
| File | When to load |
|
|
226
|
+
| ------------------------------------ | -------------------------------------------------------------------------- |
|
|
227
|
+
| `references/refactoring-patterns.md` | Detailed catalogue of refactoring patterns with before/after code examples |
|
|
228
|
+
| `references/safety-checks.md` | Pre/post refactoring safety checklist and risk assessment |
|
|
229
|
+
|
|
230
|
+
## Workflows
|
|
231
|
+
|
|
232
|
+
| File | When to follow |
|
|
233
|
+
| ----------------------------- | ------------------------------------------------------------------------ |
|
|
234
|
+
| `workflows/safe-refactor.md` | Any refactoring task — assess safety, write tests, apply pattern, verify |
|
|
235
|
+
| `workflows/extract-module.md` | Extracting a reusable module or function from a large file or class |
|