agileflow 4.0.0-alpha.2 → 4.0.0-alpha.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +51 -0
- package/content/plugins/accessibility/plugin.yaml +14 -0
- package/content/plugins/accessibility/skills/agileflow-accessibility/SKILL.md +392 -0
- package/content/plugins/accessibility/skills/agileflow-accessibility/references/aria-patterns.md +528 -0
- package/content/plugins/accessibility/skills/agileflow-accessibility/references/testing-checklist.md +457 -0
- package/content/plugins/accessibility/skills/agileflow-accessibility/references/wcag-guide.md +683 -0
- package/content/plugins/accessibility/skills/agileflow-accessibility/workflows/audit-page.md +310 -0
- package/content/plugins/accessibility/skills/agileflow-accessibility/workflows/implement-accessible-component.md +479 -0
- package/content/plugins/ads/agents/ads-audit-budget.md +185 -0
- package/content/plugins/ads/agents/ads-audit-compliance.md +171 -0
- package/content/plugins/ads/agents/ads-audit-creative.md +168 -0
- package/content/plugins/ads/agents/ads-audit-google.md +227 -0
- package/content/plugins/ads/agents/ads-audit-meta.md +184 -0
- package/content/plugins/ads/agents/ads-audit-tracking.md +205 -0
- package/content/plugins/ads/agents/ads-consensus.md +410 -0
- package/content/plugins/ads/agents/ads-generate.md +152 -0
- package/content/plugins/ads/agents/ads-performance-tracker.md +212 -0
- package/content/plugins/ads/plugin.yaml +23 -4
- package/content/plugins/ads/skills/agileflow-ads/SKILL.md +218 -0
- package/content/plugins/ads/skills/agileflow-ads/references/ad-copy-formula-guide.md +131 -0
- package/content/plugins/ads/skills/agileflow-ads/references/audience-targeting-guide.md +137 -0
- package/content/plugins/ads/skills/agileflow-ads/references/bid-strategy-guide.md +115 -0
- package/content/plugins/ads/skills/agileflow-ads/references/platform-benchmarks.md +100 -0
- package/content/plugins/ads/skills/agileflow-ads/workflows/audit.md +118 -0
- package/content/plugins/ads/skills/agileflow-ads/workflows/generate.md +84 -0
- package/content/plugins/audit/agents/a11y-analyzer-aria.md +173 -0
- package/content/plugins/audit/agents/a11y-analyzer-forms.md +173 -0
- package/content/plugins/audit/agents/a11y-analyzer-keyboard.md +183 -0
- package/content/plugins/audit/agents/a11y-analyzer-semantic.md +169 -0
- package/content/plugins/audit/agents/a11y-analyzer-visual.md +172 -0
- package/content/plugins/audit/agents/a11y-consensus.md +249 -0
- package/content/plugins/audit/agents/accessibility.md +558 -0
- package/content/plugins/audit/agents/api-quality-analyzer-conventions.md +156 -0
- package/content/plugins/audit/agents/api-quality-analyzer-docs.md +184 -0
- package/content/plugins/audit/agents/api-quality-analyzer-errors.md +191 -0
- package/content/plugins/audit/agents/api-quality-analyzer-pagination.md +179 -0
- package/content/plugins/audit/agents/api-quality-analyzer-versioning.md +150 -0
- package/content/plugins/audit/agents/api-quality-consensus.md +217 -0
- package/content/plugins/audit/agents/api-validator.md +191 -0
- package/content/plugins/audit/agents/arch-analyzer-circular.md +156 -0
- package/content/plugins/audit/agents/arch-analyzer-complexity.md +193 -0
- package/content/plugins/audit/agents/arch-analyzer-coupling.md +152 -0
- package/content/plugins/audit/agents/arch-analyzer-layering.md +160 -0
- package/content/plugins/audit/agents/arch-analyzer-patterns.md +210 -0
- package/content/plugins/audit/agents/arch-consensus.md +228 -0
- package/content/plugins/audit/agents/browser-qa.md +342 -0
- package/content/plugins/audit/agents/code-reviewer.md +298 -0
- package/content/plugins/audit/agents/completeness-analyzer-api.md +199 -0
- package/content/plugins/audit/agents/completeness-analyzer-conditional.md +211 -0
- package/content/plugins/audit/agents/completeness-analyzer-handlers.md +166 -0
- package/content/plugins/audit/agents/completeness-analyzer-imports.md +165 -0
- package/content/plugins/audit/agents/completeness-analyzer-routes.md +190 -0
- package/content/plugins/audit/agents/completeness-analyzer-state.md +196 -0
- package/content/plugins/audit/agents/completeness-analyzer-stubs.md +206 -0
- package/content/plugins/audit/agents/completeness-consensus.md +295 -0
- package/content/plugins/audit/agents/error-analyzer.md +213 -0
- package/content/plugins/audit/agents/flow-analyzer-authorization.md +182 -0
- package/content/plugins/audit/agents/flow-analyzer-discovery.md +174 -0
- package/content/plugins/audit/agents/flow-analyzer-errors.md +186 -0
- package/content/plugins/audit/agents/flow-analyzer-feedback.md +185 -0
- package/content/plugins/audit/agents/flow-analyzer-navigation.md +177 -0
- package/content/plugins/audit/agents/flow-analyzer-persistence.md +193 -0
- package/content/plugins/audit/agents/flow-analyzer-wiring.md +169 -0
- package/content/plugins/audit/agents/flow-consensus.md +237 -0
- package/content/plugins/audit/agents/legal-analyzer-a11y.md +114 -0
- package/content/plugins/audit/agents/legal-analyzer-ai.md +121 -0
- package/content/plugins/audit/agents/legal-analyzer-consumer.md +114 -0
- package/content/plugins/audit/agents/legal-analyzer-content.md +117 -0
- package/content/plugins/audit/agents/legal-analyzer-international.md +119 -0
- package/content/plugins/audit/agents/legal-analyzer-licensing.md +119 -0
- package/content/plugins/audit/agents/legal-analyzer-privacy.md +112 -0
- package/content/plugins/audit/agents/legal-analyzer-security.md +116 -0
- package/content/plugins/audit/agents/legal-analyzer-terms.md +115 -0
- package/content/plugins/audit/agents/legal-consensus.md +250 -0
- package/content/plugins/audit/agents/logic-analyzer-edge.md +179 -0
- package/content/plugins/audit/agents/logic-analyzer-flow.md +264 -0
- package/content/plugins/audit/agents/logic-analyzer-invariant.md +215 -0
- package/content/plugins/audit/agents/logic-analyzer-race.md +280 -0
- package/content/plugins/audit/agents/logic-analyzer-type.md +227 -0
- package/content/plugins/audit/agents/logic-consensus.md +259 -0
- package/content/plugins/audit/agents/perf-analyzer-assets.md +182 -0
- package/content/plugins/audit/agents/perf-analyzer-bundle.md +173 -0
- package/content/plugins/audit/agents/perf-analyzer-caching.md +170 -0
- package/content/plugins/audit/agents/perf-analyzer-compute.md +173 -0
- package/content/plugins/audit/agents/perf-analyzer-memory.md +193 -0
- package/content/plugins/audit/agents/perf-analyzer-network.md +165 -0
- package/content/plugins/audit/agents/perf-analyzer-queries.md +162 -0
- package/content/plugins/audit/agents/perf-analyzer-rendering.md +168 -0
- package/content/plugins/audit/agents/perf-consensus.md +287 -0
- package/content/plugins/audit/agents/qa.md +820 -0
- package/content/plugins/audit/agents/quality-analyzer-comments.md +159 -0
- package/content/plugins/audit/agents/quality-analyzer-duplication.md +184 -0
- package/content/plugins/audit/agents/quality-analyzer-naming.md +160 -0
- package/content/plugins/audit/agents/quality-consensus.md +241 -0
- package/content/plugins/audit/agents/schema-validator.md +473 -0
- package/content/plugins/audit/agents/security-analyzer-api.md +210 -0
- package/content/plugins/audit/agents/security-analyzer-auth.md +169 -0
- package/content/plugins/audit/agents/security-analyzer-authz.md +180 -0
- package/content/plugins/audit/agents/security-analyzer-deps.md +153 -0
- package/content/plugins/audit/agents/security-analyzer-infra.md +184 -0
- package/content/plugins/audit/agents/security-analyzer-injection.md +155 -0
- package/content/plugins/audit/agents/security-analyzer-input.md +201 -0
- package/content/plugins/audit/agents/security-analyzer-secrets.md +183 -0
- package/content/plugins/audit/agents/security-consensus.md +283 -0
- package/content/plugins/audit/agents/test-analyzer-assertions.md +188 -0
- package/content/plugins/audit/agents/test-analyzer-coverage.md +189 -0
- package/content/plugins/audit/agents/test-analyzer-fragility.md +193 -0
- package/content/plugins/audit/agents/test-analyzer-integration.md +161 -0
- package/content/plugins/audit/agents/test-analyzer-maintenance.md +180 -0
- package/content/plugins/audit/agents/test-analyzer-mocking.md +188 -0
- package/content/plugins/audit/agents/test-analyzer-patterns.md +196 -0
- package/content/plugins/audit/agents/test-analyzer-structure.md +184 -0
- package/content/plugins/audit/agents/test-consensus.md +301 -0
- package/content/plugins/audit/agents/testing.md +561 -0
- package/content/plugins/audit/agents/ui-validator.md +344 -0
- package/content/plugins/audit/plugin.yaml +186 -5
- package/content/plugins/audit/skills/agileflow-audit/SKILL.md +113 -0
- package/content/plugins/audit/skills/agileflow-audit/references/audit-depth-guide.md +151 -0
- package/content/plugins/audit/skills/agileflow-audit/references/dependency-risk-guide.md +139 -0
- package/content/plugins/audit/skills/agileflow-audit/references/owasp-top10.md +120 -0
- package/content/plugins/audit/skills/agileflow-audit/references/performance-budget-guide.md +143 -0
- package/content/plugins/audit/skills/agileflow-audit/references/wcag-criteria.md +117 -0
- package/content/plugins/audit/skills/agileflow-audit/workflows/run-audit.md +52 -0
- package/content/plugins/audit/skills/agileflow-audit/workflows/tdd.md +66 -0
- package/content/plugins/core/agents/adr-writer.md +521 -0
- package/content/plugins/core/agents/epic-planner.md +520 -0
- package/content/plugins/core/agents/mentor.md +709 -0
- package/content/plugins/core/agents/orchestrator.md +776 -0
- package/content/plugins/core/agents/team-coordinator.md +334 -0
- package/content/plugins/core/agents/team-lead.md +181 -0
- package/content/plugins/core/agents/workspace-orchestrator.md +146 -0
- package/content/plugins/core/hooks/context-loader.js +31 -4
- package/content/plugins/core/hooks/damage-control-bash.js +10 -2
- package/content/plugins/core/hooks/damage-control-edit.js +4 -1
- package/content/plugins/core/hooks/damage-control-patterns.yaml +1 -1
- package/content/plugins/core/hooks/damage-control-write.js +4 -1
- package/content/plugins/core/hooks/{pre-compact-state.js → post-compact-state.js} +25 -8
- package/content/plugins/core/hooks/preferences-injector.js +352 -0
- package/content/plugins/core/plugin.yaml +24 -28
- package/content/plugins/core/skills/agileflow-adr/SKILL.md +34 -8
- package/content/plugins/core/skills/agileflow-adr/references/madr-format-guide.md +86 -0
- package/content/plugins/core/skills/agileflow-adr/workflows/write-adr.md +57 -0
- package/content/plugins/core/skills/agileflow-babysit-mentor/SKILL.md +94 -27
- package/content/plugins/core/skills/agileflow-babysit-mentor/references/mentor-decision-guide.md +81 -0
- package/content/plugins/core/skills/agileflow-babysit-mentor/workflows/mentor-session.md +79 -0
- package/content/plugins/core/skills/agileflow-epic-planner/SKILL.md +37 -7
- package/content/plugins/core/skills/agileflow-epic-planner/references/epic-sizing-guide.md +81 -0
- package/content/plugins/core/skills/agileflow-epic-planner/workflows/plan-epic.md +55 -0
- package/content/plugins/core/skills/agileflow-status-updater/SKILL.md +36 -20
- package/content/plugins/core/skills/agileflow-status-updater/references/status-transitions.md +89 -0
- package/content/plugins/core/skills/agileflow-status-updater/workflows/update-status.md +56 -0
- package/content/plugins/core/skills/agileflow-story-writer/SKILL.md +39 -114
- package/content/plugins/core/skills/agileflow-story-writer/references/estimation-reference.md +36 -0
- package/content/plugins/core/skills/agileflow-story-writer/references/story-template.md +92 -0
- package/content/plugins/core/skills/agileflow-story-writer/workflows/write-story.md +138 -0
- package/content/plugins/council/agents/council-advocate.md +223 -0
- package/content/plugins/council/agents/council-analyst.md +278 -0
- package/content/plugins/council/agents/council-compounder.md +204 -0
- package/content/plugins/council/agents/council-contrarian.md +217 -0
- package/content/plugins/council/agents/council-moonshot.md +217 -0
- package/content/plugins/council/agents/council-optimist.md +185 -0
- package/content/plugins/council/agents/council-revenue.md +200 -0
- package/content/plugins/council/agents/council-technical.md +218 -0
- package/content/plugins/council/agents/multi-expert.md +334 -0
- package/content/plugins/council/plugin.yaml +23 -4
- package/content/plugins/council/skills/agileflow-council/SKILL.md +102 -0
- package/content/plugins/council/skills/agileflow-council/references/decision-log-template.md +109 -0
- package/content/plugins/council/skills/agileflow-council/references/perspective-guide.md +104 -0
- package/content/plugins/council/skills/agileflow-council/references/when-to-convene-guide.md +112 -0
- package/content/plugins/council/skills/agileflow-council/workflows/convene.md +73 -0
- package/content/plugins/council/skills/agileflow-council/workflows/multi-expert.md +75 -0
- package/content/plugins/database/plugin.yaml +14 -0
- package/content/plugins/database/skills/agileflow-database/SKILL.md +284 -0
- package/content/plugins/database/skills/agileflow-database/references/indexing-guide.md +313 -0
- package/content/plugins/database/skills/agileflow-database/references/migration-guide.md +328 -0
- package/content/plugins/database/skills/agileflow-database/references/schema-design-guide.md +467 -0
- package/content/plugins/database/skills/agileflow-database/workflows/design-schema.md +213 -0
- package/content/plugins/database/skills/agileflow-database/workflows/optimize-query.md +253 -0
- package/content/plugins/debugging/plugin.yaml +14 -0
- package/content/plugins/debugging/skills/agileflow-debug/SKILL.md +236 -0
- package/content/plugins/debugging/skills/agileflow-debug/references/common-patterns.md +350 -0
- package/content/plugins/debugging/skills/agileflow-debug/references/debugging-strategies.md +328 -0
- package/content/plugins/debugging/skills/agileflow-debug/workflows/debug-issue.md +187 -0
- package/content/plugins/debugging/skills/agileflow-debug/workflows/reproduce-bug.md +194 -0
- package/content/plugins/delivery/agents/ci.md +547 -0
- package/content/plugins/delivery/agents/devops.md +789 -0
- package/content/plugins/delivery/plugin.yaml +19 -0
- package/content/plugins/delivery/skills/agileflow-delivery/SKILL.md +111 -0
- package/content/plugins/delivery/skills/agileflow-delivery/references/changelog-format-guide.md +133 -0
- package/content/plugins/delivery/skills/agileflow-delivery/references/ci-pipeline-guide.md +158 -0
- package/content/plugins/delivery/skills/agileflow-delivery/references/pr-checklist-guide.md +133 -0
- package/content/plugins/delivery/skills/agileflow-delivery/references/release-checklist.md +142 -0
- package/content/plugins/delivery/skills/agileflow-delivery/workflows/changelog.md +72 -0
- package/content/plugins/delivery/skills/agileflow-delivery/workflows/deploy.md +74 -0
- package/content/plugins/delivery/skills/agileflow-delivery/workflows/pr.md +75 -0
- package/content/plugins/docs/agents/documentation.md +544 -0
- package/content/plugins/docs/agents/readme-updater.md +640 -0
- package/content/plugins/docs/plugin.yaml +19 -0
- package/content/plugins/docs/skills/agileflow-docs/SKILL.md +106 -0
- package/content/plugins/docs/skills/agileflow-docs/references/api-doc-template.md +167 -0
- package/content/plugins/docs/skills/agileflow-docs/references/doc-types-guide.md +141 -0
- package/content/plugins/docs/skills/agileflow-docs/references/readme-template.md +156 -0
- package/content/plugins/docs/skills/agileflow-docs/workflows/readme-sync.md +57 -0
- package/content/plugins/docs/skills/agileflow-docs/workflows/sync.md +64 -0
- package/content/plugins/engineering/agents/api.md +718 -0
- package/content/plugins/engineering/agents/codebase-query.md +285 -0
- package/content/plugins/engineering/agents/compliance.md +559 -0
- package/content/plugins/engineering/agents/database.md +644 -0
- package/content/plugins/engineering/agents/integrations.md +644 -0
- package/content/plugins/engineering/agents/mobile.md +552 -0
- package/content/plugins/engineering/agents/monitoring.md +585 -0
- package/content/plugins/engineering/agents/performance.md +529 -0
- package/content/plugins/engineering/agents/refactor.md +592 -0
- package/content/plugins/engineering/agents/security.md +524 -0
- package/content/plugins/engineering/agents/ui.md +1336 -0
- package/content/plugins/engineering/plugin.yaml +37 -0
- package/content/plugins/engineering/skills/agileflow-engineering/SKILL.md +127 -0
- package/content/plugins/engineering/skills/agileflow-engineering/references/code-review-guide.md +126 -0
- package/content/plugins/engineering/skills/agileflow-engineering/references/domain-routing-guide.md +89 -0
- package/content/plugins/engineering/skills/agileflow-engineering/references/refactoring-guide.md +136 -0
- package/content/plugins/engineering/skills/agileflow-engineering/workflows/diagnose.md +63 -0
- package/content/plugins/engineering/skills/agileflow-engineering/workflows/impact.md +60 -0
- package/content/plugins/ideation/agents/brainstorm-analyzer-features.md +179 -0
- package/content/plugins/ideation/agents/brainstorm-analyzer-growth.md +169 -0
- package/content/plugins/ideation/agents/brainstorm-analyzer-integration.md +181 -0
- package/content/plugins/ideation/agents/brainstorm-analyzer-market.md +150 -0
- package/content/plugins/ideation/agents/brainstorm-analyzer-ux.md +180 -0
- package/content/plugins/ideation/agents/brainstorm-consensus.md +245 -0
- package/content/plugins/ideation/agents/design.md +568 -0
- package/content/plugins/ideation/agents/product.md +582 -0
- package/content/plugins/ideation/plugin.yaml +31 -0
- package/content/plugins/ideation/skills/agileflow-ideation/SKILL.md +109 -0
- package/content/plugins/ideation/skills/agileflow-ideation/references/brainstorm-techniques.md +138 -0
- package/content/plugins/ideation/skills/agileflow-ideation/references/competitive-analysis-template.md +148 -0
- package/content/plugins/ideation/skills/agileflow-ideation/references/feature-prioritization-guide.md +147 -0
- package/content/plugins/ideation/skills/agileflow-ideation/references/user-story-patterns.md +152 -0
- package/content/plugins/ideation/skills/agileflow-ideation/workflows/features.md +65 -0
- package/content/plugins/ideation/skills/agileflow-ideation/workflows/ideate.md +54 -0
- package/content/plugins/migration/agents/datamigration.md +757 -0
- package/content/plugins/migration/plugin.yaml +17 -0
- package/content/plugins/migration/skills/agileflow-migration/SKILL.md +106 -0
- package/content/plugins/migration/skills/agileflow-migration/references/data-validation-checklist.md +154 -0
- package/content/plugins/migration/skills/agileflow-migration/references/migration-patterns.md +209 -0
- package/content/plugins/migration/skills/agileflow-migration/references/rollback-playbook.md +171 -0
- package/content/plugins/migration/skills/agileflow-migration/references/version-compatibility-matrix.md +155 -0
- package/content/plugins/migration/skills/agileflow-migration/workflows/plan.md +73 -0
- package/content/plugins/migration/skills/agileflow-migration/workflows/validate.md +71 -0
- package/content/plugins/performance/plugin.yaml +14 -0
- package/content/plugins/performance/skills/agileflow-performance/SKILL.md +224 -0
- package/content/plugins/performance/skills/agileflow-performance/references/optimization-patterns.md +554 -0
- package/content/plugins/performance/skills/agileflow-performance/references/profiling-guide.md +383 -0
- package/content/plugins/performance/skills/agileflow-performance/references/web-vitals-guide.md +360 -0
- package/content/plugins/performance/skills/agileflow-performance/workflows/improve-web-vitals.md +344 -0
- package/content/plugins/performance/skills/agileflow-performance/workflows/profile-and-fix.md +254 -0
- package/content/plugins/planning/agents/analytics.md +670 -0
- package/content/plugins/planning/agents/rlm-subcore.md +215 -0
- package/content/plugins/planning/plugin.yaml +19 -0
- package/content/plugins/planning/skills/agileflow-planning/SKILL.md +111 -0
- package/content/plugins/planning/skills/agileflow-planning/references/estimation-guide.md +114 -0
- package/content/plugins/planning/skills/agileflow-planning/references/rpi-workflow.md +119 -0
- package/content/plugins/planning/skills/agileflow-planning/references/sprint-planning-guide.md +145 -0
- package/content/plugins/planning/skills/agileflow-planning/workflows/impact.md +63 -0
- package/content/plugins/planning/skills/agileflow-planning/workflows/rpi.md +104 -0
- package/content/plugins/psychology/plugin.yaml +14 -0
- package/content/plugins/psychology/skills/agileflow-retention/SKILL.md +252 -0
- package/content/plugins/psychology/skills/agileflow-retention/references/competitor-analysis.md +240 -0
- package/content/plugins/psychology/skills/agileflow-retention/references/psychology-models.md +349 -0
- package/content/plugins/psychology/skills/agileflow-retention/references/retention-patterns.md +279 -0
- package/content/plugins/psychology/skills/agileflow-retention/workflows/design-retention-feature.md +287 -0
- package/content/plugins/psychology/skills/agileflow-retention/workflows/retention-audit.md +259 -0
- package/content/plugins/refactoring/plugin.yaml +14 -0
- package/content/plugins/refactoring/skills/agileflow-refactor/SKILL.md +235 -0
- package/content/plugins/refactoring/skills/agileflow-refactor/references/refactoring-patterns.md +405 -0
- package/content/plugins/refactoring/skills/agileflow-refactor/references/safety-checks.md +177 -0
- package/content/plugins/refactoring/skills/agileflow-refactor/workflows/extract-module.md +226 -0
- package/content/plugins/refactoring/skills/agileflow-refactor/workflows/safe-refactor.md +169 -0
- package/content/plugins/research/agents/research.md +503 -0
- package/content/plugins/research/plugin.yaml +17 -0
- package/content/plugins/research/skills/agileflow-research/SKILL.md +110 -0
- package/content/plugins/research/skills/agileflow-research/references/knowledge-decay-guide.md +121 -0
- package/content/plugins/research/skills/agileflow-research/references/research-prompt-guide.md +141 -0
- package/content/plugins/research/skills/agileflow-research/references/synthesis-template.md +154 -0
- package/content/plugins/research/skills/agileflow-research/workflows/analyze.md +60 -0
- package/content/plugins/research/skills/agileflow-research/workflows/ask.md +64 -0
- package/content/plugins/research/skills/agileflow-research/workflows/import.md +66 -0
- package/content/plugins/research/skills/agileflow-research/workflows/synthesize.md +66 -0
- package/content/plugins/reviews/plugin.yaml +14 -0
- package/content/plugins/reviews/skills/agileflow-pr-reviewer/SKILL.md +241 -0
- package/content/plugins/reviews/skills/agileflow-pr-reviewer/references/review-checklist.md +200 -0
- package/content/plugins/reviews/skills/agileflow-pr-reviewer/references/security-patterns.md +328 -0
- package/content/plugins/reviews/skills/agileflow-pr-reviewer/workflows/review-pr.md +153 -0
- package/content/plugins/reviews/skills/agileflow-pr-reviewer/workflows/security-review.md +177 -0
- package/content/plugins/seo/agents/seo-analyzer-content.md +169 -0
- package/content/plugins/seo/agents/seo-analyzer-images.md +198 -0
- package/content/plugins/seo/agents/seo-analyzer-performance.md +217 -0
- package/content/plugins/seo/agents/seo-analyzer-schema.md +184 -0
- package/content/plugins/seo/agents/seo-analyzer-sitemap.md +177 -0
- package/content/plugins/seo/agents/seo-analyzer-technical.md +151 -0
- package/content/plugins/seo/agents/seo-consensus.md +304 -0
- package/content/plugins/seo/plugin.yaml +19 -4
- package/content/plugins/seo/skills/agileflow-seo/SKILL.md +188 -0
- package/content/plugins/seo/skills/agileflow-seo/references/cwv-thresholds.md +110 -0
- package/content/plugins/seo/skills/agileflow-seo/references/eeat-framework.md +144 -0
- package/content/plugins/seo/skills/agileflow-seo/references/keyword-research-guide.md +125 -0
- package/content/plugins/seo/skills/agileflow-seo/references/schema-types.md +139 -0
- package/content/plugins/seo/skills/agileflow-seo/references/technical-seo-checklist.md +139 -0
- package/content/plugins/seo/skills/agileflow-seo/workflows/audit.md +98 -0
- package/content/plugins/seo/skills/agileflow-seo/workflows/page.md +118 -0
- package/content/plugins/testing/plugin.yaml +16 -0
- package/content/plugins/testing/skills/agileflow-test-writer/SKILL.md +260 -0
- package/content/plugins/testing/skills/agileflow-test-writer/references/coverage-targets.md +239 -0
- package/content/plugins/testing/skills/agileflow-test-writer/references/test-patterns.md +420 -0
- package/content/plugins/testing/skills/agileflow-test-writer/workflows/add-coverage.md +154 -0
- package/content/plugins/testing/skills/agileflow-test-writer/workflows/write-tests-from-ac.md +225 -0
- package/package.json +2 -2
- package/src/cli/commands/doctor.js +818 -30
- package/src/cli/commands/hook.js +17 -14
- package/src/cli/commands/launch.js +1454 -0
- package/src/cli/commands/learn.js +149 -0
- package/src/cli/commands/plugins.js +113 -0
- package/src/cli/commands/setup.js +455 -110
- package/src/cli/commands/skills.js +324 -0
- package/src/cli/commands/status.js +8 -10
- package/src/cli/commands/update.js +76 -15
- package/src/cli/index.js +90 -26
- package/src/cli/wizard/babysit-mode-picker.js +192 -0
- package/src/cli/wizard/behaviors-picker.js +208 -54
- package/src/cli/wizard/ide-picker.js +40 -28
- package/src/cli/wizard/install-scope-picker.js +57 -0
- package/src/cli/wizard/launch-alias-picker.js +50 -0
- package/src/cli/wizard/launch-cli-picker.js +129 -0
- package/src/cli/wizard/launch-tmux-picker.js +133 -0
- package/src/cli/wizard/learnings-picker.js +40 -0
- package/src/cli/wizard/plugin-picker.js +47 -16
- package/src/lib/brand.js +116 -0
- package/src/lib/errors.js +120 -0
- package/src/lib/path-check.js +39 -0
- package/src/runtime/config/defaults.js +22 -17
- package/src/runtime/config/loader.js +77 -8
- package/src/runtime/config/schema.json +43 -16
- package/src/runtime/config/writer.js +3 -1
- package/src/runtime/ide/babysit-skill.js +202 -0
- package/src/runtime/ide/capabilities.js +84 -29
- package/src/runtime/ide/claude-code-content.js +177 -0
- package/src/runtime/ide/claude-code-settings.js +67 -29
- package/src/runtime/ide/claude-code-skills.js +47 -32
- package/src/runtime/ide/codex-config.js +295 -0
- package/src/runtime/installer/install.js +252 -24
- package/src/runtime/launch/alias-installer.js +191 -0
- package/src/runtime/launch/cli-resume.js +244 -0
- package/src/runtime/launch/closed-windows.js +338 -0
- package/src/runtime/launch/defaults.js +66 -0
- package/src/runtime/launch/detect-clis.js +69 -0
- package/src/runtime/launch/doctor.js +464 -0
- package/src/runtime/launch/exec-wrapper.js +114 -0
- package/src/runtime/launch/parallel-session.js +247 -0
- package/src/runtime/launch/prefs.js +211 -0
- package/src/runtime/launch/project-prefs.js +234 -0
- package/src/runtime/launch/resolve-cli.js +56 -0
- package/src/runtime/launch/restore.js +152 -0
- package/src/runtime/launch/schema.json +75 -0
- package/src/runtime/launch/session-lifecycle.js +313 -0
- package/src/runtime/launch/session-registry.js +401 -0
- package/src/runtime/launch/spawn.js +103 -0
- package/src/runtime/launch/tabs.js +350 -0
- package/src/runtime/launch/tmux.js +764 -0
- package/src/runtime/launch/worktree.js +260 -0
- package/src/runtime/plugins/registry.js +16 -11
- package/src/runtime/plugins/validator.js +57 -43
- package/src/runtime/skills/learnings.js +308 -0
- package/content/plugins/core/hooks/babysit-mentor-injector.js +0 -55
- package/src/cli/wizard/personalization.js +0 -64
|
@@ -0,0 +1,308 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Skill learnings — persistent self-improvement signals per skill.
|
|
3
|
+
*
|
|
4
|
+
* Learnings live inside the installed skill directory so they are
|
|
5
|
+
* co-located with the skill that owns them:
|
|
6
|
+
* <skillsDir>/<skillName>/_learnings/<skill>.yaml
|
|
7
|
+
*
|
|
8
|
+
* File format:
|
|
9
|
+
* # Auto-generated by AgileFlow. Edit carefully — these shape skill behavior.
|
|
10
|
+
* version: 1
|
|
11
|
+
* skill: agileflow-research
|
|
12
|
+
* updated: "2026-05-06"
|
|
13
|
+
* entries:
|
|
14
|
+
* - id: "abc123"
|
|
15
|
+
* confidence: high # high / medium / low
|
|
16
|
+
* created: "2026-05-06"
|
|
17
|
+
* observation: "User prefers concise research prompts..."
|
|
18
|
+
* source: correction # correction | confirmation | observation
|
|
19
|
+
*
|
|
20
|
+
* Confidence levels:
|
|
21
|
+
* - high: explicit user correction
|
|
22
|
+
* - medium: pattern accepted without correction
|
|
23
|
+
* - low: observation; not yet confirmed
|
|
24
|
+
*/
|
|
25
|
+
const fs = require("fs");
|
|
26
|
+
const path = require("path");
|
|
27
|
+
const crypto = require("crypto");
|
|
28
|
+
const yaml = require("js-yaml");
|
|
29
|
+
|
|
30
|
+
const VALID_CONFIDENCE = new Set(["high", "medium", "low"]);
|
|
31
|
+
const VALID_SOURCE = new Set(["correction", "confirmation", "observation"]);
|
|
32
|
+
const CONFIDENCE_ORDER = { high: 0, medium: 1, low: 2 };
|
|
33
|
+
|
|
34
|
+
// ---------------------------------------------------------------------------
|
|
35
|
+
// Internal helpers
|
|
36
|
+
// ---------------------------------------------------------------------------
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Resolve the skillsDir for the primary IDE target from agileflow.config.json.
|
|
40
|
+
* Falls back to `.claude/skills` if config is absent or unreadable.
|
|
41
|
+
*
|
|
42
|
+
* @param {string} projectDir
|
|
43
|
+
* @returns {string} absolute path to the skills directory
|
|
44
|
+
*/
|
|
45
|
+
function resolveSkillsDir(projectDir) {
|
|
46
|
+
let IDE_CAPABILITIES = null;
|
|
47
|
+
try {
|
|
48
|
+
({ IDE_CAPABILITIES } = require("../ide/capabilities.js"));
|
|
49
|
+
} catch {
|
|
50
|
+
// unavailable — use default
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
let cfg = {};
|
|
54
|
+
try {
|
|
55
|
+
const raw = fs.readFileSync(
|
|
56
|
+
path.join(projectDir, "agileflow.config.json"),
|
|
57
|
+
"utf8",
|
|
58
|
+
);
|
|
59
|
+
cfg = JSON.parse(raw);
|
|
60
|
+
} catch {
|
|
61
|
+
// config absent — use default
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
const primaryIde =
|
|
65
|
+
Array.isArray(cfg?.ide?.targets) && cfg.ide.targets.length > 0
|
|
66
|
+
? cfg.ide.targets[0]
|
|
67
|
+
: "claude-code";
|
|
68
|
+
|
|
69
|
+
const skillsDir =
|
|
70
|
+
IDE_CAPABILITIES?.[primaryIde]?.skillsDir ?? ".claude/skills";
|
|
71
|
+
return path.join(projectDir, skillsDir);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* Resolve the absolute path of a learnings file for a given skill.
|
|
76
|
+
* The `learns.file` field from frontmatter (e.g. `_learnings/research.yaml`)
|
|
77
|
+
* is resolved relative to the skill's installed directory.
|
|
78
|
+
*
|
|
79
|
+
* @param {string} skillsDir - absolute path to the IDE skills dir
|
|
80
|
+
* @param {string} skillName - e.g. "agileflow-research"
|
|
81
|
+
* @param {string} [learnFile] - relative path from frontmatter, e.g. "_learnings/research.yaml"
|
|
82
|
+
* @returns {string}
|
|
83
|
+
*/
|
|
84
|
+
function resolveLearnFile(skillsDir, skillName, learnFile) {
|
|
85
|
+
const file = learnFile || `_learnings/${skillName}.yaml`;
|
|
86
|
+
// Prevent path traversal: discard any leading ../ segments.
|
|
87
|
+
const safeParts = file.split("/").filter((p) => p && p !== ".." && p !== ".");
|
|
88
|
+
return path.join(skillsDir, skillName, ...safeParts);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
// ---------------------------------------------------------------------------
|
|
92
|
+
// Public API (new spec)
|
|
93
|
+
// ---------------------------------------------------------------------------
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* Read learnings for a skill.
|
|
97
|
+
*
|
|
98
|
+
* @param {string} skillName
|
|
99
|
+
* @param {string} [projectDir]
|
|
100
|
+
* @returns {Promise<{ entries: Array, version: number, skill: string }>}
|
|
101
|
+
*/
|
|
102
|
+
async function readLearnings(skillName, projectDir) {
|
|
103
|
+
const dir = projectDir || process.env.AGILEFLOW_PROJECT_DIR || process.cwd();
|
|
104
|
+
const skillsDir = resolveSkillsDir(dir);
|
|
105
|
+
// Look for the standard learnings file path.
|
|
106
|
+
const p = resolveLearnFile(skillsDir, skillName);
|
|
107
|
+
|
|
108
|
+
let text;
|
|
109
|
+
try {
|
|
110
|
+
text = await fs.promises.readFile(p, "utf8");
|
|
111
|
+
} catch (err) {
|
|
112
|
+
if (err.code === "ENOENT")
|
|
113
|
+
return { entries: [], version: 1, skill: skillName };
|
|
114
|
+
throw err;
|
|
115
|
+
}
|
|
116
|
+
if (!text.trim()) return { entries: [], version: 1, skill: skillName };
|
|
117
|
+
|
|
118
|
+
let doc;
|
|
119
|
+
try {
|
|
120
|
+
doc = yaml.load(text);
|
|
121
|
+
} catch (err) {
|
|
122
|
+
throw new Error(`learnings file ${p} is not valid YAML: ${err.message}`);
|
|
123
|
+
}
|
|
124
|
+
if (!doc || typeof doc !== "object" || !Array.isArray(doc.entries)) {
|
|
125
|
+
return { entries: [], version: 1, skill: skillName };
|
|
126
|
+
}
|
|
127
|
+
return {
|
|
128
|
+
entries: doc.entries,
|
|
129
|
+
version: doc.version ?? 1,
|
|
130
|
+
skill: doc.skill ?? skillName,
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
/**
|
|
135
|
+
* Append a new learning entry.
|
|
136
|
+
*
|
|
137
|
+
* @param {string} skillName
|
|
138
|
+
* @param {string} projectDir
|
|
139
|
+
* @param {{ observation: string, confidence?: string, source?: string }} entry
|
|
140
|
+
* @param {{ maxEntries?: number, learnFile?: string }} [opts]
|
|
141
|
+
* @returns {Promise<void>}
|
|
142
|
+
*/
|
|
143
|
+
async function appendLearning(skillName, projectDir, entry, opts = {}) {
|
|
144
|
+
const { observation, confidence = "medium", source = "observation" } = entry;
|
|
145
|
+
const { maxEntries = 30, learnFile } = opts;
|
|
146
|
+
|
|
147
|
+
if (typeof observation !== "string" || !observation.trim()) {
|
|
148
|
+
throw new Error("observation must be a non-empty string");
|
|
149
|
+
}
|
|
150
|
+
if (!VALID_CONFIDENCE.has(confidence)) {
|
|
151
|
+
throw new Error(
|
|
152
|
+
`confidence must be one of ${[...VALID_CONFIDENCE].join(", ")}`,
|
|
153
|
+
);
|
|
154
|
+
}
|
|
155
|
+
if (!VALID_SOURCE.has(source)) {
|
|
156
|
+
throw new Error(`source must be one of ${[...VALID_SOURCE].join(", ")}`);
|
|
157
|
+
}
|
|
158
|
+
if (!Number.isInteger(maxEntries) || maxEntries <= 0) {
|
|
159
|
+
throw new Error("maxEntries must be a positive integer");
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
const dir = projectDir || process.env.AGILEFLOW_PROJECT_DIR || process.cwd();
|
|
163
|
+
const skillsDir = resolveSkillsDir(dir);
|
|
164
|
+
const p = resolveLearnFile(skillsDir, skillName, learnFile);
|
|
165
|
+
|
|
166
|
+
// Ensure directory exists.
|
|
167
|
+
await fs.promises.mkdir(path.dirname(p), { recursive: true });
|
|
168
|
+
|
|
169
|
+
// Read existing entries (tolerate missing file).
|
|
170
|
+
let existing = { entries: [], version: 1, skill: skillName };
|
|
171
|
+
try {
|
|
172
|
+
const text = await fs.promises.readFile(p, "utf8");
|
|
173
|
+
if (text.trim()) {
|
|
174
|
+
const doc = yaml.load(text);
|
|
175
|
+
if (doc && Array.isArray(doc.entries)) {
|
|
176
|
+
existing = {
|
|
177
|
+
entries: doc.entries,
|
|
178
|
+
version: doc.version ?? 1,
|
|
179
|
+
skill: doc.skill ?? skillName,
|
|
180
|
+
};
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
} catch (err) {
|
|
184
|
+
if (err.code !== "ENOENT") throw err;
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
const id = crypto.randomBytes(3).toString("hex");
|
|
188
|
+
const created = new Date().toISOString().slice(0, 10);
|
|
189
|
+
|
|
190
|
+
existing.entries.push({
|
|
191
|
+
id,
|
|
192
|
+
confidence,
|
|
193
|
+
created,
|
|
194
|
+
observation: observation.trim(),
|
|
195
|
+
source,
|
|
196
|
+
});
|
|
197
|
+
|
|
198
|
+
// Trim oldest entries if over cap.
|
|
199
|
+
if (existing.entries.length > maxEntries) {
|
|
200
|
+
existing.entries.splice(0, existing.entries.length - maxEntries);
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
const header = `# Auto-generated by AgileFlow. Edit carefully — these shape skill behavior.\n`;
|
|
204
|
+
const doc = {
|
|
205
|
+
version: existing.version,
|
|
206
|
+
skill: skillName,
|
|
207
|
+
updated: created,
|
|
208
|
+
entries: existing.entries,
|
|
209
|
+
};
|
|
210
|
+
const body = yaml.dump(doc, { lineWidth: 120 });
|
|
211
|
+
|
|
212
|
+
// Atomic write via temp file + rename.
|
|
213
|
+
const tmp = `${p}.tmp-${process.pid}`;
|
|
214
|
+
await fs.promises.writeFile(tmp, header + body, "utf8");
|
|
215
|
+
await fs.promises.rename(tmp, p);
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
/**
|
|
219
|
+
* Format learnings as a markdown block for injection into context.
|
|
220
|
+
* Returns null if there are no entries.
|
|
221
|
+
* Sorts entries by confidence: high first, then medium, then low.
|
|
222
|
+
*
|
|
223
|
+
* @param {{ entries: Array<{confidence: string, observation: string}>, skill?: string }} learnings
|
|
224
|
+
* @returns {string|null}
|
|
225
|
+
*/
|
|
226
|
+
function formatLearningsBlock(learnings) {
|
|
227
|
+
if (
|
|
228
|
+
!learnings ||
|
|
229
|
+
!Array.isArray(learnings.entries) ||
|
|
230
|
+
learnings.entries.length === 0
|
|
231
|
+
) {
|
|
232
|
+
return null;
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
const sorted = [...learnings.entries].sort(
|
|
236
|
+
(a, b) =>
|
|
237
|
+
(CONFIDENCE_ORDER[a.confidence] ?? 99) -
|
|
238
|
+
(CONFIDENCE_ORDER[b.confidence] ?? 99),
|
|
239
|
+
);
|
|
240
|
+
|
|
241
|
+
const skillLabel = learnings.skill || "skill";
|
|
242
|
+
const lines = [
|
|
243
|
+
`## Learned preferences (${skillLabel})`,
|
|
244
|
+
"",
|
|
245
|
+
"From past sessions in this project:",
|
|
246
|
+
];
|
|
247
|
+
|
|
248
|
+
for (const e of sorted) {
|
|
249
|
+
lines.push(`- [${e.confidence} confidence] ${e.observation}`);
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
return lines.join("\n");
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
// ---------------------------------------------------------------------------
|
|
256
|
+
// Legacy API (kept for install.js compat)
|
|
257
|
+
// ---------------------------------------------------------------------------
|
|
258
|
+
|
|
259
|
+
const LEARNINGS_DIR_REL = path.join(".agileflow", "skills", "_learnings");
|
|
260
|
+
|
|
261
|
+
/**
|
|
262
|
+
* Resolve path for legacy scaffold usage.
|
|
263
|
+
* @param {string} projectRoot
|
|
264
|
+
* @param {string} file
|
|
265
|
+
*/
|
|
266
|
+
function learningsPath(projectRoot, file) {
|
|
267
|
+
const flat = path.basename(file || "").trim();
|
|
268
|
+
if (!flat || flat.startsWith(".")) {
|
|
269
|
+
throw new Error(`invalid learnings filename: ${JSON.stringify(file)}`);
|
|
270
|
+
}
|
|
271
|
+
return path.join(projectRoot, LEARNINGS_DIR_REL, flat);
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
/**
|
|
275
|
+
* Create an empty learnings file in the legacy location if it does not exist.
|
|
276
|
+
* Used by install.js to scaffold at install time.
|
|
277
|
+
*
|
|
278
|
+
* @param {string} projectRoot
|
|
279
|
+
* @param {string} skillId
|
|
280
|
+
* @param {string} file
|
|
281
|
+
* @returns {Promise<{ path: string, created: boolean }>}
|
|
282
|
+
*/
|
|
283
|
+
async function scaffoldLearnings(projectRoot, skillId, file) {
|
|
284
|
+
const p = learningsPath(projectRoot, file);
|
|
285
|
+
await fs.promises.mkdir(path.dirname(p), { recursive: true });
|
|
286
|
+
try {
|
|
287
|
+
await fs.promises.access(p);
|
|
288
|
+
return { path: p, created: false };
|
|
289
|
+
} catch (err) {
|
|
290
|
+
if (err.code !== "ENOENT") throw err;
|
|
291
|
+
}
|
|
292
|
+
const header = `# AgileFlow skill learnings — ${skillId}\n# Append-only signals; oldest trimmed when count exceeds maxEntries.\nentries: []\n`;
|
|
293
|
+
await fs.promises.writeFile(p, header, "utf8");
|
|
294
|
+
return { path: p, created: true };
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
module.exports = {
|
|
298
|
+
// New spec API
|
|
299
|
+
readLearnings,
|
|
300
|
+
appendLearning,
|
|
301
|
+
formatLearningsBlock,
|
|
302
|
+
resolveSkillsDir,
|
|
303
|
+
resolveLearnFile,
|
|
304
|
+
// Legacy (install.js compat)
|
|
305
|
+
scaffoldLearnings,
|
|
306
|
+
learningsPath,
|
|
307
|
+
LEARNINGS_DIR_REL,
|
|
308
|
+
};
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
/**
|
|
3
|
-
* Core hook: babysit-mentor-injector (SessionStart, HARD mode).
|
|
4
|
-
*
|
|
5
|
-
* Pre-loads the babysit mentor pattern into the session by printing
|
|
6
|
-
* its operating rules to stdout. Claude Code includes this in the
|
|
7
|
-
* session context, so Claude defaults to mentor behavior (smart
|
|
8
|
-
* AskUserQuestion at every decision point, plan mode for non-trivial
|
|
9
|
-
* tasks, expert delegation, task tracking, audits) without the user
|
|
10
|
-
* needing to type "walk me through".
|
|
11
|
-
*
|
|
12
|
-
* Disable this hook in agileflow.config.json if you want quick-edit
|
|
13
|
-
* mode by default — the agileflow-babysit-mentor skill still
|
|
14
|
-
* activates on its keyword triggers when needed.
|
|
15
|
-
*
|
|
16
|
-
* Always exits 0.
|
|
17
|
-
*/
|
|
18
|
-
process.stdout.write(`## AgileFlow Mentor Mode (default-on)
|
|
19
|
-
|
|
20
|
-
This session has the babysit-mentor pattern enabled. Apply these
|
|
21
|
-
rules unless the user explicitly opts out for a specific request:
|
|
22
|
-
|
|
23
|
-
1. **Smart AskUserQuestion at every decision point.** When the work
|
|
24
|
-
reaches a meaningful choice (which task, which approach, whether
|
|
25
|
-
to commit), end the response with the AskUserQuestion tool —
|
|
26
|
-
specific options with one marked (Recommended). Never generic
|
|
27
|
-
"Continue?" / "What next?".
|
|
28
|
-
|
|
29
|
-
2. **Plan mode for non-trivial implementation.** Call EnterPlanMode
|
|
30
|
-
for anything more than a typo/one-liner. Explore 3–5 files,
|
|
31
|
-
write the plan, ExitPlanMode. Skip for trivial fixes.
|
|
32
|
-
|
|
33
|
-
3. **Delegate complex work to domain experts.** Use the Task tool
|
|
34
|
-
with appropriate subagent_type (database / api / ui / testing /
|
|
35
|
-
security / etc.) for complex single-domain work. Use the
|
|
36
|
-
orchestrator for multi-domain features. Use multi-expert for
|
|
37
|
-
review/analysis questions.
|
|
38
|
-
|
|
39
|
-
4. **Track progress.** TaskCreate for any task with 3+ steps.
|
|
40
|
-
TaskUpdate as each completes. Don't batch.
|
|
41
|
-
|
|
42
|
-
5. **Suggest a logic audit after every implementation.** After tests
|
|
43
|
-
pass, present "🔍 Run logic audit on modified files" as
|
|
44
|
-
(Recommended). 5 analyzers catch edge cases tests miss.
|
|
45
|
-
|
|
46
|
-
6. **Suggest a flow audit when user-flows changed.** Plans for
|
|
47
|
-
non-trivial features must include a "Verify flow integrity"
|
|
48
|
-
step. After tests pass on flow-touching code, suggest
|
|
49
|
-
"🔄 Run flow audit" before commit.
|
|
50
|
-
|
|
51
|
-
To disable mentor mode entirely: edit agileflow.config.json,
|
|
52
|
-
set hooks.babysit-mentor-injector.enabled to false, run
|
|
53
|
-
\`agileflow update\`.
|
|
54
|
-
`);
|
|
55
|
-
process.exit(0);
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Personalization prompts — three Clack selects for tone, ask-level, verbosity.
|
|
3
|
-
*
|
|
4
|
-
* v4.0-alpha scope: three enum flags that render into a short
|
|
5
|
-
* `{{PERSONALIZATION_BLOCK}}` in each installed SKILL.md (the renderer lands
|
|
6
|
-
* in Phase 5). ADR-0015 covers the future XML-tag matrix.
|
|
7
|
-
*/
|
|
8
|
-
const prompts = require('@clack/prompts');
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* @param {import('../../runtime/config/defaults.js').Personalization} current
|
|
12
|
-
* @returns {Promise<import('../../runtime/config/defaults.js').Personalization>}
|
|
13
|
-
*/
|
|
14
|
-
async function personalizationPrompts(current) {
|
|
15
|
-
const tone = await prompts.select({
|
|
16
|
-
message: 'How should AgileFlow respond?',
|
|
17
|
-
options: [
|
|
18
|
-
{ value: 'concise', label: 'Concise', hint: 'Tight answers, low ceremony' },
|
|
19
|
-
{ value: 'detailed', label: 'Detailed', hint: 'More context and explanation' },
|
|
20
|
-
{ value: 'teaching', label: 'Teaching', hint: 'Walk through the why' },
|
|
21
|
-
],
|
|
22
|
-
initialValue: current.tone,
|
|
23
|
-
});
|
|
24
|
-
if (prompts.isCancel(tone)) {
|
|
25
|
-
prompts.cancel('Setup cancelled. No changes made.');
|
|
26
|
-
process.exit(1);
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
const askLevel = await prompts.select({
|
|
30
|
-
message: 'When should AgileFlow ask for confirmation?',
|
|
31
|
-
options: [
|
|
32
|
-
{ value: 'none', label: 'Never', hint: 'Fully autonomous' },
|
|
33
|
-
{ value: 'decision_points', label: 'At decision points', hint: 'Standard' },
|
|
34
|
-
{ value: 'always', label: 'Always', hint: 'Confirm before each step' },
|
|
35
|
-
],
|
|
36
|
-
initialValue: current.ask_level,
|
|
37
|
-
});
|
|
38
|
-
if (prompts.isCancel(askLevel)) {
|
|
39
|
-
prompts.cancel('Setup cancelled. No changes made.');
|
|
40
|
-
process.exit(1);
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
const verbosity = await prompts.select({
|
|
44
|
-
message: 'Output length preference?',
|
|
45
|
-
options: [
|
|
46
|
-
{ value: 'low', label: 'Low', hint: 'Short responses' },
|
|
47
|
-
{ value: 'medium', label: 'Medium', hint: 'Balanced' },
|
|
48
|
-
{ value: 'high', label: 'High', hint: 'Full context' },
|
|
49
|
-
],
|
|
50
|
-
initialValue: current.verbosity,
|
|
51
|
-
});
|
|
52
|
-
if (prompts.isCancel(verbosity)) {
|
|
53
|
-
prompts.cancel('Setup cancelled. No changes made.');
|
|
54
|
-
process.exit(1);
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
return {
|
|
58
|
-
tone: /** @type {any} */ (tone),
|
|
59
|
-
ask_level: /** @type {any} */ (askLevel),
|
|
60
|
-
verbosity: /** @type {any} */ (verbosity),
|
|
61
|
-
};
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
module.exports = { personalizationPrompts };
|