agileflow 4.0.0-alpha.1 → 4.0.0-alpha.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (372) hide show
  1. package/CHANGELOG.md +80 -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 +196 -0
  133. package/content/plugins/core/hooks/damage-control-bash.js +86 -0
  134. package/content/plugins/core/hooks/damage-control-edit.js +79 -0
  135. package/content/plugins/core/hooks/damage-control-patterns.yaml +100 -0
  136. package/content/plugins/core/hooks/damage-control-write.js +75 -0
  137. package/content/plugins/core/hooks/post-compact-state.js +107 -0
  138. package/content/plugins/core/hooks/preferences-injector.js +352 -0
  139. package/content/plugins/core/plugin.yaml +53 -9
  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 +1385 -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 +496 -113
  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 +83 -21
  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 +262 -0
  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 +34 -13
  339. package/src/runtime/config/loader.js +91 -23
  340. package/src/runtime/config/schema.json +60 -10
  341. package/src/runtime/config/writer.js +10 -7
  342. package/src/runtime/hooks/aggregator.js +44 -20
  343. package/src/runtime/ide/babysit-skill.js +202 -0
  344. package/src/runtime/ide/capabilities.js +84 -29
  345. package/src/runtime/ide/claude-code-content.js +177 -0
  346. package/src/runtime/ide/claude-code-settings.js +67 -29
  347. package/src/runtime/ide/claude-code-skills.js +47 -32
  348. package/src/runtime/ide/codex-config.js +295 -0
  349. package/src/runtime/installer/install.js +303 -52
  350. package/src/runtime/launch/alias-installer.js +191 -0
  351. package/src/runtime/launch/cli-resume.js +244 -0
  352. package/src/runtime/launch/closed-windows.js +338 -0
  353. package/src/runtime/launch/defaults.js +66 -0
  354. package/src/runtime/launch/detect-clis.js +69 -0
  355. package/src/runtime/launch/doctor.js +464 -0
  356. package/src/runtime/launch/exec-wrapper.js +114 -0
  357. package/src/runtime/launch/parallel-session.js +247 -0
  358. package/src/runtime/launch/prefs.js +211 -0
  359. package/src/runtime/launch/project-prefs.js +234 -0
  360. package/src/runtime/launch/resolve-cli.js +56 -0
  361. package/src/runtime/launch/restore.js +142 -0
  362. package/src/runtime/launch/schema.json +75 -0
  363. package/src/runtime/launch/session-lifecycle.js +313 -0
  364. package/src/runtime/launch/session-registry.js +401 -0
  365. package/src/runtime/launch/spawn.js +103 -0
  366. package/src/runtime/launch/tabs.js +315 -0
  367. package/src/runtime/launch/tmux.js +654 -0
  368. package/src/runtime/launch/worktree.js +260 -0
  369. package/src/runtime/plugins/registry.js +16 -11
  370. package/src/runtime/plugins/validator.js +57 -43
  371. package/src/runtime/skills/learnings.js +308 -0
  372. package/src/cli/wizard/personalization.js +0 -64
package/CHANGELOG.md CHANGED
@@ -3,6 +3,85 @@
3
3
  All notable changes to `agileflow` v4 are documented here.
4
4
  Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
5
5
 
6
+ ## [4.0.0-alpha.3] — 2026-04-20
7
+
8
+ Flow audit fixes for the alpha.2 wizard + install path. Wiring/persistence
9
+ came back PASS; this patch closes the test gap and fixes the safety +
10
+ feedback gaps the audit surfaced.
11
+
12
+ ### Fixed
13
+
14
+ - **P0 test gap** (`tests/unit/config/writer.test.js`): the per-field
15
+ round-trip block tests every other config field but skipped
16
+ `behaviors`. A future PR that drops the `behaviors:` line from
17
+ `writer.js`'s payload would have shipped silently. Added explicit
18
+ mixed-shape round-trip test (not all-true, not all-false) so the
19
+ serializer-loader pair is contractually pinned.
20
+ - **P1 damage-control silent fail-open**
21
+ (`damage-control-bash.js`/`-edit.js`/`-write.js`): when
22
+ `damage-control-patterns.yaml` is missing or unreadable, all three
23
+ hooks used to `process.exit(0)` silently — guards disabled, no
24
+ signal to the user. Now emit a stderr WARNING with the error code
25
+ and the path. Repeated warnings on every Bash/Edit/Write are
26
+ intentional: they signal "fix this or disable the preset". Hooks
27
+ still fail-open (the contract is "block dangerous things, don't
28
+ block legit work just because we can't read our own config").
29
+ - **P1 missing behaviors visibility**:
30
+ - `setup --yes` console output now prints `behaviors enabled: ...`
31
+ after the plugin list, gated on `caps.hooks` so non-Claude-Code
32
+ IDEs don't see a noisy line. Listed-as-CSV in the order: any
33
+ `loadContext, babysitDefault, damageControl, preCompactState`
34
+ that are `true`.
35
+ - Interactive `prompts.outro` now includes `behaviors active: ...`
36
+ or `behaviors active: (none — no hooks will run; re-run setup to
37
+ enable)`. A user who deselected all four behaviors no longer
38
+ finishes the wizard celebrating "X plugins enabled" while
39
+ actually getting zero hooks.
40
+ - `agileflow update` console output mirrors the same pattern.
41
+ - Install spinner message changed from `Installing N plugin(s)` to
42
+ `Installing N plugin(s) — writing hooks, skills, mirrors` so
43
+ first-time users have a clearer mental model of what `.agileflow/`
44
+ will contain.
45
+ - **P2 fresh-project context-loader / pre-compact-state**: when
46
+ `docs/09-agents/status.json` is absent (brand new project), both
47
+ hooks used to silently omit the stories section. Now emit
48
+ `(no story tracker yet — docs/09-agents/status.json not found)` so
49
+ Claude knows the section was reached, not skipped due to error. Also
50
+ surfaces `(none in progress, none ready)` when status.json exists
51
+ but is empty.
52
+
53
+ ### Tests
54
+
55
+ - 305 passing (+1 from alpha.2's 304).
56
+
57
+ ## [4.0.0-alpha.2] — 2026-04-20
58
+
59
+ Curated behavior presets — first hooks ship, but never as a free-for-all.
60
+
61
+ ### Added
62
+
63
+ - **Behavior presets in `agileflow.config.json`** (`behaviors: { loadContext, babysitDefault, damageControl, preCompactState }`). Each preset maps 1:N to hooks declared in plugin manifests via a new `behavior: <key>` field. Disabling a preset excludes its hooks from the generated `.agileflow/hook-manifest.yaml` — the script literally does not run.
64
+ - **Wizard step**: `pickBehaviors()` (`src/cli/wizard/behaviors-picker.js`) — Clack multiselect with all four presets pre-checked. Only shown for IDEs that support hooks (claude-code today; cursor/windsurf/codex skip it).
65
+ - **Six behavior-gated hooks in the `core` plugin**:
66
+ - `context-loader` (SessionStart, gated by `loadContext`) — lean v4 replacement for v3's 79KB welcome banner. Prints stories, dirty files, and recent commits.
67
+ - `babysit-mentor-injector` (SessionStart, gated by `babysitDefault`) — HARD mode mentor injection. Claude defaults to the `/agileflow:babysit` mentor pattern without explicit invocation.
68
+ - `damage-control-bash` / `-edit` / `-write` (PreToolUse, gated by `damageControl`, `skipOnError: false`) — pattern-driven safety net (`damage-control-patterns.yaml`). Blocks `rm -rf /`, `dd to /dev/sda`, fork bombs, writes to `.env`/`.ssh/`, and similar.
69
+ - `pre-compact-state` (PreCompact, gated by `preCompactState`) — dumps active stories, current command, and dirty git state so they survive Claude's compaction summary.
70
+ - **Schema + loader + writer updates**: `behaviors` is now a first-class config section. `mergeConfig` deep-merges across one level so partial user overrides don't wipe defaults.
71
+ - **Aggregator behavior gating**: `buildHookManifest(orderedPlugins, behaviors)` filters hooks where `behaviors[entry.behavior] === false`. Missing keys treated as enabled (preserves intent of partial configs).
72
+ - **15 new tests** covering behaviors filtering in the aggregator, behaviors-picker pure helpers, and the install-time integration test that asserts the manifest reflects the toggle map. Total: **304 passing** (+15 from alpha.1).
73
+
74
+ ### Changed
75
+
76
+ - `installPlugins(options)` accepts a `behaviors` option threaded through to `writeAggregatedManifest`.
77
+ - `agileflow setup` now includes a behaviors step after personalization for hook-capable IDEs.
78
+ - `agileflow update` re-reads `behaviors` from the saved config so manual edits to `agileflow.config.json` propagate without re-running the wizard.
79
+ - `defaultConfig()` ships with all four behaviors enabled. Users opt **out** at the wizard, never opt in.
80
+
81
+ ### Why curated, not free configuration
82
+
83
+ Per user feedback in alpha.1: "I don't want it to be super customizable. Users would be able to customize pretty much anything." Free hook configuration (declare any event + any matcher + any script) is technically possible via the `hooks:` map, but the wizard surface is restricted to four presets. This keeps the install path predictable and prevents the v3-era anti-pattern of every plugin author shipping their own SessionStart welcome banner.
84
+
6
85
  ## [4.0.0-alpha.1] — Unreleased
7
86
 
8
87
  v4 Phase 1 skeleton. Not yet publishable.
@@ -254,6 +333,7 @@ The path from "green test suite" to "user can `npm i agileflow@alpha`" closes he
254
333
  - **Verified `npm pack --dry-run`** from `apps/cli/`: ships 52 files (bin/, src/, content/, README.md, LICENSE, CHANGELOG.md) — 65 KB tarball, 210 KB unpacked. Tests + vitest config + node_modules excluded.
255
334
 
256
335
  **To ship `4.0.0-alpha.1` now**:
336
+
257
337
  ```bash
258
338
  cd apps/cli && npm version 4.0.0-alpha.1 --no-git-tag-version
259
339
  git commit -am "release(v4): 4.0.0-alpha.1"
@@ -0,0 +1,14 @@
1
+ id: accessibility
2
+ name: Accessibility
3
+ description: WCAG 2.2 compliance, screen reader support, keyboard navigation, and a11y testing.
4
+ version: 1.0.0
5
+ enabledByDefault: false
6
+ cannotDisable: false
7
+ depends: []
8
+ provides:
9
+ skills:
10
+ - id: agileflow-accessibility
11
+ dir: skills/agileflow-accessibility
12
+ agents: []
13
+ hooks: []
14
+ templates: []
@@ -0,0 +1,392 @@
1
+ ---
2
+ name: agileflow-accessibility
3
+ version: 1.0.0
4
+ category: agileflow/accessibility
5
+ description: |
6
+ Use when implementing accessible UI, auditing for WCAG 2.2 compliance,
7
+ fixing screen reader issues, improving keyboard navigation, or preparing
8
+ for an accessibility review. Covers semantic HTML, ARIA patterns,
9
+ color contrast, focus management, and automated + manual testing.
10
+ triggers:
11
+ keywords:
12
+ - accessibility
13
+ - a11y
14
+ - screen reader
15
+ - WCAG
16
+ - aria
17
+ - keyboard navigation
18
+ - focus
19
+ - color contrast
20
+ - tab order
21
+ - semantic html
22
+ - alt text
23
+ - accessible
24
+ - ADA
25
+ - Section 508
26
+ - voiceover
27
+ - NVDA
28
+ - skip link
29
+ priority: 50
30
+ exclude:
31
+ - accessible parking
32
+ - accessible tourism
33
+ provides:
34
+ agents: []
35
+ learns:
36
+ enabled: true
37
+ file: _learnings/accessibility.yaml
38
+ maxEntries: 50
39
+ depends:
40
+ skills: []
41
+ plugins: [core]
42
+ ---
43
+
44
+ # AgileFlow Accessibility
45
+
46
+ Helps you build, audit, and fix accessible user interfaces — from semantic HTML foundations through ARIA patterns, focus management, screen reader compatibility, and automated testing integration.
47
+
48
+ ## When this skill activates
49
+
50
+ - User wants to audit a page, component, or flow for WCAG 2.2 compliance
51
+ - User is implementing a new UI component and wants it to be accessible from the start
52
+ - User is fixing screen reader issues, keyboard trap bugs, or missing focus indicators
53
+ - User needs to add axe-core tests, eslint-plugin-jsx-a11y, or Lighthouse accessibility CI
54
+ - User is preparing for an ADA/Section 508 compliance review or legal audit
55
+ - User mentions VoiceOver, NVDA, JAWS, TalkBack, or any assistive technology
56
+
57
+ ## Opening discovery flow
58
+
59
+ **When invoked without clear context, ask one focused question to understand the task.**
60
+
61
+ ```xml
62
+ <invoke name="AskUserQuestion">
63
+ <parameter name="questions">[
64
+ {
65
+ "question": "What accessibility work do you need to do?",
66
+ "header": "Accessibility task",
67
+ "multiSelect": false,
68
+ "options": [
69
+ {"label": "Audit an existing page or component for WCAG 2.2 issues (Recommended)", "description": "I'll run through automated scanning + manual keyboard + screen reader checks and give you a prioritised fix list"},
70
+ {"label": "Build a new UI component accessibly from scratch", "description": "Choose the right HTML element, add ARIA only where needed, wire up keyboard behaviour, write axe-core tests"},
71
+ {"label": "Fix a specific accessibility bug", "description": "Describe the issue — focus trap, missing label, colour contrast failure — and I'll diagnose and patch it"},
72
+ {"label": "Set up automated a11y testing in CI", "description": "Integrate axe-core, eslint-plugin-jsx-a11y, Pa11y, or Lighthouse into your test pipeline"},
73
+ {"label": "Prepare for an ADA / Section 508 compliance review", "description": "Systematic WCAG 2.2 AA checklist, VPAT preparation, audit report structure"}
74
+ ]
75
+ }
76
+ ]</parameter>
77
+ </invoke>
78
+ ```
79
+
80
+ **Route based on answer:**
81
+
82
+ | Task | Next action |
83
+ | ----------------------------- | ----------------------------------------------------------------------- |
84
+ | Audit existing page/component | Follow `workflows/audit-page.md` |
85
+ | Build new component | Follow `workflows/implement-accessible-component.md` |
86
+ | Fix specific bug | Diagnose with `references/aria-patterns.md`, apply fix, verify with axe |
87
+ | Set up CI testing | See Testing Checklist in `references/testing-checklist.md` |
88
+ | Compliance review | Walk WCAG 2.2 AA checklist in `references/wcag-guide.md` |
89
+
90
+ ## The POUR principles
91
+
92
+ WCAG 2.2 organises all success criteria under four principles. Every accessibility decision maps to one of these.
93
+
94
+ ```
95
+ ┌─────────────────────────────────────────────────────────────────┐
96
+ │ PERCEIVABLE Content must be presentable to users in ways │
97
+ │ they can perceive — text alternatives, captions, │
98
+ │ sufficient contrast, adaptable layout. │
99
+ ├─────────────────────────────────────────────────────────────────┤
100
+ │ OPERABLE UI components and navigation must be operable │
101
+ │ — keyboard accessible, no seizure triggers, │
102
+ │ enough time, findable content. │
103
+ ├─────────────────────────────────────────────────────────────────┤
104
+ │ UNDERSTANDABLE Information and UI operation must be │
105
+ │ understandable — readable, predictable, │
106
+ │ input assistance, error prevention. │
107
+ ├─────────────────────────────────────────────────────────────────┤
108
+ │ ROBUST Content must be robust enough for current and │
109
+ │ future assistive technologies — valid markup, │
110
+ │ name/role/value, status messages. │
111
+ └─────────────────────────────────────────────────────────────────┘
112
+ ```
113
+
114
+ **Conformance levels:**
115
+
116
+ - **Level A** — Minimum. Critical barriers that prevent access entirely.
117
+ - **Level AA** — Industry standard. Required for ADA, Section 508, EN 301 549. Target for all products.
118
+ - **Level AAA** — Enhanced. Not required for full-site conformance; implement where feasible.
119
+
120
+ ## Who benefits and how
121
+
122
+ Accessibility is not a niche concern. It benefits the majority of users.
123
+
124
+ | Disability category | Affected population | Assistive technology | WCAG principle |
125
+ | --------------------------------- | ------------------------------------------- | ------------------------------------------------- | ------------------- |
126
+ | Visual (blind) | ~39M globally blind | Screen readers (JAWS, NVDA, VoiceOver) | Perceivable, Robust |
127
+ | Visual (low vision) | ~246M globally | Screen magnifiers, large text, high contrast | Perceivable |
128
+ | Visual (colour blind) | ~300M globally (~8% men) | Colour contrast, pattern alternatives | Perceivable |
129
+ | Motor (limited dexterity) | ~2M wheelchair users in US | Keyboard navigation, switch access, voice control | Operable |
130
+ | Motor (tremor, repetitive strain) | Tens of millions | Larger touch targets, reduced motion | Operable |
131
+ | Cognitive / learning | ~15–20% of population | Plain language, consistent layout, error recovery | Understandable |
132
+ | Deaf / hard of hearing | ~430M globally | Captions, transcripts, visual alerts | Perceivable |
133
+ | Vestibular / seizure | ~3M epilepsy in US | Reduced motion, no flashing content | Operable |
134
+ | Temporary (broken arm, surgery) | Situational, affects everyone at some point | All of the above | All |
135
+
136
+ **The business case:**
137
+
138
+ - **1 billion+ people** worldwide have some form of disability (WHO).
139
+ - In the US, people with disabilities control **~$490B in discretionary spending**.
140
+ - ADA Title III digital lawsuits have exceeded **4,000 per year** in recent years; most settle for $25K–$100K+.
141
+ - Inaccessible sites face procurement exclusion from government and enterprise buyers (Section 508 requirements).
142
+ - Screen reader users abandon inaccessible sites at very high rates — directly lost revenue.
143
+ - Accessibility improvements also benefit SEO (semantic HTML, alt text, structured content).
144
+
145
+ ## Semantic HTML as the foundation
146
+
147
+ The single most impactful accessibility change you can make is using the correct HTML element.
148
+
149
+ ```html
150
+ <!-- Bad: div soup — no semantics, no keyboard access, screen reader silent -->
151
+ <div class="btn" onclick="submit()">Submit</div>
152
+ <div class="nav">
153
+ <div onclick="goto('home')">Home</div>
154
+ </div>
155
+
156
+ <!-- Good: native semantics — keyboard accessible, screen reader announces role -->
157
+ <button type="submit">Submit</button>
158
+ <nav aria-label="Main navigation">
159
+ <a href="/">Home</a>
160
+ </nav>
161
+ ```
162
+
163
+ **Why native HTML wins:**
164
+
165
+ - Built-in keyboard support (Enter/Space for buttons, arrows for radio groups, etc.)
166
+ - Built-in ARIA role, name, and state (no extra attributes needed)
167
+ - Works across all browsers and assistive technologies without additional scripting
168
+ - Fewer bugs — browsers have tested these for decades
169
+
170
+ **HTML element quick reference:**
171
+
172
+ | Use case | Correct element | Common mistake |
173
+ | ---------------- | ---------------------------------------------------- | --------------------------------- |
174
+ | Clickable action | `<button>` | `<div onclick>`, `<span onclick>` |
175
+ | Navigation link | `<a href>` | `<div onclick>` |
176
+ | Page sections | `<main>`, `<nav>`, `<header>`, `<footer>`, `<aside>` | `<div id="main">` |
177
+ | Content sections | `<section>`, `<article>` | nested `<div>` |
178
+ | Headings | `<h1>`–`<h6>` in logical order | `<div class="heading">` |
179
+ | Form inputs | `<input>`, `<select>`, `<textarea>` with `<label>` | Unlabelled inputs |
180
+ | Data tables | `<table>` with `<th scope>`, `<caption>` | CSS grid faking a table |
181
+ | Lists | `<ul>/<ol>` + `<li>` | `<div>` with bullet CSS |
182
+ | Collapsible | `<details>/<summary>` | Custom accordion with no ARIA |
183
+
184
+ ## ARIA: last resort, not first choice
185
+
186
+ ARIA (Accessible Rich Internet Applications) supplements HTML — it does not replace it.
187
+
188
+ **Use ARIA only when:**
189
+
190
+ 1. No native HTML element exists for the pattern (custom combobox, tree view, data grid)
191
+ 2. Dynamic content updates need announcement (loading spinners, live search results)
192
+ 3. Relationships cannot be expressed in HTML (cross-section labelling, ownership)
193
+
194
+ **The five ARIA rules (W3C):**
195
+
196
+ 1. **Use native HTML first.** `<button>` is always better than `<div role="button">`.
197
+ 2. **Don't override native semantics.** Don't put `role="heading"` on a `<p>`.
198
+ 3. **All interactive ARIA widgets must support keyboard.** If you add a role, add keyboard handlers.
199
+ 4. **Don't hide focusable elements.** `aria-hidden="true"` must not be on or contain focusable elements.
200
+ 5. **Interactive elements need an accessible name.** Button, input, link — must have a label.
201
+
202
+ ## Focus management
203
+
204
+ Focus management is one of the most commonly broken accessibility requirements in SPAs and dynamic UIs.
205
+
206
+ **Rules:**
207
+
208
+ - Focus must always be visible — never `outline: none` without a custom focus style
209
+ - Focus order must follow reading order (DOM order, not CSS visual order)
210
+ - Modal dialogs must trap focus inside while open; release on close
211
+ - On modal close, focus returns to the element that triggered it
212
+ - Route changes in SPAs: move focus to the page `<h1>` or `<main>` landmark
213
+ - Dynamically added content: announce via `aria-live` or move focus if triggered by user action
214
+
215
+ ```css
216
+ /* Acceptable: custom focus style instead of removing outline */
217
+ :focus-visible {
218
+ outline: 2px solid #005fcc;
219
+ outline-offset: 2px;
220
+ }
221
+
222
+ /* Unacceptable: removing focus indicator entirely */
223
+ * {
224
+ outline: none;
225
+ } /* Never do this */
226
+ ```
227
+
228
+ ## Colour and contrast
229
+
230
+ **WCAG 2.2 AA thresholds:**
231
+
232
+ | Content type | Minimum ratio | Notes |
233
+ | ---------------------------------- | -------------- | ------------------------------------- |
234
+ | Normal text (< 18pt / < 14pt bold) | 4.5:1 | Most body text |
235
+ | Large text (≥ 18pt or ≥ 14pt bold) | 3:1 | Headlines, display text |
236
+ | UI components (borders, icons) | 3:1 | Against adjacent colour |
237
+ | Focus indicators | 3:1 | Against adjacent colour (2.4.11) |
238
+ | Disabled controls | No requirement | But should be clearly distinguishable |
239
+ | Decorative images | No requirement | Alt="" to mark as decorative |
240
+
241
+ **Tools:**
242
+
243
+ - Browser DevTools — Elements panel shows contrast ratio in colour picker
244
+ - [Colour Contrast Analyser](https://www.tpgi.com/color-contrast-checker/) (free desktop app)
245
+ - [Who Can Use](https://www.whocanuse.com/) — shows how many people are affected at each ratio
246
+ - `axe-core` — catches AA failures automatically
247
+
248
+ **Common trap:** Placeholder text in inputs often fails contrast because browsers render it at ~40% opacity. Always check placeholder contrast separately from label contrast.
249
+
250
+ ## Automated testing integration
251
+
252
+ Automated tools catch approximately 30–40% of WCAG issues. They are necessary but not sufficient.
253
+
254
+ **Recommended stack:**
255
+
256
+ ```bash
257
+ # Install axe-core for Vitest/Jest
258
+ npm install --save-dev @axe-core/react axe-core vitest-axe
259
+
260
+ # eslint-plugin-jsx-a11y for lint-time checks
261
+ npm install --save-dev eslint-plugin-jsx-a11y
262
+
263
+ # Pa11y for CLI/CI scanning
264
+ npm install --save-dev pa11y
265
+
266
+ # Lighthouse CI for automated score tracking
267
+ npm install --save-dev @lhci/cli
268
+ ```
269
+
270
+ **axe-core test example (Vitest + React Testing Library):**
271
+
272
+ ```js
273
+ import { render } from "@testing-library/react";
274
+ import { axe, toHaveNoViolations } from "vitest-axe";
275
+ import { expect } from "vitest";
276
+ import { LoginForm } from "./LoginForm";
277
+
278
+ expect.extend(toHaveNoViolations);
279
+
280
+ it("LoginForm has no axe violations", async () => {
281
+ const { container } = render(<LoginForm />);
282
+ const results = await axe(container);
283
+ expect(results).toHaveNoViolations();
284
+ });
285
+ ```
286
+
287
+ **eslint config (eslint.config.js flat config):**
288
+
289
+ ```js
290
+ import jsxA11y from "eslint-plugin-jsx-a11y";
291
+
292
+ export default [
293
+ jsxA11y.flatConfigs.recommended,
294
+ {
295
+ rules: {
296
+ "jsx-a11y/no-autofocus": "warn",
297
+ "jsx-a11y/anchor-is-valid": "error",
298
+ },
299
+ },
300
+ ];
301
+ ```
302
+
303
+ ## Screen reader testing matrix
304
+
305
+ | Screen reader | Browser | Platform | Priority |
306
+ | ------------- | ------- | ---------- | ----------------------------- |
307
+ | VoiceOver | Safari | macOS, iOS | High — Apple devices dominant |
308
+ | NVDA (free) | Firefox | Windows | High — most common Windows SR |
309
+ | JAWS | Chrome | Windows | High — enterprise standard |
310
+ | TalkBack | Chrome | Android | Medium — mobile |
311
+ | Narrator | Edge | Windows | Low — rarely primary |
312
+
313
+ **Quick VoiceOver commands (macOS):**
314
+
315
+ - Turn on/off: `Cmd + F5`
316
+ - Navigate by headings: `VO + Cmd + H`
317
+ - Navigate by form controls: `VO + Cmd + J`
318
+ - Read from cursor: `VO + A`
319
+ - Navigate landmarks: `VO + U` (rotor)
320
+
321
+ **Quick NVDA commands (Windows):**
322
+
323
+ - Turn on: `Ctrl + Alt + N`
324
+ - Navigate by headings: `H`
325
+ - Navigate by landmarks: `D`
326
+ - Navigate by form fields: `F`
327
+ - List all headings: `Insert + F7`
328
+
329
+ ## Quality checklist
330
+
331
+ Before delivering any accessible component or audit fix:
332
+
333
+ - [ ] All interactive elements reachable and operable via keyboard alone
334
+ - [ ] Focus indicator visible on every interactive element (`outline: none` removed or replaced)
335
+ - [ ] Focus order follows logical reading order
336
+ - [ ] All images have appropriate alt text (descriptive or `alt=""` for decorative)
337
+ - [ ] All form inputs have a programmatically associated label
338
+ - [ ] Error messages identify the field and suggest correction (not just red border)
339
+ - [ ] Colour contrast meets 4.5:1 for body text, 3:1 for large text and UI components
340
+ - [ ] Information is not conveyed by colour alone
341
+ - [ ] Dynamic content changes announced via `aria-live` or focus management
342
+ - [ ] Modal dialogs trap focus, return focus on close, respond to Escape
343
+ - [ ] Page has a `<title>` and a logical heading hierarchy starting with `<h1>`
344
+ - [ ] `<html lang>` is set correctly
345
+ - [ ] Skip navigation link present and functional
346
+ - [ ] axe-core reports zero violations in automated tests
347
+ - [ ] Tested with at least one screen reader (VoiceOver or NVDA)
348
+ - [ ] Tested with keyboard only (no mouse)
349
+ - [ ] Tested at 200% zoom without horizontal scrolling
350
+
351
+ ## Self-improving learnings
352
+
353
+ `_learnings/accessibility.yaml` records:
354
+
355
+ - Component library in use (Radix UI, Headless UI, MUI, custom) and its a11y baseline
356
+ - Screen reader(s) the team tests with
357
+ - axe-core rules the team has intentionally disabled and why
358
+ - Known contrast waivers (branding colours that can't be changed)
359
+ - Whether the project has a Lighthouse CI threshold configured
360
+ - Patterns the team has already implemented (skip links, focus traps, live regions)
361
+
362
+ Apply on invocation; update on correction.
363
+
364
+ ## References
365
+
366
+ Load these files when you need deeper context:
367
+
368
+ | File | When to load |
369
+ | --------------------------------- | ----------------------------------------------------------------------------- |
370
+ | `references/wcag-guide.md` | Full WCAG 2.2 success criterion breakdown with implementation examples |
371
+ | `references/aria-patterns.md` | Common ARIA patterns: modals, accordions, live regions, navigation menus |
372
+ | `references/testing-checklist.md` | Automated + manual testing procedures, tool setup, common issues by component |
373
+
374
+ ## Workflows
375
+
376
+ Follow these step-by-step when the user initiates the matching action:
377
+
378
+ | File | When to follow |
379
+ | --------------------------------------------- | -------------------------------------------------------------------------- |
380
+ | `workflows/audit-page.md` | User wants to audit an existing page or component for accessibility issues |
381
+ | `workflows/implement-accessible-component.md` | User is building a new UI component and wants it accessible from the start |
382
+
383
+ ## Integration
384
+
385
+ - **agileflow-test-writer** — add axe-core and keyboard navigation tests alongside unit tests for every new component; accessibility fixes need regression coverage
386
+ - **agileflow-story-writer** — include WCAG-level accessibility acceptance criteria in user stories before implementation begins, not as an afterthought
387
+ - **agileflow-engineering** — delegate the implementation of accessibility fixes (ARIA attributes, focus management, semantic HTML corrections) to engineering
388
+ - **agileflow-audit** — the accessibility dimension of a full audit feeds into this skill for WCAG-specific remediation and severity prioritisation
389
+ - **agileflow-pr-reviewer** — invoke accessibility checks as part of PR review for any story touching UI components or interactive elements; it's a merge gate, not optional
390
+ - **agileflow-delivery** — accessibility review is required before shipping user-facing features; delivery should block on unresolved P0/P1 WCAG violations
391
+ - **agileflow-seo** — semantic HTML, alt text quality, and heading hierarchy improvements benefit both accessibility and search ranking simultaneously
392
+ - **agileflow-research** — use when implementing complex patterns (data tables, multi-step forms, modals with focus traps) to verify correct ARIA patterns before coding