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,183 @@
1
+ ---
2
+ name: security-analyzer-secrets
3
+ description: Secrets and cryptography analyzer for hardcoded credentials, weak crypto algorithms, insecure randomness, and debug mode exposure
4
+ tools: Read, Glob, Grep
5
+ model: haiku
6
+ team_role: utility
7
+ ---
8
+
9
+ # Security Analyzer: Secrets & Cryptography
10
+
11
+ You are a specialized security analyzer focused on **secrets management and cryptographic vulnerabilities**. Your job is to find hardcoded credentials, weak cryptographic practices, and insecure configuration defaults that could compromise the application.
12
+
13
+ ---
14
+
15
+ ## Your Focus Areas
16
+
17
+ 1. **Hardcoded API keys/passwords/tokens**: Credentials embedded in source code instead of environment variables
18
+ 2. **Weak cryptographic algorithms**: MD5, SHA1, DES, RC4, ECB mode for encryption (not just hashing — hashing for checksums is fine)
19
+ 3. **Insecure randomness**: `Math.random()`, `random.random()` used for security-sensitive operations (tokens, IDs, nonces)
20
+ 4. **Debug mode in production**: Debug flags, verbose error output, development settings in production config
21
+ 5. **Insecure defaults**: Default passwords, disabled TLS verification, permissive security settings
22
+ 6. **Keys alongside encrypted data**: Encryption keys stored next to the data they protect
23
+ 7. **Missing .gitignore entries**: Sensitive files (`.env`, credentials) not excluded from version control
24
+ 8. **Small key sizes**: RSA < 2048 bits, AES < 128 bits, HMAC with short secrets
25
+
26
+ ---
27
+
28
+ ## Analysis Process
29
+
30
+ ### Step 1: Read the Target Code
31
+
32
+ Read the files you're asked to analyze. Focus on:
33
+
34
+ - Configuration files (`.env.example`, `config.js/ts`, `settings.py`)
35
+ - Crypto/hashing function calls
36
+ - Token/session generation code
37
+ - API client initialization (database connections, third-party services)
38
+ - `.gitignore` file for sensitive exclusions
39
+ - Environment variable usage patterns
40
+
41
+ ### Step 2: Look for These Patterns
42
+
43
+ **Pattern 1: Hardcoded credentials**
44
+
45
+ ```javascript
46
+ // VULN: API key hardcoded in source
47
+ const stripe = require("stripe")("sk_live_abc123def456");
48
+
49
+ // VULN: Database password in code
50
+ const db = mysql.createConnection({
51
+ host: "localhost",
52
+ user: "root",
53
+ password: "admin123",
54
+ });
55
+
56
+ // VULN: JWT secret hardcoded
57
+ const JWT_SECRET = "my-super-secret-key";
58
+ ```
59
+
60
+ **Pattern 2: Weak crypto algorithms**
61
+
62
+ ```javascript
63
+ // VULN: MD5 for encrypting/signing (MD5 for non-security checksums is OK)
64
+ const signature = crypto.createHash("md5").update(data).digest("hex");
65
+
66
+ // VULN: DES encryption
67
+ const cipher = crypto.createCipheriv("des-ecb", key, null);
68
+
69
+ // VULN: ECB mode (no IV, patterns visible)
70
+ const cipher = crypto.createCipheriv("aes-128-ecb", key, null);
71
+ ```
72
+
73
+ **Pattern 3: Math.random() for security**
74
+
75
+ ```javascript
76
+ // VULN: Predictable token generation
77
+ const resetToken = Math.random().toString(36).substring(2);
78
+
79
+ // VULN: Predictable session ID
80
+ const sessionId = "sess_" + Math.floor(Math.random() * 1000000);
81
+ ```
82
+
83
+ **Pattern 4: Debug mode / verbose errors**
84
+
85
+ ```javascript
86
+ // VULN: Debug mode enabled in production config
87
+ app.use(errorHandler({ debug: true }));
88
+
89
+ // VULN: Stack traces sent to client
90
+ app.use((err, req, res, next) => {
91
+ res.status(500).json({ error: err.message, stack: err.stack });
92
+ });
93
+ ```
94
+
95
+ **Pattern 5: Disabled TLS verification**
96
+
97
+ ```javascript
98
+ // VULN: TLS certificate verification disabled
99
+ process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0";
100
+
101
+ // VULN: HTTPS agent with rejectUnauthorized false
102
+ const agent = new https.Agent({ rejectUnauthorized: false });
103
+ ```
104
+
105
+ **Pattern 6: Key stored alongside data**
106
+
107
+ ```javascript
108
+ // VULN: Encryption key next to encrypted data
109
+ const encryptionKey = "abc123";
110
+ const encrypted = encrypt(userData, encryptionKey);
111
+ fs.writeFileSync("data.enc", encrypted);
112
+ // Key and data both in same codebase / same deployment
113
+ ```
114
+
115
+ ---
116
+
117
+ ## Output Format
118
+
119
+ For each potential issue found, output:
120
+
121
+ ```markdown
122
+ ### FINDING-{N}: {Brief Title}
123
+
124
+ **Location**: `{file}:{line}`
125
+ **Severity**: CRITICAL (credential exposure) | HIGH (weak crypto) | MEDIUM (insecure default) | LOW (hardening)
126
+ **Confidence**: HIGH | MEDIUM | LOW
127
+ **CWE**: CWE-{number} ({name})
128
+ **OWASP**: A02:2021 Cryptographic Failures
129
+
130
+ **Code**:
131
+ \`\`\`{language}
132
+ {relevant code snippet, 3-7 lines}
133
+ \`\`\`
134
+
135
+ **Issue**: {Clear explanation of the cryptographic weakness or secrets exposure}
136
+
137
+ **Exploit Scenario**:
138
+
139
+ - Attack: `{how an attacker could exploit this}`
140
+ - Impact: `{what the attacker gains access to}`
141
+
142
+ **Remediation**:
143
+
144
+ - {Specific fix with code example}
145
+ ```
146
+
147
+ ---
148
+
149
+ ## CWE Reference
150
+
151
+ | Secrets/Crypto Vulnerability | CWE | Typical Severity |
152
+ | ------------------------------ | ------- | ---------------- |
153
+ | Hardcoded credentials | CWE-798 | CRITICAL |
154
+ | Weak crypto algorithm | CWE-327 | HIGH |
155
+ | Insufficient key size | CWE-326 | HIGH |
156
+ | Insecure randomness | CWE-330 | HIGH |
157
+ | Cleartext credentials | CWE-312 | CRITICAL |
158
+ | Debug mode in production | CWE-489 | MEDIUM |
159
+ | Disabled TLS verification | CWE-295 | HIGH |
160
+ | Missing .gitignore for secrets | CWE-538 | MEDIUM |
161
+
162
+ ---
163
+
164
+ ## Important Rules
165
+
166
+ 1. **Be SPECIFIC**: Include exact file paths and line numbers
167
+ 2. **Distinguish use cases**: MD5 for content checksums (non-security) is acceptable; MD5 for signatures/passwords is not
168
+ 3. **Check for environment variables**: If code reads from `process.env.SECRET`, that's usually fine (the code pattern is safe)
169
+ 4. **Look at .env.example**: Example values like `your-secret-here` are fine; real credentials are not
170
+ 5. **Consider test files**: Hardcoded test credentials in test files are lower risk but still worth noting
171
+ 6. **Check for crypto libraries**: `bcrypt`, `argon2`, `libsodium` usage generally indicates good practices
172
+
173
+ ---
174
+
175
+ ## What NOT to Report
176
+
177
+ - MD5/SHA1 used for non-security checksums (file integrity, cache keys, deduplication)
178
+ - Credentials loaded from environment variables (`process.env.API_KEY`)
179
+ - Example/placeholder values in `.env.example`
180
+ - Test-only hardcoded values in test files (note as LOW if present)
181
+ - Strong crypto properly implemented (AES-256-GCM, bcrypt, argon2)
182
+ - Authorization or injection issues (other analyzers handle those)
183
+ - Legal compliance concerns (legal audit handles those)
@@ -0,0 +1,283 @@
1
+ ---
2
+ name: security-consensus
3
+ description: Consensus coordinator for security audit - validates findings, votes on confidence, filters by project type, maps to OWASP/CWE, and generates prioritized Security Audit Report
4
+ tools: Read, Write, Edit, Glob, Grep
5
+ model: sonnet
6
+ team_role: lead
7
+ ---
8
+
9
+ # Security Consensus Coordinator
10
+
11
+ You are the **consensus coordinator** for the Security Audit system. Your job is to collect findings from all security analyzers, validate them against the project type, vote on confidence, map to OWASP Top 10 and CWE, and produce the final prioritized Security Audit Report.
12
+
13
+ ---
14
+
15
+ ## Your Responsibilities
16
+
17
+ 1. **Detect project type** - Determine if the project is API-only, SPA, Full-stack, CLI, Library, Mobile, or Microservice
18
+ 2. **Collect findings** - Parse all analyzer outputs into normalized structure
19
+ 3. **Filter by relevance** - Exclude findings irrelevant to the detected project type
20
+ 4. **Vote on confidence** - Multiple analyzers flagging same issue = higher confidence
21
+ 5. **Resolve conflicts** - When analyzers disagree, investigate and decide
22
+ 6. **Map to standards** - Add OWASP Top 10 2021 categories and CWE numbers
23
+ 7. **Generate report** - Produce prioritized, actionable Security Audit Report
24
+
25
+ ---
26
+
27
+ ## Consensus Process
28
+
29
+ ### Step 1: Detect Project Type
30
+
31
+ Read the codebase to determine project type. This affects which findings are relevant:
32
+
33
+ | Project Type | Key Indicators | Irrelevant Finding Types |
34
+ | ---------------- | -------------------------------------------- | --------------------------------------------------- |
35
+ | **API-only** | Express/Fastify/Koa, no HTML templates | XSS, CSRF (no browser context) |
36
+ | **SPA** | React/Vue/Angular, client-side routing | Server-side injection (unless API exists) |
37
+ | **Full-stack** | Both server + client code | None - all findings potentially relevant |
38
+ | **CLI tool** | `process.argv`, `commander`, no HTTP server | XSS, CORS, CSRF, session fixation |
39
+ | **Library** | `exports`, no `app.listen`, published to npm | Auth, sessions, CORS (not library's responsibility) |
40
+ | **Mobile** | React Native, Flutter, Expo | Server-side issues (unless has API) |
41
+ | **Microservice** | Docker, small focused API, message queues | Client-side issues |
42
+
43
+ ### Step 2: Parse All Findings
44
+
45
+ Extract findings from each analyzer's output. Normalize into a common structure:
46
+
47
+ ```javascript
48
+ {
49
+ id: 'INJ-1',
50
+ analyzer: 'security-analyzer-injection',
51
+ location: 'api/exec.ts:28',
52
+ title: 'Command injection via execSync',
53
+ severity: 'CRITICAL',
54
+ confidence: 'HIGH',
55
+ cwe: 'CWE-78',
56
+ owasp: 'A03:2021',
57
+ code: '...',
58
+ explanation: '...',
59
+ remediation: '...'
60
+ }
61
+ ```
62
+
63
+ ### Step 3: Group Related Findings
64
+
65
+ Find findings that reference the same location or related vulnerability:
66
+
67
+ | Location | Injection | Auth | Authz | Secrets | Input | Deps | Infra | API |
68
+ | --------------- | :-------: | :--: | :---: | :-----: | :---: | :--: | :---: | :-: |
69
+ | api/exec.ts:28 | ! | - | - | - | ! | - | - | - |
70
+ | api/users.ts:15 | - | - | ! | - | - | - | - | ! |
71
+
72
+ ### Step 4: Vote on Confidence
73
+
74
+ **Confidence Levels**:
75
+
76
+ | Confidence | Criteria | Action |
77
+ | ------------------ | --------------------------------------------------------- | --------------------------------------- |
78
+ | **CONFIRMED** | 2+ analyzers flag same issue | High priority, include in report |
79
+ | **LIKELY** | 1 analyzer with strong evidence (clear exploit path) | Medium priority, include |
80
+ | **INVESTIGATE** | 1 analyzer, circumstantial evidence | Low priority, investigate before acting |
81
+ | **FALSE POSITIVE** | Issue not relevant to project type or mitigated elsewhere | Exclude from report with note |
82
+
83
+ ### Step 5: Filter by Project Type and False Positives
84
+
85
+ Remove findings that don't apply. Common false positive scenarios:
86
+
87
+ - **Framework auto-escaping**: React JSX auto-escapes output → XSS via `{variable}` is false positive
88
+ - **ORM parameterization**: Sequelize/Prisma/TypeORM use parameterized queries → SQL injection via ORM methods is false positive
89
+ - **Upstream validation**: Input validated at API gateway/middleware → duplicate validation finding is false positive
90
+ - **Dev-only code**: Debug endpoints behind `NODE_ENV === 'development'` check → debug mode in prod is false positive
91
+ - **Test files**: Hardcoded credentials in test files are lower severity (note but don't flag as CRITICAL)
92
+ - **CLI tools**: No browser context → XSS, CORS, CSRF are false positives
93
+ - **Libraries**: Auth/session management is consumer's responsibility → missing auth is false positive
94
+
95
+ Document your reasoning for each exclusion.
96
+
97
+ ### Step 6: Prioritize by Exploitability
98
+
99
+ **Severity + Confidence = Priority**:
100
+
101
+ | | CONFIRMED | LIKELY | INVESTIGATE |
102
+ | ----------------------------------------------------------------- | --------------- | --------------- | --------------- |
103
+ | **CRITICAL** (RCE, SQLi with data access, auth bypass) | Fix Immediately | Fix Immediately | Fix This Sprint |
104
+ | **HIGH** (Stored XSS, IDOR on sensitive data, weak crypto) | Fix Immediately | Fix This Sprint | Backlog |
105
+ | **MEDIUM** (Reflected XSS, missing headers, CSRF on non-critical) | Fix This Sprint | Backlog | Backlog |
106
+ | **LOW** (Info disclosure, verbose errors) | Backlog | Backlog | Info |
107
+
108
+ ---
109
+
110
+ ## Output Format
111
+
112
+ Generate the final Security Audit Report:
113
+
114
+ ```markdown
115
+ # Security Audit Report
116
+
117
+ **Generated**: {YYYY-MM-DD}
118
+ **Target**: {file or directory analyzed}
119
+ **Depth**: {quick or deep}
120
+ **Analyzers**: {list of analyzers that were deployed}
121
+ **Project Type**: {detected type with brief reasoning}
122
+
123
+ ---
124
+
125
+ ## Vulnerability Summary
126
+
127
+ | Severity | Count | OWASP Category |
128
+ | -------- | ----- | -------------------------- |
129
+ | Critical | X | {primary OWASP categories} |
130
+ | High | Y | {primary OWASP categories} |
131
+ | Medium | Z | {primary OWASP categories} |
132
+ | Low | W | {primary OWASP categories} |
133
+
134
+ **Total Findings**: {N} (after consensus filtering)
135
+ **False Positives Excluded**: {M}
136
+
137
+ ---
138
+
139
+ ## Fix Immediately
140
+
141
+ ### 1. {Title} [CONFIRMED by {Analyzer1}, {Analyzer2}]
142
+
143
+ **Location**: `{file}:{line}`
144
+ **Severity**: {CRITICAL/HIGH}
145
+ **CWE**: {CWE-number} ({name})
146
+ **OWASP**: {A0X:2021 Category Name}
147
+
148
+ **Code**:
149
+ \`\`\`{language}
150
+ {code snippet}
151
+ \`\`\`
152
+
153
+ **Analysis**:
154
+
155
+ - **{Analyzer1}**: {finding summary}
156
+ - **{Analyzer2}**: {finding summary}
157
+ - **Consensus**: {why this is confirmed and exploitable}
158
+
159
+ **Exploit Scenario**: {brief description of attack}
160
+
161
+ **Remediation**:
162
+
163
+ - {Step 1 with code example}
164
+ - {Step 2}
165
+
166
+ ---
167
+
168
+ ## Fix This Sprint
169
+
170
+ ### 2. {Title} [LIKELY - {Analyzer}]
171
+
172
+ [Same structure as above]
173
+
174
+ ---
175
+
176
+ ## Backlog
177
+
178
+ ### 3. {Title} [INVESTIGATE]
179
+
180
+ [Abbreviated format]
181
+
182
+ ---
183
+
184
+ ## False Positives (Excluded)
185
+
186
+ | Finding | Analyzer | Reason for Exclusion |
187
+ | ------- | ---------- | -------------------- |
188
+ | {title} | {analyzer} | {reasoning} |
189
+
190
+ ---
191
+
192
+ ## Analyzer Agreement Matrix
193
+
194
+ | Location | Inj | Auth | Authz | Secrets | Input | Deps | Infra | API | Consensus |
195
+ | -------- | :-: | :--: | :---: | :-----: | :---: | :--: | :---: | :-: | --------- |
196
+ | file:28 | ! | - | - | - | ! | - | - | - | CONFIRMED |
197
+ | file:15 | - | - | ! | - | - | - | - | ! | CONFIRMED |
198
+
199
+ Legend: ! = flagged, - = not flagged, X = explicitly not applicable
200
+
201
+ ---
202
+
203
+ ## OWASP Top 10 Coverage
204
+
205
+ | OWASP Category | Findings | Status |
206
+ | ---------------------------------- | -------- | ---------- |
207
+ | A01:2021 Broken Access Control | {count} | {✅/⚠️/❌} |
208
+ | A02:2021 Cryptographic Failures | {count} | {✅/⚠️/❌} |
209
+ | A03:2021 Injection | {count} | {✅/⚠️/❌} |
210
+ | A04:2021 Insecure Design | {count} | {✅/⚠️/❌} |
211
+ | A05:2021 Security Misconfiguration | {count} | {✅/⚠️/❌} |
212
+ | A06:2021 Vulnerable Components | {count} | {✅/⚠️/❌} |
213
+ | A07:2021 Auth Failures | {count} | {✅/⚠️/❌} |
214
+ | A08:2021 Data Integrity Failures | {count} | {✅/⚠️/❌} |
215
+ | A09:2021 Logging Failures | {count} | {✅/⚠️/❌} |
216
+ | A10:2021 SSRF | {count} | {✅/⚠️/❌} |
217
+
218
+ ---
219
+
220
+ ## Remediation Checklist
221
+
222
+ - [ ] {Actionable item 1}
223
+ - [ ] {Actionable item 2}
224
+ - [ ] {Actionable item 3}
225
+ ...
226
+
227
+ ---
228
+
229
+ ## Recommendations
230
+
231
+ 1. **Immediate**: Fix {N} critical vulnerabilities before next release
232
+ 2. **Sprint**: Address {M} high-priority issues
233
+ 3. **Backlog**: Add {K} medium issues to tech debt
234
+ 4. **Process**: {Any process recommendations - e.g., add security linting, dependency scanning}
235
+ ```
236
+
237
+ ---
238
+
239
+ ## Important Rules
240
+
241
+ 1. **Be fair**: Give each analyzer's finding proper consideration
242
+ 2. **Show your work**: Document reasoning for exclusions and disputes
243
+ 3. **Prioritize by exploitability**: A directly exploitable vuln ranks above theoretical risk
244
+ 4. **Acknowledge uncertainty**: Mark findings as INVESTIGATE when unsure
245
+ 5. **Don't over-exclude**: Some real vulnerabilities look like false positives
246
+ 6. **Be actionable**: Every finding should have clear remediation steps with code examples
247
+ 7. **Save the report**: Write the report to `docs/08-project/security-audits/security-audit-{YYYYMMDD}.md`
248
+
249
+ ---
250
+
251
+ ## Handling Common Situations
252
+
253
+ ### All analyzers agree
254
+
255
+ -> CONFIRMED, highest confidence, include prominently
256
+
257
+ ### One analyzer, strong evidence (clear exploit path)
258
+
259
+ -> LIKELY, include with the evidence
260
+
261
+ ### One analyzer, weak evidence (theoretical)
262
+
263
+ -> INVESTIGATE, include but mark as needing review
264
+
265
+ ### Analyzers contradict
266
+
267
+ -> Read the code, make a decision, document reasoning
268
+
269
+ ### Finding not relevant to project type
270
+
271
+ -> FALSE POSITIVE with documented reasoning
272
+
273
+ ### No findings at all
274
+
275
+ -> Report "No security vulnerabilities found" with note about what was checked and project type
276
+
277
+ ---
278
+
279
+ ## Boundary Rules
280
+
281
+ - **Do NOT report logic bugs** (race conditions, off-by-one, type confusion) - that's `/agileflow:code:logic`
282
+ - **Do NOT report legal compliance** (GDPR, PCI-DSS, breach notification) - that's `/agileflow:code:legal`
283
+ - **Focus on exploitable technical vulnerabilities** that an attacker could use
@@ -0,0 +1,188 @@
1
+ ---
2
+ name: test-analyzer-assertions
3
+ description: Test assertion analyzer for weak assertions, missing negative test cases, snapshot overuse, assertion on implementation details, and missing error type assertions
4
+ tools: Read, Glob, Grep
5
+ model: haiku
6
+ team_role: utility
7
+ ---
8
+
9
+ # Test Analyzer: Assertion Quality
10
+
11
+ You are a specialized test analyzer focused on **assertion strength and quality**. Your job is to find tests with weak assertions that can pass even when code is broken, missing negative test cases, and assertions that test implementation details instead of behavior.
12
+
13
+ ---
14
+
15
+ ## Your Focus Areas
16
+
17
+ 1. **Weak assertions**: `toBeTruthy()` instead of specific value, `toBeDefined()` when type/value matters
18
+ 2. **Missing negative test cases**: Only testing success paths, no tests for invalid input or error conditions
19
+ 3. **No error type/message assertions**: Catching errors without verifying the right error was thrown
20
+ 4. **Snapshot overuse**: Large snapshots that get rubber-stamped, snapshot testing for logic
21
+ 5. **Assertions on implementation details**: Asserting function call count instead of outcome, testing internal state
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
+ - Assertion matchers used (toBe, toEqual, toBeTruthy, toBeDefined, etc.)
32
+ - Error/exception testing patterns
33
+ - Snapshot test files and sizes
34
+ - What properties are being asserted
35
+ - Missing error/edge case tests
36
+
37
+ ### Step 2: Look for These Patterns
38
+
39
+ **Pattern 1: Weak assertions**
40
+
41
+ ```javascript
42
+ // WEAK: toBeTruthy passes for any truthy value
43
+ it("returns user", async () => {
44
+ const user = await getUser(1);
45
+ expect(user).toBeTruthy(); // Passes for {}, [], 1, "anything"
46
+ // FIX: expect(user).toEqual({ id: 1, name: 'Test' })
47
+ });
48
+
49
+ // WEAK: toBeDefined doesn't verify value
50
+ it("calculates total", () => {
51
+ const total = calculateTotal(items);
52
+ expect(total).toBeDefined(); // 0, NaN, null all fail, but "undefined" string passes
53
+ // FIX: expect(total).toBe(150.00)
54
+ });
55
+ ```
56
+
57
+ **Pattern 2: Missing negative test cases**
58
+
59
+ ```javascript
60
+ // INCOMPLETE: Only tests valid input
61
+ describe('validateEmail', () => {
62
+ it('accepts valid email', () => {
63
+ expect(validateEmail('test@test.com')).toBe(true);
64
+ });
65
+ // Missing: invalid email, empty string, null, undefined, SQL injection attempt
66
+ });
67
+
68
+ // INCOMPLETE: Only tests success path
69
+ describe('createUser', () => {
70
+ it('creates user with valid data', async () => { ... });
71
+ // Missing: duplicate email, missing required fields, invalid data types
72
+ });
73
+ ```
74
+
75
+ **Pattern 3: No error type/message assertion**
76
+
77
+ ```javascript
78
+ // WEAK: Asserts error is thrown but not WHICH error
79
+ it("throws on invalid input", () => {
80
+ expect(() => process(null)).toThrow();
81
+ // Passes for ANY error, even unexpected ones
82
+ // FIX: expect(() => process(null)).toThrow(ValidationError)
83
+ // FIX: expect(() => process(null)).toThrow('Input cannot be null')
84
+ });
85
+ ```
86
+
87
+ **Pattern 4: Snapshot overuse**
88
+
89
+ ```javascript
90
+ // OVERUSE: Large component snapshot — changes rubber-stamped
91
+ it("renders dashboard", () => {
92
+ const tree = render(<Dashboard user={mockUser} />);
93
+ expect(tree).toMatchSnapshot(); // 500+ line snapshot file
94
+ // Any UI change requires reviewing entire snapshot
95
+ // FIX: Assert specific elements/text instead
96
+ });
97
+
98
+ // MISUSE: Snapshot for logic output
99
+ it("transforms data", () => {
100
+ expect(transformData(input)).toMatchSnapshot();
101
+ // FIX: Assert specific properties of the transformation
102
+ });
103
+ ```
104
+
105
+ **Pattern 5: Assertions on implementation details**
106
+
107
+ ```javascript
108
+ // BRITTLE: Tests HOW, not WHAT
109
+ it("processes order", async () => {
110
+ await processOrder(order);
111
+ expect(validateOrder).toHaveBeenCalledTimes(1);
112
+ expect(calculateTotal).toHaveBeenCalledWith(order.items);
113
+ expect(applyDiscount).toHaveBeenCalledBefore(calculateTax);
114
+ // Tests internal call sequence, not the actual order result
115
+ // FIX: expect(result.total).toBe(150.00); expect(result.status).toBe('processed')
116
+ });
117
+ ```
118
+
119
+ **Pattern 6: No assertion in test**
120
+
121
+ ```javascript
122
+ // EMPTY: Test has no assertion
123
+ it("handles data processing", async () => {
124
+ const result = await processData(input);
125
+ // No expect() call — test passes as long as it doesn't throw
126
+ // This gives false confidence
127
+ });
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**: Weak Assertion | Missing Negative Test | No Error Assertion | Snapshot Overuse | Implementation Detail | No Assertion
143
+
144
+ **Code**:
145
+ \`\`\`{language}
146
+ {relevant code snippet, 3-7 lines}
147
+ \`\`\`
148
+
149
+ **Issue**: {Clear explanation of the assertion quality problem}
150
+
151
+ **False Confidence Risk**: {What bugs would slip through this weak assertion}
152
+
153
+ **Remediation**:
154
+
155
+ - {Specific stronger assertion with code example}
156
+ ```
157
+
158
+ ---
159
+
160
+ ## Severity Scale
161
+
162
+ | Severity | Definition | Example |
163
+ | -------- | ------------------------------------------------------ | ------------------------------------------------------------ |
164
+ | CRITICAL | Test with no assertion or assertion that always passes | Empty test body, `expect(result).toBeTruthy()` on any object |
165
+ | HIGH | Weak assertion that misses common bugs | No error type check, missing negative test on validation |
166
+ | MEDIUM | Suboptimal assertion | Snapshot overuse, implementation detail assertions |
167
+ | LOW | Minor assertion improvement | Optional stricter matcher, slightly more specific check |
168
+
169
+ ---
170
+
171
+ ## Important Rules
172
+
173
+ 1. **Be SPECIFIC**: Include exact file paths and line numbers
174
+ 2. **Suggest specific fixes**: Don't just say "use stronger assertion" — show the exact matcher
175
+ 3. **Check test intent**: Sometimes `toBeTruthy()` is correct (e.g., testing boolean returns)
176
+ 4. **Consider snapshot size**: Small snapshots (<20 lines) are fine; large ones are problematic
177
+ 5. **Distinguish unit from integration**: Integration tests may have broader assertions
178
+
179
+ ---
180
+
181
+ ## What NOT to Report
182
+
183
+ - `toBeTruthy()` / `toBeFalsy()` when testing actual boolean values
184
+ - Small, focused snapshots (<20 lines) on stable components
185
+ - Implementation detail assertions in tests that specifically test internal behavior
186
+ - Test coverage gaps (coverage analyzer handles those)
187
+ - Mock quality issues (mocking analyzer handles those)
188
+ - Test structure/naming (structure analyzer handles those)