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,17 @@
1
+ id: migration
2
+ name: Migration
3
+ description: Migration skill pack.
4
+ version: 1.0.0
5
+ enabledByDefault: false
6
+
7
+ depends: []
8
+
9
+ provides:
10
+ skills:
11
+ - id: agileflow-migration
12
+ dir: skills/agileflow-migration
13
+ agents:
14
+ - id: datamigration
15
+ path: agents/datamigration.md
16
+ hooks: []
17
+ templates: []
@@ -0,0 +1,106 @@
1
+ ---
2
+ name: agileflow-migration
3
+ version: 1.0.0
4
+ category: agileflow/migration
5
+ description: |
6
+ Use when the user is migrating between frameworks, languages, library
7
+ versions, or data schemas. Plans zero-downtime migrations, generates
8
+ codemods, validates output, and produces rollback strategies.
9
+ triggers:
10
+ keywords:
11
+ - migrate
12
+ - migration
13
+ - upgrade
14
+ - upgrade version
15
+ - move from
16
+ - switch to
17
+ - refactor to
18
+ - data migration
19
+ - zero downtime
20
+ - codemod
21
+ - breaking changes
22
+ - upgrade path
23
+ priority: 55
24
+ provides:
25
+ agents: []
26
+ learns:
27
+ enabled: true
28
+ file: _learnings/migration.yaml
29
+ maxEntries: 20
30
+ depends:
31
+ skills: []
32
+ plugins: [migration]
33
+ ---
34
+
35
+ # AgileFlow Migration
36
+
37
+ Migration planning and execution assistant. Handles framework upgrades,
38
+ library version bumps, data schema migrations, and language transitions
39
+ — with validation, rollback strategies, and automated codemods where
40
+ possible.
41
+
42
+ ## When this skill activates
43
+
44
+ - User wants to upgrade a framework or library version
45
+ - User is moving between technologies (e.g. CJS → ESM, REST → GraphQL)
46
+ - User needs to migrate data between schemas or databases
47
+ - User asks about breaking changes or upgrade paths
48
+ - User mentions "zero downtime" or "rollback strategy"
49
+
50
+ ## Migration workflow
51
+
52
+ | Step | Command | What it does |
53
+ | ----------- | ----------------------------- | ---------------------------------------- |
54
+ | 1. Scan | `/agileflow:migrate:scan` | Identify all affected files and patterns |
55
+ | 2. Plan | `/agileflow:migrate:plan` | Generate step-by-step migration plan |
56
+ | 3. Codemods | `/agileflow:migrate:codemods` | Auto-transform code where possible |
57
+ | 4. Validate | `/agileflow:migrate:validate` | Verify migration output is correct |
58
+ | Full | `/agileflow:migrate` | Run all steps |
59
+
60
+ ## Data migrations
61
+
62
+ For database schema migrations, use `agileflow-datamigration` which covers:
63
+
64
+ - Zero-downtime strategies (expand/contract pattern)
65
+ - Backfill with concurrent write safety
66
+ - Validation queries before and after
67
+ - Rollback SQL generation
68
+
69
+ ## Safety rules
70
+
71
+ - Always scan before planning — scope surprises are common
72
+ - For data migrations: test on a copy first, validate row counts
73
+ - For framework upgrades: check for behavioral changes, not just syntax
74
+ - Always generate a rollback plan before executing
75
+
76
+ ## Integration
77
+
78
+ - **agileflow-research** — run before planning a migration to gather release notes, breaking change logs, and community-documented gotchas for the specific version jump
79
+ - **agileflow-adr** — document the migration decision (why this version, why this strategy, what was rejected) before executing; ADR is the runbook preface
80
+ - **agileflow-planning** — use for impact analysis to understand which files, tests, and APIs are affected before generating the migration plan
81
+ - **agileflow-database** — delegate schema-level migration steps (column renames, index changes, foreign key adjustments) to database expert
82
+ - **agileflow-test-writer** — generate pre/post migration tests and data validation scripts to confirm row counts and aggregate consistency
83
+ - **agileflow-audit** — run after migration completes to catch regressions introduced by the version change (API contracts, security headers, deprecated patterns)
84
+ - **agileflow-engineering** — delegate the actual codemods and file changes when the migration scope is large; migration plans, engineering executes
85
+ - **agileflow-delivery** — coordinate migration execution with deployment; zero-downtime migrations require delivery-level orchestration (feature flags, blue/green)
86
+ - **agileflow-docs** — update installation guides, API docs, and README after the migration changes public-facing interfaces or configuration
87
+
88
+ ## References
89
+
90
+ Load these files when you need deeper context for the relevant task:
91
+
92
+ | File | When to load |
93
+ | -------------------------------------------- | ------------------------------------------------------------------------------------------------- |
94
+ | `references/migration-patterns.md` | Choosing a migration strategy — big bang vs strangler fig vs parallel run vs blue/green |
95
+ | `references/data-validation-checklist.md` | Validating a migration — pre/post row counts, financial aggregates, cutover criteria |
96
+ | `references/rollback-playbook.md` | Planning or executing a rollback — decision tree, communication templates, post-mortem structure |
97
+ | `references/version-compatibility-matrix.md` | Upgrading a library or framework — semver rules, breaking change detection, deprecation timelines |
98
+
99
+ ## Workflows
100
+
101
+ Follow these step-by-step when the user initiates the matching action:
102
+
103
+ | File | When to follow |
104
+ | ----------------------- | ----------------------------------------------------------------------------------------- |
105
+ | `workflows/plan.md` | User wants a migration plan — scans affected files, generates step-by-step strategy |
106
+ | `workflows/validate.md` | User wants to validate a migration — runs pre/post checks, compares counts and aggregates |
@@ -0,0 +1,154 @@
1
+ # Data Validation Checklist
2
+
3
+ **Load this when:** validating data after a migration, designing pre/post
4
+ migration checks, or building a data quality gate before cutover.
5
+
6
+ ## Pre-migration baseline (capture before running)
7
+
8
+ Run these queries and save the output. Compare against post-migration results.
9
+
10
+ ### Row counts
11
+
12
+ ```sql
13
+ -- Total rows per table
14
+ SELECT table_name, n_live_tup AS row_count
15
+ FROM pg_stat_user_tables
16
+ ORDER BY n_live_tup DESC;
17
+
18
+ -- Or for key tables explicitly
19
+ SELECT
20
+ (SELECT COUNT(*) FROM users) AS users,
21
+ (SELECT COUNT(*) FROM orders) AS orders,
22
+ (SELECT COUNT(*) FROM transactions) AS transactions;
23
+ ```
24
+
25
+ ### Aggregate values (financial / critical)
26
+
27
+ ```sql
28
+ -- Sum of money — must not change
29
+ SELECT
30
+ SUM(amount) AS total_amount,
31
+ SUM(refunded_amount) AS total_refunds,
32
+ COUNT(*) FILTER (WHERE status = 'completed') AS completed_orders
33
+ FROM orders;
34
+ ```
35
+
36
+ ### Status distributions
37
+
38
+ ```sql
39
+ -- Status counts — proportions should be preserved
40
+ SELECT status, COUNT(*) FROM orders GROUP BY status ORDER BY status;
41
+ SELECT verified, COUNT(*) FROM users GROUP BY verified;
42
+ ```
43
+
44
+ ### Relationship integrity
45
+
46
+ ```sql
47
+ -- Orphaned records (should be 0)
48
+ SELECT COUNT(*) FROM order_items oi
49
+ LEFT JOIN orders o ON oi.order_id = o.id
50
+ WHERE o.id IS NULL;
51
+ ```
52
+
53
+ ## Post-migration validation
54
+
55
+ Run the same queries. Compare:
56
+
57
+ | Check | Expected | Action if wrong |
58
+ | ------------------------------ | ------------- | ---------------------------------------- |
59
+ | Row counts | Match exactly | Investigate lost/duplicate rows |
60
+ | Financial sums | Match exactly | STOP — data loss, rollback |
61
+ | Status distributions | Match exactly | Check transformation logic |
62
+ | Orphaned records | 0 | Find FK violation, fix before proceeding |
63
+ | Null counts in required fields | 0 | Backfill missing values |
64
+
65
+ ## Column-level validation
66
+
67
+ ```sql
68
+ -- Check for unexpected nulls in columns that should be populated
69
+ SELECT
70
+ COUNT(*) FILTER (WHERE email IS NULL) AS null_email,
71
+ COUNT(*) FILTER (WHERE created_at IS NULL) AS null_created_at,
72
+ COUNT(*) FILTER (WHERE user_id IS NULL) AS null_user_id
73
+ FROM orders;
74
+
75
+ -- Check for values outside expected ranges
76
+ SELECT COUNT(*) FROM transactions
77
+ WHERE amount < 0 OR amount > 1000000;
78
+
79
+ -- Check for format violations
80
+ SELECT COUNT(*) FROM users
81
+ WHERE email NOT LIKE '%@%.%';
82
+
83
+ -- Check for duplicate unique values
84
+ SELECT email, COUNT(*) FROM users
85
+ GROUP BY email HAVING COUNT(*) > 1;
86
+ ```
87
+
88
+ ## Sampling validation
89
+
90
+ For large datasets where full comparison isn't practical:
91
+
92
+ ```sql
93
+ -- Sample 100 random rows, verify they look correct
94
+ SELECT * FROM users ORDER BY RANDOM() LIMIT 100;
95
+
96
+ -- Sample from each status bucket
97
+ SELECT * FROM (
98
+ SELECT *, ROW_NUMBER() OVER (PARTITION BY status ORDER BY RANDOM()) AS rn
99
+ FROM orders
100
+ ) t WHERE rn <= 10;
101
+ ```
102
+
103
+ Manual review of samples catches transformation bugs that aggregate checks miss.
104
+
105
+ ## Application-level validation
106
+
107
+ After schema migration, verify application behavior:
108
+
109
+ ```
110
+ ⬜ New writes succeed (create a test record, verify it persists)
111
+ ⬜ Reads return expected data (fetch a known record, compare fields)
112
+ ⬜ Indexes are being used (EXPLAIN ANALYZE on key queries)
113
+ ⬜ Existing API endpoints return 200 (not 500 from schema mismatch)
114
+ ⬜ Background jobs complete without errors
115
+ ⬜ Reports/aggregations produce correct output
116
+ ```
117
+
118
+ ## Cutover decision criteria
119
+
120
+ Only proceed to final cutover when ALL of these are true:
121
+
122
+ ```
123
+ ⬜ Row counts match (tolerance: 0 for critical tables, < 0.01% for large tables)
124
+ ⬜ All financial aggregates match exactly
125
+ ⬜ Zero orphaned records
126
+ ⬜ Zero unexpected nulls in required columns
127
+ ⬜ Sample review passes (100+ records spot-checked)
128
+ ⬜ Application smoke test passes
129
+ ⬜ Rollback has been tested in staging
130
+ ⬜ Team is available to monitor for 2 hours post-cutover
131
+ ```
132
+
133
+ ## Common migration data bugs
134
+
135
+ | Bug | Symptom | How to detect |
136
+ | ------------------------------ | ----------------------------- | --------------------------- |
137
+ | Off-by-one in batch processing | Last N rows missing | Row count check |
138
+ | Timezone conversion error | Timestamps shifted by hours | Sample date comparison |
139
+ | Character encoding issue | Garbled names/text | Spot check non-ASCII values |
140
+ | Duplicate row insertion | Inflated counts | Aggregate sum comparison |
141
+ | Null coalesce wrong default | All nulls → 0 instead of NULL | Null count check |
142
+ | FK constraint skipped | Orphaned records | Orphan count check |
143
+ | Truncated strings | Data cut off at 255 chars | Check max-length values |
144
+
145
+ ## Post-cutover monitoring (first 24 hours)
146
+
147
+ Watch these metrics for anomalies:
148
+
149
+ - Error rates in application logs (spike = schema mismatch)
150
+ - Query latency (missing index = slow queries)
151
+ - Database CPU and lock waits (backfill still running?)
152
+ - Failed job counts (workers hitting migration-related errors)
153
+
154
+ Set alert thresholds before cutover, not after.
@@ -0,0 +1,209 @@
1
+ # Migration Patterns
2
+
3
+ **Load this when:** planning a zero-downtime migration, choosing between
4
+ migration strategies, or designing a rollback plan.
5
+
6
+ ## The four migration strategies
7
+
8
+ | Strategy | When to use | Risk | Complexity |
9
+ | ----------------- | ------------------------------------ | ------ | ---------- |
10
+ | **Big bang** | Small dataset, maintenance window OK | High | Low |
11
+ | **Strangler fig** | Live traffic, large codebase | Low | High |
12
+ | **Parallel run** | Data integrity critical | Low | High |
13
+ | **Blue/green** | Full deployment swap | Medium | Medium |
14
+
15
+ ### Big bang
16
+
17
+ Stop everything. Migrate. Restart. Simple but requires downtime.
18
+
19
+ ```
20
+ Old system → [Maintenance window] → New system
21
+ ```
22
+
23
+ **Use when:** Internal tools, staging environments, datasets < 10K rows, sub-1-hour migration.
24
+
25
+ **Never for:** User-facing production systems without a maintenance page + user communication.
26
+
27
+ ### Strangler fig
28
+
29
+ Route traffic gradually from old to new. Old system "dies" as new handles more.
30
+
31
+ ```
32
+ All traffic → Old system
33
+ ↓ (add routing layer)
34
+ Traffic → Router → Old system (90%) + New system (10%)
35
+ ↓ (shift gradually)
36
+ Traffic → Router → New system (100%)
37
+ ↓ (remove old)
38
+ Traffic → New system
39
+ ```
40
+
41
+ **Use when:** Migrating a monolith to microservices, rewriting a module that can't go down.
42
+
43
+ **Strangler fig checklist:**
44
+
45
+ ```
46
+ ⬜ Routing layer in place before migrating any traffic
47
+ ⬜ Both systems can handle same requests (parity check)
48
+ ⬜ Observability on both paths (latency, error rate)
49
+ ⬜ Feature flags control traffic split
50
+ ⬜ Rollback = flip flag back, not a deployment
51
+ ```
52
+
53
+ ### Parallel run
54
+
55
+ Both systems run simultaneously. Write to both, compare outputs, switch reads when confident.
56
+
57
+ ```
58
+ Writes → Old + New (dual write)
59
+ Reads → Old (primary) + New (shadow — compare results)
60
+ Monitor divergence for N days
61
+ Switch reads to New
62
+ Stop writes to Old
63
+ ```
64
+
65
+ **Use when:** Data integrity is critical, migrating billing, financial systems, healthcare records.
66
+
67
+ **Exit criteria:** Zero divergence for 7+ consecutive days across all operation types.
68
+
69
+ ### Blue/green deployment
70
+
71
+ Two identical environments. Switch load balancer. Instant rollback.
72
+
73
+ ```
74
+ LB → Blue (current production)
75
+ Green (new version, fully ready)
76
+ Switch: LB → Green
77
+ If issues: LB → Blue (rollback in <1 min)
78
+ ```
79
+
80
+ **Use when:** Application migrations, not data migrations. Great for infrastructure changes.
81
+
82
+ **Not ideal for:** Schema migrations — Blue and Green share the same DB, so schema must be backward compatible.
83
+
84
+ ## Database migration patterns
85
+
86
+ ### Expand-contract (zero downtime schema changes)
87
+
88
+ Never alter columns in production — always expand then contract:
89
+
90
+ ```
91
+ Step 1: EXPAND — add the new structure alongside the old
92
+ ALTER TABLE users ADD COLUMN email_v2 VARCHAR(255);
93
+
94
+ Step 2: MIGRATE — dual write during deploy
95
+ App writes to both email and email_v2
96
+
97
+ Step 3: BACKFILL — populate the new column
98
+ UPDATE users SET email_v2 = email WHERE email_v2 IS NULL;
99
+
100
+ Step 4: SWITCH — read from new column
101
+ Deploy reads from email_v2
102
+
103
+ Step 5: CONTRACT — remove old column
104
+ ALTER TABLE users DROP COLUMN email;
105
+
106
+ Step 6: RENAME (if needed)
107
+ ALTER TABLE users RENAME COLUMN email_v2 TO email;
108
+ ```
109
+
110
+ Each step is a separate deployment. Steps 1-3 are backward compatible.
111
+
112
+ ### Additive-only migrations
113
+
114
+ Never break existing code with a migration:
115
+
116
+ | Safe ✓ | Unsafe ✗ |
117
+ | --------------------- | -------------------------------------------- |
118
+ | Add nullable column | Drop column |
119
+ | Add new table | Rename column |
120
+ | Add index | Change column type (without expand-contract) |
121
+ | Add nullable FK | Add NOT NULL without default |
122
+ | Rename via new column | Remove FK that code depends on |
123
+
124
+ ### Large table migrations
125
+
126
+ For tables > 1M rows, never run migrations in a transaction that locks the table:
127
+
128
+ ```sql
129
+ -- BAD: locks table, causes downtime
130
+ ALTER TABLE orders ADD COLUMN processed_at TIMESTAMP;
131
+
132
+ -- GOOD: add nullable, backfill in batches, add NOT NULL constraint later
133
+ ALTER TABLE orders ADD COLUMN processed_at TIMESTAMP NULL;
134
+
135
+ -- Then backfill in batches:
136
+ UPDATE orders SET processed_at = created_at
137
+ WHERE id BETWEEN 1 AND 10000 AND processed_at IS NULL;
138
+ -- Repeat in 10k-row chunks with sleep between
139
+ ```
140
+
141
+ Tools: `pt-online-schema-change` (MySQL), `pg_repack` (PostgreSQL), `gh-ost` (GitHub's MySQL tool).
142
+
143
+ ## Rollback strategies
144
+
145
+ Every migration needs a rollback plan written BEFORE the migration runs.
146
+
147
+ | Migration type | Rollback approach |
148
+ | ------------------------ | ----------------------------------- |
149
+ | Schema: added column | DROP COLUMN (if no data yet) |
150
+ | Schema: dropped column | Restore from backup (can't undo) |
151
+ | Data: transformed values | Restore from point-in-time snapshot |
152
+ | Code: strangler fig | Flip feature flag to 0% |
153
+ | Deployment: blue/green | Switch LB back to blue |
154
+ | Config: environment vars | Revert in secrets manager |
155
+
156
+ **Rule:** If a migration doesn't have a rollback plan, it's not ready to run.
157
+
158
+ ## Migration runbook template
159
+
160
+ ```markdown
161
+ ## Migration: Add `user_timezone` to profiles table
162
+
163
+ **Date:** 2026-03-15 10:00 UTC
164
+ **Owner:** @engineer
165
+ **Estimated duration:** 25 minutes
166
+ **Rollback time:** < 5 minutes
167
+
168
+ ### Pre-migration checks
169
+
170
+ - [ ] Full DB backup completed (verify at: <link>)
171
+ - [ ] Monitoring dashboards open
172
+ - [ ] Rollback script tested in staging
173
+
174
+ ### Steps
175
+
176
+ 1. `psql $DATABASE_URL -f migrations/0042_add_user_timezone.sql` (5 min)
177
+ 2. Deploy app v2.4.1 — includes dual-write for timezone (10 min)
178
+ 3. Verify: `SELECT COUNT(*) FROM profiles WHERE timezone IS NULL` — expect < 5%
179
+ 4. Run backfill: `node scripts/backfill-timezone.js` (10 min)
180
+ 5. Verify: `SELECT COUNT(*) FROM profiles WHERE timezone IS NULL` — expect 0
181
+
182
+ ### Rollback
183
+
184
+ If any step fails:
185
+
186
+ 1. `psql $DATABASE_URL -c "ALTER TABLE profiles DROP COLUMN timezone"`
187
+ 2. Redeploy v2.4.0
188
+ 3. Page on-call if data inconsistency detected
189
+ ```
190
+
191
+ ## Data integrity checks
192
+
193
+ Before and after every migration:
194
+
195
+ ```sql
196
+ -- Row counts by status (should be preserved)
197
+ SELECT status, COUNT(*) FROM orders GROUP BY status;
198
+
199
+ -- Sum of financial values (must not change)
200
+ SELECT SUM(amount) FROM transactions;
201
+
202
+ -- Check for nulls in NOT NULL columns
203
+ SELECT COUNT(*) FROM users WHERE email IS NULL;
204
+
205
+ -- Spot check sample rows
206
+ SELECT * FROM users ORDER BY RANDOM() LIMIT 10;
207
+ ```
208
+
209
+ Save pre-migration counts. Verify post-migration counts match.
@@ -0,0 +1,171 @@
1
+ # Rollback Playbook
2
+
3
+ **Load this when:** Planning a migration rollback, responding to a failed migration, or writing a post-mortem.
4
+
5
+ ## Rollback Decision Tree
6
+
7
+ ```
8
+ Is data corruption or data loss occurring?
9
+ YES → STOP migration immediately. Initiate rollback NOW. Skip all other checks.
10
+ NO ↓
11
+
12
+ Is a critical user-facing service down or severely degraded?
13
+ YES → Rollback within 15 minutes if no hotfix available.
14
+ NO ↓
15
+
16
+ Is the error rate >2x pre-migration baseline AND rising?
17
+ YES → Rollback if no fix identified within 30 minutes.
18
+ NO ↓
19
+
20
+ Is the migration >50% complete with no data integrity issues?
21
+ YES → Strongly prefer forward-fix over rollback (rollback cost exceeds benefit).
22
+ NO ↓
23
+
24
+ Rollback is an option — evaluate cost vs. benefit.
25
+ ```
26
+
27
+ ---
28
+
29
+ ## Rollback Triggers by Migration Type
30
+
31
+ ### Schema migration
32
+
33
+ | Trigger | Action |
34
+ | ------------------------------ | ---------------------------------------- |
35
+ | Query errors on new schema | Immediate rollback |
36
+ | Constraint violations in prod | Immediate rollback |
37
+ | Performance regression >5x | Rollback if not resolvable in 1h |
38
+ | Application errors post-deploy | Check if schema-related; rollback if yes |
39
+
40
+ ### Data migration
41
+
42
+ | Trigger | Action |
43
+ | -------------------------------------- | ------------------------------------ |
44
+ | Row count mismatch vs. expected | STOP. Investigate before proceeding. |
45
+ | Checksum / hash validation fail | STOP. Do not proceed. |
46
+ | Referential integrity errors | Rollback source data changes |
47
+ | Business logic producing wrong outputs | Rollback and fix migration script |
48
+
49
+ ### Dependency / library migration
50
+
51
+ | Trigger | Action |
52
+ | -------------------------------- | ------------------------------------ |
53
+ | Test suite failure rate >10% | Rollback package version |
54
+ | Runtime errors in new dependency | Rollback to previous version |
55
+ | Build failure | Rollback, investigate, fix in branch |
56
+
57
+ ---
58
+
59
+ ## Rollback Methods by Layer
60
+
61
+ | Layer | Rollback method | Speed | Data risk |
62
+ | ---------------------- | ---------------------------------------- | --------------- | -------------- |
63
+ | Feature flag | Toggle off | Instant | None |
64
+ | Application code | Revert deploy | 2–5 min | None |
65
+ | Schema (additive only) | Drop added columns/tables | Minutes | None |
66
+ | Schema (destructive) | Restore from pre-migration snapshot | 30 min – hours | Potential loss |
67
+ | Data migration | Restore from backup / run inverse script | Minutes – hours | Potential loss |
68
+ | Infrastructure | Terraform rollback / restore snapshot | Minutes | Low–medium |
69
+
70
+ ---
71
+
72
+ ## Pre-Migration Rollback Preparation Checklist
73
+
74
+ Complete before every significant migration:
75
+
76
+ - [ ] Full database backup taken and verified restorable
77
+ - [ ] Rollback script written and tested in staging
78
+ - [ ] Feature flag created to disable new behavior without code deploy
79
+ - [ ] Rollback decision owner named (who has authority to call it)
80
+ - [ ] Communication plan drafted (what to say, to whom, via which channel)
81
+ - [ ] Monitoring dashboards ready for key metrics
82
+ - [ ] Estimated rollback time documented
83
+ - [ ] All affected services identified (who else do we notify?)
84
+
85
+ ---
86
+
87
+ ## Communication Templates
88
+
89
+ ### Migration incident (initial)
90
+
91
+ ```
92
+ [MIGRATION INCIDENT] {migration name} — {severity}
93
+
94
+ Status: Rollback in progress / Investigating
95
+ Impact: {what's affected — service, users, data}
96
+ Started: {time}
97
+ Action: {what we're doing right now}
98
+
99
+ Updates every 15 minutes in #{incident-channel}.
100
+ DRI: {name}
101
+ ```
102
+
103
+ ### Rollback complete
104
+
105
+ ```
106
+ [RESOLVED] {migration name} — rollback complete
107
+
108
+ Rolled back to: v{version} / state as of {timestamp}
109
+ Impact duration: {start} → {end}
110
+ Affected: {scope}
111
+ Root cause (preliminary): {1 sentence}
112
+
113
+ Post-mortem scheduled: {date/time}
114
+ ```
115
+
116
+ ---
117
+
118
+ ## Post-Mortem Structure
119
+
120
+ ```markdown
121
+ # Post-Mortem: {Migration Name}
122
+
123
+ **Date:** YYYY-MM-DD
124
+ **Severity:** P1 / P2 / P3
125
+ **Duration:** {start} → {resolved}
126
+ **Impact:** {affected users / data volume / downtime}
127
+
128
+ ## Timeline
129
+
130
+ | Time | Event |
131
+ | ----- | ---------------------- |
132
+ | HH:MM | Migration started |
133
+ | HH:MM | First alert triggered |
134
+ | HH:MM | Rollback decision made |
135
+ | HH:MM | Rollback complete |
136
+
137
+ ## Root Cause
138
+
139
+ [What actually went wrong]
140
+
141
+ ## Contributing Factors
142
+
143
+ - [Factor 1]
144
+ - [Factor 2]
145
+
146
+ ## What Went Well
147
+
148
+ - [Thing 1]
149
+
150
+ ## Action Items
151
+
152
+ | Action | Owner | Due |
153
+ | ------ | ----- | --- |
154
+ | | | |
155
+
156
+ ## Prevention
157
+
158
+ [How do we ensure this doesn't happen again?]
159
+ ```
160
+
161
+ ---
162
+
163
+ ## Rollback Risk by Migration Completeness
164
+
165
+ | % Complete | Rollback recommendation |
166
+ | ---------- | --------------------------------------------------- |
167
+ | 0–20% | Easy — rollback preferred if issues found |
168
+ | 20–50% | Evaluate — rollback cost growing |
169
+ | 50–80% | Risky — forward-fix preferred unless data corrupted |
170
+ | 80–99% | Very risky — forward-fix strongly preferred |
171
+ | 100% | Rollback is a new migration — plan carefully |