agileflow 3.4.3 → 4.0.0-alpha.10
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 +294 -478
- package/README.md +22 -114
- package/bin/agileflow.js +15 -0
- package/bin/hooks/pre-bash.js +35 -0
- package/bin/hooks/pre-compact.js +34 -0
- package/bin/hooks/pre-edit.js +32 -0
- package/bin/hooks/pre-write.js +32 -0
- package/bin/hooks/session-start.js +42 -0
- package/bin/hooks/stop.js +34 -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 +33 -0
- 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 +195 -0
- 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 +196 -0
- package/content/plugins/core/hooks/damage-control-bash.js +86 -0
- package/content/plugins/core/hooks/damage-control-edit.js +79 -0
- package/content/plugins/core/hooks/damage-control-patterns.yaml +100 -0
- package/content/plugins/core/hooks/damage-control-write.js +75 -0
- package/content/plugins/core/hooks/post-compact-state.js +107 -0
- package/content/plugins/core/hooks/preferences-injector.js +352 -0
- package/content/plugins/core/hooks/session-welcome.js +19 -0
- package/content/plugins/core/plugin.yaml +78 -0
- package/content/plugins/core/skills/agileflow-adr/SKILL.md +205 -0
- 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 +211 -0
- 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 +209 -0
- 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 +148 -0
- 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 +125 -0
- 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 +33 -0
- 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 +29 -0
- 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 +30 -50
- package/src/cli/commands/doctor.js +947 -0
- package/src/cli/commands/hook.js +83 -0
- package/src/cli/commands/launch.js +1385 -0
- package/src/cli/commands/learn.js +149 -0
- package/src/cli/commands/plugins.js +113 -0
- package/src/cli/commands/setup.js +637 -0
- package/src/cli/commands/skills.js +324 -0
- package/src/cli/commands/status.js +45 -0
- package/src/cli/commands/update.js +144 -0
- package/src/cli/index.js +137 -0
- package/src/cli/wizard/babysit-mode-picker.js +192 -0
- package/src/cli/wizard/behaviors-picker.js +262 -0
- package/src/cli/wizard/ide-picker.js +69 -0
- 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 +137 -0
- package/src/lib/brand.js +116 -0
- package/src/lib/errors.js +120 -0
- package/src/lib/hash.js +41 -0
- package/src/lib/path-check.js +39 -0
- package/src/runtime/config/defaults.js +66 -0
- package/src/runtime/config/loader.js +186 -0
- package/src/runtime/config/schema.json +126 -0
- package/src/runtime/config/writer.js +57 -0
- package/src/runtime/hooks/aggregator.js +157 -0
- package/src/runtime/hooks/chain.js +93 -0
- package/src/runtime/hooks/logger.js +68 -0
- package/src/runtime/hooks/manifest-loader.js +228 -0
- package/src/runtime/hooks/orchestrator.js +322 -0
- package/src/runtime/ide/babysit-skill.js +202 -0
- package/src/runtime/ide/capabilities.js +166 -0
- package/src/runtime/ide/claude-code-content.js +177 -0
- package/src/runtime/ide/claude-code-settings.js +272 -0
- package/src/runtime/ide/claude-code-skills.js +217 -0
- package/src/runtime/ide/codex-config.js +295 -0
- package/src/runtime/installer/file-index.js +112 -0
- package/src/runtime/installer/install.js +557 -0
- package/src/runtime/installer/stash.js +61 -0
- package/src/runtime/installer/sync-engine.js +205 -0
- 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 +142 -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 +315 -0
- package/src/runtime/launch/tmux.js +654 -0
- package/src/runtime/launch/worktree.js +260 -0
- package/src/runtime/plugins/registry.js +137 -0
- package/src/runtime/plugins/resolver.js +138 -0
- package/src/runtime/plugins/validator.js +210 -0
- package/src/runtime/skills/learnings.js +308 -0
- package/src/runtime/skills/validator.js +335 -0
- package/lib/README.md +0 -178
- package/lib/api-routes.js +0 -625
- package/lib/api-server.js +0 -278
- package/lib/cache-provider.js +0 -155
- package/lib/codebase-indexer.js +0 -819
- package/lib/colors.generated.js +0 -117
- package/lib/colors.js +0 -341
- package/lib/consent.js +0 -232
- package/lib/content-sanitizer.js +0 -464
- package/lib/correlation.js +0 -277
- package/lib/drivers/claude-driver.ts +0 -312
- package/lib/drivers/codex-driver.ts +0 -464
- package/lib/drivers/driver-manager.ts +0 -159
- package/lib/drivers/gemini-driver.ts +0 -498
- package/lib/drivers/index.ts +0 -17
- package/lib/error-codes.js +0 -590
- package/lib/errors.js +0 -670
- package/lib/feature-flags.js +0 -171
- package/lib/feedback.js +0 -595
- package/lib/file-cache.js +0 -541
- package/lib/flag-detection.js +0 -344
- package/lib/format-error.js +0 -156
- package/lib/gate-runner.js +0 -282
- package/lib/generator-factory.js +0 -333
- package/lib/git-operations.js +0 -266
- package/lib/lazy-require.js +0 -59
- package/lib/lock-file.js +0 -144
- package/lib/logger.js +0 -106
- package/lib/merge-operations.js +0 -1006
- package/lib/path-resolver.js +0 -544
- package/lib/path-utils.js +0 -49
- package/lib/paths.js +0 -291
- package/lib/placeholder-registry.js +0 -822
- package/lib/process-executor.js +0 -214
- package/lib/progress.js +0 -334
- package/lib/protocol/driver.ts +0 -354
- package/lib/protocol/index.ts +0 -12
- package/lib/protocol/ir.ts +0 -271
- package/lib/registry-cache.js +0 -80
- package/lib/registry-di.js +0 -358
- package/lib/result-schema.js +0 -363
- package/lib/result.js +0 -210
- package/lib/session-display.js +0 -331
- package/lib/session-operations.js +0 -611
- package/lib/session-registry.js +0 -484
- package/lib/session-state-machine.js +0 -465
- package/lib/session-switching.js +0 -191
- package/lib/skill-loader.js +0 -213
- package/lib/smart-json-file.js +0 -682
- package/lib/state-machine.js +0 -286
- package/lib/table-formatter.js +0 -519
- package/lib/template-loader.js +0 -143
- package/lib/transient-status.js +0 -374
- package/lib/ui-manager.js +0 -612
- package/lib/validate-args.js +0 -213
- package/lib/validate-commands.js +0 -308
- package/lib/validate-names.js +0 -143
- package/lib/validate-paths.js +0 -434
- package/lib/validate.js +0 -134
- package/lib/worktree-operations.js +0 -201
- package/lib/yaml-utils.js +0 -164
- package/scripts/README.md +0 -267
- package/scripts/af +0 -34
- package/scripts/agent-loop.js +0 -879
- package/scripts/agileflow-configure.js +0 -368
- package/scripts/agileflow-statusline.sh +0 -857
- package/scripts/agileflow-welcome.js +0 -2246
- package/scripts/api-server-runner.js +0 -177
- package/scripts/archive-completed-stories.sh +0 -308
- package/scripts/auto-self-improve.js +0 -326
- package/scripts/automation-run-due.js +0 -128
- package/scripts/babysit-clear-restore.js +0 -154
- package/scripts/babysit-context-restore.js +0 -89
- package/scripts/backfill-ideation-status.js +0 -128
- package/scripts/batch-pmap-loop.js +0 -551
- package/scripts/check-sessions.js +0 -116
- package/scripts/check-update.js +0 -282
- package/scripts/ci-summary.js +0 -294
- package/scripts/claude-smart.sh +0 -85
- package/scripts/claude-tmux.sh +0 -737
- package/scripts/claude-watchdog.sh +0 -225
- package/scripts/clear-active-command.js +0 -48
- package/scripts/compress-status.sh +0 -116
- package/scripts/context-loader.js +0 -310
- package/scripts/damage-control/bash-tool-damage-control.js +0 -22
- package/scripts/damage-control/edit-tool-damage-control.js +0 -19
- package/scripts/damage-control/patterns.yaml +0 -227
- package/scripts/damage-control/write-tool-damage-control.js +0 -19
- package/scripts/damage-control-bash.js +0 -51
- package/scripts/damage-control-edit.js +0 -48
- package/scripts/damage-control-multi-agent.js +0 -231
- package/scripts/damage-control-write.js +0 -48
- package/scripts/dependency-check.js +0 -311
- package/scripts/document-repl.js +0 -793
- package/scripts/expertise-metrics.sh +0 -264
- package/scripts/generate-all.sh +0 -77
- package/scripts/generate-colors.js +0 -314
- package/scripts/generators/agent-registry.js +0 -183
- package/scripts/generators/command-registry.js +0 -166
- package/scripts/generators/index.js +0 -85
- package/scripts/generators/inject-babysit.js +0 -191
- package/scripts/generators/inject-help.js +0 -125
- package/scripts/generators/inject-readme.js +0 -166
- package/scripts/generators/skill-registry.js +0 -188
- package/scripts/get-env.js +0 -225
- package/scripts/init.sh +0 -76
- package/scripts/lib/README-portable-tasks.md +0 -424
- package/scripts/lib/ac-test-matcher.js +0 -452
- package/scripts/lib/audit-cleanup.js +0 -250
- package/scripts/lib/audit-registry.js +0 -340
- package/scripts/lib/automation-registry.js +0 -544
- package/scripts/lib/automation-runner.js +0 -476
- package/scripts/lib/browser-qa-evidence.js +0 -409
- package/scripts/lib/browser-qa-status.js +0 -192
- package/scripts/lib/bus-utils.js +0 -473
- package/scripts/lib/colors.generated.sh +0 -82
- package/scripts/lib/colors.sh +0 -46
- package/scripts/lib/command-prereqs.js +0 -280
- package/scripts/lib/concurrency-limiter.js +0 -511
- package/scripts/lib/configure-detect.js +0 -596
- package/scripts/lib/configure-features.js +0 -1927
- package/scripts/lib/configure-repair.js +0 -327
- package/scripts/lib/configure-utils.js +0 -114
- package/scripts/lib/context-formatter.js +0 -1158
- package/scripts/lib/context-loader.js +0 -840
- package/scripts/lib/counter.js +0 -103
- package/scripts/lib/damage-control-utils.js +0 -619
- package/scripts/lib/feature-catalog.js +0 -332
- package/scripts/lib/file-lock.js +0 -392
- package/scripts/lib/file-tracking.js +0 -735
- package/scripts/lib/frontmatter-parser.js +0 -133
- package/scripts/lib/gate-enforcer.js +0 -295
- package/scripts/lib/hook-metrics.js +0 -324
- package/scripts/lib/ideation-index.js +0 -1205
- package/scripts/lib/json-utils.sh +0 -162
- package/scripts/lib/lifecycle-detector.js +0 -125
- package/scripts/lib/model-profiles.js +0 -118
- package/scripts/lib/portable-tasks-cli.js +0 -274
- package/scripts/lib/portable-tasks.js +0 -479
- package/scripts/lib/process-cleanup.js +0 -527
- package/scripts/lib/quality-gates.js +0 -788
- package/scripts/lib/scale-detector.js +0 -396
- package/scripts/lib/sessionRegistry.js +0 -678
- package/scripts/lib/signal-detectors.js +0 -867
- package/scripts/lib/skill-catalog.js +0 -557
- package/scripts/lib/skill-recommender.js +0 -311
- package/scripts/lib/state-migrator.js +0 -353
- package/scripts/lib/status-task-bridge.js +0 -522
- package/scripts/lib/status-writer.js +0 -255
- package/scripts/lib/story-claiming.js +0 -704
- package/scripts/lib/story-state-machine.js +0 -437
- package/scripts/lib/sync-ideation-status.js +0 -291
- package/scripts/lib/task-registry-cache.js +0 -490
- package/scripts/lib/task-registry.js +0 -1191
- package/scripts/lib/task-sync.js +0 -230
- package/scripts/lib/tdd-phase-manager.js +0 -455
- package/scripts/lib/team-events.js +0 -510
- package/scripts/lib/tmux-audit-monitor.js +0 -612
- package/scripts/lib/tmux-group-colors.js +0 -113
- package/scripts/lib/tool-registry.yaml +0 -241
- package/scripts/lib/tool-shed.js +0 -441
- package/scripts/lib/validation-registry.js +0 -177
- package/scripts/messaging-bridge.js +0 -561
- package/scripts/migrate-ideation-index.js +0 -553
- package/scripts/native-team-observer.js +0 -219
- package/scripts/obtain-context.js +0 -272
- package/scripts/pre-push-check.sh +0 -46
- package/scripts/precompact-context.sh +0 -306
- package/scripts/query-codebase.js +0 -543
- package/scripts/ralph-loop.js +0 -1278
- package/scripts/resume-session.sh +0 -121
- package/scripts/screenshot-verifier.js +0 -215
- package/scripts/session-boundary.js +0 -138
- package/scripts/session-coordinator.sh +0 -232
- package/scripts/session-manager.js +0 -546
- package/scripts/smart-detect.js +0 -449
- package/scripts/spawn-audit-sessions.js +0 -877
- package/scripts/spawn-parallel.js +0 -751
- package/scripts/strip-ai-attribution.js +0 -63
- package/scripts/task-completed-gate.js +0 -237
- package/scripts/team-manager.js +0 -596
- package/scripts/team-status-display.js +0 -200
- package/scripts/teammate-idle-gate.js +0 -237
- package/scripts/test-session-boundary.js +0 -80
- package/scripts/tmux-close-windows.sh +0 -180
- package/scripts/tmux-restore-window.sh +0 -67
- package/scripts/tmux-save-closed-window.sh +0 -35
- package/scripts/tui/App.js +0 -151
- package/scripts/tui/Dashboard.js +0 -277
- package/scripts/tui/blessed/data/watcher.js +0 -180
- package/scripts/tui/blessed/index.js +0 -244
- package/scripts/tui/blessed/panels/output.js +0 -101
- package/scripts/tui/blessed/panels/sessions.js +0 -150
- package/scripts/tui/blessed/panels/trace.js +0 -97
- package/scripts/tui/blessed/ui/help.js +0 -77
- package/scripts/tui/blessed/ui/screen.js +0 -52
- package/scripts/tui/blessed/ui/statusbar.js +0 -47
- package/scripts/tui/blessed/ui/tabbar.js +0 -99
- package/scripts/tui/index.js +0 -70
- package/scripts/tui/lib/crashRecovery.js +0 -304
- package/scripts/tui/lib/eventStream.js +0 -309
- package/scripts/tui/lib/keyboard.js +0 -261
- package/scripts/tui/lib/loopControl.js +0 -371
- package/scripts/tui/panels/OutputPanel.js +0 -240
- package/scripts/tui/panels/SessionPanel.js +0 -170
- package/scripts/tui/panels/TracePanel.js +0 -298
- package/scripts/tui/simple-tui.js +0 -510
- package/scripts/validate-expertise.sh +0 -263
- package/scripts/validate-tokens.sh +0 -73
- package/scripts/validators/README.md +0 -143
- package/scripts/validators/component-validator.js +0 -239
- package/scripts/validators/json-schema-validator.js +0 -186
- package/scripts/validators/markdown-validator.js +0 -152
- package/scripts/validators/migration-validator.js +0 -129
- package/scripts/validators/security-validator.js +0 -380
- package/scripts/validators/story-format-validator.js +0 -197
- package/scripts/validators/test-result-validator.js +0 -114
- package/scripts/validators/workflow-validator.js +0 -247
- package/scripts/welcome-deferred.js +0 -437
- package/scripts/worktree-create.sh +0 -111
- package/src/core/agents/a11y-analyzer-aria.md +0 -155
- package/src/core/agents/a11y-analyzer-forms.md +0 -162
- package/src/core/agents/a11y-analyzer-keyboard.md +0 -175
- package/src/core/agents/a11y-analyzer-semantic.md +0 -153
- package/src/core/agents/a11y-analyzer-visual.md +0 -158
- package/src/core/agents/a11y-consensus.md +0 -248
- package/src/core/agents/accessibility.md +0 -515
- package/src/core/agents/adr-writer.md +0 -463
- package/src/core/agents/ads-audit-budget.md +0 -181
- package/src/core/agents/ads-audit-compliance.md +0 -169
- package/src/core/agents/ads-audit-creative.md +0 -164
- package/src/core/agents/ads-audit-google.md +0 -226
- package/src/core/agents/ads-audit-meta.md +0 -183
- package/src/core/agents/ads-audit-tracking.md +0 -197
- package/src/core/agents/ads-consensus.md +0 -396
- package/src/core/agents/ads-generate.md +0 -145
- package/src/core/agents/ads-performance-tracker.md +0 -197
- package/src/core/agents/analytics.md +0 -617
- package/src/core/agents/api-quality-analyzer-conventions.md +0 -148
- package/src/core/agents/api-quality-analyzer-docs.md +0 -176
- package/src/core/agents/api-quality-analyzer-errors.md +0 -183
- package/src/core/agents/api-quality-analyzer-pagination.md +0 -171
- package/src/core/agents/api-quality-analyzer-versioning.md +0 -143
- package/src/core/agents/api-quality-consensus.md +0 -214
- package/src/core/agents/api-validator.md +0 -183
- package/src/core/agents/api.md +0 -665
- package/src/core/agents/arch-analyzer-circular.md +0 -148
- package/src/core/agents/arch-analyzer-complexity.md +0 -171
- package/src/core/agents/arch-analyzer-coupling.md +0 -146
- package/src/core/agents/arch-analyzer-layering.md +0 -151
- package/src/core/agents/arch-analyzer-patterns.md +0 -162
- package/src/core/agents/arch-consensus.md +0 -227
- package/src/core/agents/brainstorm-analyzer-features.md +0 -169
- package/src/core/agents/brainstorm-analyzer-growth.md +0 -161
- package/src/core/agents/brainstorm-analyzer-integration.md +0 -172
- package/src/core/agents/brainstorm-analyzer-market.md +0 -147
- package/src/core/agents/brainstorm-analyzer-ux.md +0 -167
- package/src/core/agents/brainstorm-consensus.md +0 -237
- package/src/core/agents/browser-qa.md +0 -328
- package/src/core/agents/ci.md +0 -511
- package/src/core/agents/code-reviewer.md +0 -288
- package/src/core/agents/codebase-query.md +0 -266
- package/src/core/agents/completeness-analyzer-api.md +0 -190
- package/src/core/agents/completeness-analyzer-conditional.md +0 -201
- package/src/core/agents/completeness-analyzer-handlers.md +0 -159
- package/src/core/agents/completeness-analyzer-imports.md +0 -159
- package/src/core/agents/completeness-analyzer-routes.md +0 -182
- package/src/core/agents/completeness-analyzer-state.md +0 -188
- package/src/core/agents/completeness-analyzer-stubs.md +0 -198
- package/src/core/agents/completeness-consensus.md +0 -286
- package/src/core/agents/compliance.md +0 -509
- package/src/core/agents/council-advocate.md +0 -206
- package/src/core/agents/council-analyst.md +0 -252
- package/src/core/agents/council-optimist.md +0 -170
- package/src/core/agents/database.md +0 -601
- package/src/core/agents/datamigration.md +0 -699
- package/src/core/agents/design.md +0 -525
- package/src/core/agents/devops.md +0 -720
- package/src/core/agents/documentation.md +0 -504
- package/src/core/agents/epic-planner.md +0 -480
- package/src/core/agents/error-analyzer.md +0 -201
- package/src/core/agents/integrations.md +0 -603
- package/src/core/agents/legal-analyzer-a11y.md +0 -110
- package/src/core/agents/legal-analyzer-ai.md +0 -117
- package/src/core/agents/legal-analyzer-consumer.md +0 -108
- package/src/core/agents/legal-analyzer-content.md +0 -113
- package/src/core/agents/legal-analyzer-international.md +0 -115
- package/src/core/agents/legal-analyzer-licensing.md +0 -115
- package/src/core/agents/legal-analyzer-privacy.md +0 -108
- package/src/core/agents/legal-analyzer-security.md +0 -112
- package/src/core/agents/legal-analyzer-terms.md +0 -111
- package/src/core/agents/legal-consensus.md +0 -242
- package/src/core/agents/logic-analyzer-edge.md +0 -170
- package/src/core/agents/logic-analyzer-flow.md +0 -253
- package/src/core/agents/logic-analyzer-invariant.md +0 -206
- package/src/core/agents/logic-analyzer-race.md +0 -266
- package/src/core/agents/logic-analyzer-type.md +0 -217
- package/src/core/agents/logic-consensus.md +0 -253
- package/src/core/agents/mentor.md +0 -654
- package/src/core/agents/mobile.md +0 -501
- package/src/core/agents/monitoring.md +0 -537
- package/src/core/agents/multi-expert.md +0 -311
- package/src/core/agents/orchestrator.md +0 -749
- package/src/core/agents/perf-analyzer-assets.md +0 -174
- package/src/core/agents/perf-analyzer-bundle.md +0 -165
- package/src/core/agents/perf-analyzer-caching.md +0 -160
- package/src/core/agents/perf-analyzer-compute.md +0 -165
- package/src/core/agents/perf-analyzer-memory.md +0 -182
- package/src/core/agents/perf-analyzer-network.md +0 -157
- package/src/core/agents/perf-analyzer-queries.md +0 -155
- package/src/core/agents/perf-analyzer-rendering.md +0 -156
- package/src/core/agents/perf-consensus.md +0 -280
- package/src/core/agents/performance.md +0 -492
- package/src/core/agents/product.md +0 -535
- package/src/core/agents/qa.md +0 -765
- package/src/core/agents/readme-updater.md +0 -579
- package/src/core/agents/refactor.md +0 -558
- package/src/core/agents/research.md +0 -453
- package/src/core/agents/rlm-subcore.md +0 -207
- package/src/core/agents/schema-validator.md +0 -454
- package/src/core/agents/security-analyzer-api.md +0 -199
- package/src/core/agents/security-analyzer-auth.md +0 -160
- package/src/core/agents/security-analyzer-authz.md +0 -168
- package/src/core/agents/security-analyzer-deps.md +0 -147
- package/src/core/agents/security-analyzer-infra.md +0 -176
- package/src/core/agents/security-analyzer-injection.md +0 -148
- package/src/core/agents/security-analyzer-input.md +0 -191
- package/src/core/agents/security-analyzer-secrets.md +0 -175
- package/src/core/agents/security-consensus.md +0 -276
- package/src/core/agents/security.md +0 -486
- package/src/core/agents/seo-analyzer-content.md +0 -167
- package/src/core/agents/seo-analyzer-images.md +0 -187
- package/src/core/agents/seo-analyzer-performance.md +0 -206
- package/src/core/agents/seo-analyzer-schema.md +0 -176
- package/src/core/agents/seo-analyzer-sitemap.md +0 -172
- package/src/core/agents/seo-analyzer-technical.md +0 -144
- package/src/core/agents/seo-consensus.md +0 -289
- package/src/core/agents/team-coordinator.md +0 -333
- package/src/core/agents/team-lead.md +0 -171
- package/src/core/agents/test-analyzer-assertions.md +0 -181
- package/src/core/agents/test-analyzer-coverage.md +0 -183
- package/src/core/agents/test-analyzer-fragility.md +0 -185
- package/src/core/agents/test-analyzer-integration.md +0 -155
- package/src/core/agents/test-analyzer-maintenance.md +0 -173
- package/src/core/agents/test-analyzer-mocking.md +0 -178
- package/src/core/agents/test-analyzer-patterns.md +0 -189
- package/src/core/agents/test-analyzer-structure.md +0 -177
- package/src/core/agents/test-consensus.md +0 -294
- package/src/core/agents/testing.md +0 -527
- package/src/core/agents/ui-validator.md +0 -331
- package/src/core/agents/ui.md +0 -1227
- package/src/core/commands/adr/list.md +0 -191
- package/src/core/commands/adr/update.md +0 -258
- package/src/core/commands/adr/view.md +0 -274
- package/src/core/commands/adr.md +0 -394
- package/src/core/commands/ads/audit.md +0 -453
- package/src/core/commands/ads/budget.md +0 -97
- package/src/core/commands/ads/competitor.md +0 -112
- package/src/core/commands/ads/creative.md +0 -85
- package/src/core/commands/ads/generate.md +0 -238
- package/src/core/commands/ads/google.md +0 -112
- package/src/core/commands/ads/health.md +0 -327
- package/src/core/commands/ads/landing.md +0 -119
- package/src/core/commands/ads/linkedin.md +0 -112
- package/src/core/commands/ads/meta.md +0 -91
- package/src/core/commands/ads/microsoft.md +0 -115
- package/src/core/commands/ads/plan.md +0 -321
- package/src/core/commands/ads/test-plan.md +0 -317
- package/src/core/commands/ads/tiktok.md +0 -129
- package/src/core/commands/ads/track.md +0 -288
- package/src/core/commands/ads/youtube.md +0 -124
- package/src/core/commands/ads.md +0 -140
- package/src/core/commands/agent.md +0 -256
- package/src/core/commands/api.md +0 -267
- package/src/core/commands/assign.md +0 -369
- package/src/core/commands/audit.md +0 -531
- package/src/core/commands/auto.md +0 -556
- package/src/core/commands/automate.md +0 -415
- package/src/core/commands/babysit.md +0 -643
- package/src/core/commands/baseline.md +0 -743
- package/src/core/commands/batch.md +0 -551
- package/src/core/commands/blockers.md +0 -602
- package/src/core/commands/board.md +0 -509
- package/src/core/commands/browser-qa.md +0 -240
- package/src/core/commands/changelog.md +0 -582
- package/src/core/commands/choose.md +0 -430
- package/src/core/commands/ci.md +0 -330
- package/src/core/commands/code/accessibility.md +0 -363
- package/src/core/commands/code/api.md +0 -313
- package/src/core/commands/code/architecture.md +0 -313
- package/src/core/commands/code/completeness.md +0 -519
- package/src/core/commands/code/legal.md +0 -509
- package/src/core/commands/code/logic.md +0 -432
- package/src/core/commands/code/performance.md +0 -506
- package/src/core/commands/code/security.md +0 -509
- package/src/core/commands/code/test.md +0 -505
- package/src/core/commands/compress.md +0 -408
- package/src/core/commands/configure.md +0 -1159
- package/src/core/commands/context/export.md +0 -296
- package/src/core/commands/context/full.md +0 -353
- package/src/core/commands/context/note.md +0 -380
- package/src/core/commands/council.md +0 -592
- package/src/core/commands/debt.md +0 -491
- package/src/core/commands/deploy.md +0 -864
- package/src/core/commands/deps.md +0 -728
- package/src/core/commands/diagnose.md +0 -404
- package/src/core/commands/docs.md +0 -469
- package/src/core/commands/epic/edit.md +0 -213
- package/src/core/commands/epic/list.md +0 -190
- package/src/core/commands/epic/view.md +0 -267
- package/src/core/commands/epic.md +0 -477
- package/src/core/commands/export.md +0 -238
- package/src/core/commands/feedback.md +0 -603
- package/src/core/commands/handoff.md +0 -386
- package/src/core/commands/help.md +0 -194
- package/src/core/commands/ideate/brief.md +0 -363
- package/src/core/commands/ideate/discover.md +0 -399
- package/src/core/commands/ideate/features.md +0 -497
- package/src/core/commands/ideate/history.md +0 -403
- package/src/core/commands/ideate/new.md +0 -900
- package/src/core/commands/impact.md +0 -407
- package/src/core/commands/install.md +0 -529
- package/src/core/commands/learn/explain.md +0 -118
- package/src/core/commands/learn/glossary.md +0 -135
- package/src/core/commands/learn/patterns.md +0 -138
- package/src/core/commands/learn/tour.md +0 -126
- package/src/core/commands/maintain.md +0 -558
- package/src/core/commands/metrics.md +0 -844
- package/src/core/commands/migrate/codemods.md +0 -151
- package/src/core/commands/migrate/plan.md +0 -131
- package/src/core/commands/migrate/scan.md +0 -114
- package/src/core/commands/migrate/validate.md +0 -119
- package/src/core/commands/multi-expert.md +0 -447
- package/src/core/commands/packages.md +0 -535
- package/src/core/commands/pr.md +0 -337
- package/src/core/commands/readme-sync.md +0 -329
- package/src/core/commands/research/analyze.md +0 -798
- package/src/core/commands/research/ask.md +0 -864
- package/src/core/commands/research/import.md +0 -1025
- package/src/core/commands/research/list.md +0 -273
- package/src/core/commands/research/synthesize.md +0 -928
- package/src/core/commands/research/view.md +0 -323
- package/src/core/commands/retro.md +0 -795
- package/src/core/commands/review.md +0 -694
- package/src/core/commands/rlm.md +0 -446
- package/src/core/commands/roadmap/analyze.md +0 -400
- package/src/core/commands/rpi.md +0 -633
- package/src/core/commands/seo/audit.md +0 -444
- package/src/core/commands/seo/competitor.md +0 -174
- package/src/core/commands/seo/content.md +0 -107
- package/src/core/commands/seo/geo.md +0 -229
- package/src/core/commands/seo/hreflang.md +0 -140
- package/src/core/commands/seo/images.md +0 -96
- package/src/core/commands/seo/page.md +0 -198
- package/src/core/commands/seo/plan.md +0 -163
- package/src/core/commands/seo/programmatic.md +0 -131
- package/src/core/commands/seo/references/cwv-thresholds.md +0 -64
- package/src/core/commands/seo/references/eeat-framework.md +0 -110
- package/src/core/commands/seo/references/quality-gates.md +0 -91
- package/src/core/commands/seo/references/schema-types.md +0 -102
- package/src/core/commands/seo/schema.md +0 -183
- package/src/core/commands/seo/sitemap.md +0 -97
- package/src/core/commands/seo/technical.md +0 -100
- package/src/core/commands/seo.md +0 -107
- package/src/core/commands/session/cleanup.md +0 -452
- package/src/core/commands/session/end.md +0 -865
- package/src/core/commands/session/history.md +0 -293
- package/src/core/commands/session/init.md +0 -210
- package/src/core/commands/session/new.md +0 -827
- package/src/core/commands/session/resume.md +0 -291
- package/src/core/commands/session/spawn.md +0 -205
- package/src/core/commands/session/status.md +0 -274
- package/src/core/commands/skill/list.md +0 -139
- package/src/core/commands/skill/recommend.md +0 -216
- package/src/core/commands/sprint.md +0 -714
- package/src/core/commands/status/undo.md +0 -191
- package/src/core/commands/status.md +0 -423
- package/src/core/commands/story/edit.md +0 -204
- package/src/core/commands/story/list.md +0 -199
- package/src/core/commands/story/view.md +0 -312
- package/src/core/commands/story-validate.md +0 -491
- package/src/core/commands/story.md +0 -465
- package/src/core/commands/tdd-next.md +0 -238
- package/src/core/commands/tdd.md +0 -211
- package/src/core/commands/team/guide.md +0 -688
- package/src/core/commands/team/list.md +0 -59
- package/src/core/commands/team/start.md +0 -130
- package/src/core/commands/team/status.md +0 -66
- package/src/core/commands/team/stop.md +0 -78
- package/src/core/commands/template.md +0 -644
- package/src/core/commands/tests.md +0 -731
- package/src/core/commands/update.md +0 -591
- package/src/core/commands/validate-expertise.md +0 -305
- package/src/core/commands/velocity.md +0 -630
- package/src/core/commands/verify.md +0 -534
- package/src/core/commands/whats-new.md +0 -201
- package/src/core/commands/workflow.md +0 -449
- package/src/core/council/sessions/.gitkeep +0 -0
- package/src/core/council/shared_reasoning.template.md +0 -106
- package/src/core/experts/README.md +0 -236
- package/src/core/experts/_core-expertise.yaml +0 -105
- package/src/core/experts/accessibility/expertise.yaml +0 -115
- package/src/core/experts/accessibility/question.md +0 -41
- package/src/core/experts/accessibility/self-improve.md +0 -45
- package/src/core/experts/accessibility/workflow.md +0 -59
- package/src/core/experts/adr-writer/expertise.yaml +0 -138
- package/src/core/experts/adr-writer/question.md +0 -56
- package/src/core/experts/adr-writer/self-improve.md +0 -106
- package/src/core/experts/adr-writer/workflow.md +0 -184
- package/src/core/experts/analytics/expertise.yaml +0 -119
- package/src/core/experts/analytics/question.md +0 -74
- package/src/core/experts/analytics/self-improve.md +0 -163
- package/src/core/experts/analytics/workflow.md +0 -272
- package/src/core/experts/api/expertise.yaml +0 -124
- package/src/core/experts/api/question.md +0 -74
- package/src/core/experts/api/self-improve.md +0 -122
- package/src/core/experts/api/workflow.md +0 -248
- package/src/core/experts/ci/expertise.yaml +0 -106
- package/src/core/experts/ci/question.md +0 -69
- package/src/core/experts/ci/self-improve.md +0 -100
- package/src/core/experts/ci/workflow.md +0 -145
- package/src/core/experts/codebase-query/expertise.yaml +0 -121
- package/src/core/experts/codebase-query/question.md +0 -73
- package/src/core/experts/codebase-query/self-improve.md +0 -105
- package/src/core/experts/compliance/expertise.yaml +0 -101
- package/src/core/experts/compliance/question.md +0 -56
- package/src/core/experts/compliance/self-improve.md +0 -106
- package/src/core/experts/compliance/workflow.md +0 -184
- package/src/core/experts/database/expertise.yaml +0 -109
- package/src/core/experts/database/question.md +0 -74
- package/src/core/experts/database/self-improve.md +0 -121
- package/src/core/experts/database/workflow.md +0 -234
- package/src/core/experts/datamigration/expertise.yaml +0 -141
- package/src/core/experts/datamigration/question.md +0 -56
- package/src/core/experts/datamigration/self-improve.md +0 -106
- package/src/core/experts/datamigration/workflow.md +0 -184
- package/src/core/experts/design/expertise.yaml +0 -116
- package/src/core/experts/design/question.md +0 -56
- package/src/core/experts/design/self-improve.md +0 -106
- package/src/core/experts/design/workflow.md +0 -184
- package/src/core/experts/devops/expertise.yaml +0 -116
- package/src/core/experts/devops/question.md +0 -68
- package/src/core/experts/devops/self-improve.md +0 -102
- package/src/core/experts/devops/workflow.md +0 -142
- package/src/core/experts/documentation/expertise.yaml +0 -126
- package/src/core/experts/documentation/question.md +0 -41
- package/src/core/experts/documentation/self-improve.md +0 -45
- package/src/core/experts/documentation/workflow.md +0 -55
- package/src/core/experts/epic-planner/expertise.yaml +0 -144
- package/src/core/experts/epic-planner/question.md +0 -56
- package/src/core/experts/epic-planner/self-improve.md +0 -106
- package/src/core/experts/epic-planner/workflow.md +0 -184
- package/src/core/experts/integrations/expertise.yaml +0 -113
- package/src/core/experts/integrations/question.md +0 -74
- package/src/core/experts/integrations/self-improve.md +0 -151
- package/src/core/experts/integrations/workflow.md +0 -246
- package/src/core/experts/mentor/expertise.yaml +0 -125
- package/src/core/experts/mentor/question.md +0 -56
- package/src/core/experts/mentor/self-improve.md +0 -106
- package/src/core/experts/mentor/workflow.md +0 -184
- package/src/core/experts/mobile/expertise.yaml +0 -136
- package/src/core/experts/mobile/question.md +0 -72
- package/src/core/experts/mobile/self-improve.md +0 -140
- package/src/core/experts/mobile/workflow.md +0 -240
- package/src/core/experts/monitoring/expertise.yaml +0 -132
- package/src/core/experts/monitoring/question.md +0 -76
- package/src/core/experts/monitoring/self-improve.md +0 -150
- package/src/core/experts/monitoring/workflow.md +0 -264
- package/src/core/experts/performance/expertise.yaml +0 -68
- package/src/core/experts/performance/question.md +0 -41
- package/src/core/experts/performance/self-improve.md +0 -45
- package/src/core/experts/performance/workflow.md +0 -61
- package/src/core/experts/product/expertise.yaml +0 -143
- package/src/core/experts/product/question.md +0 -56
- package/src/core/experts/product/self-improve.md +0 -106
- package/src/core/experts/product/workflow.md +0 -184
- package/src/core/experts/qa/expertise.yaml +0 -110
- package/src/core/experts/qa/question.md +0 -56
- package/src/core/experts/qa/self-improve.md +0 -106
- package/src/core/experts/qa/workflow.md +0 -184
- package/src/core/experts/readme-updater/expertise.yaml +0 -141
- package/src/core/experts/readme-updater/question.md +0 -56
- package/src/core/experts/readme-updater/self-improve.md +0 -106
- package/src/core/experts/readme-updater/workflow.md +0 -184
- package/src/core/experts/refactor/expertise.yaml +0 -135
- package/src/core/experts/refactor/question.md +0 -41
- package/src/core/experts/refactor/self-improve.md +0 -45
- package/src/core/experts/refactor/workflow.md +0 -57
- package/src/core/experts/research/expertise.yaml +0 -143
- package/src/core/experts/research/question.md +0 -56
- package/src/core/experts/research/self-improve.md +0 -106
- package/src/core/experts/research/workflow.md +0 -184
- package/src/core/experts/security/expertise.yaml +0 -117
- package/src/core/experts/security/question.md +0 -77
- package/src/core/experts/security/self-improve.md +0 -102
- package/src/core/experts/security/workflow.md +0 -152
- package/src/core/experts/templates/expertise-template.yaml +0 -67
- package/src/core/experts/templates/question-template.md +0 -56
- package/src/core/experts/templates/self-improve-template.md +0 -106
- package/src/core/experts/templates/workflow-template.md +0 -184
- package/src/core/experts/testing/expertise.yaml +0 -112
- package/src/core/experts/testing/question.md +0 -68
- package/src/core/experts/testing/self-improve.md +0 -102
- package/src/core/experts/testing/workflow.md +0 -143
- package/src/core/experts/ui/expertise.yaml +0 -133
- package/src/core/experts/ui/question.md +0 -74
- package/src/core/experts/ui/self-improve.md +0 -122
- package/src/core/experts/ui/workflow.md +0 -262
- package/src/core/knowledge/ads/ad-audit-checklist-scoring.md +0 -424
- package/src/core/knowledge/ads/ad-optimization-logic.md +0 -590
- package/src/core/knowledge/ads/ad-technical-specifications.md +0 -385
- package/src/core/knowledge/ads/definitive-advertising-reference-2026.md +0 -506
- package/src/core/knowledge/ads/paid-advertising-research-2026.md +0 -445
- package/src/core/profiles/COMPARISON.md +0 -170
- package/src/core/profiles/README.md +0 -178
- package/src/core/profiles/claude-code.yaml +0 -111
- package/src/core/profiles/codex.yaml +0 -103
- package/src/core/profiles/cursor.yaml +0 -134
- package/src/core/profiles/examples.js +0 -250
- package/src/core/profiles/loader.js +0 -235
- package/src/core/profiles/windsurf.yaml +0 -159
- package/src/core/skills/_learnings/README.md +0 -91
- package/src/core/skills/_learnings/_template.yaml +0 -106
- package/src/core/skills/_learnings/code-review.yaml +0 -118
- package/src/core/skills/_learnings/commit.yaml +0 -69
- package/src/core/skills/_learnings/story-writer.yaml +0 -71
- package/src/core/teams/backend.json +0 -41
- package/src/core/teams/builder-validator.json +0 -51
- package/src/core/teams/code-review.json +0 -41
- package/src/core/teams/frontend.json +0 -41
- package/src/core/teams/fullstack.json +0 -41
- package/src/core/teams/logic-audit.json +0 -53
- package/src/core/teams/perf-audit.json +0 -71
- package/src/core/teams/qa.json +0 -41
- package/src/core/teams/security-audit.json +0 -71
- package/src/core/teams/solo.json +0 -35
- package/src/core/teams/test-audit.json +0 -71
- package/src/core/templates/CONTEXT.md.example +0 -49
- package/src/core/templates/README-template.md +0 -16
- package/src/core/templates/adr-template.md +0 -28
- package/src/core/templates/agent-coordination-pattern.md +0 -38
- package/src/core/templates/agent-profile-template.md +0 -51
- package/src/core/templates/agileflow-metadata.json +0 -150
- package/src/core/templates/browser-qa-spec.yaml +0 -94
- package/src/core/templates/ci-workflow.yml +0 -74
- package/src/core/templates/claude-settings.advanced.example.json +0 -75
- package/src/core/templates/claude-settings.example.json +0 -26
- package/src/core/templates/command-documentation.md +0 -187
- package/src/core/templates/command-prerequisites.yaml +0 -169
- package/src/core/templates/comms-note-template.md +0 -24
- package/src/core/templates/damage-control-patterns.yaml +0 -243
- package/src/core/templates/environment.json +0 -18
- package/src/core/templates/epic-template.md +0 -27
- package/src/core/templates/plan-template.md +0 -125
- package/src/core/templates/preserve-rules-common.md +0 -107
- package/src/core/templates/preserve-rules.json +0 -42
- package/src/core/templates/proactive-action-spec.md +0 -29
- package/src/core/templates/product-brief.md +0 -136
- package/src/core/templates/quality-gate-priorities.md +0 -34
- package/src/core/templates/research-template.md +0 -44
- package/src/core/templates/session-harness-protocol.md +0 -128
- package/src/core/templates/session-state.json +0 -56
- package/src/core/templates/story-lifecycle.md +0 -213
- package/src/core/templates/story-template.md +0 -92
- package/src/core/templates/tdd-test-template.js +0 -241
- package/src/core/templates/worktrees-guide.md +0 -231
- package/tools/agileflow-npx.js +0 -52
- package/tools/cli/agileflow-cli.js +0 -72
- package/tools/cli/commands/config.js +0 -285
- package/tools/cli/commands/doctor.js +0 -496
- package/tools/cli/commands/list.js +0 -385
- package/tools/cli/commands/session.js +0 -1176
- package/tools/cli/commands/setup.js +0 -255
- package/tools/cli/commands/status.js +0 -101
- package/tools/cli/commands/tui.js +0 -56
- package/tools/cli/commands/uninstall.js +0 -155
- package/tools/cli/commands/update.js +0 -299
- package/tools/cli/installers/core/installer.js +0 -892
- package/tools/cli/installers/ide/_base-ide.js +0 -518
- package/tools/cli/installers/ide/_interface.js +0 -238
- package/tools/cli/installers/ide/claude-code.js +0 -432
- package/tools/cli/installers/ide/codex.js +0 -426
- package/tools/cli/installers/ide/cursor.js +0 -217
- package/tools/cli/installers/ide/manager.js +0 -222
- package/tools/cli/installers/ide/windsurf.js +0 -282
- package/tools/cli/lib/command-context.js +0 -382
- package/tools/cli/lib/config-manager.js +0 -446
- package/tools/cli/lib/content-injector.js +0 -969
- package/tools/cli/lib/content-transformer.js +0 -496
- package/tools/cli/lib/docs-setup.js +0 -464
- package/tools/cli/lib/error-handler.js +0 -165
- package/tools/cli/lib/ide-error-factory.js +0 -421
- package/tools/cli/lib/ide-errors.js +0 -367
- package/tools/cli/lib/ide-generator.js +0 -357
- package/tools/cli/lib/ide-health-monitor.js +0 -364
- package/tools/cli/lib/ide-registry.js +0 -297
- package/tools/cli/lib/npm-utils.js +0 -103
- package/tools/cli/lib/self-update.js +0 -148
- package/tools/cli/lib/ui.js +0 -211
- package/tools/cli/lib/utils.js +0 -87
- package/tools/cli/lib/validation-middleware.js +0 -491
- package/tools/cli/lib/version-checker.js +0 -95
- package/tools/postinstall.js +0 -190
|
@@ -0,0 +1,352 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Core hook: preferences-injector (SessionStart).
|
|
4
|
+
*
|
|
5
|
+
* Reads agileflow.config.json and emits a concise user-preferences block
|
|
6
|
+
* so every skill and interaction in the session automatically respects
|
|
7
|
+
* the user's configured settings — without each skill needing its own
|
|
8
|
+
* config-reading logic.
|
|
9
|
+
*
|
|
10
|
+
* Always exits 0.
|
|
11
|
+
*/
|
|
12
|
+
const path = require("path");
|
|
13
|
+
const fs = require("fs");
|
|
14
|
+
|
|
15
|
+
const projectDir =
|
|
16
|
+
process.env.AGILEFLOW_PROJECT_DIR ||
|
|
17
|
+
process.env.CLAUDE_PROJECT_DIR ||
|
|
18
|
+
process.cwd();
|
|
19
|
+
|
|
20
|
+
// Resolve capabilities.js from the installed runtime or the source tree.
|
|
21
|
+
let IDE_CAPABILITIES = null;
|
|
22
|
+
try {
|
|
23
|
+
({ IDE_CAPABILITIES } = require("../../../src/runtime/ide/capabilities.js"));
|
|
24
|
+
} catch {
|
|
25
|
+
try {
|
|
26
|
+
// Installed path: node_modules/agileflow/src/runtime/ide/capabilities.js
|
|
27
|
+
({
|
|
28
|
+
IDE_CAPABILITIES,
|
|
29
|
+
} = require("agileflow/src/runtime/ide/capabilities.js"));
|
|
30
|
+
} catch {
|
|
31
|
+
// capabilities unavailable — skip capability block
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
// Resolve learnings helpers from the installed runtime or the source tree.
|
|
36
|
+
let _readLearnings = null;
|
|
37
|
+
let _formatLearningsBlock = null;
|
|
38
|
+
try {
|
|
39
|
+
const learnings = require("../../../src/runtime/skills/learnings.js");
|
|
40
|
+
_readLearnings = learnings.readLearnings;
|
|
41
|
+
_formatLearningsBlock = learnings.formatLearningsBlock;
|
|
42
|
+
} catch {
|
|
43
|
+
try {
|
|
44
|
+
const learnings = require("agileflow/src/runtime/skills/learnings.js");
|
|
45
|
+
_readLearnings = learnings.readLearnings;
|
|
46
|
+
_formatLearningsBlock = learnings.formatLearningsBlock;
|
|
47
|
+
} catch {
|
|
48
|
+
// learnings unavailable — skip learnings block
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
module.exports = { buildPreferencesBlock, buildLearningsBlock };
|
|
53
|
+
|
|
54
|
+
function buildCapabilitiesBlock(cfg) {
|
|
55
|
+
if (!IDE_CAPABILITIES) return null;
|
|
56
|
+
|
|
57
|
+
const targets = cfg?.ide?.targets;
|
|
58
|
+
if (!Array.isArray(targets) || targets.length === 0) return null;
|
|
59
|
+
|
|
60
|
+
// Use the first target as the primary IDE for capability detection.
|
|
61
|
+
const primaryIde = targets[0];
|
|
62
|
+
const caps = IDE_CAPABILITIES[primaryIde];
|
|
63
|
+
if (!caps) return null;
|
|
64
|
+
|
|
65
|
+
const tick = (v) => (v ? "✓" : "✗");
|
|
66
|
+
|
|
67
|
+
const lines = [
|
|
68
|
+
`## Runtime Capabilities (${caps.description})`,
|
|
69
|
+
"",
|
|
70
|
+
"Skills and workflows adapt their behavior based on what this IDE supports:",
|
|
71
|
+
"",
|
|
72
|
+
`| Capability | Available | Behavior when unavailable |`,
|
|
73
|
+
`|------------|-----------|--------------------------|`,
|
|
74
|
+
`| **Interactive prompts** (AskUserQuestion) | ${tick(caps.interactivePrompts)} | Present options as a numbered list instead |`,
|
|
75
|
+
`| **Agent spawning** (Task / multi-agent) | ${tick(caps.multiAgent)} | Work through each analysis inline, sequentially |`,
|
|
76
|
+
`| **Session restore** (PostCompact hook) | ${tick(caps.sessionRestore)} | Re-state context manually if conversation compacts |`,
|
|
77
|
+
`| **Lifecycle hooks** | ${tick(caps.hooks)} | Guidance and state injection unavailable between sessions |`,
|
|
78
|
+
"",
|
|
79
|
+
];
|
|
80
|
+
|
|
81
|
+
if (!caps.interactivePrompts) {
|
|
82
|
+
lines.push(
|
|
83
|
+
"**Note:** This IDE does not support interactive prompts. When a workflow says to present options, write a numbered list and ask the user to reply with a number.",
|
|
84
|
+
);
|
|
85
|
+
}
|
|
86
|
+
if (!caps.multiAgent) {
|
|
87
|
+
lines.push(
|
|
88
|
+
"**Note:** This IDE does not support agent spawning. When a workflow calls for running multiple expert agents in parallel, perform each analysis inline and sequentially instead.",
|
|
89
|
+
);
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
// Filter trailing empty string if no notes added
|
|
93
|
+
return lines.join("\n").trimEnd();
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
function buildPreferencesBlock() {
|
|
97
|
+
let cfg = {};
|
|
98
|
+
try {
|
|
99
|
+
const raw = fs.readFileSync(
|
|
100
|
+
path.join(projectDir, "agileflow.config.json"),
|
|
101
|
+
"utf8",
|
|
102
|
+
);
|
|
103
|
+
cfg = JSON.parse(raw);
|
|
104
|
+
} catch {
|
|
105
|
+
// config missing — emit nothing
|
|
106
|
+
return null;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
const babysit = cfg?.plugins?.core?.settings?.babysit;
|
|
110
|
+
if (!babysit) return null;
|
|
111
|
+
|
|
112
|
+
const mode = babysit.mode || "full";
|
|
113
|
+
const f = babysit.features || {};
|
|
114
|
+
|
|
115
|
+
const on = (key) => {
|
|
116
|
+
if (mode === "full") return true;
|
|
117
|
+
if (mode === "light")
|
|
118
|
+
return ["askQuestions", "planMode", "taskTracking"].includes(key);
|
|
119
|
+
if (mode === "minimal") return key === "askQuestions";
|
|
120
|
+
// custom — default true for core features unless explicitly false
|
|
121
|
+
const defaults = {
|
|
122
|
+
askQuestions: true,
|
|
123
|
+
planMode: true,
|
|
124
|
+
delegation: true,
|
|
125
|
+
taskTracking: true,
|
|
126
|
+
progressUpdates: true,
|
|
127
|
+
auditAll: false,
|
|
128
|
+
logicAudit: true,
|
|
129
|
+
flowAudit: true,
|
|
130
|
+
securityAudit: true,
|
|
131
|
+
performanceAudit: false,
|
|
132
|
+
accessibilityAudit: false,
|
|
133
|
+
legalAudit: false,
|
|
134
|
+
strictMode: false,
|
|
135
|
+
tddMode: false,
|
|
136
|
+
};
|
|
137
|
+
return key in f ? f[key] : (defaults[key] ?? false);
|
|
138
|
+
};
|
|
139
|
+
|
|
140
|
+
const prefs = [];
|
|
141
|
+
|
|
142
|
+
if (on("askQuestions")) {
|
|
143
|
+
prefs.push(
|
|
144
|
+
'- **Ask at decision points** — end responses with AskUserQuestion (specific options, one marked Recommended). Never generic "Continue?".',
|
|
145
|
+
);
|
|
146
|
+
}
|
|
147
|
+
if (on("planMode")) {
|
|
148
|
+
prefs.push(
|
|
149
|
+
"- **Plan mode for non-trivial work** — EnterPlanMode before implementing anything beyond a one-liner.",
|
|
150
|
+
);
|
|
151
|
+
}
|
|
152
|
+
if (on("delegation")) {
|
|
153
|
+
prefs.push(
|
|
154
|
+
"- **Delegate to domain experts** — use Task tool with appropriate subagent_type for complex single-domain work; orchestrator for multi-domain.",
|
|
155
|
+
);
|
|
156
|
+
}
|
|
157
|
+
if (on("taskTracking")) {
|
|
158
|
+
prefs.push(
|
|
159
|
+
"- **Track progress** — TaskCreate for 3+ step tasks, TaskUpdate as each completes.",
|
|
160
|
+
);
|
|
161
|
+
}
|
|
162
|
+
if (on("progressUpdates")) {
|
|
163
|
+
prefs.push(
|
|
164
|
+
"- **Short status updates** — brief progress notes while working.",
|
|
165
|
+
);
|
|
166
|
+
}
|
|
167
|
+
const always = mode === "full" || on("auditAll");
|
|
168
|
+
|
|
169
|
+
if (on("logicAudit")) {
|
|
170
|
+
prefs.push(
|
|
171
|
+
always
|
|
172
|
+
? "- **Logic audit after every implementation** — suggest 🔍 Run logic audit as (Recommended) after every implementation."
|
|
173
|
+
: "- **Logic audit after implementation** — suggest 🔍 Run logic audit as (Recommended) after implementation.",
|
|
174
|
+
);
|
|
175
|
+
}
|
|
176
|
+
if (on("flowAudit")) {
|
|
177
|
+
prefs.push(
|
|
178
|
+
always
|
|
179
|
+
? "- **Flow audit after every implementation** — suggest 🔄 Run flow audit after every implementation. Include a Verify flow integrity step in plans."
|
|
180
|
+
: "- **Flow audit after implementation** — when user-facing flows were touched (forms, navigation, auth, CRUD), suggest 🔄 Run flow audit after implementation. Include a Verify flow integrity step in plans.",
|
|
181
|
+
);
|
|
182
|
+
}
|
|
183
|
+
if (on("securityAudit")) {
|
|
184
|
+
prefs.push(
|
|
185
|
+
always
|
|
186
|
+
? "- **Security audit after every implementation** — suggest 🔒 Run security audit after every implementation."
|
|
187
|
+
: "- **Security audit after implementation** — when auth, APIs, user input, file handling, or sensitive data were touched, suggest 🔒 Run security audit after implementation.",
|
|
188
|
+
);
|
|
189
|
+
}
|
|
190
|
+
if (on("performanceAudit")) {
|
|
191
|
+
prefs.push(
|
|
192
|
+
always
|
|
193
|
+
? "- **Performance audit after every implementation** — suggest ⚡ Run performance audit after every implementation."
|
|
194
|
+
: "- **Performance audit after implementation** — when database queries, rendering, large data, or caching were touched, suggest ⚡ Run performance audit after implementation.",
|
|
195
|
+
);
|
|
196
|
+
}
|
|
197
|
+
if (on("accessibilityAudit")) {
|
|
198
|
+
prefs.push(
|
|
199
|
+
always
|
|
200
|
+
? "- **Accessibility audit after every implementation** — suggest ♿ Run accessibility audit after every implementation."
|
|
201
|
+
: "- **Accessibility audit after implementation** — when UI components, forms, or interactive elements were changed, suggest ♿ Run accessibility audit after implementation.",
|
|
202
|
+
);
|
|
203
|
+
}
|
|
204
|
+
if (on("legalAudit")) {
|
|
205
|
+
prefs.push(
|
|
206
|
+
always
|
|
207
|
+
? "- **Legal audit after every implementation** — suggest ⚖️ Run legal audit after every implementation."
|
|
208
|
+
: "- **Legal audit after implementation** — when data collection, privacy, user consent, or compliance-sensitive code was touched, suggest ⚖️ Run legal audit after implementation.",
|
|
209
|
+
);
|
|
210
|
+
}
|
|
211
|
+
if (on("strictMode")) {
|
|
212
|
+
prefs.push(
|
|
213
|
+
"- **Strict gates** — hide commit option until tests pass; auto-trigger code review at 5+ files changed; remove skip options.",
|
|
214
|
+
);
|
|
215
|
+
}
|
|
216
|
+
if (on("tddMode")) {
|
|
217
|
+
prefs.push(
|
|
218
|
+
"- **TDD phases** — RED (failing tests first) → GREEN (minimum code) → REFACTOR. Gate each phase.",
|
|
219
|
+
);
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
if (prefs.length === 0) return null;
|
|
223
|
+
|
|
224
|
+
const modeLabel =
|
|
225
|
+
mode === "custom"
|
|
226
|
+
? `custom (${Object.entries(f)
|
|
227
|
+
.filter(([, v]) => v)
|
|
228
|
+
.map(([k]) => k)
|
|
229
|
+
.join(", ")})`
|
|
230
|
+
: mode;
|
|
231
|
+
|
|
232
|
+
const prefsBlock = [
|
|
233
|
+
`## User Preferences (agileflow ${modeLabel} mode)`,
|
|
234
|
+
"",
|
|
235
|
+
"Apply these preferences throughout this session across all skills and tasks:",
|
|
236
|
+
"",
|
|
237
|
+
...prefs,
|
|
238
|
+
"",
|
|
239
|
+
"To change: run `agileflow setup`.",
|
|
240
|
+
].join("\n");
|
|
241
|
+
|
|
242
|
+
const capsBlock = buildCapabilitiesBlock(cfg);
|
|
243
|
+
|
|
244
|
+
return capsBlock ? `${capsBlock}\n\n${prefsBlock}` : prefsBlock;
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
/**
|
|
248
|
+
* Build a learnings block by scanning the installed skills directory for
|
|
249
|
+
* skills that have `learns.enabled: true` and have at least one learning entry.
|
|
250
|
+
*
|
|
251
|
+
* @param {object} cfg - parsed agileflow.config.json
|
|
252
|
+
* @returns {string|null}
|
|
253
|
+
*/
|
|
254
|
+
function buildLearningsBlock(cfg) {
|
|
255
|
+
if (!_readLearnings || !_formatLearningsBlock) return null;
|
|
256
|
+
if (!cfg?.learnings?.enabled) return null;
|
|
257
|
+
|
|
258
|
+
const primaryIde =
|
|
259
|
+
Array.isArray(cfg?.ide?.targets) && cfg.ide.targets.length > 0
|
|
260
|
+
? cfg.ide.targets[0]
|
|
261
|
+
: "claude-code";
|
|
262
|
+
|
|
263
|
+
const skillsDir =
|
|
264
|
+
IDE_CAPABILITIES?.[primaryIde]?.skillsDir ?? ".claude/skills";
|
|
265
|
+
const absoluteSkillsDir = path.join(projectDir, skillsDir);
|
|
266
|
+
|
|
267
|
+
let skillNames;
|
|
268
|
+
try {
|
|
269
|
+
skillNames = fs.readdirSync(absoluteSkillsDir);
|
|
270
|
+
} catch {
|
|
271
|
+
return null; // skills dir not yet installed
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
const yaml = (() => {
|
|
275
|
+
try {
|
|
276
|
+
return require("js-yaml");
|
|
277
|
+
} catch {
|
|
278
|
+
return null;
|
|
279
|
+
}
|
|
280
|
+
})();
|
|
281
|
+
if (!yaml) return null;
|
|
282
|
+
|
|
283
|
+
const blocks = [];
|
|
284
|
+
|
|
285
|
+
for (const skillName of skillNames) {
|
|
286
|
+
const skillMdPath = path.join(absoluteSkillsDir, skillName, "SKILL.md");
|
|
287
|
+
let skillMdText;
|
|
288
|
+
try {
|
|
289
|
+
skillMdText = fs.readFileSync(skillMdPath, "utf8");
|
|
290
|
+
} catch {
|
|
291
|
+
continue;
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
// Parse frontmatter between first two `---` fences.
|
|
295
|
+
const fmMatch = skillMdText.match(/^---\r?\n([\s\S]*?)\r?\n---/);
|
|
296
|
+
if (!fmMatch) continue;
|
|
297
|
+
|
|
298
|
+
let fm;
|
|
299
|
+
try {
|
|
300
|
+
fm = yaml.load(fmMatch[1]);
|
|
301
|
+
} catch {
|
|
302
|
+
continue;
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
if (!fm?.learns?.enabled) continue;
|
|
306
|
+
|
|
307
|
+
// readLearnings is async — run synchronously via the already-read skills dir.
|
|
308
|
+
// We resolve the learnings file path directly.
|
|
309
|
+
const learnFile = fm.learns.file || `_learnings/${skillName}.yaml`;
|
|
310
|
+
const safeParts = learnFile
|
|
311
|
+
.split("/")
|
|
312
|
+
.filter((p) => p && p !== ".." && p !== ".");
|
|
313
|
+
const learnFilePath = path.join(absoluteSkillsDir, skillName, ...safeParts);
|
|
314
|
+
|
|
315
|
+
let learningsData;
|
|
316
|
+
try {
|
|
317
|
+
const text = fs.readFileSync(learnFilePath, "utf8");
|
|
318
|
+
if (!text.trim()) continue;
|
|
319
|
+
const doc = yaml.load(text);
|
|
320
|
+
if (!doc || !Array.isArray(doc.entries) || doc.entries.length === 0)
|
|
321
|
+
continue;
|
|
322
|
+
learningsData = { entries: doc.entries, skill: skillName };
|
|
323
|
+
} catch {
|
|
324
|
+
continue; // file absent or invalid — skip silently
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
const block = _formatLearningsBlock(learningsData);
|
|
328
|
+
if (block) blocks.push(block);
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
return blocks.length > 0 ? blocks.join("\n\n") : null;
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
if (require.main === module) {
|
|
335
|
+
let cfg = {};
|
|
336
|
+
try {
|
|
337
|
+
cfg = JSON.parse(
|
|
338
|
+
fs.readFileSync(path.join(projectDir, "agileflow.config.json"), "utf8"),
|
|
339
|
+
);
|
|
340
|
+
} catch {
|
|
341
|
+
/* ignore */
|
|
342
|
+
}
|
|
343
|
+
|
|
344
|
+
const prefsBlock = buildPreferencesBlock();
|
|
345
|
+
const learnBlock = buildLearningsBlock(cfg);
|
|
346
|
+
|
|
347
|
+
const parts = [prefsBlock, learnBlock].filter(Boolean);
|
|
348
|
+
if (parts.length > 0) {
|
|
349
|
+
process.stdout.write(parts.join("\n\n") + "\n");
|
|
350
|
+
}
|
|
351
|
+
process.exit(0);
|
|
352
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Core plugin hook: session-welcome.
|
|
4
|
+
*
|
|
5
|
+
* Phase 3 stub. The real welcome banner (similar to v3's
|
|
6
|
+
* agileflow-welcome.js but ~200 lines instead of 79KB) lands in
|
|
7
|
+
* Phase 4 alongside the rest of Core plugin content.
|
|
8
|
+
*
|
|
9
|
+
* Reads stdin (Claude Code's payload) and exits 0 — non-blocking.
|
|
10
|
+
*/
|
|
11
|
+
let stdin = '';
|
|
12
|
+
process.stdin.on('data', (chunk) => {
|
|
13
|
+
stdin += chunk;
|
|
14
|
+
});
|
|
15
|
+
process.stdin.on('end', () => {
|
|
16
|
+
// eslint-disable-next-line no-console
|
|
17
|
+
console.log('agileflow: session welcome (Phase 3 stub)');
|
|
18
|
+
process.exit(0);
|
|
19
|
+
});
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
id: core
|
|
2
|
+
name: Core
|
|
3
|
+
description: Essential AgileFlow skills.
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
enabledByDefault: true
|
|
6
|
+
cannotDisable: true
|
|
7
|
+
|
|
8
|
+
depends: []
|
|
9
|
+
|
|
10
|
+
provides:
|
|
11
|
+
skills:
|
|
12
|
+
- id: agileflow-adr
|
|
13
|
+
dir: skills/agileflow-adr
|
|
14
|
+
- id: agileflow-epic-planner
|
|
15
|
+
dir: skills/agileflow-epic-planner
|
|
16
|
+
- id: agileflow-story-writer
|
|
17
|
+
dir: skills/agileflow-story-writer
|
|
18
|
+
- id: agileflow-status-updater
|
|
19
|
+
dir: skills/agileflow-status-updater
|
|
20
|
+
- id: agileflow-babysit-mentor
|
|
21
|
+
dir: skills/agileflow-babysit-mentor
|
|
22
|
+
agents:
|
|
23
|
+
- id: adr-writer
|
|
24
|
+
path: agents/adr-writer.md
|
|
25
|
+
- id: epic-planner
|
|
26
|
+
path: agents/epic-planner.md
|
|
27
|
+
- id: mentor
|
|
28
|
+
path: agents/mentor.md
|
|
29
|
+
- id: orchestrator
|
|
30
|
+
path: agents/orchestrator.md
|
|
31
|
+
- id: team-coordinator
|
|
32
|
+
path: agents/team-coordinator.md
|
|
33
|
+
- id: team-lead
|
|
34
|
+
path: agents/team-lead.md
|
|
35
|
+
- id: workspace-orchestrator
|
|
36
|
+
path: agents/workspace-orchestrator.md
|
|
37
|
+
hooks:
|
|
38
|
+
- id: context-loader
|
|
39
|
+
event: SessionStart
|
|
40
|
+
script: hooks/context-loader.js
|
|
41
|
+
timeout: 5000
|
|
42
|
+
skipOnError: true
|
|
43
|
+
behavior: loadContext
|
|
44
|
+
- id: preferences-injector
|
|
45
|
+
event: SessionStart
|
|
46
|
+
script: hooks/preferences-injector.js
|
|
47
|
+
timeout: 2000
|
|
48
|
+
skipOnError: true
|
|
49
|
+
runAfter: [context-loader]
|
|
50
|
+
behavior: babysitDefault
|
|
51
|
+
- id: damage-control-bash
|
|
52
|
+
event: PreToolUse
|
|
53
|
+
matcher: Bash
|
|
54
|
+
script: hooks/damage-control-bash.js
|
|
55
|
+
timeout: 3000
|
|
56
|
+
skipOnError: false
|
|
57
|
+
behavior: damageControlBash
|
|
58
|
+
- id: damage-control-edit
|
|
59
|
+
event: PreToolUse
|
|
60
|
+
matcher: Edit
|
|
61
|
+
script: hooks/damage-control-edit.js
|
|
62
|
+
timeout: 3000
|
|
63
|
+
skipOnError: false
|
|
64
|
+
behavior: damageControlEdit
|
|
65
|
+
- id: damage-control-write
|
|
66
|
+
event: PreToolUse
|
|
67
|
+
matcher: Write
|
|
68
|
+
script: hooks/damage-control-write.js
|
|
69
|
+
timeout: 3000
|
|
70
|
+
skipOnError: false
|
|
71
|
+
behavior: damageControlWrite
|
|
72
|
+
- id: post-compact-state
|
|
73
|
+
event: PostCompact
|
|
74
|
+
script: hooks/post-compact-state.js
|
|
75
|
+
timeout: 5000
|
|
76
|
+
skipOnError: true
|
|
77
|
+
behavior: preCompactState
|
|
78
|
+
templates: []
|
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: agileflow-adr
|
|
3
|
+
version: 2.0.0
|
|
4
|
+
category: agileflow/core
|
|
5
|
+
description: |
|
|
6
|
+
Use when the user is debating a technology / architecture / trade-off
|
|
7
|
+
decision (database choice, framework, API style, infra) or wants to
|
|
8
|
+
formalize one as an Architecture Decision Record. Writes the ADR to
|
|
9
|
+
docs/03-decisions/ in MADR format.
|
|
10
|
+
triggers:
|
|
11
|
+
keywords:
|
|
12
|
+
- architecture decision
|
|
13
|
+
- architectural decision
|
|
14
|
+
- which should we use
|
|
15
|
+
- record this decision
|
|
16
|
+
- trade-off between
|
|
17
|
+
- which framework
|
|
18
|
+
- which database
|
|
19
|
+
- rest vs graphql
|
|
20
|
+
- sql vs nosql
|
|
21
|
+
- adr for
|
|
22
|
+
priority: 50
|
|
23
|
+
exclude:
|
|
24
|
+
- decision tree (algorithmic)
|
|
25
|
+
- decisive moment
|
|
26
|
+
provides:
|
|
27
|
+
agents: []
|
|
28
|
+
learns:
|
|
29
|
+
enabled: true
|
|
30
|
+
file: _learnings/adr.yaml
|
|
31
|
+
maxEntries: 50
|
|
32
|
+
depends:
|
|
33
|
+
skills: []
|
|
34
|
+
plugins: [core]
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
# AgileFlow ADR Writer
|
|
38
|
+
|
|
39
|
+
Captures architectural / technical decisions as formal Architecture
|
|
40
|
+
Decision Records in `docs/03-decisions/` (MADR format). Decisions stay
|
|
41
|
+
immutable once accepted; if context changes, supersede with a new ADR
|
|
42
|
+
and link the chain.
|
|
43
|
+
|
|
44
|
+
## When this skill activates
|
|
45
|
+
|
|
46
|
+
- User is comparing options ("PostgreSQL vs MongoDB", "REST vs GraphQL")
|
|
47
|
+
- User asks "which X should we use?" with at least two real candidates
|
|
48
|
+
- User wants to record a decision they've already made
|
|
49
|
+
- Discussion of trade-offs, drivers, or constraints
|
|
50
|
+
- Should NOT activate on unrelated mentions of "decision" — `exclude`
|
|
51
|
+
keywords damp casual / algorithmic uses.
|
|
52
|
+
|
|
53
|
+
## What this skill does
|
|
54
|
+
|
|
55
|
+
1. Detect that a decision is being made (or asked about).
|
|
56
|
+
2. Extract the four MADR elements: context/problem, decision drivers,
|
|
57
|
+
considered options, chosen option + justification.
|
|
58
|
+
3. Ask clarifying questions if any are missing or ambiguous.
|
|
59
|
+
4. Read `docs/03-decisions/` to find the next ADR number and any
|
|
60
|
+
related ADRs to cross-link.
|
|
61
|
+
5. Show the proposed ADR and wait for explicit approval.
|
|
62
|
+
6. Write `docs/03-decisions/ADR-####-<slug>.md` in MADR format.
|
|
63
|
+
|
|
64
|
+
## Self-improving learnings
|
|
65
|
+
|
|
66
|
+
`.agileflow/skills/_learnings/adr.yaml` records preferences:
|
|
67
|
+
|
|
68
|
+
- Default `Status:` value (Proposed vs Accepted)
|
|
69
|
+
- Whether to require all four MADR sections or allow brief mode
|
|
70
|
+
- Preferred date format
|
|
71
|
+
- Whether to include Deciders names by default
|
|
72
|
+
|
|
73
|
+
## ADR format (MADR)
|
|
74
|
+
|
|
75
|
+
```markdown
|
|
76
|
+
# [ADR-0001] Title
|
|
77
|
+
|
|
78
|
+
**Date**: YYYY-MM-DD
|
|
79
|
+
**Status**: Proposed | Accepted | Deprecated | Superseded
|
|
80
|
+
**Deciders**: Names of people involved
|
|
81
|
+
**Tags**: architecture, database, api, …
|
|
82
|
+
|
|
83
|
+
## Context and Problem Statement
|
|
84
|
+
|
|
85
|
+
[Describe the context and problem. What are we trying to solve? Why now?]
|
|
86
|
+
|
|
87
|
+
## Decision Drivers
|
|
88
|
+
|
|
89
|
+
- [e.g., Performance requirements]
|
|
90
|
+
- [e.g., Team expertise]
|
|
91
|
+
- [e.g., Cost constraints]
|
|
92
|
+
|
|
93
|
+
## Considered Options
|
|
94
|
+
|
|
95
|
+
- [Option 1]
|
|
96
|
+
- [Option 2]
|
|
97
|
+
- [Option 3]
|
|
98
|
+
|
|
99
|
+
## Decision Outcome
|
|
100
|
+
|
|
101
|
+
**Chosen option**: [Option X]
|
|
102
|
+
|
|
103
|
+
**Justification**: [Why this option best satisfies the drivers]
|
|
104
|
+
|
|
105
|
+
### Positive Consequences
|
|
106
|
+
|
|
107
|
+
- [Good outcome 1]
|
|
108
|
+
- [Good outcome 2]
|
|
109
|
+
|
|
110
|
+
### Negative Consequences
|
|
111
|
+
|
|
112
|
+
- [Bad outcome 1] — Mitigation: [plan, if any]
|
|
113
|
+
- [Bad outcome 2]
|
|
114
|
+
|
|
115
|
+
## Pros and Cons of the Options
|
|
116
|
+
|
|
117
|
+
### [Option 1]
|
|
118
|
+
|
|
119
|
+
**Pros**: …
|
|
120
|
+
**Cons**: …
|
|
121
|
+
|
|
122
|
+
### [Option 2]
|
|
123
|
+
|
|
124
|
+
**Pros**: …
|
|
125
|
+
**Cons**: …
|
|
126
|
+
|
|
127
|
+
## Links
|
|
128
|
+
|
|
129
|
+
- [Related ADRs]
|
|
130
|
+
- [Relevant documentation]
|
|
131
|
+
- [External resources]
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
## Statuses
|
|
135
|
+
|
|
136
|
+
- **Proposed** — Under discussion, not yet decided
|
|
137
|
+
- **Accepted** — Decision made and ratified
|
|
138
|
+
- **Deprecated** — No longer relevant; kept for history
|
|
139
|
+
- **Superseded** — Replaced by a newer ADR (link forward to it)
|
|
140
|
+
|
|
141
|
+
## When to write the ADR vs ask first
|
|
142
|
+
|
|
143
|
+
Write it now (with `Status: Accepted`):
|
|
144
|
+
|
|
145
|
+
- The user has already made a clear decision and wants to record it
|
|
146
|
+
- The user explicitly asks for the ADR
|
|
147
|
+
|
|
148
|
+
Ask first (then write with `Status: Proposed` or `Accepted`):
|
|
149
|
+
|
|
150
|
+
- Multiple options are still in play
|
|
151
|
+
- Drivers / constraints aren't clear yet
|
|
152
|
+
- The chosen option's justification is one-line ("we like it more")
|
|
153
|
+
|
|
154
|
+
## Quality checklist
|
|
155
|
+
|
|
156
|
+
- [ ] Problem statement is concrete (not "improve performance")
|
|
157
|
+
- [ ] At least 2 real options considered (single-option ADRs are a
|
|
158
|
+
smell — note that the alternative was "do nothing" or "status
|
|
159
|
+
quo")
|
|
160
|
+
- [ ] Each option has explicit pros AND cons
|
|
161
|
+
- [ ] Decision drivers explicitly stated
|
|
162
|
+
- [ ] Chosen option's justification ties back to drivers
|
|
163
|
+
- [ ] Negative consequences acknowledged with mitigations where possible
|
|
164
|
+
- [ ] File path: `docs/03-decisions/ADR-####-<slug>.md` (4-digit pad)
|
|
165
|
+
- [ ] User approved the diff before write
|
|
166
|
+
|
|
167
|
+
## Integration
|
|
168
|
+
|
|
169
|
+
- **agileflow-story-writer** — completed ADRs inform Technical Notes in stories; reference the ADR number in the story's context section
|
|
170
|
+
- **agileflow-epic-planner** — major epics often spawn one or more ADRs at planning time; create the ADR before writing stories so implementation decisions are settled
|
|
171
|
+
- **agileflow-status-updater** — flipping an ADR from Proposed to Accepted is a status mutation; route through status-updater to keep `status.json` accurate
|
|
172
|
+
- **agileflow-council** — council sessions are the primary source of ADR content; after a council reaches a decision, create an ADR to record it formally
|
|
173
|
+
- **agileflow-research** — research provides the factual foundation for ADRs (benchmarks, library comparisons, community precedent); always link or summarise the research in the ADR body
|
|
174
|
+
- **agileflow-planning** — use planning's impact analysis output as the context section of an ADR when the decision involves scope or delivery trade-offs
|
|
175
|
+
- **agileflow-delivery** — for breaking API changes or major dependency upgrades, create an ADR before the delivery cycle begins so the rationale is documented before merge
|
|
176
|
+
|
|
177
|
+
## Notes
|
|
178
|
+
|
|
179
|
+
- Capture decisions even if they seem small. Future you (or a new
|
|
180
|
+
hire) won't remember why you chose option B in three months.
|
|
181
|
+
- Be honest about negative consequences — undocumented downsides are
|
|
182
|
+
the source of "why is this code like this?" frustration.
|
|
183
|
+
- ADRs are **immutable** once accepted. To change a decision, create a
|
|
184
|
+
new ADR with `Status: Accepted`, set the old ADR to `Superseded`,
|
|
185
|
+
and link them.
|
|
186
|
+
- Include the deciders' names. Accountability matters; so does
|
|
187
|
+
knowing who to ask.
|
|
188
|
+
- Date the ADR — context erodes; the date is the timestamp on the
|
|
189
|
+
thinking, not just the file.
|
|
190
|
+
|
|
191
|
+
## References
|
|
192
|
+
|
|
193
|
+
Load these files when you need deeper context for the relevant task:
|
|
194
|
+
|
|
195
|
+
| File | When to load |
|
|
196
|
+
| --------------------------------- | ---------------------------------------------------------------------------------------------------- |
|
|
197
|
+
| `references/madr-format-guide.md` | Writing or reviewing an ADR — MADR format, required sections, common mistakes, numbering conventions |
|
|
198
|
+
|
|
199
|
+
## Workflows
|
|
200
|
+
|
|
201
|
+
Follow these step-by-step when the user initiates the matching action:
|
|
202
|
+
|
|
203
|
+
| File | When to follow |
|
|
204
|
+
| ------------------------ | --------------------------------------------------------------------------------------------------------------------- |
|
|
205
|
+
| `workflows/write-adr.md` | User wants to record a decision or is comparing options — gathers context, drafts ADR, gets confirmation, writes file |
|