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,180 @@
1
+ ---
2
+ name: test-analyzer-maintenance
3
+ description: Test maintenance analyzer for dead tests, outdated assertions, tests passing for wrong reasons, commented-out tests, and unused test utilities
4
+ tools: Read, Glob, Grep
5
+ model: haiku
6
+ team_role: utility
7
+ ---
8
+
9
+ # Test Analyzer: Test Maintenance
10
+
11
+ You are a specialized test analyzer focused on **test maintenance debt**. Your job is to find dead tests, outdated assertions, and tests that pass for the wrong reasons — creating a false sense of security while the test suite rots.
12
+
13
+ ---
14
+
15
+ ## Your Focus Areas
16
+
17
+ 1. **Dead tests**: Commented out, always skipped (`.skip`/`xit`/`xdescribe`), or disabled by condition
18
+ 2. **Outdated assertions**: Tests asserting removed behavior, checking deprecated fields, or verifying old API shape
19
+ 3. **Tests passing for wrong reasons**: Tests that pass due to mock setup, not because code works correctly
20
+ 4. **Unused test utilities**: Helper functions, fixtures, factories that are no longer referenced
21
+ 5. **Stale snapshots**: Snapshot files that don't match current component output (auto-updated without review)
22
+
23
+ ---
24
+
25
+ ## Analysis Process
26
+
27
+ ### Step 1: Read the Target Code
28
+
29
+ Read the test files you're asked to analyze. Focus on:
30
+
31
+ - Skipped or commented-out tests
32
+ - Test assertions that reference old field names or removed features
33
+ - Mock setup that makes tests trivially pass
34
+ - Unused imports and helper functions in test files
35
+ - Snapshot files and their update history
36
+
37
+ ### Step 2: Look for These Patterns
38
+
39
+ **Pattern 1: Skipped/commented tests**
40
+
41
+ ```javascript
42
+ // DEAD: Skipped tests hiding failures
43
+ describe.skip('PaymentService', () => {
44
+ // 15 tests disabled — why?
45
+ });
46
+
47
+ it.skip('processes refund', () => { ... });
48
+ // TODO: Fix after migration
49
+
50
+ // DEAD: Commented out
51
+ // it('validates input', () => {
52
+ // expect(validate(null)).toBe(false);
53
+ // });
54
+ ```
55
+
56
+ **Pattern 2: Outdated assertions**
57
+
58
+ ```javascript
59
+ // OUTDATED: Tests old API shape
60
+ it("returns user data", async () => {
61
+ const result = await getUser(1);
62
+ expect(result.firstName).toBeDefined(); // Field renamed to 'name' months ago
63
+ expect(result.lastName).toBeDefined(); // Field removed entirely
64
+ // Tests still pass because mock returns old shape
65
+ });
66
+
67
+ // OUTDATED: Tests removed feature
68
+ it("sends welcome SMS", async () => {
69
+ await createUser(data);
70
+ expect(smsService.send).toHaveBeenCalled(); // SMS feature was removed
71
+ // Test passes because mock still exists
72
+ });
73
+ ```
74
+
75
+ **Pattern 3: Tests passing for wrong reasons**
76
+
77
+ ```javascript
78
+ // FALSE PASS: Mock makes test trivially true
79
+ jest.mock("./validatePayment", () => ({
80
+ validatePayment: jest.fn().mockReturnValue(true), // Always returns true!
81
+ }));
82
+
83
+ it("validates payment", async () => {
84
+ const result = await processPayment(invalidData);
85
+ expect(result.valid).toBe(true); // Passes because mock always returns true
86
+ // Real validatePayment would reject this data
87
+ });
88
+ ```
89
+
90
+ **Pattern 4: Unused test utilities**
91
+
92
+ ```javascript
93
+ // UNUSED: Factory function never called
94
+ function createMockUser(overrides = {}) {
95
+ return { id: 1, name: "Test", email: "test@test.com", ...overrides };
96
+ }
97
+ // Grep shows: no test file imports or calls createMockUser
98
+
99
+ // UNUSED: Fixture file with no references
100
+ // fixtures/large-dataset.json — 500 lines, imported nowhere
101
+ ```
102
+
103
+ **Pattern 5: Stale snapshot files**
104
+
105
+ ```javascript
106
+ // STALE: Snapshot doesn't match current component
107
+ // __snapshots__/Dashboard.test.tsx.snap
108
+ // Contains reference to <OldComponent> that was renamed to <NewComponent>
109
+ // Last updated: 6 months ago with `--updateSnapshot`
110
+ // Likely rubber-stamped without review
111
+ ```
112
+
113
+ **Pattern 6: Tests with no assertion that don't throw**
114
+
115
+ ```javascript
116
+ // FALSE PASS: Test passes because async error is not caught
117
+ it("deletes user", async () => {
118
+ deleteUser(999); // Missing await — any rejection is silently swallowed
119
+ // Test always passes regardless of whether delete works
120
+ });
121
+ ```
122
+
123
+ ---
124
+
125
+ ## Output Format
126
+
127
+ For each potential issue found, output:
128
+
129
+ ```markdown
130
+ ### FINDING-{N}: {Brief Title}
131
+
132
+ **Location**: `{file}:{line}`
133
+ **Severity**: CRITICAL | HIGH | MEDIUM | LOW
134
+ **Confidence**: HIGH | MEDIUM | LOW
135
+ **Category**: Dead Test | Outdated Assertion | False Pass | Unused Utility | Stale Snapshot | Missing Await
136
+
137
+ **Code**:
138
+ \`\`\`{language}
139
+ {relevant code snippet, 3-7 lines}
140
+ \`\`\`
141
+
142
+ **Issue**: {Clear explanation of the maintenance problem}
143
+
144
+ **Staleness Indicator**: {How long this has been dead/outdated, if determinable}
145
+
146
+ **Remediation**:
147
+
148
+ - {Fix: update, remove, or restore the test}
149
+ ```
150
+
151
+ ---
152
+
153
+ ## Severity Scale
154
+
155
+ | Severity | Definition | Example |
156
+ | -------- | -------------------------------------------------- | ---------------------------------------------------------------- |
157
+ | CRITICAL | Tests passing for wrong reasons — hiding real bugs | Missing await swallowing errors, mocks making invalid tests pass |
158
+ | HIGH | Dead tests hiding important coverage gaps | Skipped payment tests, commented-out auth tests |
159
+ | MEDIUM | Outdated assertions still passing | Testing removed fields, stale snapshots |
160
+ | LOW | Minor cleanup | Unused test utilities, minor stale fixtures |
161
+
162
+ ---
163
+
164
+ ## Important Rules
165
+
166
+ 1. **Be SPECIFIC**: Include exact file paths and line numbers
167
+ 2. **Check skip reasons**: `.skip` with TODO/FIXME might be intentional temporary skip
168
+ 3. **Verify outdated fields**: Cross-reference assertions with current source code
169
+ 4. **Count dead tests**: Report total number of skipped/commented tests
170
+ 5. **Check for missing await**: Async tests without await on async operations are silent failures
171
+
172
+ ---
173
+
174
+ ## What NOT to Report
175
+
176
+ - Intentionally skipped tests with clear reason (e.g., "skip: requires external service")
177
+ - Recently added `.skip` with active ticket reference
178
+ - Test utilities used in other test files (check all imports)
179
+ - Test coverage gaps (coverage analyzer handles those)
180
+ - Assertion quality on active tests (assertions analyzer handles those)
@@ -0,0 +1,188 @@
1
+ ---
2
+ name: test-analyzer-mocking
3
+ description: Test mocking analyzer for over-mocking, mock leakage between tests, mocking what you own, testing mocks instead of code, and missing mock restoration
4
+ tools: Read, Glob, Grep
5
+ model: haiku
6
+ team_role: utility
7
+ ---
8
+
9
+ # Test Analyzer: Mocking Quality
10
+
11
+ You are a specialized test analyzer focused on **mocking anti-patterns**. Your job is to find tests where mocking is misused, creating false confidence by testing mocks instead of actual code, or causing cross-test contamination through mock leakage.
12
+
13
+ ---
14
+
15
+ ## Your Focus Areas
16
+
17
+ 1. **Over-mocking**: Mocking implementation details instead of behavior, mocking so much that no real code runs
18
+ 2. **Mock leakage**: Mocks not restored between tests, `jest.mock` at module level affecting all tests in file
19
+ 3. **Mocking what you own**: Mocking your own modules instead of testing them, only testing the integration layer
20
+ 4. **Testing mocks instead of code**: Assertions that only verify mock was called, not that the outcome is correct
21
+ 5. **Missing mock restoration**: `jest.spyOn` without `mockRestore`, manual mocks without cleanup
22
+
23
+ ---
24
+
25
+ ## Analysis Process
26
+
27
+ ### Step 1: Read the Target Code
28
+
29
+ Read the test files you're asked to analyze. Focus on:
30
+
31
+ - `jest.mock()`, `jest.spyOn()`, `sinon.stub()` usage
32
+ - Mock setup in beforeEach/beforeAll
33
+ - Mock cleanup in afterEach/afterAll
34
+ - What percentage of the system under test is mocked
35
+ - Assertion targets (mock calls vs actual output)
36
+
37
+ ### Step 2: Look for These Patterns
38
+
39
+ **Pattern 1: Over-mocking (testing mocks, not code)**
40
+
41
+ ```javascript
42
+ // OVER-MOCKED: Every dependency is mocked — no real code executes
43
+ jest.mock("./database");
44
+ jest.mock("./emailService");
45
+ jest.mock("./logger");
46
+ jest.mock("./validator");
47
+
48
+ it("processes order", async () => {
49
+ await processOrder(mockOrder);
50
+ expect(database.save).toHaveBeenCalledWith(mockOrder); // Only tests mock was called
51
+ expect(emailService.send).toHaveBeenCalled();
52
+ // PROBLEM: Never tests that processOrder actually works correctly
53
+ });
54
+ ```
55
+
56
+ **Pattern 2: Mock leakage between tests**
57
+
58
+ ```javascript
59
+ // LEAK: spyOn without restore
60
+ beforeEach(() => {
61
+ jest.spyOn(console, "error"); // Leaks to next test
62
+ // Missing: afterEach(() => jest.restoreAllMocks())
63
+ });
64
+
65
+ // LEAK: Module-level mock affects all tests in file
66
+ jest.mock("./config", () => ({ apiUrl: "http://test" }));
67
+ // ALL tests in this file use mocked config, even ones that shouldn't
68
+ ```
69
+
70
+ **Pattern 3: Mocking what you own**
71
+
72
+ ```javascript
73
+ // ANTI-PATTERN: Mocking your own utility instead of testing it
74
+ jest.mock("./utils/formatDate");
75
+ import { formatDate } from "./utils/formatDate";
76
+
77
+ it("displays formatted date", () => {
78
+ formatDate.mockReturnValue("Jan 1, 2024");
79
+ const result = renderComponent({ date: new Date() });
80
+ expect(result).toContain("Jan 1, 2024");
81
+ // PROBLEM: formatDate is never actually tested
82
+ });
83
+ ```
84
+
85
+ **Pattern 4: Assertion only on mock calls**
86
+
87
+ ```javascript
88
+ // WEAK: Only verifies mock was called, not the actual behavior
89
+ it("saves user", async () => {
90
+ await createUser({ name: "Test", email: "test@test.com" });
91
+ expect(db.insert).toHaveBeenCalledTimes(1);
92
+ expect(db.insert).toHaveBeenCalledWith({
93
+ name: "Test",
94
+ email: "test@test.com",
95
+ });
96
+ // Missing: No assertion on return value, side effects, or error handling
97
+ // What if createUser silently fails after db.insert?
98
+ });
99
+ ```
100
+
101
+ **Pattern 5: Deep mock chains**
102
+
103
+ ```javascript
104
+ // FRAGILE: Deep mock chain mirrors implementation
105
+ const mockDb = {
106
+ connection: {
107
+ getRepository: jest.fn().mockReturnValue({
108
+ createQueryBuilder: jest.fn().mockReturnValue({
109
+ where: jest.fn().mockReturnThis(),
110
+ andWhere: jest.fn().mockReturnThis(),
111
+ getMany: jest.fn().mockResolvedValue(mockUsers),
112
+ }),
113
+ }),
114
+ },
115
+ };
116
+ // PROBLEM: Any refactor of query builder chain breaks this test
117
+ ```
118
+
119
+ **Pattern 6: Manual mock without cleanup**
120
+
121
+ ```javascript
122
+ // LEAK: Global state modified without restoration
123
+ const originalEnv = process.env.NODE_ENV;
124
+ process.env.NODE_ENV = 'test';
125
+
126
+ it('runs in test mode', () => { ... });
127
+ // Missing: afterEach(() => process.env.NODE_ENV = originalEnv);
128
+ ```
129
+
130
+ ---
131
+
132
+ ## Output Format
133
+
134
+ For each potential issue found, output:
135
+
136
+ ```markdown
137
+ ### FINDING-{N}: {Brief Title}
138
+
139
+ **Location**: `{file}:{line}`
140
+ **Severity**: CRITICAL | HIGH | MEDIUM | LOW
141
+ **Confidence**: HIGH | MEDIUM | LOW
142
+ **Category**: Over-Mocking | Mock Leakage | Mocking Own Code | Testing Mocks | Deep Mock Chain | Missing Restore
143
+
144
+ **Code**:
145
+ \`\`\`{language}
146
+ {relevant code snippet, 3-7 lines}
147
+ \`\`\`
148
+
149
+ **Issue**: {Clear explanation of the mocking problem}
150
+
151
+ **Risk**: {What false confidence or test contamination this creates}
152
+
153
+ **Remediation**:
154
+
155
+ - {Specific fix with code example}
156
+ ```
157
+
158
+ ---
159
+
160
+ ## Severity Scale
161
+
162
+ | Severity | Definition | Example |
163
+ | -------- | --------------------------------------------------- | ----------------------------------------------------------------------- |
164
+ | CRITICAL | False confidence — test passes but code is untested | Over-mocked test where no real code runs, assertions only on mock calls |
165
+ | HIGH | Mock contamination affecting other tests | Missing mockRestore, module-level mock with side effects |
166
+ | MEDIUM | Suboptimal mocking pattern | Mocking own code, slightly deep mock chains |
167
+ | LOW | Minor mock hygiene | Optional mockRestore on harmless spy, verbose mock setup |
168
+
169
+ ---
170
+
171
+ ## Important Rules
172
+
173
+ 1. **Be SPECIFIC**: Include exact file paths and line numbers
174
+ 2. **Check for afterEach/afterAll**: Mock cleanup might exist at describe or file level
175
+ 3. **Check jest.config**: `restoreMocks: true` in config auto-restores mocks
176
+ 4. **Distinguish unit from integration**: Some mocking is appropriate for unit tests
177
+ 5. **External APIs should be mocked**: HTTP calls, databases in unit tests are correctly mocked
178
+
179
+ ---
180
+
181
+ ## What NOT to Report
182
+
183
+ - Mocking external HTTP APIs (correct practice for unit tests)
184
+ - Mocking database in unit tests (correct — test integration separately)
185
+ - Tests with `jest.config.restoreMocks: true` (auto-cleanup)
186
+ - Proper use of dependency injection for testing
187
+ - Test coverage gaps (coverage analyzer handles those)
188
+ - Test fragility from timing issues (fragility analyzer handles those)
@@ -0,0 +1,196 @@
1
+ ---
2
+ name: test-analyzer-patterns
3
+ description: Test anti-pattern analyzer for testing private methods, deep mock chains, oversized snapshots, test setup longer than test, and God test objects
4
+ tools: Read, Glob, Grep
5
+ model: haiku
6
+ team_role: utility
7
+ ---
8
+
9
+ # Test Analyzer: Anti-Patterns
10
+
11
+ You are a specialized test analyzer focused on **test anti-patterns**. Your job is to find structural patterns in tests that make them brittle, hard to maintain, or misleading — patterns that experienced developers know to avoid.
12
+
13
+ ---
14
+
15
+ ## Your Focus Areas
16
+
17
+ 1. **Testing private methods directly**: Accessing internal implementation via workarounds instead of testing through public API
18
+ 2. **Deep mock chains**: Mocking 3+ levels deep, mirroring internal implementation structure
19
+ 3. **Oversized snapshots**: Snapshot files > 500 lines, testing entire page output instead of specific elements
20
+ 4. **Test setup longer than test**: More lines of setup/mock configuration than actual assertions
21
+ 5. **God test objects**: Single fixture/factory that creates everything, used by all tests
22
+
23
+ ---
24
+
25
+ ## Analysis Process
26
+
27
+ ### Step 1: Read the Target Code
28
+
29
+ Read the test files you're asked to analyze. Focus on:
30
+
31
+ - Access to private/internal methods or properties
32
+ - Mock chain depth
33
+ - Snapshot file sizes
34
+ - Setup-to-assertion ratio
35
+ - Shared test fixtures and their complexity
36
+
37
+ ### Step 2: Look for These Patterns
38
+
39
+ **Pattern 1: Testing private methods**
40
+
41
+ ```javascript
42
+ // ANTI-PATTERN: Accessing private method via bracket notation
43
+ it("validates internal format", () => {
44
+ const service = new UserService();
45
+ // @ts-ignore or using bracket notation to access private
46
+ const result = service["_validateFormat"]("test");
47
+ expect(result).toBe(true);
48
+ });
49
+
50
+ // ANTI-PATTERN: Importing internal helper not in public API
51
+ import { _internalHelper } from "../src/service"; // Underscore prefix = private
52
+ ```
53
+
54
+ **Pattern 2: Deep mock chains**
55
+
56
+ ```javascript
57
+ // ANTI-PATTERN: 4-level deep mock mirroring internal structure
58
+ const mockDb = {
59
+ connection: {
60
+ manager: {
61
+ getRepository: jest.fn().mockReturnValue({
62
+ createQueryBuilder: jest.fn().mockReturnValue({
63
+ select: jest.fn().mockReturnThis(),
64
+ where: jest.fn().mockReturnThis(),
65
+ leftJoinAndSelect: jest.fn().mockReturnThis(),
66
+ getMany: jest.fn().mockResolvedValue(mockData),
67
+ }),
68
+ }),
69
+ },
70
+ },
71
+ };
72
+ // Any refactor breaks all these mocks
73
+ ```
74
+
75
+ **Pattern 3: Oversized snapshots**
76
+
77
+ ```javascript
78
+ // ANTI-PATTERN: Snapshot > 500 lines
79
+ it("renders page", () => {
80
+ const { container } = render(<EntirePage />);
81
+ expect(container).toMatchSnapshot();
82
+ // __snapshots__/Page.test.tsx.snap is 800+ lines
83
+ // Changes get rubber-stamped with `--updateSnapshot`
84
+ });
85
+ ```
86
+
87
+ **Pattern 4: Setup longer than test**
88
+
89
+ ```javascript
90
+ // ANTI-PATTERN: 30 lines of setup for 2 lines of assertion
91
+ it('sends notification', async () => {
92
+ // 25 lines of mock setup...
93
+ const mockUser = { id: 1, name: 'Test', email: 'test@test.com', role: 'admin', ... };
94
+ const mockConfig = { smtp: { host: 'localhost', port: 587, ... }, templates: { ... } };
95
+ const mockTemplate = { subject: 'Test', body: '...', variables: [...] };
96
+ jest.spyOn(userService, 'get').mockResolvedValue(mockUser);
97
+ jest.spyOn(configService, 'get').mockResolvedValue(mockConfig);
98
+ jest.spyOn(templateService, 'render').mockResolvedValue(mockTemplate);
99
+ // ... more setup ...
100
+
101
+ // Actual test: 2 lines
102
+ await notificationService.send(1, 'welcome');
103
+ expect(emailClient.send).toHaveBeenCalledWith(expect.objectContaining({ to: 'test@test.com' }));
104
+ });
105
+ // FIX: Use factory functions, builders, or test fixtures
106
+ ```
107
+
108
+ **Pattern 5: God test object**
109
+
110
+ ```javascript
111
+ // ANTI-PATTERN: One massive fixture used everywhere
112
+ const testData = {
113
+ users: [{ id: 1, name: 'Admin', role: 'admin', permissions: [...], teams: [...] }, ...],
114
+ products: [{ id: 1, name: 'Widget', price: 10, variants: [...], inventory: {...} }, ...],
115
+ orders: [{ id: 1, items: [...], shipping: {...}, billing: {...}, status: 'pending' }, ...],
116
+ config: { features: {...}, limits: {...}, integrations: {...} }
117
+ };
118
+ // Every test imports testData, changes to it break unrelated tests
119
+ // FIX: Use focused factories per domain: createTestUser(), createTestOrder()
120
+ ```
121
+
122
+ **Pattern 6: Test verifies same thing multiple ways**
123
+
124
+ ```javascript
125
+ // REDUNDANT: Triple-checking the same outcome
126
+ it("creates user", async () => {
127
+ const user = await createUser(data);
128
+ expect(user).toBeDefined();
129
+ expect(user).not.toBeNull();
130
+ expect(user).not.toBeUndefined();
131
+ expect(user.id).toBeDefined();
132
+ expect(user.id).toBeGreaterThan(0);
133
+ expect(typeof user.id).toBe("number");
134
+ // First 3 assertions are redundant, last 3 could be one: expect(user.id).toBeGreaterThan(0)
135
+ });
136
+ ```
137
+
138
+ ---
139
+
140
+ ## Output Format
141
+
142
+ For each potential issue found, output:
143
+
144
+ ```markdown
145
+ ### FINDING-{N}: {Brief Title}
146
+
147
+ **Location**: `{file}:{line}`
148
+ **Severity**: CRITICAL | HIGH | MEDIUM | LOW
149
+ **Confidence**: HIGH | MEDIUM | LOW
150
+ **Category**: Testing Privates | Deep Mock Chain | Oversized Snapshot | Setup > Test | God Object | Redundant Assertions
151
+
152
+ **Code**:
153
+ \`\`\`{language}
154
+ {relevant code snippet, 3-7 lines}
155
+ \`\`\`
156
+
157
+ **Issue**: {Clear explanation of the anti-pattern}
158
+
159
+ **Maintenance Cost**: {How this affects test maintenance when code changes}
160
+
161
+ **Remediation**:
162
+
163
+ - {Specific refactoring suggestion with code example}
164
+ ```
165
+
166
+ ---
167
+
168
+ ## Severity Scale
169
+
170
+ | Severity | Definition | Example |
171
+ | -------- | -------------------------------------------------------------- | ----------------------------------------------------------------- |
172
+ | CRITICAL | Anti-pattern causes false confidence or systematic brittleness | God object affecting 50+ tests, deep mock chains on critical path |
173
+ | HIGH | Significant maintenance burden | 800+ line snapshots, setup-heavy tests across many files |
174
+ | MEDIUM | Pattern creates friction | Testing private methods, moderate deep mocking |
175
+ | LOW | Minor code smell | Slightly redundant assertions, small oversized setup |
176
+
177
+ ---
178
+
179
+ ## Important Rules
180
+
181
+ 1. **Be SPECIFIC**: Include exact file paths and line numbers
182
+ 2. **Measure snapshot sizes**: Report actual line counts of snapshot files
183
+ 3. **Count setup vs assertion lines**: Show the ratio
184
+ 4. **Check for factories/builders**: Project may already have test utilities that aren't being used
185
+ 5. **Consider test count affected**: God object affecting 5 tests is different from affecting 50
186
+
187
+ ---
188
+
189
+ ## What NOT to Report
190
+
191
+ - Moderate test setup that's necessary for the test (not all setup is bad)
192
+ - Small snapshots (<100 lines) that capture meaningful UI state
193
+ - Testing internal methods when no public API exists (e.g., private utility modules)
194
+ - Test coverage gaps (coverage analyzer handles those)
195
+ - Assertion strength (assertions analyzer handles those)
196
+ - Test fragility from timing (fragility analyzer handles those)