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,350 @@
1
+ /**
2
+ * Tab (tmux window) support for `agileflow launch`.
3
+ *
4
+ * Ports the v3 `af` script's tab strip + window keybinds onto v4's
5
+ * preset/runner architecture.
6
+ *
7
+ * Two responsibilities, kept pure:
8
+ *
9
+ * 1. `buildTabFormat({ theme, tmuxVersion })` — returns the string
10
+ * that goes into `status-format[1]`. On tmux 3.2+ this is a
11
+ * 5-tier cascading format that dynamically compacts as more
12
+ * windows open. On older tmux it falls back to a single-tier
13
+ * themed format (the `#{e|...}` numeric operators don't exist
14
+ * before 3.2 and would render as literal text).
15
+ *
16
+ * 2. `TAB_KEYBINDS` — the keybind entries (mergeable into the
17
+ * `default` preset in tmux.js) that wire Alt+c / Alt+1..9 /
18
+ * Alt+, / Alt+w / Alt+W / Alt+T to window operations. Bindings
19
+ * that need to bookkeep (close + restore) call back into
20
+ * `agileflow launch __close-window` / `__restore-window` so the
21
+ * closed-windows log stays in sync.
22
+ *
23
+ * Out of scope here (explicitly): the auto-naming background watcher
24
+ * v3 had for Claude task names. Users rename with Alt+, when they
25
+ * care; tmux's default name (the running command) covers the rest.
26
+ */
27
+
28
+ /**
29
+ * v3-equivalent theme: Tokyo-Night-ish dark background with the
30
+ * AgileFlow brand orange #e8683a as the active-tab accent. Held as a
31
+ * const rather than reading from prefs so the runtime doesn't have to
32
+ * thread the cascade through every keybind apply. A future prefs key
33
+ * `tmux.theme = "auto"` can override at the call site.
34
+ *
35
+ * Color tokens follow tmux's `#[fg=...]` / `#[bg=...]` style spec.
36
+ *
37
+ * @typedef {Object} TabTheme
38
+ * @property {string} activeFg - text color in active tab number chip
39
+ * @property {string} activeBg - background of active tab number chip (brand)
40
+ * @property {string} activeNameFg - text color in active tab name segment
41
+ * @property {string} activeNameBg - background of active tab name segment
42
+ * @property {string} inactiveFg - inactive tab text
43
+ * @property {string} inactiveDim - extra-dim inactive (tier 4 fallback)
44
+ * @property {string} stripBg - tab strip background
45
+ */
46
+
47
+ /** @type {TabTheme} */
48
+ const DEFAULT_TAB_THEME = {
49
+ activeFg: "#1a1b26",
50
+ activeBg: "#e8683a",
51
+ activeNameFg: "#e0e0e0",
52
+ activeNameBg: "#2d2f3a",
53
+ inactiveFg: "#8a8a8a",
54
+ inactiveDim: "#565a6e",
55
+ stripBg: "#1a1b26",
56
+ };
57
+
58
+ /**
59
+ * Tier table. Each entry is one branch of the cascading
60
+ * `#{e|<=:#{e|*:session_windows,maxAvgWidth},client_width}` check —
61
+ * the most generous tier whose `session_windows * maxAvgWidth` fits
62
+ * the current client width wins. Pure data; consumed by
63
+ * `buildTabFormat` to assemble the format string.
64
+ *
65
+ * `activeName` / `inactiveName` are character budgets passed to tmux's
66
+ * `#{=N:window_name}` truncation. 0 means "drop the name entirely,
67
+ * show only the index".
68
+ *
69
+ * Constants chosen to match v3's empirically-tuned breakpoints.
70
+ *
71
+ * @type {Array<{ maxAvgWidth: number, activeName: number, inactiveName: number, label: string }>}
72
+ */
73
+ const TIERS = [
74
+ { maxAvgWidth: 21, activeName: 15, inactiveName: 8, label: "lavish" },
75
+ { maxAvgWidth: 14, activeName: 8, inactiveName: 6, label: "normal" },
76
+ { maxAvgWidth: 10, activeName: 4, inactiveName: 3, label: "cramped" },
77
+ { maxAvgWidth: 7, activeName: 0, inactiveName: 0, label: "numeric" },
78
+ { maxAvgWidth: 0, activeName: 0, inactiveName: 0, label: "fallback" },
79
+ ];
80
+
81
+ /**
82
+ * tmux 3.2 introduced the `#{e|OP:a,b}` numeric operators that the
83
+ * cascading tier format depends on. Older tmux would render `#{e|...}`
84
+ * as literal text, so on those we emit the single-tier format used
85
+ * by v3 before commit b17fb803.
86
+ */
87
+ const COMPACTION_MIN_TMUX = { major: 3, minor: 2 };
88
+
89
+ /**
90
+ * Parse a `tmux -V` output string like "tmux 3.3a\n" or "tmux next-3.4".
91
+ * Returns null when the input isn't recognizable. Re-implemented here
92
+ * (instead of imported from doctor.js) to keep tabs.js self-contained
93
+ * for testing — both copies use the same regex and behave identically.
94
+ *
95
+ * @param {string} raw
96
+ * @returns {{ major: number, minor: number } | null}
97
+ */
98
+ function parseTmuxVersion(raw) {
99
+ if (typeof raw !== "string") return null;
100
+ const match = raw.match(/(\d+)\.(\d+)/);
101
+ if (!match) return null;
102
+ return { major: Number(match[1]), minor: Number(match[2]) };
103
+ }
104
+
105
+ /**
106
+ * @param {{ major: number, minor: number }} a
107
+ * @param {{ major: number, minor: number }} b
108
+ * @returns {number}
109
+ */
110
+ function compareVersions(a, b) {
111
+ if (a.major !== b.major) return a.major - b.major;
112
+ return a.minor - b.minor;
113
+ }
114
+
115
+ /**
116
+ * Whether the supplied tmux version supports the cascading compaction
117
+ * format. Treat unknown (null) as "too old" so we degrade rather than
118
+ * emit a broken format string.
119
+ *
120
+ * @param {{ major: number, minor: number } | null} v
121
+ * @returns {boolean}
122
+ */
123
+ function supportsCompaction(v) {
124
+ if (!v) return false;
125
+ return compareVersions(v, COMPACTION_MIN_TMUX) >= 0;
126
+ }
127
+
128
+ /**
129
+ * Active-tab segment for a given tier. Pure string assembly — no tmux
130
+ * runtime involved. Returns the full `#[...]#{=N:window_name}` chunk
131
+ * that goes inside the active-window branch of `#{?window_active,...,...}`.
132
+ *
133
+ * @param {{ maxAvgWidth: number, activeName: number }} tier
134
+ * @param {TabTheme} t
135
+ * @returns {string}
136
+ */
137
+ function activeSegment(tier, t) {
138
+ if (tier.activeName === 0) {
139
+ // Numeric only — single chip, no name segment.
140
+ return `#[fg=${t.activeFg} bg=${t.activeBg} bold]#I#[fg=default bg=default]`;
141
+ }
142
+ // Two-segment chip: orange index, dark name pill, then back to strip bg.
143
+ // Spacing widens at the lavish tier (` ${idx} ${name} ` with two
144
+ // leading + two trailing spaces); shrinks to a single space pair at
145
+ // the cramped tier so we stay visually aligned with the inactive
146
+ // tabs but don't overflow.
147
+ const idxPad = tier.maxAvgWidth >= 21 ? " " : " ";
148
+ return (
149
+ `#[fg=${t.activeFg} bg=${t.activeBg} bold]${idxPad}#I${idxPad}` +
150
+ `#[fg=${t.activeBg} bg=${t.activeNameBg}]` +
151
+ `#[fg=${t.activeNameFg}] #{=${tier.activeName}:window_name} ` +
152
+ `#[bg=${t.stripBg} fg=${t.activeNameBg}]`
153
+ );
154
+ }
155
+
156
+ /**
157
+ * Inactive-tab segment for a given tier. Same shape as activeSegment
158
+ * but rendered dimmer; the numeric-only fallback uses inactiveDim to
159
+ * push it visually further back.
160
+ *
161
+ * @param {{ maxAvgWidth: number, inactiveName: number, label: string }} tier
162
+ * @param {TabTheme} t
163
+ * @returns {string}
164
+ */
165
+ function inactiveSegment(tier, t) {
166
+ if (tier.inactiveName === 0) {
167
+ const fg = tier.label === "fallback" ? t.inactiveDim : t.inactiveFg;
168
+ return `#[fg=${fg}]#I `;
169
+ }
170
+ const pad = tier.maxAvgWidth >= 21 ? " " : " ";
171
+ // `#{=|N|...:window_name}` is tmux's "truncate with ellipsis" form;
172
+ // visually distinguishes "I shortened this" from "this name happens
173
+ // to be N chars". Cramped tier uses plain truncation (no ellipsis)
174
+ // because three chars + `...` would leave no actual name visible.
175
+ const truncated =
176
+ tier.inactiveName >= 6
177
+ ? `#{=|${tier.inactiveName}|...:window_name}`
178
+ : `#{=${tier.inactiveName}:window_name}`;
179
+ return `#[fg=${t.inactiveFg}]${pad}#I:${truncated}${pad}`;
180
+ }
181
+
182
+ /**
183
+ * Build the cascading conditional format for tmux 3.2+. Assembled as
184
+ * nested `#{?cond,yes,no}` so each tier's body is the chunk the
185
+ * tier picks, and the no-branch chains into the next narrower tier.
186
+ *
187
+ * @param {Array<string>} segments - tier body strings (active or inactive)
188
+ * @returns {string}
189
+ */
190
+ function chainTiers(segments) {
191
+ // segments[] aligns with TIERS[] one-for-one. The last segment is
192
+ // the fallback — emitted bare (no condition wrapper). Each earlier
193
+ // tier wraps the suffix in `#{?cond,segment,rest}`.
194
+ let acc = segments[segments.length - 1];
195
+ for (let i = segments.length - 2; i >= 0; i--) {
196
+ const tier = TIERS[i];
197
+ // `e|<=:a,b` → a <= b. `e|*:x,y` → x * y. Combined: tier wins
198
+ // when session_windows * maxAvgWidth <= client_width.
199
+ const cond = `#{e|<=:#{e|*:#{session_windows},${tier.maxAvgWidth}},#{client_width}}`;
200
+ acc = `#{?${cond},${segments[i]},${acc}}`;
201
+ }
202
+ return acc;
203
+ }
204
+
205
+ /**
206
+ * Single-tier format for tmux < 3.2 (no `#{e|...}` operators). Uses
207
+ * the "lavish" tier's segments so a small number of tabs looks the
208
+ * same on old and new tmux; large counts will visually overflow on
209
+ * old tmux, but they won't break — tmux just wraps or clips.
210
+ *
211
+ * @param {TabTheme} t
212
+ * @returns {string}
213
+ */
214
+ function legacyFormat(t) {
215
+ const a = activeSegment(TIERS[0], t);
216
+ const i = inactiveSegment(TIERS[0], t);
217
+ return `#[bg=${t.stripBg}]#{W:#{?window_active,${a},${i}}}`;
218
+ }
219
+
220
+ /**
221
+ * Build the `status-format[1]` string for the tab strip.
222
+ *
223
+ * On tmux 3.2+: cascading 5-tier dynamic compaction (T0 lavish → T4
224
+ * numeric fallback) selected at render time by tmux based on
225
+ * `session_windows * maxAvgWidth <= client_width`.
226
+ *
227
+ * On older tmux: single-tier themed format (no `#{e|...}` operators).
228
+ *
229
+ * @param {{
230
+ * tmuxVersion?: { major: number, minor: number } | null,
231
+ * theme?: Partial<TabTheme>,
232
+ * }} [opts]
233
+ * @returns {string}
234
+ */
235
+ function buildTabFormat(opts = {}) {
236
+ const theme = { ...DEFAULT_TAB_THEME, ...(opts.theme || {}) };
237
+ const version = opts.tmuxVersion === undefined ? null : opts.tmuxVersion;
238
+ if (!supportsCompaction(version)) return legacyFormat(theme);
239
+
240
+ const actives = TIERS.map((tier) => activeSegment(tier, theme));
241
+ const inactives = TIERS.map((tier) => inactiveSegment(tier, theme));
242
+ const active = chainTiers(actives);
243
+ const inactive = chainTiers(inactives);
244
+ return `#[bg=${theme.stripBg}]#{W:#{?window_active,${active},${inactive}}}`;
245
+ }
246
+
247
+ /**
248
+ * Tab keybinds. Merged into the `default` preset in tmux.js. `Alt+w`
249
+ * and `Alt+T` reach back into the agileflow binary so the
250
+ * closed-windows log stays in sync with the tmux state — pure
251
+ * `kill-window` would close the tab but `Alt+T` later couldn't
252
+ * resurrect it. `%AGILEFLOW%` is substituted at apply time by
253
+ * `substituteBinding` in tmux.js.
254
+ *
255
+ * Alt+1..9 are generated programmatically rather than nine copy-paste
256
+ * entries, so adjusting the chip (e.g., adding a hint) is one edit.
257
+ *
258
+ * @type {Array<{ key: string, action: string[], hint: string }>}
259
+ */
260
+ const TAB_KEYBINDS = [
261
+ {
262
+ // Alt+t = new tab. Matches Chrome/Safari's Ctrl+T / Cmd+T —
263
+ // browser muscle memory carries straight over.
264
+ key: "M-t",
265
+ action: ["new-window"],
266
+ hint: "Alt+t → new tab",
267
+ },
268
+ {
269
+ // -I prefills the prompt with the current name so the user can
270
+ // edit rather than retype. %% substitutes the user's final input.
271
+ key: "M-,",
272
+ action: ["command-prompt", "-I", "#W", "rename-window '%%'"],
273
+ hint: "Alt+, → rename current tab",
274
+ },
275
+ {
276
+ // Direct kill-window — no CLI roundtrip. The previous
277
+ // run-shell-to-agileflow approach added Node-startup latency
278
+ // (150ms+) and could no-op silently if the binary path resolution
279
+ // returned stale state (e.g. after npx cache cleanup). Killing
280
+ // via tmux directly is instant and bulletproof. Undo is provided
281
+ // by Alt+Shift+T (which reads the closed-windows log populated by
282
+ // the window-unlinked hook installed in applyTabFormat).
283
+ key: "M-w",
284
+ action: ["kill-window"],
285
+ hint: "Alt+w → close current tab (Alt+Shift+T to undo)",
286
+ },
287
+ {
288
+ // tmux's built-in window picker. -Z zooms (full-screen the picker),
289
+ // -w sets window-mode (vs the default session-mode tree).
290
+ key: "M-W",
291
+ action: ["choose-tree", "-Zw"],
292
+ hint: "Alt+W → tab picker",
293
+ },
294
+ {
295
+ // Pass session name explicitly so the callback restores into the
296
+ // session the user actually triggered from — works even if the
297
+ // active session shifts before run-shell fires.
298
+ key: "M-T",
299
+ action: [
300
+ "run-shell",
301
+ "%AGILEFLOW% launch __restore-window #{session_name}",
302
+ ],
303
+ hint: "Alt+T → reopen last closed tab",
304
+ },
305
+ // Numeric switchers Alt+1..Alt+9 → select-window -t :N
306
+ ...[1, 2, 3, 4, 5, 6, 7, 8, 9].map((n) => ({
307
+ key: `M-${n}`,
308
+ action: ["select-window", "-t", `:${n}`],
309
+ hint: `Alt+${n} → switch to tab ${n}`,
310
+ })),
311
+ // Alt+0 jumps to the FIRST tab. tmux's `:$` (last window) requires
312
+ // shell escaping in some terminal setups and is non-standard; "0
313
+ // means first" is more universal across editors/terminals.
314
+ {
315
+ key: "M-0",
316
+ action: ["select-window", "-t", ":1"],
317
+ hint: "Alt+0 → switch to first tab",
318
+ },
319
+ // Browser-style cycling. Bind M-S-Tab AND M-BTab — terminals split
320
+ // on which escape sequence they emit for Shift+Tab, so binding both
321
+ // covers either path. Note: some window managers (GNOME, KDE)
322
+ // intercept Alt+Tab before it reaches tmux; works fine in fullscreen
323
+ // terminals on macOS and most tiling WMs.
324
+ {
325
+ key: "M-Tab",
326
+ action: ["next-window"],
327
+ hint: "Alt+Tab → next tab",
328
+ },
329
+ {
330
+ key: "M-S-Tab",
331
+ action: ["previous-window"],
332
+ hint: "Alt+Shift+Tab → previous tab",
333
+ },
334
+ {
335
+ key: "M-BTab",
336
+ action: ["previous-window"],
337
+ hint: "Alt+Shift+Tab → previous tab (alt encoding)",
338
+ },
339
+ ];
340
+
341
+ module.exports = {
342
+ DEFAULT_TAB_THEME,
343
+ TIERS,
344
+ COMPACTION_MIN_TMUX,
345
+ TAB_KEYBINDS,
346
+ parseTmuxVersion,
347
+ compareVersions,
348
+ supportsCompaction,
349
+ buildTabFormat,
350
+ };