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.
Files changed (372) hide show
  1. package/CHANGELOG.md +51 -0
  2. package/content/plugins/accessibility/plugin.yaml +14 -0
  3. package/content/plugins/accessibility/skills/agileflow-accessibility/SKILL.md +392 -0
  4. package/content/plugins/accessibility/skills/agileflow-accessibility/references/aria-patterns.md +528 -0
  5. package/content/plugins/accessibility/skills/agileflow-accessibility/references/testing-checklist.md +457 -0
  6. package/content/plugins/accessibility/skills/agileflow-accessibility/references/wcag-guide.md +683 -0
  7. package/content/plugins/accessibility/skills/agileflow-accessibility/workflows/audit-page.md +310 -0
  8. package/content/plugins/accessibility/skills/agileflow-accessibility/workflows/implement-accessible-component.md +479 -0
  9. package/content/plugins/ads/agents/ads-audit-budget.md +185 -0
  10. package/content/plugins/ads/agents/ads-audit-compliance.md +171 -0
  11. package/content/plugins/ads/agents/ads-audit-creative.md +168 -0
  12. package/content/plugins/ads/agents/ads-audit-google.md +227 -0
  13. package/content/plugins/ads/agents/ads-audit-meta.md +184 -0
  14. package/content/plugins/ads/agents/ads-audit-tracking.md +205 -0
  15. package/content/plugins/ads/agents/ads-consensus.md +410 -0
  16. package/content/plugins/ads/agents/ads-generate.md +152 -0
  17. package/content/plugins/ads/agents/ads-performance-tracker.md +212 -0
  18. package/content/plugins/ads/plugin.yaml +23 -4
  19. package/content/plugins/ads/skills/agileflow-ads/SKILL.md +218 -0
  20. package/content/plugins/ads/skills/agileflow-ads/references/ad-copy-formula-guide.md +131 -0
  21. package/content/plugins/ads/skills/agileflow-ads/references/audience-targeting-guide.md +137 -0
  22. package/content/plugins/ads/skills/agileflow-ads/references/bid-strategy-guide.md +115 -0
  23. package/content/plugins/ads/skills/agileflow-ads/references/platform-benchmarks.md +100 -0
  24. package/content/plugins/ads/skills/agileflow-ads/workflows/audit.md +118 -0
  25. package/content/plugins/ads/skills/agileflow-ads/workflows/generate.md +84 -0
  26. package/content/plugins/audit/agents/a11y-analyzer-aria.md +173 -0
  27. package/content/plugins/audit/agents/a11y-analyzer-forms.md +173 -0
  28. package/content/plugins/audit/agents/a11y-analyzer-keyboard.md +183 -0
  29. package/content/plugins/audit/agents/a11y-analyzer-semantic.md +169 -0
  30. package/content/plugins/audit/agents/a11y-analyzer-visual.md +172 -0
  31. package/content/plugins/audit/agents/a11y-consensus.md +249 -0
  32. package/content/plugins/audit/agents/accessibility.md +558 -0
  33. package/content/plugins/audit/agents/api-quality-analyzer-conventions.md +156 -0
  34. package/content/plugins/audit/agents/api-quality-analyzer-docs.md +184 -0
  35. package/content/plugins/audit/agents/api-quality-analyzer-errors.md +191 -0
  36. package/content/plugins/audit/agents/api-quality-analyzer-pagination.md +179 -0
  37. package/content/plugins/audit/agents/api-quality-analyzer-versioning.md +150 -0
  38. package/content/plugins/audit/agents/api-quality-consensus.md +217 -0
  39. package/content/plugins/audit/agents/api-validator.md +191 -0
  40. package/content/plugins/audit/agents/arch-analyzer-circular.md +156 -0
  41. package/content/plugins/audit/agents/arch-analyzer-complexity.md +193 -0
  42. package/content/plugins/audit/agents/arch-analyzer-coupling.md +152 -0
  43. package/content/plugins/audit/agents/arch-analyzer-layering.md +160 -0
  44. package/content/plugins/audit/agents/arch-analyzer-patterns.md +210 -0
  45. package/content/plugins/audit/agents/arch-consensus.md +228 -0
  46. package/content/plugins/audit/agents/browser-qa.md +342 -0
  47. package/content/plugins/audit/agents/code-reviewer.md +298 -0
  48. package/content/plugins/audit/agents/completeness-analyzer-api.md +199 -0
  49. package/content/plugins/audit/agents/completeness-analyzer-conditional.md +211 -0
  50. package/content/plugins/audit/agents/completeness-analyzer-handlers.md +166 -0
  51. package/content/plugins/audit/agents/completeness-analyzer-imports.md +165 -0
  52. package/content/plugins/audit/agents/completeness-analyzer-routes.md +190 -0
  53. package/content/plugins/audit/agents/completeness-analyzer-state.md +196 -0
  54. package/content/plugins/audit/agents/completeness-analyzer-stubs.md +206 -0
  55. package/content/plugins/audit/agents/completeness-consensus.md +295 -0
  56. package/content/plugins/audit/agents/error-analyzer.md +213 -0
  57. package/content/plugins/audit/agents/flow-analyzer-authorization.md +182 -0
  58. package/content/plugins/audit/agents/flow-analyzer-discovery.md +174 -0
  59. package/content/plugins/audit/agents/flow-analyzer-errors.md +186 -0
  60. package/content/plugins/audit/agents/flow-analyzer-feedback.md +185 -0
  61. package/content/plugins/audit/agents/flow-analyzer-navigation.md +177 -0
  62. package/content/plugins/audit/agents/flow-analyzer-persistence.md +193 -0
  63. package/content/plugins/audit/agents/flow-analyzer-wiring.md +169 -0
  64. package/content/plugins/audit/agents/flow-consensus.md +237 -0
  65. package/content/plugins/audit/agents/legal-analyzer-a11y.md +114 -0
  66. package/content/plugins/audit/agents/legal-analyzer-ai.md +121 -0
  67. package/content/plugins/audit/agents/legal-analyzer-consumer.md +114 -0
  68. package/content/plugins/audit/agents/legal-analyzer-content.md +117 -0
  69. package/content/plugins/audit/agents/legal-analyzer-international.md +119 -0
  70. package/content/plugins/audit/agents/legal-analyzer-licensing.md +119 -0
  71. package/content/plugins/audit/agents/legal-analyzer-privacy.md +112 -0
  72. package/content/plugins/audit/agents/legal-analyzer-security.md +116 -0
  73. package/content/plugins/audit/agents/legal-analyzer-terms.md +115 -0
  74. package/content/plugins/audit/agents/legal-consensus.md +250 -0
  75. package/content/plugins/audit/agents/logic-analyzer-edge.md +179 -0
  76. package/content/plugins/audit/agents/logic-analyzer-flow.md +264 -0
  77. package/content/plugins/audit/agents/logic-analyzer-invariant.md +215 -0
  78. package/content/plugins/audit/agents/logic-analyzer-race.md +280 -0
  79. package/content/plugins/audit/agents/logic-analyzer-type.md +227 -0
  80. package/content/plugins/audit/agents/logic-consensus.md +259 -0
  81. package/content/plugins/audit/agents/perf-analyzer-assets.md +182 -0
  82. package/content/plugins/audit/agents/perf-analyzer-bundle.md +173 -0
  83. package/content/plugins/audit/agents/perf-analyzer-caching.md +170 -0
  84. package/content/plugins/audit/agents/perf-analyzer-compute.md +173 -0
  85. package/content/plugins/audit/agents/perf-analyzer-memory.md +193 -0
  86. package/content/plugins/audit/agents/perf-analyzer-network.md +165 -0
  87. package/content/plugins/audit/agents/perf-analyzer-queries.md +162 -0
  88. package/content/plugins/audit/agents/perf-analyzer-rendering.md +168 -0
  89. package/content/plugins/audit/agents/perf-consensus.md +287 -0
  90. package/content/plugins/audit/agents/qa.md +820 -0
  91. package/content/plugins/audit/agents/quality-analyzer-comments.md +159 -0
  92. package/content/plugins/audit/agents/quality-analyzer-duplication.md +184 -0
  93. package/content/plugins/audit/agents/quality-analyzer-naming.md +160 -0
  94. package/content/plugins/audit/agents/quality-consensus.md +241 -0
  95. package/content/plugins/audit/agents/schema-validator.md +473 -0
  96. package/content/plugins/audit/agents/security-analyzer-api.md +210 -0
  97. package/content/plugins/audit/agents/security-analyzer-auth.md +169 -0
  98. package/content/plugins/audit/agents/security-analyzer-authz.md +180 -0
  99. package/content/plugins/audit/agents/security-analyzer-deps.md +153 -0
  100. package/content/plugins/audit/agents/security-analyzer-infra.md +184 -0
  101. package/content/plugins/audit/agents/security-analyzer-injection.md +155 -0
  102. package/content/plugins/audit/agents/security-analyzer-input.md +201 -0
  103. package/content/plugins/audit/agents/security-analyzer-secrets.md +183 -0
  104. package/content/plugins/audit/agents/security-consensus.md +283 -0
  105. package/content/plugins/audit/agents/test-analyzer-assertions.md +188 -0
  106. package/content/plugins/audit/agents/test-analyzer-coverage.md +189 -0
  107. package/content/plugins/audit/agents/test-analyzer-fragility.md +193 -0
  108. package/content/plugins/audit/agents/test-analyzer-integration.md +161 -0
  109. package/content/plugins/audit/agents/test-analyzer-maintenance.md +180 -0
  110. package/content/plugins/audit/agents/test-analyzer-mocking.md +188 -0
  111. package/content/plugins/audit/agents/test-analyzer-patterns.md +196 -0
  112. package/content/plugins/audit/agents/test-analyzer-structure.md +184 -0
  113. package/content/plugins/audit/agents/test-consensus.md +301 -0
  114. package/content/plugins/audit/agents/testing.md +561 -0
  115. package/content/plugins/audit/agents/ui-validator.md +344 -0
  116. package/content/plugins/audit/plugin.yaml +186 -5
  117. package/content/plugins/audit/skills/agileflow-audit/SKILL.md +113 -0
  118. package/content/plugins/audit/skills/agileflow-audit/references/audit-depth-guide.md +151 -0
  119. package/content/plugins/audit/skills/agileflow-audit/references/dependency-risk-guide.md +139 -0
  120. package/content/plugins/audit/skills/agileflow-audit/references/owasp-top10.md +120 -0
  121. package/content/plugins/audit/skills/agileflow-audit/references/performance-budget-guide.md +143 -0
  122. package/content/plugins/audit/skills/agileflow-audit/references/wcag-criteria.md +117 -0
  123. package/content/plugins/audit/skills/agileflow-audit/workflows/run-audit.md +52 -0
  124. package/content/plugins/audit/skills/agileflow-audit/workflows/tdd.md +66 -0
  125. package/content/plugins/core/agents/adr-writer.md +521 -0
  126. package/content/plugins/core/agents/epic-planner.md +520 -0
  127. package/content/plugins/core/agents/mentor.md +709 -0
  128. package/content/plugins/core/agents/orchestrator.md +776 -0
  129. package/content/plugins/core/agents/team-coordinator.md +334 -0
  130. package/content/plugins/core/agents/team-lead.md +181 -0
  131. package/content/plugins/core/agents/workspace-orchestrator.md +146 -0
  132. package/content/plugins/core/hooks/context-loader.js +31 -4
  133. package/content/plugins/core/hooks/damage-control-bash.js +10 -2
  134. package/content/plugins/core/hooks/damage-control-edit.js +4 -1
  135. package/content/plugins/core/hooks/damage-control-patterns.yaml +1 -1
  136. package/content/plugins/core/hooks/damage-control-write.js +4 -1
  137. package/content/plugins/core/hooks/{pre-compact-state.js → post-compact-state.js} +25 -8
  138. package/content/plugins/core/hooks/preferences-injector.js +352 -0
  139. package/content/plugins/core/plugin.yaml +24 -28
  140. package/content/plugins/core/skills/agileflow-adr/SKILL.md +34 -8
  141. package/content/plugins/core/skills/agileflow-adr/references/madr-format-guide.md +86 -0
  142. package/content/plugins/core/skills/agileflow-adr/workflows/write-adr.md +57 -0
  143. package/content/plugins/core/skills/agileflow-babysit-mentor/SKILL.md +94 -27
  144. package/content/plugins/core/skills/agileflow-babysit-mentor/references/mentor-decision-guide.md +81 -0
  145. package/content/plugins/core/skills/agileflow-babysit-mentor/workflows/mentor-session.md +79 -0
  146. package/content/plugins/core/skills/agileflow-epic-planner/SKILL.md +37 -7
  147. package/content/plugins/core/skills/agileflow-epic-planner/references/epic-sizing-guide.md +81 -0
  148. package/content/plugins/core/skills/agileflow-epic-planner/workflows/plan-epic.md +55 -0
  149. package/content/plugins/core/skills/agileflow-status-updater/SKILL.md +36 -20
  150. package/content/plugins/core/skills/agileflow-status-updater/references/status-transitions.md +89 -0
  151. package/content/plugins/core/skills/agileflow-status-updater/workflows/update-status.md +56 -0
  152. package/content/plugins/core/skills/agileflow-story-writer/SKILL.md +39 -114
  153. package/content/plugins/core/skills/agileflow-story-writer/references/estimation-reference.md +36 -0
  154. package/content/plugins/core/skills/agileflow-story-writer/references/story-template.md +92 -0
  155. package/content/plugins/core/skills/agileflow-story-writer/workflows/write-story.md +138 -0
  156. package/content/plugins/council/agents/council-advocate.md +223 -0
  157. package/content/plugins/council/agents/council-analyst.md +278 -0
  158. package/content/plugins/council/agents/council-compounder.md +204 -0
  159. package/content/plugins/council/agents/council-contrarian.md +217 -0
  160. package/content/plugins/council/agents/council-moonshot.md +217 -0
  161. package/content/plugins/council/agents/council-optimist.md +185 -0
  162. package/content/plugins/council/agents/council-revenue.md +200 -0
  163. package/content/plugins/council/agents/council-technical.md +218 -0
  164. package/content/plugins/council/agents/multi-expert.md +334 -0
  165. package/content/plugins/council/plugin.yaml +23 -4
  166. package/content/plugins/council/skills/agileflow-council/SKILL.md +102 -0
  167. package/content/plugins/council/skills/agileflow-council/references/decision-log-template.md +109 -0
  168. package/content/plugins/council/skills/agileflow-council/references/perspective-guide.md +104 -0
  169. package/content/plugins/council/skills/agileflow-council/references/when-to-convene-guide.md +112 -0
  170. package/content/plugins/council/skills/agileflow-council/workflows/convene.md +73 -0
  171. package/content/plugins/council/skills/agileflow-council/workflows/multi-expert.md +75 -0
  172. package/content/plugins/database/plugin.yaml +14 -0
  173. package/content/plugins/database/skills/agileflow-database/SKILL.md +284 -0
  174. package/content/plugins/database/skills/agileflow-database/references/indexing-guide.md +313 -0
  175. package/content/plugins/database/skills/agileflow-database/references/migration-guide.md +328 -0
  176. package/content/plugins/database/skills/agileflow-database/references/schema-design-guide.md +467 -0
  177. package/content/plugins/database/skills/agileflow-database/workflows/design-schema.md +213 -0
  178. package/content/plugins/database/skills/agileflow-database/workflows/optimize-query.md +253 -0
  179. package/content/plugins/debugging/plugin.yaml +14 -0
  180. package/content/plugins/debugging/skills/agileflow-debug/SKILL.md +236 -0
  181. package/content/plugins/debugging/skills/agileflow-debug/references/common-patterns.md +350 -0
  182. package/content/plugins/debugging/skills/agileflow-debug/references/debugging-strategies.md +328 -0
  183. package/content/plugins/debugging/skills/agileflow-debug/workflows/debug-issue.md +187 -0
  184. package/content/plugins/debugging/skills/agileflow-debug/workflows/reproduce-bug.md +194 -0
  185. package/content/plugins/delivery/agents/ci.md +547 -0
  186. package/content/plugins/delivery/agents/devops.md +789 -0
  187. package/content/plugins/delivery/plugin.yaml +19 -0
  188. package/content/plugins/delivery/skills/agileflow-delivery/SKILL.md +111 -0
  189. package/content/plugins/delivery/skills/agileflow-delivery/references/changelog-format-guide.md +133 -0
  190. package/content/plugins/delivery/skills/agileflow-delivery/references/ci-pipeline-guide.md +158 -0
  191. package/content/plugins/delivery/skills/agileflow-delivery/references/pr-checklist-guide.md +133 -0
  192. package/content/plugins/delivery/skills/agileflow-delivery/references/release-checklist.md +142 -0
  193. package/content/plugins/delivery/skills/agileflow-delivery/workflows/changelog.md +72 -0
  194. package/content/plugins/delivery/skills/agileflow-delivery/workflows/deploy.md +74 -0
  195. package/content/plugins/delivery/skills/agileflow-delivery/workflows/pr.md +75 -0
  196. package/content/plugins/docs/agents/documentation.md +544 -0
  197. package/content/plugins/docs/agents/readme-updater.md +640 -0
  198. package/content/plugins/docs/plugin.yaml +19 -0
  199. package/content/plugins/docs/skills/agileflow-docs/SKILL.md +106 -0
  200. package/content/plugins/docs/skills/agileflow-docs/references/api-doc-template.md +167 -0
  201. package/content/plugins/docs/skills/agileflow-docs/references/doc-types-guide.md +141 -0
  202. package/content/plugins/docs/skills/agileflow-docs/references/readme-template.md +156 -0
  203. package/content/plugins/docs/skills/agileflow-docs/workflows/readme-sync.md +57 -0
  204. package/content/plugins/docs/skills/agileflow-docs/workflows/sync.md +64 -0
  205. package/content/plugins/engineering/agents/api.md +718 -0
  206. package/content/plugins/engineering/agents/codebase-query.md +285 -0
  207. package/content/plugins/engineering/agents/compliance.md +559 -0
  208. package/content/plugins/engineering/agents/database.md +644 -0
  209. package/content/plugins/engineering/agents/integrations.md +644 -0
  210. package/content/plugins/engineering/agents/mobile.md +552 -0
  211. package/content/plugins/engineering/agents/monitoring.md +585 -0
  212. package/content/plugins/engineering/agents/performance.md +529 -0
  213. package/content/plugins/engineering/agents/refactor.md +592 -0
  214. package/content/plugins/engineering/agents/security.md +524 -0
  215. package/content/plugins/engineering/agents/ui.md +1336 -0
  216. package/content/plugins/engineering/plugin.yaml +37 -0
  217. package/content/plugins/engineering/skills/agileflow-engineering/SKILL.md +127 -0
  218. package/content/plugins/engineering/skills/agileflow-engineering/references/code-review-guide.md +126 -0
  219. package/content/plugins/engineering/skills/agileflow-engineering/references/domain-routing-guide.md +89 -0
  220. package/content/plugins/engineering/skills/agileflow-engineering/references/refactoring-guide.md +136 -0
  221. package/content/plugins/engineering/skills/agileflow-engineering/workflows/diagnose.md +63 -0
  222. package/content/plugins/engineering/skills/agileflow-engineering/workflows/impact.md +60 -0
  223. package/content/plugins/ideation/agents/brainstorm-analyzer-features.md +179 -0
  224. package/content/plugins/ideation/agents/brainstorm-analyzer-growth.md +169 -0
  225. package/content/plugins/ideation/agents/brainstorm-analyzer-integration.md +181 -0
  226. package/content/plugins/ideation/agents/brainstorm-analyzer-market.md +150 -0
  227. package/content/plugins/ideation/agents/brainstorm-analyzer-ux.md +180 -0
  228. package/content/plugins/ideation/agents/brainstorm-consensus.md +245 -0
  229. package/content/plugins/ideation/agents/design.md +568 -0
  230. package/content/plugins/ideation/agents/product.md +582 -0
  231. package/content/plugins/ideation/plugin.yaml +31 -0
  232. package/content/plugins/ideation/skills/agileflow-ideation/SKILL.md +109 -0
  233. package/content/plugins/ideation/skills/agileflow-ideation/references/brainstorm-techniques.md +138 -0
  234. package/content/plugins/ideation/skills/agileflow-ideation/references/competitive-analysis-template.md +148 -0
  235. package/content/plugins/ideation/skills/agileflow-ideation/references/feature-prioritization-guide.md +147 -0
  236. package/content/plugins/ideation/skills/agileflow-ideation/references/user-story-patterns.md +152 -0
  237. package/content/plugins/ideation/skills/agileflow-ideation/workflows/features.md +65 -0
  238. package/content/plugins/ideation/skills/agileflow-ideation/workflows/ideate.md +54 -0
  239. package/content/plugins/migration/agents/datamigration.md +757 -0
  240. package/content/plugins/migration/plugin.yaml +17 -0
  241. package/content/plugins/migration/skills/agileflow-migration/SKILL.md +106 -0
  242. package/content/plugins/migration/skills/agileflow-migration/references/data-validation-checklist.md +154 -0
  243. package/content/plugins/migration/skills/agileflow-migration/references/migration-patterns.md +209 -0
  244. package/content/plugins/migration/skills/agileflow-migration/references/rollback-playbook.md +171 -0
  245. package/content/plugins/migration/skills/agileflow-migration/references/version-compatibility-matrix.md +155 -0
  246. package/content/plugins/migration/skills/agileflow-migration/workflows/plan.md +73 -0
  247. package/content/plugins/migration/skills/agileflow-migration/workflows/validate.md +71 -0
  248. package/content/plugins/performance/plugin.yaml +14 -0
  249. package/content/plugins/performance/skills/agileflow-performance/SKILL.md +224 -0
  250. package/content/plugins/performance/skills/agileflow-performance/references/optimization-patterns.md +554 -0
  251. package/content/plugins/performance/skills/agileflow-performance/references/profiling-guide.md +383 -0
  252. package/content/plugins/performance/skills/agileflow-performance/references/web-vitals-guide.md +360 -0
  253. package/content/plugins/performance/skills/agileflow-performance/workflows/improve-web-vitals.md +344 -0
  254. package/content/plugins/performance/skills/agileflow-performance/workflows/profile-and-fix.md +254 -0
  255. package/content/plugins/planning/agents/analytics.md +670 -0
  256. package/content/plugins/planning/agents/rlm-subcore.md +215 -0
  257. package/content/plugins/planning/plugin.yaml +19 -0
  258. package/content/plugins/planning/skills/agileflow-planning/SKILL.md +111 -0
  259. package/content/plugins/planning/skills/agileflow-planning/references/estimation-guide.md +114 -0
  260. package/content/plugins/planning/skills/agileflow-planning/references/rpi-workflow.md +119 -0
  261. package/content/plugins/planning/skills/agileflow-planning/references/sprint-planning-guide.md +145 -0
  262. package/content/plugins/planning/skills/agileflow-planning/workflows/impact.md +63 -0
  263. package/content/plugins/planning/skills/agileflow-planning/workflows/rpi.md +104 -0
  264. package/content/plugins/psychology/plugin.yaml +14 -0
  265. package/content/plugins/psychology/skills/agileflow-retention/SKILL.md +252 -0
  266. package/content/plugins/psychology/skills/agileflow-retention/references/competitor-analysis.md +240 -0
  267. package/content/plugins/psychology/skills/agileflow-retention/references/psychology-models.md +349 -0
  268. package/content/plugins/psychology/skills/agileflow-retention/references/retention-patterns.md +279 -0
  269. package/content/plugins/psychology/skills/agileflow-retention/workflows/design-retention-feature.md +287 -0
  270. package/content/plugins/psychology/skills/agileflow-retention/workflows/retention-audit.md +259 -0
  271. package/content/plugins/refactoring/plugin.yaml +14 -0
  272. package/content/plugins/refactoring/skills/agileflow-refactor/SKILL.md +235 -0
  273. package/content/plugins/refactoring/skills/agileflow-refactor/references/refactoring-patterns.md +405 -0
  274. package/content/plugins/refactoring/skills/agileflow-refactor/references/safety-checks.md +177 -0
  275. package/content/plugins/refactoring/skills/agileflow-refactor/workflows/extract-module.md +226 -0
  276. package/content/plugins/refactoring/skills/agileflow-refactor/workflows/safe-refactor.md +169 -0
  277. package/content/plugins/research/agents/research.md +503 -0
  278. package/content/plugins/research/plugin.yaml +17 -0
  279. package/content/plugins/research/skills/agileflow-research/SKILL.md +110 -0
  280. package/content/plugins/research/skills/agileflow-research/references/knowledge-decay-guide.md +121 -0
  281. package/content/plugins/research/skills/agileflow-research/references/research-prompt-guide.md +141 -0
  282. package/content/plugins/research/skills/agileflow-research/references/synthesis-template.md +154 -0
  283. package/content/plugins/research/skills/agileflow-research/workflows/analyze.md +60 -0
  284. package/content/plugins/research/skills/agileflow-research/workflows/ask.md +64 -0
  285. package/content/plugins/research/skills/agileflow-research/workflows/import.md +66 -0
  286. package/content/plugins/research/skills/agileflow-research/workflows/synthesize.md +66 -0
  287. package/content/plugins/reviews/plugin.yaml +14 -0
  288. package/content/plugins/reviews/skills/agileflow-pr-reviewer/SKILL.md +241 -0
  289. package/content/plugins/reviews/skills/agileflow-pr-reviewer/references/review-checklist.md +200 -0
  290. package/content/plugins/reviews/skills/agileflow-pr-reviewer/references/security-patterns.md +328 -0
  291. package/content/plugins/reviews/skills/agileflow-pr-reviewer/workflows/review-pr.md +153 -0
  292. package/content/plugins/reviews/skills/agileflow-pr-reviewer/workflows/security-review.md +177 -0
  293. package/content/plugins/seo/agents/seo-analyzer-content.md +169 -0
  294. package/content/plugins/seo/agents/seo-analyzer-images.md +198 -0
  295. package/content/plugins/seo/agents/seo-analyzer-performance.md +217 -0
  296. package/content/plugins/seo/agents/seo-analyzer-schema.md +184 -0
  297. package/content/plugins/seo/agents/seo-analyzer-sitemap.md +177 -0
  298. package/content/plugins/seo/agents/seo-analyzer-technical.md +151 -0
  299. package/content/plugins/seo/agents/seo-consensus.md +304 -0
  300. package/content/plugins/seo/plugin.yaml +19 -4
  301. package/content/plugins/seo/skills/agileflow-seo/SKILL.md +188 -0
  302. package/content/plugins/seo/skills/agileflow-seo/references/cwv-thresholds.md +110 -0
  303. package/content/plugins/seo/skills/agileflow-seo/references/eeat-framework.md +144 -0
  304. package/content/plugins/seo/skills/agileflow-seo/references/keyword-research-guide.md +125 -0
  305. package/content/plugins/seo/skills/agileflow-seo/references/schema-types.md +139 -0
  306. package/content/plugins/seo/skills/agileflow-seo/references/technical-seo-checklist.md +139 -0
  307. package/content/plugins/seo/skills/agileflow-seo/workflows/audit.md +98 -0
  308. package/content/plugins/seo/skills/agileflow-seo/workflows/page.md +118 -0
  309. package/content/plugins/testing/plugin.yaml +16 -0
  310. package/content/plugins/testing/skills/agileflow-test-writer/SKILL.md +260 -0
  311. package/content/plugins/testing/skills/agileflow-test-writer/references/coverage-targets.md +239 -0
  312. package/content/plugins/testing/skills/agileflow-test-writer/references/test-patterns.md +420 -0
  313. package/content/plugins/testing/skills/agileflow-test-writer/workflows/add-coverage.md +154 -0
  314. package/content/plugins/testing/skills/agileflow-test-writer/workflows/write-tests-from-ac.md +225 -0
  315. package/package.json +2 -2
  316. package/src/cli/commands/doctor.js +818 -30
  317. package/src/cli/commands/hook.js +17 -14
  318. package/src/cli/commands/launch.js +1454 -0
  319. package/src/cli/commands/learn.js +149 -0
  320. package/src/cli/commands/plugins.js +113 -0
  321. package/src/cli/commands/setup.js +455 -110
  322. package/src/cli/commands/skills.js +324 -0
  323. package/src/cli/commands/status.js +8 -10
  324. package/src/cli/commands/update.js +76 -15
  325. package/src/cli/index.js +90 -26
  326. package/src/cli/wizard/babysit-mode-picker.js +192 -0
  327. package/src/cli/wizard/behaviors-picker.js +208 -54
  328. package/src/cli/wizard/ide-picker.js +40 -28
  329. package/src/cli/wizard/install-scope-picker.js +57 -0
  330. package/src/cli/wizard/launch-alias-picker.js +50 -0
  331. package/src/cli/wizard/launch-cli-picker.js +129 -0
  332. package/src/cli/wizard/launch-tmux-picker.js +133 -0
  333. package/src/cli/wizard/learnings-picker.js +40 -0
  334. package/src/cli/wizard/plugin-picker.js +47 -16
  335. package/src/lib/brand.js +116 -0
  336. package/src/lib/errors.js +120 -0
  337. package/src/lib/path-check.js +39 -0
  338. package/src/runtime/config/defaults.js +22 -17
  339. package/src/runtime/config/loader.js +77 -8
  340. package/src/runtime/config/schema.json +43 -16
  341. package/src/runtime/config/writer.js +3 -1
  342. package/src/runtime/ide/babysit-skill.js +202 -0
  343. package/src/runtime/ide/capabilities.js +84 -29
  344. package/src/runtime/ide/claude-code-content.js +177 -0
  345. package/src/runtime/ide/claude-code-settings.js +67 -29
  346. package/src/runtime/ide/claude-code-skills.js +47 -32
  347. package/src/runtime/ide/codex-config.js +295 -0
  348. package/src/runtime/installer/install.js +252 -24
  349. package/src/runtime/launch/alias-installer.js +191 -0
  350. package/src/runtime/launch/cli-resume.js +244 -0
  351. package/src/runtime/launch/closed-windows.js +338 -0
  352. package/src/runtime/launch/defaults.js +66 -0
  353. package/src/runtime/launch/detect-clis.js +69 -0
  354. package/src/runtime/launch/doctor.js +464 -0
  355. package/src/runtime/launch/exec-wrapper.js +114 -0
  356. package/src/runtime/launch/parallel-session.js +247 -0
  357. package/src/runtime/launch/prefs.js +211 -0
  358. package/src/runtime/launch/project-prefs.js +234 -0
  359. package/src/runtime/launch/resolve-cli.js +56 -0
  360. package/src/runtime/launch/restore.js +152 -0
  361. package/src/runtime/launch/schema.json +75 -0
  362. package/src/runtime/launch/session-lifecycle.js +313 -0
  363. package/src/runtime/launch/session-registry.js +401 -0
  364. package/src/runtime/launch/spawn.js +103 -0
  365. package/src/runtime/launch/tabs.js +350 -0
  366. package/src/runtime/launch/tmux.js +764 -0
  367. package/src/runtime/launch/worktree.js +260 -0
  368. package/src/runtime/plugins/registry.js +16 -11
  369. package/src/runtime/plugins/validator.js +57 -43
  370. package/src/runtime/skills/learnings.js +308 -0
  371. package/content/plugins/core/hooks/babysit-mentor-injector.js +0 -55
  372. 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 };