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,328 @@
|
|
|
1
|
+
# Migration Guide
|
|
2
|
+
|
|
3
|
+
Safe database migration discipline for production systems. Every migration is reversible, every destructive operation has a zero-downtime strategy, and every change is tested before it touches production.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## The Reversibility Rule
|
|
8
|
+
|
|
9
|
+
A migration without a working `down` is a one-way door. One-way doors in production databases are dangerous.
|
|
10
|
+
|
|
11
|
+
**Mandatory rules:**
|
|
12
|
+
|
|
13
|
+
1. Every migration file has both `up` and `down`
|
|
14
|
+
2. The `down` must actually restore the previous state — not just be a placeholder comment
|
|
15
|
+
3. The `down` must not lose data. If dropping a column, the `down` cannot restore it (data is gone). Use rename instead.
|
|
16
|
+
4. Test `down` in a staging environment before deploying `up` to production
|
|
17
|
+
5. If data loss in rollback is truly unavoidable, document it explicitly and get sign-off
|
|
18
|
+
|
|
19
|
+
```sql
|
|
20
|
+
-- Example migration structure (pseudo-code for most migration tools)
|
|
21
|
+
|
|
22
|
+
-- up
|
|
23
|
+
ALTER TABLE users ADD COLUMN display_name TEXT;
|
|
24
|
+
|
|
25
|
+
-- down
|
|
26
|
+
ALTER TABLE users DROP COLUMN display_name;
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
For a column with data that would be lost on rollback:
|
|
30
|
+
|
|
31
|
+
```sql
|
|
32
|
+
-- up: rename old column, add new one (data preserved in old column for rollback)
|
|
33
|
+
ALTER TABLE users RENAME COLUMN username TO username_legacy;
|
|
34
|
+
ALTER TABLE users ADD COLUMN username TEXT;
|
|
35
|
+
UPDATE users SET username = username_legacy;
|
|
36
|
+
ALTER TABLE users ALTER COLUMN username SET NOT NULL;
|
|
37
|
+
|
|
38
|
+
-- down: remove new column, rename back
|
|
39
|
+
ALTER TABLE users DROP COLUMN username;
|
|
40
|
+
ALTER TABLE users RENAME COLUMN username_legacy TO username;
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## Zero-Downtime Migration Patterns
|
|
46
|
+
|
|
47
|
+
### Adding a Column
|
|
48
|
+
|
|
49
|
+
**Safe:** adding a nullable column with no default, or a column with a constant default.
|
|
50
|
+
|
|
51
|
+
```sql
|
|
52
|
+
-- Always safe in PostgreSQL (no table rewrite needed)
|
|
53
|
+
ALTER TABLE users ADD COLUMN bio TEXT;
|
|
54
|
+
ALTER TABLE users ADD COLUMN is_premium BOOLEAN NOT NULL DEFAULT false;
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
**Unsafe:** adding NOT NULL without a default on a table with existing rows.
|
|
58
|
+
|
|
59
|
+
```sql
|
|
60
|
+
-- BAD: acquires ACCESS EXCLUSIVE lock while rewriting the table
|
|
61
|
+
ALTER TABLE users ADD COLUMN tier TEXT NOT NULL; -- fails if rows exist, or locks for rewrite
|
|
62
|
+
|
|
63
|
+
-- GOOD: three-step approach
|
|
64
|
+
-- Migration 1: add nullable
|
|
65
|
+
ALTER TABLE users ADD COLUMN tier TEXT;
|
|
66
|
+
|
|
67
|
+
-- Migration 2 (separate deploy): backfill
|
|
68
|
+
UPDATE users SET tier = 'free' WHERE tier IS NULL; -- batch if large
|
|
69
|
+
|
|
70
|
+
-- Migration 3 (separate deploy after code handles NULL): add constraint
|
|
71
|
+
ALTER TABLE users ALTER COLUMN tier SET DEFAULT 'free';
|
|
72
|
+
ALTER TABLE users ALTER COLUMN tier SET NOT NULL;
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
### Renaming a Column
|
|
76
|
+
|
|
77
|
+
Never rename directly — it breaks the running application code immediately.
|
|
78
|
+
|
|
79
|
+
**Three-deploy strategy:**
|
|
80
|
+
|
|
81
|
+
```
|
|
82
|
+
Deploy 1: Add new column, write to both old and new, read from old
|
|
83
|
+
Deploy 2: Backfill new column for all existing rows, switch reads to new column
|
|
84
|
+
Deploy 3: Drop old column
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
```sql
|
|
88
|
+
-- Deploy 1 migration:
|
|
89
|
+
ALTER TABLE users ADD COLUMN display_name TEXT;
|
|
90
|
+
|
|
91
|
+
-- Deploy 1 application code: write to both `name` and `display_name`
|
|
92
|
+
|
|
93
|
+
-- Deploy 2 migration: backfill
|
|
94
|
+
UPDATE users SET display_name = name WHERE display_name IS NULL;
|
|
95
|
+
-- Deploy 2 application code: reads from display_name, still writes to both
|
|
96
|
+
|
|
97
|
+
-- Deploy 3 migration: drop old column
|
|
98
|
+
ALTER TABLE users DROP COLUMN name;
|
|
99
|
+
-- Deploy 3 application code: write only to display_name
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
### Adding an Index
|
|
103
|
+
|
|
104
|
+
Always use CONCURRENTLY. Without it, an ACCESS SHARE lock blocks all writes during the build.
|
|
105
|
+
|
|
106
|
+
```sql
|
|
107
|
+
-- Never in production without CONCURRENTLY
|
|
108
|
+
CREATE INDEX idx_orders_user_id ON orders (user_id);
|
|
109
|
+
|
|
110
|
+
-- Always:
|
|
111
|
+
CREATE INDEX CONCURRENTLY idx_orders_user_id ON orders (user_id);
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
Note: CONCURRENTLY cannot run inside a transaction block. If your migration tool wraps all migrations in transactions, you must disable the transaction for index migrations, or run them manually.
|
|
115
|
+
|
|
116
|
+
```sql
|
|
117
|
+
-- Disable transaction in Flyway:
|
|
118
|
+
-- @flyway:transaction=false
|
|
119
|
+
|
|
120
|
+
-- Rails: disable_ddl_transaction!
|
|
121
|
+
class AddIndexToOrdersUserId < ActiveRecord::Migration[7.0]
|
|
122
|
+
disable_ddl_transaction!
|
|
123
|
+
def change
|
|
124
|
+
add_index :orders, :user_id, algorithm: :concurrently
|
|
125
|
+
end
|
|
126
|
+
end
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
### Removing a Column
|
|
130
|
+
|
|
131
|
+
Two-deploy strategy — removing too early breaks the running code.
|
|
132
|
+
|
|
133
|
+
```
|
|
134
|
+
Deploy 1: Remove all references to the column in application code
|
|
135
|
+
Deploy 2: Drop the column in the migration
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
```sql
|
|
139
|
+
-- Deploy 2 migration (after code no longer references the column):
|
|
140
|
+
ALTER TABLE users DROP COLUMN legacy_token;
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
### Changing a Column Type
|
|
144
|
+
|
|
145
|
+
This is the most complex operation. Never do it in place on a live table.
|
|
146
|
+
|
|
147
|
+
**Strategy:**
|
|
148
|
+
|
|
149
|
+
```sql
|
|
150
|
+
-- Step 1: Add new column with new type
|
|
151
|
+
ALTER TABLE orders ADD COLUMN total_cents BIGINT;
|
|
152
|
+
|
|
153
|
+
-- Step 2: Backfill (in batches if large)
|
|
154
|
+
UPDATE orders SET total_cents = (total_amount * 100)::BIGINT
|
|
155
|
+
WHERE total_cents IS NULL;
|
|
156
|
+
|
|
157
|
+
-- Step 3: Add trigger to keep columns in sync during deployment window
|
|
158
|
+
-- (optional but recommended for tables with high write volume)
|
|
159
|
+
|
|
160
|
+
-- Step 4: Switch application reads and writes to new column
|
|
161
|
+
|
|
162
|
+
-- Step 5: Drop old column
|
|
163
|
+
ALTER TABLE orders DROP COLUMN total_amount;
|
|
164
|
+
ALTER TABLE orders RENAME COLUMN total_cents TO total_amount;
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
### Large Table Backfills
|
|
168
|
+
|
|
169
|
+
Backfilling millions of rows in a single UPDATE holds a long lock, generates massive WAL, spikes replication lag, and risks transaction timeout.
|
|
170
|
+
|
|
171
|
+
**Batch by primary key:**
|
|
172
|
+
|
|
173
|
+
```sql
|
|
174
|
+
DO $$
|
|
175
|
+
DECLARE
|
|
176
|
+
batch_size INT := 5000;
|
|
177
|
+
last_id BIGINT := 0;
|
|
178
|
+
max_id BIGINT;
|
|
179
|
+
rows_updated INT;
|
|
180
|
+
BEGIN
|
|
181
|
+
SELECT MAX(id) INTO max_id FROM orders;
|
|
182
|
+
|
|
183
|
+
LOOP
|
|
184
|
+
EXIT WHEN last_id > max_id;
|
|
185
|
+
|
|
186
|
+
UPDATE orders
|
|
187
|
+
SET status = 'legacy'
|
|
188
|
+
WHERE id > last_id
|
|
189
|
+
AND id <= last_id + batch_size
|
|
190
|
+
AND status IS NULL;
|
|
191
|
+
|
|
192
|
+
GET DIAGNOSTICS rows_updated = ROW_COUNT;
|
|
193
|
+
last_id := last_id + batch_size;
|
|
194
|
+
|
|
195
|
+
-- Give replication a breath between batches
|
|
196
|
+
PERFORM pg_sleep(0.1);
|
|
197
|
+
RAISE NOTICE 'Updated through id %, % rows this batch', last_id, rows_updated;
|
|
198
|
+
END LOOP;
|
|
199
|
+
END $$;
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
Or use a migration tool's batch helper (e.g., Rails `update_column_in_batches`, Flyway callback).
|
|
203
|
+
|
|
204
|
+
**Monitor replication lag during backfill:**
|
|
205
|
+
|
|
206
|
+
```sql
|
|
207
|
+
-- On replica:
|
|
208
|
+
SELECT EXTRACT(EPOCH FROM (now() - pg_last_xact_replay_timestamp())) AS lag_seconds;
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
Pause the backfill if lag exceeds your threshold.
|
|
212
|
+
|
|
213
|
+
---
|
|
214
|
+
|
|
215
|
+
## Adding Foreign Key Constraints (PostgreSQL)
|
|
216
|
+
|
|
217
|
+
A standard `ADD FOREIGN KEY` acquires a SHARE ROW EXCLUSIVE lock on both tables and validates all existing rows — this can take minutes and block writes.
|
|
218
|
+
|
|
219
|
+
**Use NOT VALID + VALIDATE CONSTRAINT:**
|
|
220
|
+
|
|
221
|
+
```sql
|
|
222
|
+
-- Step 1: Add constraint without validating existing rows (fast, minimal lock)
|
|
223
|
+
ALTER TABLE orders
|
|
224
|
+
ADD CONSTRAINT orders_user_id_fkey
|
|
225
|
+
FOREIGN KEY (user_id) REFERENCES users(id)
|
|
226
|
+
NOT VALID;
|
|
227
|
+
|
|
228
|
+
-- Step 2: Validate existing rows (no write locks held during scan)
|
|
229
|
+
ALTER TABLE orders
|
|
230
|
+
VALIDATE CONSTRAINT orders_user_id_fkey;
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
The two-step approach holds only a brief lock for the metadata update, then validates rows while holding only a weaker lock that doesn't block reads or writes.
|
|
234
|
+
|
|
235
|
+
---
|
|
236
|
+
|
|
237
|
+
## PostgreSQL-Specific Safety Settings
|
|
238
|
+
|
|
239
|
+
Add these at the top of risky migration scripts:
|
|
240
|
+
|
|
241
|
+
```sql
|
|
242
|
+
-- Fail fast if we can't get a lock within 2 seconds
|
|
243
|
+
-- (better to fail loudly than to queue all production queries)
|
|
244
|
+
SET lock_timeout = '2s';
|
|
245
|
+
|
|
246
|
+
-- Kill the statement if it runs too long
|
|
247
|
+
SET statement_timeout = '30s'; -- adjust to expected migration duration
|
|
248
|
+
|
|
249
|
+
-- For long backfills, disable statement timeout
|
|
250
|
+
SET statement_timeout = 0;
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
In application code or migration tools, set these as session-level settings before running migrations.
|
|
254
|
+
|
|
255
|
+
### Implicit Locks on Referenced Tables
|
|
256
|
+
|
|
257
|
+
Creating a FK also briefly locks the referenced table. On busy tables, set `lock_timeout` to avoid locking up production:
|
|
258
|
+
|
|
259
|
+
```sql
|
|
260
|
+
SET lock_timeout = '3s';
|
|
261
|
+
ALTER TABLE order_items
|
|
262
|
+
ADD CONSTRAINT order_items_order_id_fkey
|
|
263
|
+
FOREIGN KEY (order_id) REFERENCES orders(id)
|
|
264
|
+
NOT VALID;
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
If this times out, retry during a low-traffic window.
|
|
268
|
+
|
|
269
|
+
---
|
|
270
|
+
|
|
271
|
+
## Migration Anti-Patterns
|
|
272
|
+
|
|
273
|
+
| Anti-pattern | Risk | Fix |
|
|
274
|
+
| --------------------------------------------------- | ----------------------------------------------------- | ------------------------------------------------------- |
|
|
275
|
+
| Adding NOT NULL to existing column in one step | Full table lock (PostgreSQL rewrites the table) | Add nullable → backfill → add constraint (3 migrations) |
|
|
276
|
+
| Dropping column same deploy as removing code | Rollback impossible — code restored but column gone | Remove code → deploy → drop column |
|
|
277
|
+
| Direct column rename | Breaks running application immediately | Add new → backfill → switch → drop old |
|
|
278
|
+
| Bulk UPDATE without batching | Long lock, replication lag spike, timeout risk | Batch by PK with sleep between batches |
|
|
279
|
+
| CREATE INDEX without CONCURRENTLY | Blocks all writes during index build | Always use CONCURRENTLY |
|
|
280
|
+
| Seeding production data in migrations | Migrations become environment-specific, slow, brittle | Use seeds or separate idempotent scripts |
|
|
281
|
+
| Migration with no `down` | Cannot roll back without manual intervention | Always write the `down` |
|
|
282
|
+
| Multi-hour migration in a single transaction | Holds locks, fills WAL, blocks autovacuum | Break into stages; avoid long transactions |
|
|
283
|
+
| Running migration against production before staging | No opportunity to catch problems | Always run in staging first |
|
|
284
|
+
| Changing ENUM values directly | Requires table rewrite in older PostgreSQL | Add new ENUM value (safe), migrate data, remove old |
|
|
285
|
+
|
|
286
|
+
---
|
|
287
|
+
|
|
288
|
+
## Migration Checklist
|
|
289
|
+
|
|
290
|
+
Before running any migration in production:
|
|
291
|
+
|
|
292
|
+
- [ ] Migration has been run against a production-sized staging database
|
|
293
|
+
- [ ] `down` has been tested and verified to restore the previous state
|
|
294
|
+
- [ ] EXPLAIN ANALYZE run for any queries involved in the migration
|
|
295
|
+
- [ ] Large table changes use CONCURRENTLY, batching, or NOT VALID
|
|
296
|
+
- [ ] lock_timeout set for any DDL that acquires ACCESS EXCLUSIVE lock
|
|
297
|
+
- [ ] Replication lag monitored during backfill operations
|
|
298
|
+
- [ ] Rollback plan documented and reviewed
|
|
299
|
+
- [ ] Migration is idempotent (can be re-run safely if interrupted)
|
|
300
|
+
- [ ] No data-seeding in the migration file
|
|
301
|
+
- [ ] Application code changes are backward-compatible with pre- and post-migration schema
|
|
302
|
+
|
|
303
|
+
---
|
|
304
|
+
|
|
305
|
+
## Common Migration Tools
|
|
306
|
+
|
|
307
|
+
| Tool | Language | Notes |
|
|
308
|
+
| ---------------- | --------- | -------------------------------------------------------------------------- |
|
|
309
|
+
| Flyway | Any (SQL) | SQL-based, strong versioning, Java CLI or Maven/Gradle plugin |
|
|
310
|
+
| Liquibase | Any | XML/YAML/SQL format, rollback support, change tracking |
|
|
311
|
+
| Rails Migrations | Ruby | ActiveRecord DSL, `up`/`down`, `disable_ddl_transaction!` for CONCURRENTLY |
|
|
312
|
+
| Alembic | Python | SQLAlchemy-based, autogenerate from models, `upgrade`/`downgrade` |
|
|
313
|
+
| Prisma Migrate | Node.js | Schema-first, drift detection, no CONCURRENTLY support (workaround needed) |
|
|
314
|
+
| Drizzle Kit | Node.js | TypeScript schema-first, generate SQL migrations |
|
|
315
|
+
| GORM AutoMigrate | Go | Simple but limited — not recommended for production beyond dev |
|
|
316
|
+
| golang-migrate | Go | SQL files, up/down, supports PostgreSQL CONCURRENTLY |
|
|
317
|
+
|
|
318
|
+
### Prisma CONCURRENTLY Workaround
|
|
319
|
+
|
|
320
|
+
Prisma Migrate wraps migrations in transactions. For index creation, add a manual SQL migration:
|
|
321
|
+
|
|
322
|
+
```sql
|
|
323
|
+
-- In a separate migration file that Prisma won't auto-generate
|
|
324
|
+
-- migrations/20240115_add_index_orders_user_id.sql
|
|
325
|
+
CREATE INDEX CONCURRENTLY IF NOT EXISTS idx_orders_user_id ON orders (user_id);
|
|
326
|
+
```
|
|
327
|
+
|
|
328
|
+
Mark it as applied manually after running it outside Prisma: `prisma migrate resolve --applied migration_name`.
|