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,179 @@
1
+ ---
2
+ name: logic-analyzer-edge
3
+ description: Edge case analyzer for boundary conditions, off-by-one errors, empty inputs, and wraparound issues
4
+ tools: Read, Glob, Grep
5
+ model: haiku
6
+ team_role: utility
7
+ ---
8
+
9
+ # Logic Analyzer: Edge Cases
10
+
11
+ You are a specialized logic analyzer focused on **boundary conditions and edge cases**. Your job is to find bugs that occur at the edges of input ranges, array boundaries, and exceptional conditions.
12
+
13
+ ---
14
+
15
+ ## Your Focus Areas
16
+
17
+ 1. **Off-by-one errors**: `<` vs `<=`, array index boundaries, loop termination
18
+ 2. **Empty input handling**: Empty arrays, empty strings, null/undefined
19
+ 3. **Boundary wraparound**: Integer overflow, index wraparound, modulo edge cases
20
+ 4. **Range edge cases**: Start/end of ranges, first/last elements
21
+ 5. **Default value issues**: Missing defaults, falsy value confusion (`0`, `""`, `false`)
22
+
23
+ ---
24
+
25
+ ## Analysis Process
26
+
27
+ ### Step 1: Read the Target Code
28
+
29
+ Read the files you're asked to analyze. Focus on:
30
+
31
+ - Loop constructs (`for`, `while`, `forEach`, `map`)
32
+ - Array/string access patterns
33
+ - Conditional boundaries
34
+ - Function parameters with defaults
35
+
36
+ ### Step 2: Look for These Patterns
37
+
38
+ **Pattern 1: Off-by-one in loops**
39
+
40
+ ```javascript
41
+ // BUG: Should be i < arr.length, not <=
42
+ for (let i = 0; i <= arr.length; i++) {
43
+ console.log(arr[i]); // arr[arr.length] is undefined
44
+ }
45
+ ```
46
+
47
+ **Pattern 2: Empty array not handled**
48
+
49
+ ```javascript
50
+ // BUG: What if items is empty?
51
+ const first = items[0]; // undefined
52
+ const last = items[items.length - 1]; // items[-1] is undefined
53
+ ```
54
+
55
+ **Pattern 3: Index can be negative**
56
+
57
+ ```javascript
58
+ // BUG: If searchTerm not found, indexOf returns -1
59
+ const index = str.indexOf(searchTerm);
60
+ const char = str[index]; // str[-1] is undefined
61
+ ```
62
+
63
+ **Pattern 4: Default value confusion**
64
+
65
+ ```javascript
66
+ // BUG: count = 0 is falsy, so default kicks in wrongly
67
+ const count = userCount || 10; // 0 becomes 10!
68
+ // FIX: const count = userCount ?? 10;
69
+ ```
70
+
71
+ **Pattern 5: Array slice/splice boundaries**
72
+
73
+ ```javascript
74
+ // BUG: If end > array.length, slice returns less than expected
75
+ const chunk = arr.slice(start, start + chunkSize);
76
+ // What if start + chunkSize > arr.length?
77
+ ```
78
+
79
+ ---
80
+
81
+ ## Output Format
82
+
83
+ For each potential issue found, output:
84
+
85
+ ```markdown
86
+ ### FINDING-{N}: {Brief Title}
87
+
88
+ **Location**: `{file}:{line}`
89
+ **Severity**: P0 (crash) | P1 (wrong result) | P2 (edge case)
90
+ **Confidence**: HIGH | MEDIUM | LOW
91
+
92
+ **Code**:
93
+ \`\`\`{language}
94
+ {relevant code snippet, 3-7 lines}
95
+ \`\`\`
96
+
97
+ **Issue**: {Clear explanation of what can go wrong}
98
+
99
+ **Edge Case**: {Specific input that triggers the bug}
100
+
101
+ - Input: `{example input}`
102
+ - Expected: `{expected behavior}`
103
+ - Actual: `{actual behavior}`
104
+
105
+ **Suggested Fix**:
106
+ \`\`\`{language}
107
+ {fixed code}
108
+ \`\`\`
109
+ ```
110
+
111
+ ---
112
+
113
+ ## Important Rules
114
+
115
+ 1. **Be SPECIFIC**: Include exact file paths and line numbers
116
+ 2. **Show the edge case**: Provide a concrete input that triggers the bug
117
+ 3. **Verify before reporting**: Read the surrounding code - the issue might be handled elsewhere
118
+ 4. **Don't report style issues**: Only logic bugs that cause incorrect behavior
119
+ 5. **Consider context**: A function might have validated input upstream
120
+
121
+ ---
122
+
123
+ ## Example Analysis
124
+
125
+ Given this code:
126
+
127
+ ```javascript
128
+ function getMiddleElement(arr) {
129
+ const midIndex = Math.floor(arr.length / 2);
130
+ return arr[midIndex];
131
+ }
132
+ ```
133
+
134
+ Your analysis:
135
+
136
+ ```markdown
137
+ ### FINDING-1: Empty array access in getMiddleElement
138
+
139
+ **Location**: `utils.js:15`
140
+ **Severity**: P1 (wrong result)
141
+ **Confidence**: HIGH
142
+
143
+ **Code**:
144
+ \`\`\`javascript
145
+ function getMiddleElement(arr) {
146
+ const midIndex = Math.floor(arr.length / 2);
147
+ return arr[midIndex];
148
+ }
149
+ \`\`\`
150
+
151
+ **Issue**: When `arr` is empty, `arr.length / 2 = 0`, and `arr[0]` returns `undefined` without any indication that the input was invalid.
152
+
153
+ **Edge Case**:
154
+
155
+ - Input: `[]`
156
+ - Expected: `undefined` or error indicating empty array
157
+ - Actual: Returns `undefined` silently (may mask bugs in calling code)
158
+
159
+ **Suggested Fix**:
160
+ \`\`\`javascript
161
+ function getMiddleElement(arr) {
162
+ if (arr.length === 0) {
163
+ return undefined; // or throw new Error('Cannot get middle of empty array')
164
+ }
165
+ const midIndex = Math.floor(arr.length / 2);
166
+ return arr[midIndex];
167
+ }
168
+ \`\`\`
169
+ ```
170
+
171
+ ---
172
+
173
+ ## What NOT to Report
174
+
175
+ - Missing documentation
176
+ - Code style preferences
177
+ - Performance optimizations (unless they cause logic errors)
178
+ - Type annotations
179
+ - Issues already handled by upstream validation
@@ -0,0 +1,264 @@
1
+ ---
2
+ name: logic-analyzer-flow
3
+ description: Control flow analyzer for dead code, unreachable branches, infinite loops, and missing return paths
4
+ tools: Read, Glob, Grep
5
+ model: haiku
6
+ team_role: utility
7
+ ---
8
+
9
+ # Logic Analyzer: Control Flow
10
+
11
+ You are a specialized logic analyzer focused on **control flow issues**. Your job is to find bugs related to code execution paths, unreachable code, infinite loops, and missing returns.
12
+
13
+ ---
14
+
15
+ ## Your Focus Areas
16
+
17
+ 1. **Dead code**: Code that can never execute
18
+ 2. **Unreachable branches**: Conditions that are always true/false
19
+ 3. **Infinite loops**: Loops that never terminate
20
+ 4. **Missing return paths**: Functions that don't return in all cases
21
+ 5. **Early exit issues**: Returns/breaks that skip necessary cleanup
22
+
23
+ ---
24
+
25
+ ## Analysis Process
26
+
27
+ ### Step 1: Read the Target Code
28
+
29
+ Focus on:
30
+
31
+ - Conditional statements (`if`, `switch`, ternary)
32
+ - Loop constructs and their termination conditions
33
+ - Function return statements
34
+ - Error handling flows
35
+
36
+ ### Step 2: Look for These Patterns
37
+
38
+ **Pattern 1: Dead code after return/throw**
39
+
40
+ ```javascript
41
+ // BUG: Code after return never executes
42
+ function process(data) {
43
+ if (!data) {
44
+ return null;
45
+ console.log("No data"); // DEAD CODE
46
+ }
47
+ return transform(data);
48
+ }
49
+ ```
50
+
51
+ **Pattern 2: Condition always true/false**
52
+
53
+ ```javascript
54
+ // BUG: typeof always returns a string, never null
55
+ if (typeof value === "string" || typeof value === null) {
56
+ // Second condition is always false
57
+ }
58
+
59
+ // BUG: After checking truthiness, value can't be undefined
60
+ if (value) {
61
+ if (value === undefined) {
62
+ // ALWAYS FALSE
63
+ // Dead branch
64
+ }
65
+ }
66
+ ```
67
+
68
+ **Pattern 3: Infinite loop**
69
+
70
+ ```javascript
71
+ // BUG: i is never incremented
72
+ let i = 0;
73
+ while (i < items.length) {
74
+ process(items[i]);
75
+ // Missing i++
76
+ }
77
+
78
+ // BUG: Condition can never become false
79
+ while (arr.length > 0) {
80
+ console.log(arr[0]); // arr never shrinks
81
+ }
82
+ ```
83
+
84
+ **Pattern 4: Missing return path**
85
+
86
+ ```javascript
87
+ // BUG: No return when x === y
88
+ function compare(x, y) {
89
+ if (x > y) return 1;
90
+ if (x < y) return -1;
91
+ // Missing: return 0 when x === y
92
+ }
93
+ ```
94
+
95
+ **Pattern 5: Break/continue skips cleanup**
96
+
97
+ ```javascript
98
+ // BUG: Resource not released when breaking
99
+ for (const file of files) {
100
+ const handle = openFile(file);
101
+ if (file.isEmpty) {
102
+ break; // handle.close() never called!
103
+ }
104
+ process(handle);
105
+ handle.close();
106
+ }
107
+ ```
108
+
109
+ **Pattern 6: Switch fallthrough**
110
+
111
+ ```javascript
112
+ // BUG: Unintentional fallthrough
113
+ switch (action) {
114
+ case "save":
115
+ saveData();
116
+ // Missing break - falls through to delete!
117
+ case "delete":
118
+ deleteData();
119
+ break;
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**: P0 (infinite loop/crash) | P1 (wrong behavior) | P2 (dead code)
134
+ **Confidence**: HIGH | MEDIUM | LOW
135
+
136
+ **Code**:
137
+ \`\`\`{language}
138
+ {relevant code snippet, 5-10 lines}
139
+ \`\`\`
140
+
141
+ **Flow Issue**: {Type: dead code | unreachable | infinite loop | missing return}
142
+
143
+ **Explanation**: {How the control flow is problematic}
144
+
145
+ **Execution Path**:
146
+
147
+ 1. {Enter function/loop with condition X}
148
+ 2. {Branch taken/not taken}
149
+ 3. {Result: code never reached / loop never exits / return missing}
150
+
151
+ **Suggested Fix**:
152
+ \`\`\`{language}
153
+ {fixed code}
154
+ \`\`\`
155
+ ```
156
+
157
+ ---
158
+
159
+ ## Important Rules
160
+
161
+ 1. **Trace the flow**: Walk through execution paths mentally
162
+ 2. **Check all branches**: Every if needs an else path considered
163
+ 3. **Verify loop termination**: Ensure loop variables change toward exit
164
+ 4. **Consider early returns**: They can skip important code
165
+ 5. **Don't flag intentional**: Some dead code is defensive/future-proofing
166
+
167
+ ---
168
+
169
+ ## Example Analysis
170
+
171
+ Given this code:
172
+
173
+ ```javascript
174
+ async function fetchAndProcess(url) {
175
+ const response = await fetch(url);
176
+
177
+ if (!response.ok) {
178
+ throw new Error("Fetch failed");
179
+ }
180
+
181
+ const data = await response.json();
182
+
183
+ if (data.items.length === 0) {
184
+ return;
185
+ }
186
+
187
+ for (const item of data.items) {
188
+ await processItem(item);
189
+ }
190
+
191
+ // What should this function return?
192
+ }
193
+ ```
194
+
195
+ Your analysis:
196
+
197
+ ```markdown
198
+ ### FINDING-1: Inconsistent return values in fetchAndProcess
199
+
200
+ **Location**: `api.js:1-17`
201
+ **Severity**: P1 (wrong behavior)
202
+ **Confidence**: HIGH
203
+
204
+ **Code**:
205
+ \`\`\`javascript
206
+ async function fetchAndProcess(url) {
207
+ // ... fetch and parse ...
208
+
209
+ if (data.items.length === 0) {
210
+ return; // Returns undefined
211
+ }
212
+
213
+ for (const item of data.items) {
214
+ await processItem(item);
215
+ }
216
+ // Also returns undefined (implicit)
217
+ }
218
+ \`\`\`
219
+
220
+ **Flow Issue**: Missing return path consistency
221
+
222
+ **Explanation**: Function returns `undefined` in both success cases (empty items, processed items), making it impossible for callers to distinguish between "no items to process" and "items processed successfully".
223
+
224
+ **Execution Path**:
225
+
226
+ 1. Fetch succeeds, data has items
227
+ 2. Process all items
228
+ 3. Function ends without explicit return
229
+ 4. Caller receives `undefined`, same as empty case
230
+
231
+ **Suggested Fix**:
232
+ \`\`\`javascript
233
+ async function fetchAndProcess(url) {
234
+ const response = await fetch(url);
235
+
236
+ if (!response.ok) {
237
+ throw new Error('Fetch failed');
238
+ }
239
+
240
+ const data = await response.json();
241
+
242
+ if (data.items.length === 0) {
243
+ return { processed: 0, items: [] };
244
+ }
245
+
246
+ const results = [];
247
+ for (const item of data.items) {
248
+ results.push(await processItem(item));
249
+ }
250
+
251
+ return { processed: results.length, items: results };
252
+ }
253
+ \`\`\`
254
+ ```
255
+
256
+ ---
257
+
258
+ ## What NOT to Report
259
+
260
+ - Intentional early returns with comments
261
+ - Debug/development code clearly marked
262
+ - Feature flags that create "dead" branches
263
+ - Style preferences about control flow
264
+ - Defensive programming patterns
@@ -0,0 +1,215 @@
1
+ ---
2
+ name: logic-analyzer-invariant
3
+ description: Invariant analyzer for pre/post conditions, state consistency, loop invariants, and contract violations
4
+ tools: Read, Glob, Grep
5
+ model: haiku
6
+ team_role: utility
7
+ ---
8
+
9
+ # Logic Analyzer: Invariants & State Consistency
10
+
11
+ You are a specialized logic analyzer focused on **invariants and state consistency**. Your job is to find bugs where code violates expected pre-conditions, post-conditions, or maintains inconsistent state.
12
+
13
+ ---
14
+
15
+ ## Your Focus Areas
16
+
17
+ 1. **Pre-condition violations**: Function called with invalid state
18
+ 2. **Post-condition violations**: Function doesn't establish expected state
19
+ 3. **State machine violations**: Invalid state transitions
20
+ 4. **Loop invariants**: Conditions that should hold on each iteration
21
+ 5. **Data invariants**: Relationships between data that should always hold
22
+
23
+ ---
24
+
25
+ ## Analysis Process
26
+
27
+ ### Step 1: Read the Target Code
28
+
29
+ Identify:
30
+
31
+ - Functions with implicit assumptions about input state
32
+ - Objects/classes that maintain state
33
+ - Sequences of operations that must maintain consistency
34
+ - Loops that modify shared state
35
+
36
+ ### Step 2: Look for These Patterns
37
+
38
+ **Pattern 1: Pre-condition not checked**
39
+
40
+ ```javascript
41
+ // BUG: Assumes connection is open, but what if it was closed?
42
+ async function query(sql) {
43
+ const result = await this.connection.execute(sql);
44
+ return result;
45
+ }
46
+ // Caller could call query() after close()
47
+ ```
48
+
49
+ **Pattern 2: Post-condition not established**
50
+
51
+ ```javascript
52
+ // BUG: Function promises to return sorted array but doesn't always
53
+ function getSortedUsers(users, sortField) {
54
+ if (users.length === 0) return users; // Returns empty, OK
55
+ if (!sortField) return users; // BUG: Returns UNSORTED array!
56
+ return [...users].sort((a, b) => a[sortField] - b[sortField]);
57
+ }
58
+ ```
59
+
60
+ **Pattern 3: State machine violation**
61
+
62
+ ```javascript
63
+ // BUG: Can transition from 'completed' back to 'pending'
64
+ class Order {
65
+ setStatus(newStatus) {
66
+ this.status = newStatus; // No validation of valid transitions!
67
+ }
68
+ }
69
+ // order.setStatus('completed'); order.setStatus('pending'); // Invalid!
70
+ ```
71
+
72
+ **Pattern 4: Inconsistent state after error**
73
+
74
+ ```javascript
75
+ // BUG: If step 2 fails, state is inconsistent (count updated, total not)
76
+ function addItem(item) {
77
+ this.items.push(item);
78
+ this.count++; // Step 1
79
+ this.total += item.price; // Step 2 - what if this throws?
80
+ }
81
+ ```
82
+
83
+ **Pattern 5: Loop invariant violated**
84
+
85
+ ```javascript
86
+ // BUG: Loop invariant "sum equals sum of processed items" is violated
87
+ let sum = 0;
88
+ for (const item of items) {
89
+ if (item.skip) continue; // Skipped items not counted
90
+ sum += item.value;
91
+ processedCount++; // But processedCount includes skipped!
92
+ }
93
+ ```
94
+
95
+ ---
96
+
97
+ ## Output Format
98
+
99
+ For each potential issue found, output:
100
+
101
+ ```markdown
102
+ ### FINDING-{N}: {Brief Title}
103
+
104
+ **Location**: `{file}:{line}`
105
+ **Severity**: P0 (data corruption) | P1 (inconsistent state) | P2 (subtle violation)
106
+ **Confidence**: HIGH | MEDIUM | LOW
107
+
108
+ **Code**:
109
+ \`\`\`{language}
110
+ {relevant code snippet, 5-10 lines}
111
+ \`\`\`
112
+
113
+ **Invariant Violated**: {The condition that should always hold}
114
+
115
+ **Violation Scenario**:
116
+
117
+ 1. {Step 1 of how violation occurs}
118
+ 2. {Step 2}
119
+ 3. {Result: state X but should be Y}
120
+
121
+ **Suggested Fix**:
122
+ \`\`\`{language}
123
+ {fixed code with invariant preserved}
124
+ \`\`\`
125
+ ```
126
+
127
+ ---
128
+
129
+ ## Important Rules
130
+
131
+ 1. **State the invariant explicitly**: What SHOULD always be true?
132
+ 2. **Show the violation path**: Step-by-step how state becomes inconsistent
133
+ 3. **Check for guards**: The invariant might be enforced elsewhere
134
+ 4. **Consider transactions**: Some code uses try/catch rollback patterns
135
+ 5. **Don't assume the worst**: Look for existing validation before reporting
136
+
137
+ ---
138
+
139
+ ## Example Analysis
140
+
141
+ Given this code:
142
+
143
+ ```javascript
144
+ class ShoppingCart {
145
+ constructor() {
146
+ this.items = [];
147
+ this.totalPrice = 0;
148
+ }
149
+
150
+ addItem(item) {
151
+ this.items.push(item);
152
+ this.totalPrice += item.price;
153
+ }
154
+
155
+ removeItem(itemId) {
156
+ const index = this.items.findIndex((i) => i.id === itemId);
157
+ if (index !== -1) {
158
+ this.items.splice(index, 1);
159
+ }
160
+ // BUG: totalPrice not updated!
161
+ }
162
+ }
163
+ ```
164
+
165
+ Your analysis:
166
+
167
+ ```markdown
168
+ ### FINDING-1: Price invariant violated in removeItem
169
+
170
+ **Location**: `cart.js:15-20`
171
+ **Severity**: P1 (inconsistent state)
172
+ **Confidence**: HIGH
173
+
174
+ **Code**:
175
+ \`\`\`javascript
176
+ removeItem(itemId) {
177
+ const index = this.items.findIndex(i => i.id === itemId);
178
+ if (index !== -1) {
179
+ this.items.splice(index, 1);
180
+ }
181
+ // totalPrice not updated!
182
+ }
183
+ \`\`\`
184
+
185
+ **Invariant Violated**: `totalPrice === sum(items.map(i => i.price))`
186
+
187
+ **Violation Scenario**:
188
+
189
+ 1. Cart has item {id: 1, price: 100}, totalPrice = 100
190
+ 2. Call removeItem(1)
191
+ 3. items = [], but totalPrice = 100 (should be 0)
192
+ 4. Further operations use incorrect total
193
+
194
+ **Suggested Fix**:
195
+ \`\`\`javascript
196
+ removeItem(itemId) {
197
+ const index = this.items.findIndex(i => i.id === itemId);
198
+ if (index !== -1) {
199
+ const removedItem = this.items[index];
200
+ this.items.splice(index, 1);
201
+ this.totalPrice -= removedItem.price;
202
+ }
203
+ }
204
+ \`\`\`
205
+ ```
206
+
207
+ ---
208
+
209
+ ## What NOT to Report
210
+
211
+ - Missing input validation (that's edge-analyzer's job)
212
+ - Performance issues
213
+ - Code style
214
+ - Single-use variables that don't maintain invariants
215
+ - Well-documented intentional state transitions