@oyolincc/create 0.5.0 → 0.5.1

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 (292) hide show
  1. package/package.json +1 -1
  2. package/templates/{monorepo/.agents/skills/grilling → hono-fullstack/.agents/skills/ask-grilling}/SKILL.md +1 -1
  3. package/templates/hono-fullstack/.agents/skills/build-api-and-interface-design/SKILL.md +369 -0
  4. package/templates/hono-fullstack/.agents/skills/build-context-engineering/SKILL.md +353 -0
  5. package/templates/hono-fullstack/.agents/skills/build-incremental-implementation/SKILL.md +249 -0
  6. package/templates/hono-fullstack/.agents/skills/build-observability-and-instrumentation/SKILL.md +239 -0
  7. package/templates/hono-fullstack/.agents/skills/plan-planning-and-task-breakdown/SKILL.md +257 -0
  8. package/templates/{monorepo/.agents/skills/prototype → hono-fullstack/.agents/skills/plan-prototype}/LOGIC.md +1 -1
  9. package/templates/{monorepo/.agents/skills/prototype → hono-fullstack/.agents/skills/plan-prototype}/SKILL.md +2 -2
  10. package/templates/hono-fullstack/.agents/skills/{prototype → plan-prototype}/UI.md +2 -2
  11. package/templates/{monorepo/.agents/skills/research → hono-fullstack/.agents/skills/plan-research}/SKILL.md +2 -2
  12. package/templates/hono-fullstack/.agents/skills/plan-using-agent-skills/SKILL.md +185 -0
  13. package/templates/{monorepo/.agents/skills/wayfinder → hono-fullstack/.agents/skills/plan-wayfinder}/SKILL.md +43 -29
  14. package/templates/hono-fullstack/.agents/skills/review-code-review-and-quality/SKILL.md +400 -0
  15. package/templates/hono-fullstack/.agents/skills/review-doubt-driven-development/SKILL.md +244 -0
  16. package/templates/hono-fullstack/.agents/skills/review-security-and-hardening/SKILL.md +216 -0
  17. package/templates/hono-fullstack/.agents/skills/review-security-and-hardening/references/hardening-patterns.md +331 -0
  18. package/templates/hono-fullstack/.agents/skills/ship-ci-cd-and-automation/SKILL.md +393 -0
  19. package/templates/hono-fullstack/.agents/skills/ship-deprecation-and-migration/SKILL.md +252 -0
  20. package/templates/hono-fullstack/.agents/skills/ship-documentation-and-adrs/SKILL.md +298 -0
  21. package/templates/hono-fullstack/.agents/skills/ship-git-workflow-and-versioning/SKILL.md +355 -0
  22. package/templates/hono-fullstack/.agents/skills/ship-shipping-and-launch/SKILL.md +336 -0
  23. package/templates/hono-fullstack/.agents/skills/simplify-code-simplification/SKILL.md +332 -0
  24. package/templates/hono-fullstack/.agents/skills/simplify-performance-optimization/SKILL.md +268 -0
  25. package/templates/hono-fullstack/.agents/skills/simplify-performance-optimization/references/optimization-patterns.md +250 -0
  26. package/templates/hono-fullstack/.agents/skills/spec-constraint-driven-development/SKILL.md +318 -0
  27. package/templates/hono-fullstack/.agents/skills/spec-constraint-driven-development/references/floor-guard.md +182 -0
  28. package/templates/hono-fullstack/.agents/skills/spec-constraint-driven-development/scripts/quality-gate.mjs +45 -0
  29. package/templates/hono-fullstack/.agents/skills/spec-driven-development/SKILL.md +261 -0
  30. package/templates/hono-fullstack/.agents/skills/test-browser-testing-with-devtools/SKILL.md +319 -0
  31. package/templates/hono-fullstack/.agents/skills/test-debugging-and-error-recovery/SKILL.md +300 -0
  32. package/templates/hono-fullstack/.agents/skills/test-driven-development/SKILL.md +400 -0
  33. package/templates/hono-fullstack/AGENTS.md +9 -20
  34. package/templates/hono-server/.agents/skills/{grilling → ask-grilling}/SKILL.md +1 -1
  35. package/templates/hono-server/.agents/skills/build-api-and-interface-design/SKILL.md +369 -0
  36. package/templates/hono-server/.agents/skills/build-context-engineering/SKILL.md +353 -0
  37. package/templates/hono-server/.agents/skills/build-incremental-implementation/SKILL.md +249 -0
  38. package/templates/hono-server/.agents/skills/build-observability-and-instrumentation/SKILL.md +239 -0
  39. package/templates/hono-server/.agents/skills/plan-planning-and-task-breakdown/SKILL.md +257 -0
  40. package/templates/hono-server/.agents/skills/{prototype → plan-prototype}/LOGIC.md +1 -1
  41. package/templates/hono-server/.agents/skills/{prototype → plan-prototype}/SKILL.md +2 -2
  42. package/templates/{monorepo/.agents/skills/prototype → hono-server/.agents/skills/plan-prototype}/UI.md +2 -2
  43. package/templates/{hono-fullstack/.agents/skills/research → hono-server/.agents/skills/plan-research}/SKILL.md +2 -2
  44. package/templates/hono-server/.agents/skills/plan-using-agent-skills/SKILL.md +185 -0
  45. package/templates/{hono-fullstack/.agents/skills/wayfinder → hono-server/.agents/skills/plan-wayfinder}/SKILL.md +43 -29
  46. package/templates/hono-server/.agents/skills/review-code-review-and-quality/SKILL.md +400 -0
  47. package/templates/hono-server/.agents/skills/review-doubt-driven-development/SKILL.md +244 -0
  48. package/templates/hono-server/.agents/skills/review-security-and-hardening/SKILL.md +216 -0
  49. package/templates/hono-server/.agents/skills/review-security-and-hardening/references/hardening-patterns.md +331 -0
  50. package/templates/hono-server/.agents/skills/ship-ci-cd-and-automation/SKILL.md +393 -0
  51. package/templates/hono-server/.agents/skills/ship-deprecation-and-migration/SKILL.md +252 -0
  52. package/templates/hono-server/.agents/skills/ship-documentation-and-adrs/SKILL.md +298 -0
  53. package/templates/hono-server/.agents/skills/ship-git-workflow-and-versioning/SKILL.md +355 -0
  54. package/templates/hono-server/.agents/skills/ship-shipping-and-launch/SKILL.md +336 -0
  55. package/templates/hono-server/.agents/skills/simplify-code-simplification/SKILL.md +332 -0
  56. package/templates/hono-server/.agents/skills/simplify-performance-optimization/SKILL.md +268 -0
  57. package/templates/hono-server/.agents/skills/simplify-performance-optimization/references/optimization-patterns.md +250 -0
  58. package/templates/hono-server/.agents/skills/spec-constraint-driven-development/SKILL.md +318 -0
  59. package/templates/hono-server/.agents/skills/spec-constraint-driven-development/references/floor-guard.md +182 -0
  60. package/templates/hono-server/.agents/skills/spec-constraint-driven-development/scripts/quality-gate.mjs +45 -0
  61. package/templates/hono-server/.agents/skills/spec-driven-development/SKILL.md +261 -0
  62. package/templates/hono-server/.agents/skills/test-browser-testing-with-devtools/SKILL.md +319 -0
  63. package/templates/hono-server/.agents/skills/test-debugging-and-error-recovery/SKILL.md +300 -0
  64. package/templates/hono-server/.agents/skills/test-driven-development/SKILL.md +400 -0
  65. package/templates/hono-server/AGENTS.md +9 -20
  66. package/templates/{hono-fullstack/.agents/skills/grilling → monorepo/.agents/skills/ask-grilling}/SKILL.md +1 -1
  67. package/templates/monorepo/.agents/skills/build-api-and-interface-design/SKILL.md +369 -0
  68. package/templates/monorepo/.agents/skills/build-context-engineering/SKILL.md +353 -0
  69. package/templates/monorepo/.agents/skills/build-incremental-implementation/SKILL.md +249 -0
  70. package/templates/monorepo/.agents/skills/build-observability-and-instrumentation/SKILL.md +239 -0
  71. package/templates/monorepo/.agents/skills/plan-planning-and-task-breakdown/SKILL.md +257 -0
  72. package/templates/{hono-fullstack/.agents/skills/prototype → monorepo/.agents/skills/plan-prototype}/LOGIC.md +1 -1
  73. package/templates/{hono-fullstack/.agents/skills/prototype → monorepo/.agents/skills/plan-prototype}/SKILL.md +2 -2
  74. package/templates/{hono-server/.agents/skills/prototype → monorepo/.agents/skills/plan-prototype}/UI.md +2 -2
  75. package/templates/{hono-server/.agents/skills/research → monorepo/.agents/skills/plan-research}/SKILL.md +2 -2
  76. package/templates/monorepo/.agents/skills/plan-using-agent-skills/SKILL.md +185 -0
  77. package/templates/{hono-server/.agents/skills/wayfinder → monorepo/.agents/skills/plan-wayfinder}/SKILL.md +43 -29
  78. package/templates/monorepo/.agents/skills/review-code-review-and-quality/SKILL.md +400 -0
  79. package/templates/monorepo/.agents/skills/review-doubt-driven-development/SKILL.md +244 -0
  80. package/templates/monorepo/.agents/skills/review-security-and-hardening/SKILL.md +216 -0
  81. package/templates/monorepo/.agents/skills/review-security-and-hardening/references/hardening-patterns.md +331 -0
  82. package/templates/monorepo/.agents/skills/ship-ci-cd-and-automation/SKILL.md +393 -0
  83. package/templates/monorepo/.agents/skills/ship-deprecation-and-migration/SKILL.md +252 -0
  84. package/templates/monorepo/.agents/skills/ship-documentation-and-adrs/SKILL.md +298 -0
  85. package/templates/monorepo/.agents/skills/ship-git-workflow-and-versioning/SKILL.md +355 -0
  86. package/templates/monorepo/.agents/skills/ship-shipping-and-launch/SKILL.md +336 -0
  87. package/templates/monorepo/.agents/skills/simplify-code-simplification/SKILL.md +332 -0
  88. package/templates/monorepo/.agents/skills/simplify-performance-optimization/SKILL.md +268 -0
  89. package/templates/monorepo/.agents/skills/simplify-performance-optimization/references/optimization-patterns.md +250 -0
  90. package/templates/monorepo/.agents/skills/spec-constraint-driven-development/SKILL.md +318 -0
  91. package/templates/monorepo/.agents/skills/spec-constraint-driven-development/references/floor-guard.md +182 -0
  92. package/templates/monorepo/.agents/skills/spec-constraint-driven-development/scripts/quality-gate.mjs +45 -0
  93. package/templates/monorepo/.agents/skills/spec-driven-development/SKILL.md +261 -0
  94. package/templates/monorepo/.agents/skills/test-browser-testing-with-devtools/SKILL.md +319 -0
  95. package/templates/monorepo/.agents/skills/test-debugging-and-error-recovery/SKILL.md +300 -0
  96. package/templates/monorepo/.agents/skills/test-driven-development/SKILL.md +400 -0
  97. package/templates/monorepo/AGENTS.md +9 -20
  98. package/templates/hono-fullstack/.agents/skills/ask-matt/PHASE-BOUNDARIES.md +0 -55
  99. package/templates/hono-fullstack/.agents/skills/ask-matt/SKILL.md +0 -90
  100. package/templates/hono-fullstack/.agents/skills/ask-matt/agents/openai.yaml +0 -5
  101. package/templates/hono-fullstack/.agents/skills/code-review/SKILL.md +0 -87
  102. package/templates/hono-fullstack/.agents/skills/code-review/agents/openai.yaml +0 -3
  103. package/templates/hono-fullstack/.agents/skills/codebase-design/DEEPENING.md +0 -37
  104. package/templates/hono-fullstack/.agents/skills/codebase-design/DESIGN-IT-TWICE.md +0 -44
  105. package/templates/hono-fullstack/.agents/skills/codebase-design/SKILL.md +0 -114
  106. package/templates/hono-fullstack/.agents/skills/codebase-design/agents/openai.yaml +0 -3
  107. package/templates/hono-fullstack/.agents/skills/confirm-requirements/SKILL.md +0 -25
  108. package/templates/hono-fullstack/.agents/skills/diagnosing-bugs/SKILL.md +0 -140
  109. package/templates/hono-fullstack/.agents/skills/diagnosing-bugs/agents/openai.yaml +0 -3
  110. package/templates/hono-fullstack/.agents/skills/diagnosing-bugs/scripts/hitl-loop.template.sh +0 -44
  111. package/templates/hono-fullstack/.agents/skills/domain-modeling/ADR-FORMAT.md +0 -47
  112. package/templates/hono-fullstack/.agents/skills/domain-modeling/CONTEXT-FORMAT.md +0 -60
  113. package/templates/hono-fullstack/.agents/skills/domain-modeling/SKILL.md +0 -74
  114. package/templates/hono-fullstack/.agents/skills/domain-modeling/agents/openai.yaml +0 -3
  115. package/templates/hono-fullstack/.agents/skills/grill-me/SKILL.md +0 -7
  116. package/templates/hono-fullstack/.agents/skills/grill-me/agents/openai.yaml +0 -5
  117. package/templates/hono-fullstack/.agents/skills/implement/SKILL.md +0 -15
  118. package/templates/hono-fullstack/.agents/skills/implement/agents/openai.yaml +0 -5
  119. package/templates/hono-fullstack/.agents/skills/improve-codebase-architecture/HTML-REPORT.md +0 -123
  120. package/templates/hono-fullstack/.agents/skills/improve-codebase-architecture/SKILL.md +0 -71
  121. package/templates/hono-fullstack/.agents/skills/improve-codebase-architecture/agents/openai.yaml +0 -5
  122. package/templates/hono-fullstack/.agents/skills/resolving-merge-conflicts/SKILL.md +0 -14
  123. package/templates/hono-fullstack/.agents/skills/resolving-merge-conflicts/agents/openai.yaml +0 -3
  124. package/templates/hono-fullstack/.agents/skills/scoped-code-review/SKILL.md +0 -113
  125. package/templates/hono-fullstack/.agents/skills/setup-matt-pocock-skills/SKILL.md +0 -116
  126. package/templates/hono-fullstack/.agents/skills/setup-matt-pocock-skills/agents/openai.yaml +0 -5
  127. package/templates/hono-fullstack/.agents/skills/setup-matt-pocock-skills/domain.md +0 -51
  128. package/templates/hono-fullstack/.agents/skills/setup-matt-pocock-skills/issue-tracker-github.md +0 -45
  129. package/templates/hono-fullstack/.agents/skills/setup-matt-pocock-skills/issue-tracker-gitlab.md +0 -46
  130. package/templates/hono-fullstack/.agents/skills/setup-matt-pocock-skills/issue-tracker-local.md +0 -30
  131. package/templates/hono-fullstack/.agents/skills/setup-matt-pocock-skills/triage-labels.md +0 -15
  132. package/templates/hono-fullstack/.agents/skills/tdd/SKILL.md +0 -38
  133. package/templates/hono-fullstack/.agents/skills/tdd/agents/openai.yaml +0 -3
  134. package/templates/hono-fullstack/.agents/skills/tdd/mocking.md +0 -59
  135. package/templates/hono-fullstack/.agents/skills/tdd/tests.md +0 -77
  136. package/templates/hono-fullstack/.agents/skills/teach/GLOSSARY-FORMAT.md +0 -35
  137. package/templates/hono-fullstack/.agents/skills/teach/LEARNING-RECORD-FORMAT.md +0 -46
  138. package/templates/hono-fullstack/.agents/skills/teach/MISSION-FORMAT.md +0 -31
  139. package/templates/hono-fullstack/.agents/skills/teach/RESOURCES-FORMAT.md +0 -32
  140. package/templates/hono-fullstack/.agents/skills/teach/SKILL.md +0 -140
  141. package/templates/hono-fullstack/.agents/skills/teach/agents/openai.yaml +0 -5
  142. package/templates/hono-fullstack/.agents/skills/to-questionnaire/SKILL.md +0 -53
  143. package/templates/hono-fullstack/.agents/skills/to-questionnaire/agents/openai.yaml +0 -5
  144. package/templates/hono-fullstack/.agents/skills/triage/AGENT-BRIEF.md +0 -207
  145. package/templates/hono-fullstack/.agents/skills/triage/OUT-OF-SCOPE.md +0 -105
  146. package/templates/hono-fullstack/.agents/skills/triage/SKILL.md +0 -112
  147. package/templates/hono-fullstack/.agents/skills/triage/agents/openai.yaml +0 -5
  148. package/templates/hono-fullstack/.agents/skills/wait-what/SKILL.md +0 -7
  149. package/templates/hono-fullstack/.agents/skills/wait-what/agents/openai.yaml +0 -5
  150. package/templates/hono-fullstack/.agents/skills/wizard/SKILL.md +0 -44
  151. package/templates/hono-fullstack/.agents/skills/wizard/agents/openai.yaml +0 -3
  152. package/templates/hono-fullstack/.agents/skills/wizard/template.sh +0 -204
  153. package/templates/hono-fullstack/.agents/skills/writing-for-agents/SKILL-MECHANICS.md +0 -22
  154. package/templates/hono-fullstack/.agents/skills/writing-for-agents/SKILL.md +0 -81
  155. package/templates/hono-fullstack/.agents/skills/writing-for-agents/agents/openai.yaml +0 -3
  156. package/templates/hono-fullstack/docs/agents/domain.md +0 -41
  157. package/templates/hono-fullstack/docs/agents/issue-tracker.md +0 -30
  158. package/templates/hono-fullstack/docs/agents/triage-labels.md +0 -15
  159. package/templates/hono-server/.agents/skills/ask-matt/PHASE-BOUNDARIES.md +0 -55
  160. package/templates/hono-server/.agents/skills/ask-matt/SKILL.md +0 -90
  161. package/templates/hono-server/.agents/skills/ask-matt/agents/openai.yaml +0 -5
  162. package/templates/hono-server/.agents/skills/code-review/SKILL.md +0 -87
  163. package/templates/hono-server/.agents/skills/code-review/agents/openai.yaml +0 -3
  164. package/templates/hono-server/.agents/skills/codebase-design/DEEPENING.md +0 -37
  165. package/templates/hono-server/.agents/skills/codebase-design/DESIGN-IT-TWICE.md +0 -44
  166. package/templates/hono-server/.agents/skills/codebase-design/SKILL.md +0 -114
  167. package/templates/hono-server/.agents/skills/codebase-design/agents/openai.yaml +0 -3
  168. package/templates/hono-server/.agents/skills/confirm-requirements/SKILL.md +0 -25
  169. package/templates/hono-server/.agents/skills/diagnosing-bugs/SKILL.md +0 -140
  170. package/templates/hono-server/.agents/skills/diagnosing-bugs/agents/openai.yaml +0 -3
  171. package/templates/hono-server/.agents/skills/diagnosing-bugs/scripts/hitl-loop.template.sh +0 -44
  172. package/templates/hono-server/.agents/skills/domain-modeling/ADR-FORMAT.md +0 -47
  173. package/templates/hono-server/.agents/skills/domain-modeling/CONTEXT-FORMAT.md +0 -60
  174. package/templates/hono-server/.agents/skills/domain-modeling/SKILL.md +0 -74
  175. package/templates/hono-server/.agents/skills/domain-modeling/agents/openai.yaml +0 -3
  176. package/templates/hono-server/.agents/skills/grill-me/SKILL.md +0 -7
  177. package/templates/hono-server/.agents/skills/grill-me/agents/openai.yaml +0 -5
  178. package/templates/hono-server/.agents/skills/implement/SKILL.md +0 -15
  179. package/templates/hono-server/.agents/skills/implement/agents/openai.yaml +0 -5
  180. package/templates/hono-server/.agents/skills/improve-codebase-architecture/HTML-REPORT.md +0 -123
  181. package/templates/hono-server/.agents/skills/improve-codebase-architecture/SKILL.md +0 -71
  182. package/templates/hono-server/.agents/skills/improve-codebase-architecture/agents/openai.yaml +0 -5
  183. package/templates/hono-server/.agents/skills/resolving-merge-conflicts/SKILL.md +0 -14
  184. package/templates/hono-server/.agents/skills/resolving-merge-conflicts/agents/openai.yaml +0 -3
  185. package/templates/hono-server/.agents/skills/scoped-code-review/SKILL.md +0 -113
  186. package/templates/hono-server/.agents/skills/setup-matt-pocock-skills/SKILL.md +0 -116
  187. package/templates/hono-server/.agents/skills/setup-matt-pocock-skills/agents/openai.yaml +0 -5
  188. package/templates/hono-server/.agents/skills/setup-matt-pocock-skills/domain.md +0 -51
  189. package/templates/hono-server/.agents/skills/setup-matt-pocock-skills/issue-tracker-github.md +0 -45
  190. package/templates/hono-server/.agents/skills/setup-matt-pocock-skills/issue-tracker-gitlab.md +0 -46
  191. package/templates/hono-server/.agents/skills/setup-matt-pocock-skills/issue-tracker-local.md +0 -30
  192. package/templates/hono-server/.agents/skills/setup-matt-pocock-skills/triage-labels.md +0 -15
  193. package/templates/hono-server/.agents/skills/tdd/SKILL.md +0 -38
  194. package/templates/hono-server/.agents/skills/tdd/agents/openai.yaml +0 -3
  195. package/templates/hono-server/.agents/skills/tdd/mocking.md +0 -59
  196. package/templates/hono-server/.agents/skills/tdd/tests.md +0 -77
  197. package/templates/hono-server/.agents/skills/teach/GLOSSARY-FORMAT.md +0 -35
  198. package/templates/hono-server/.agents/skills/teach/LEARNING-RECORD-FORMAT.md +0 -46
  199. package/templates/hono-server/.agents/skills/teach/MISSION-FORMAT.md +0 -31
  200. package/templates/hono-server/.agents/skills/teach/RESOURCES-FORMAT.md +0 -32
  201. package/templates/hono-server/.agents/skills/teach/SKILL.md +0 -140
  202. package/templates/hono-server/.agents/skills/teach/agents/openai.yaml +0 -5
  203. package/templates/hono-server/.agents/skills/to-questionnaire/SKILL.md +0 -53
  204. package/templates/hono-server/.agents/skills/to-questionnaire/agents/openai.yaml +0 -5
  205. package/templates/hono-server/.agents/skills/triage/AGENT-BRIEF.md +0 -207
  206. package/templates/hono-server/.agents/skills/triage/OUT-OF-SCOPE.md +0 -105
  207. package/templates/hono-server/.agents/skills/triage/SKILL.md +0 -112
  208. package/templates/hono-server/.agents/skills/triage/agents/openai.yaml +0 -5
  209. package/templates/hono-server/.agents/skills/wait-what/SKILL.md +0 -7
  210. package/templates/hono-server/.agents/skills/wait-what/agents/openai.yaml +0 -5
  211. package/templates/hono-server/.agents/skills/wizard/SKILL.md +0 -44
  212. package/templates/hono-server/.agents/skills/wizard/agents/openai.yaml +0 -3
  213. package/templates/hono-server/.agents/skills/wizard/template.sh +0 -204
  214. package/templates/hono-server/.agents/skills/writing-for-agents/SKILL-MECHANICS.md +0 -22
  215. package/templates/hono-server/.agents/skills/writing-for-agents/SKILL.md +0 -81
  216. package/templates/hono-server/.agents/skills/writing-for-agents/agents/openai.yaml +0 -3
  217. package/templates/hono-server/docs/agents/domain.md +0 -41
  218. package/templates/hono-server/docs/agents/issue-tracker.md +0 -30
  219. package/templates/hono-server/docs/agents/triage-labels.md +0 -15
  220. package/templates/monorepo/.agents/skills/ask-matt/PHASE-BOUNDARIES.md +0 -55
  221. package/templates/monorepo/.agents/skills/ask-matt/SKILL.md +0 -90
  222. package/templates/monorepo/.agents/skills/ask-matt/agents/openai.yaml +0 -5
  223. package/templates/monorepo/.agents/skills/code-review/SKILL.md +0 -87
  224. package/templates/monorepo/.agents/skills/code-review/agents/openai.yaml +0 -3
  225. package/templates/monorepo/.agents/skills/codebase-design/DEEPENING.md +0 -37
  226. package/templates/monorepo/.agents/skills/codebase-design/DESIGN-IT-TWICE.md +0 -44
  227. package/templates/monorepo/.agents/skills/codebase-design/SKILL.md +0 -114
  228. package/templates/monorepo/.agents/skills/codebase-design/agents/openai.yaml +0 -3
  229. package/templates/monorepo/.agents/skills/confirm-requirements/SKILL.md +0 -25
  230. package/templates/monorepo/.agents/skills/diagnosing-bugs/SKILL.md +0 -140
  231. package/templates/monorepo/.agents/skills/diagnosing-bugs/agents/openai.yaml +0 -3
  232. package/templates/monorepo/.agents/skills/diagnosing-bugs/scripts/hitl-loop.template.sh +0 -44
  233. package/templates/monorepo/.agents/skills/domain-modeling/ADR-FORMAT.md +0 -47
  234. package/templates/monorepo/.agents/skills/domain-modeling/CONTEXT-FORMAT.md +0 -60
  235. package/templates/monorepo/.agents/skills/domain-modeling/SKILL.md +0 -74
  236. package/templates/monorepo/.agents/skills/domain-modeling/agents/openai.yaml +0 -3
  237. package/templates/monorepo/.agents/skills/grill-me/SKILL.md +0 -7
  238. package/templates/monorepo/.agents/skills/grill-me/agents/openai.yaml +0 -5
  239. package/templates/monorepo/.agents/skills/implement/SKILL.md +0 -15
  240. package/templates/monorepo/.agents/skills/implement/agents/openai.yaml +0 -5
  241. package/templates/monorepo/.agents/skills/improve-codebase-architecture/HTML-REPORT.md +0 -123
  242. package/templates/monorepo/.agents/skills/improve-codebase-architecture/SKILL.md +0 -71
  243. package/templates/monorepo/.agents/skills/improve-codebase-architecture/agents/openai.yaml +0 -5
  244. package/templates/monorepo/.agents/skills/resolving-merge-conflicts/SKILL.md +0 -14
  245. package/templates/monorepo/.agents/skills/resolving-merge-conflicts/agents/openai.yaml +0 -3
  246. package/templates/monorepo/.agents/skills/scoped-code-review/SKILL.md +0 -113
  247. package/templates/monorepo/.agents/skills/setup-matt-pocock-skills/SKILL.md +0 -116
  248. package/templates/monorepo/.agents/skills/setup-matt-pocock-skills/agents/openai.yaml +0 -5
  249. package/templates/monorepo/.agents/skills/setup-matt-pocock-skills/domain.md +0 -51
  250. package/templates/monorepo/.agents/skills/setup-matt-pocock-skills/issue-tracker-github.md +0 -45
  251. package/templates/monorepo/.agents/skills/setup-matt-pocock-skills/issue-tracker-gitlab.md +0 -46
  252. package/templates/monorepo/.agents/skills/setup-matt-pocock-skills/issue-tracker-local.md +0 -30
  253. package/templates/monorepo/.agents/skills/setup-matt-pocock-skills/triage-labels.md +0 -15
  254. package/templates/monorepo/.agents/skills/tdd/SKILL.md +0 -38
  255. package/templates/monorepo/.agents/skills/tdd/agents/openai.yaml +0 -3
  256. package/templates/monorepo/.agents/skills/tdd/mocking.md +0 -59
  257. package/templates/monorepo/.agents/skills/tdd/tests.md +0 -77
  258. package/templates/monorepo/.agents/skills/teach/GLOSSARY-FORMAT.md +0 -35
  259. package/templates/monorepo/.agents/skills/teach/LEARNING-RECORD-FORMAT.md +0 -46
  260. package/templates/monorepo/.agents/skills/teach/MISSION-FORMAT.md +0 -31
  261. package/templates/monorepo/.agents/skills/teach/RESOURCES-FORMAT.md +0 -32
  262. package/templates/monorepo/.agents/skills/teach/SKILL.md +0 -140
  263. package/templates/monorepo/.agents/skills/teach/agents/openai.yaml +0 -5
  264. package/templates/monorepo/.agents/skills/to-questionnaire/SKILL.md +0 -53
  265. package/templates/monorepo/.agents/skills/to-questionnaire/agents/openai.yaml +0 -5
  266. package/templates/monorepo/.agents/skills/triage/AGENT-BRIEF.md +0 -207
  267. package/templates/monorepo/.agents/skills/triage/OUT-OF-SCOPE.md +0 -105
  268. package/templates/monorepo/.agents/skills/triage/SKILL.md +0 -112
  269. package/templates/monorepo/.agents/skills/triage/agents/openai.yaml +0 -5
  270. package/templates/monorepo/.agents/skills/wait-what/SKILL.md +0 -7
  271. package/templates/monorepo/.agents/skills/wait-what/agents/openai.yaml +0 -5
  272. package/templates/monorepo/.agents/skills/wizard/SKILL.md +0 -44
  273. package/templates/monorepo/.agents/skills/wizard/agents/openai.yaml +0 -3
  274. package/templates/monorepo/.agents/skills/wizard/template.sh +0 -204
  275. package/templates/monorepo/.agents/skills/writing-for-agents/SKILL-MECHANICS.md +0 -22
  276. package/templates/monorepo/.agents/skills/writing-for-agents/SKILL.md +0 -81
  277. package/templates/monorepo/.agents/skills/writing-for-agents/agents/openai.yaml +0 -3
  278. package/templates/monorepo/docs/agents/domain.md +0 -41
  279. package/templates/monorepo/docs/agents/issue-tracker.md +0 -30
  280. package/templates/monorepo/docs/agents/triage-labels.md +0 -15
  281. /package/templates/hono-fullstack/.agents/skills/{grilling → ask-grilling}/agents/openai.yaml +0 -0
  282. /package/templates/hono-fullstack/.agents/skills/{prototype → plan-prototype}/agents/openai.yaml +0 -0
  283. /package/templates/hono-fullstack/.agents/skills/{research → plan-research}/agents/openai.yaml +0 -0
  284. /package/templates/hono-fullstack/.agents/skills/{wayfinder → plan-wayfinder}/agents/openai.yaml +0 -0
  285. /package/templates/hono-server/.agents/skills/{grilling → ask-grilling}/agents/openai.yaml +0 -0
  286. /package/templates/hono-server/.agents/skills/{prototype → plan-prototype}/agents/openai.yaml +0 -0
  287. /package/templates/hono-server/.agents/skills/{research → plan-research}/agents/openai.yaml +0 -0
  288. /package/templates/hono-server/.agents/skills/{wayfinder → plan-wayfinder}/agents/openai.yaml +0 -0
  289. /package/templates/monorepo/.agents/skills/{grilling → ask-grilling}/agents/openai.yaml +0 -0
  290. /package/templates/monorepo/.agents/skills/{prototype → plan-prototype}/agents/openai.yaml +0 -0
  291. /package/templates/monorepo/.agents/skills/{research → plan-research}/agents/openai.yaml +0 -0
  292. /package/templates/monorepo/.agents/skills/{wayfinder → plan-wayfinder}/agents/openai.yaml +0 -0
@@ -0,0 +1,393 @@
1
+ ---
2
+ name: ship-ci-cd-and-automation
3
+ description: Automates CI/CD pipeline setup. Use when setting up or modifying build and deployment pipelines. Use when you need to automate quality gates, configure test runners in CI, or establish deployment strategies.
4
+ ---
5
+
6
+ # CI/CD and Automation
7
+
8
+ ## Overview
9
+
10
+ Automate quality gates so that no change reaches production without passing tests, lint, type checking, and build. CI/CD is the enforcement mechanism for every other skill — it catches what humans and agents miss, and it does so consistently on every single change.
11
+
12
+ **Shift Left:** Catch problems as early in the pipeline as possible. A bug caught in linting costs minutes; the same bug caught in production costs hours. Move checks upstream — static analysis before tests, tests before staging, staging before production.
13
+
14
+ **Faster is Safer:** Smaller batches and more frequent releases reduce risk, not increase it. A deployment with 3 changes is easier to debug than one with 30. Frequent releases build confidence in the release process itself.
15
+
16
+ ## When to Use
17
+
18
+ - Setting up a new project's CI pipeline
19
+ - Adding or modifying automated checks
20
+ - Configuring deployment pipelines
21
+ - When a change should trigger automated verification
22
+ - Debugging CI failures
23
+
24
+ ## The Quality Gate Pipeline
25
+
26
+ Every change goes through these gates before merge:
27
+
28
+ ```
29
+ Pull Request Opened
30
+ │
31
+ ▼
32
+ ┌─────────────────┐
33
+ │ LINT CHECK │ eslint, prettier
34
+ │ ↓ pass │
35
+ │ TYPE CHECK │ tsc --noEmit
36
+ │ ↓ pass │
37
+ │ UNIT TESTS │ jest/vitest
38
+ │ ↓ pass │
39
+ │ BUILD │ npm run build
40
+ │ ↓ pass │
41
+ │ INTEGRATION │ API/DB tests
42
+ │ ↓ pass │
43
+ │ E2E (optional) │ Playwright/Cypress
44
+ │ ↓ pass │
45
+ │ SECURITY AUDIT │ npm audit
46
+ │ ↓ pass │
47
+ │ BUNDLE SIZE │ bundlesize check
48
+ └─────────────────┘
49
+ │
50
+ ▼
51
+ Ready for review
52
+ ```
53
+
54
+ **No gate can be skipped.** If lint fails, fix lint — don't disable the rule. If a test fails, fix the code — don't skip the test.
55
+
56
+ ## GitHub Actions Configuration
57
+
58
+ ### Basic CI Pipeline
59
+
60
+ ```yaml
61
+ # .github/workflows/ci.yml
62
+ name: CI
63
+
64
+ on:
65
+ pull_request:
66
+ branches: [main]
67
+ push:
68
+ branches: [main]
69
+
70
+ jobs:
71
+ quality:
72
+ runs-on: ubuntu-latest
73
+ steps:
74
+ - uses: actions/checkout@v4
75
+
76
+ - uses: actions/setup-node@v4
77
+ with:
78
+ node-version: '22'
79
+ cache: 'npm'
80
+
81
+ - name: Install dependencies
82
+ run: npm ci
83
+
84
+ - name: Lint
85
+ run: npm run lint
86
+
87
+ - name: Type check
88
+ run: npx tsc --noEmit
89
+
90
+ - name: Test
91
+ run: npm test -- --coverage
92
+
93
+ - name: Build
94
+ run: npm run build
95
+
96
+ - name: Security audit
97
+ run: npm audit --audit-level=high
98
+ ```
99
+
100
+ ### With Database Integration Tests
101
+
102
+ ```yaml
103
+ integration:
104
+ runs-on: ubuntu-latest
105
+ services:
106
+ postgres:
107
+ image: postgres:16
108
+ env:
109
+ POSTGRES_DB: testdb
110
+ POSTGRES_USER: ci_user
111
+ POSTGRES_PASSWORD: ${{ secrets.CI_DB_PASSWORD }}
112
+ ports:
113
+ - 5432:5432
114
+ options: >-
115
+ --health-cmd pg_isready
116
+ --health-interval 10s
117
+ --health-timeout 5s
118
+ --health-retries 5
119
+
120
+ steps:
121
+ - uses: actions/checkout@v4
122
+ - uses: actions/setup-node@v4
123
+ with:
124
+ node-version: '22'
125
+ cache: 'npm'
126
+ - run: npm ci
127
+ - name: Run migrations
128
+ run: npx prisma migrate deploy
129
+ env:
130
+ DATABASE_URL: postgresql://ci_user:${{ secrets.CI_DB_PASSWORD }}@localhost:5432/testdb
131
+ - name: Integration tests
132
+ run: npm run test:integration
133
+ env:
134
+ DATABASE_URL: postgresql://ci_user:${{ secrets.CI_DB_PASSWORD }}@localhost:5432/testdb
135
+ ```
136
+
137
+ > **Note:** Even for CI-only test databases, use GitHub Secrets for credentials rather than hardcoding values. This builds good habits and prevents accidental reuse of test credentials in other contexts.
138
+
139
+ ### E2E Tests
140
+
141
+ ```yaml
142
+ e2e:
143
+ runs-on: ubuntu-latest
144
+ steps:
145
+ - uses: actions/checkout@v4
146
+ - uses: actions/setup-node@v4
147
+ with:
148
+ node-version: '22'
149
+ cache: 'npm'
150
+ - run: npm ci
151
+ - name: Install Playwright
152
+ run: npx playwright install --with-deps chromium
153
+ - name: Build
154
+ run: npm run build
155
+ - name: Run E2E tests
156
+ run: npx playwright test
157
+ - uses: actions/upload-artifact@v4
158
+ if: failure()
159
+ with:
160
+ name: playwright-report
161
+ path: playwright-report/
162
+ ```
163
+
164
+ ## Feeding CI Failures Back to Agents
165
+
166
+ The power of CI with AI agents is the feedback loop. When CI fails:
167
+
168
+ ```
169
+ CI fails
170
+ │
171
+ ▼
172
+ Copy the failure output
173
+ │
174
+ ▼
175
+ Feed it to the agent:
176
+ "The CI pipeline failed with this error:
177
+ [paste specific error]
178
+ Fix the issue and verify locally before pushing again."
179
+ │
180
+ ▼
181
+ Agent fixes → pushes → CI runs again
182
+ ```
183
+
184
+ **Key patterns:**
185
+
186
+ ```
187
+ Lint failure → Agent runs `npm run lint -- --fix` and commits
188
+ Type error → Agent reads the error location and fixes the type
189
+ Test failure → Agent follows test-debugging-and-error-recovery skill
190
+ Build error → Agent checks config and dependencies
191
+ ```
192
+
193
+ ## Deployment Strategies
194
+
195
+ ### Preview Deployments
196
+
197
+ Every PR gets a preview deployment for manual testing:
198
+
199
+ ```yaml
200
+ # Deploy preview on PR (Vercel/Netlify/etc.)
201
+ deploy-preview:
202
+ runs-on: ubuntu-latest
203
+ if: github.event_name == 'pull_request'
204
+ steps:
205
+ - uses: actions/checkout@v4
206
+ - name: Deploy preview
207
+ run: npx vercel --token=${{ secrets.VERCEL_TOKEN }}
208
+ ```
209
+
210
+ ### Feature Flags
211
+
212
+ Feature flags decouple deployment from release. Deploy incomplete or risky features behind flags so you can:
213
+
214
+ - **Ship code without enabling it.** Merge to main early, enable when ready.
215
+ - **Roll back without redeploying.** Disable the flag instead of reverting code.
216
+ - **Canary new features.** Enable for 1% of users, then 10%, then 100%.
217
+ - **Run A/B tests.** Compare behavior with and without the feature.
218
+
219
+ ```typescript
220
+ // Simple feature flag pattern
221
+ if (featureFlags.isEnabled('new-checkout-flow', { userId })) {
222
+ return renderNewCheckout();
223
+ }
224
+ return renderLegacyCheckout();
225
+ ```
226
+
227
+ **Flag lifecycle:** Create → Enable for testing → Canary → Full rollout → Remove the flag and dead code. Flags that live forever become technical debt — set a cleanup date when you create them.
228
+
229
+ ### Staged Rollouts
230
+
231
+ ```
232
+ PR merged to main
233
+ │
234
+ ▼
235
+ Staging deployment (auto)
236
+ │ Manual verification
237
+ ▼
238
+ Production deployment (manual trigger or auto after staging)
239
+ │
240
+ ▼
241
+ Monitor for errors (15-minute window)
242
+ │
243
+ ├── Errors detected → Rollback
244
+ └── Clean → Done
245
+ ```
246
+
247
+ ### Rollback Plan
248
+
249
+ Every deployment should be reversible:
250
+
251
+ ```yaml
252
+ # Manual rollback workflow
253
+ name: Rollback
254
+ on:
255
+ workflow_dispatch:
256
+ inputs:
257
+ version:
258
+ description: 'Version to rollback to'
259
+ required: true
260
+
261
+ jobs:
262
+ rollback:
263
+ runs-on: ubuntu-latest
264
+ steps:
265
+ - name: Rollback deployment
266
+ env:
267
+ VERSION: ${{ inputs.version }}
268
+ run: |
269
+ # Deploy the specified previous version. Pass the input through env,
270
+ # never interpolate it into the script (shell injection).
271
+ npx vercel rollback "$VERSION"
272
+ ```
273
+
274
+ ## Environment Management
275
+
276
+ ```
277
+ .env.example → Committed (template for developers)
278
+ .env → NOT committed (local development)
279
+ .env.test → Committed (test environment, no real secrets)
280
+ CI secrets → Stored in GitHub Secrets / vault
281
+ Production secrets → Stored in deployment platform / vault
282
+ ```
283
+
284
+ CI should never have production secrets. Use separate secrets for CI testing.
285
+
286
+ ## Automation Beyond CI
287
+
288
+ ### Dependabot / Renovate
289
+
290
+ ```yaml
291
+ # .github/dependabot.yml
292
+ version: 2
293
+ updates:
294
+ - package-ecosystem: npm
295
+ directory: /
296
+ schedule:
297
+ interval: weekly
298
+ open-pull-requests-limit: 5
299
+ ```
300
+
301
+ ### Build Cop Role
302
+
303
+ Designate someone responsible for keeping CI green. When the build breaks, the Build Cop's job is to fix or revert — not the person whose change caused the break. This prevents broken builds from accumulating while everyone assumes someone else will fix it.
304
+
305
+ ### PR Checks
306
+
307
+ - **Required reviews:** At least 1 approval before merge
308
+ - **Required status checks:** CI must pass before merge
309
+ - **Branch protection:** No force-pushes to main
310
+ - **Auto-merge:** If all checks pass and approved, merge automatically
311
+
312
+ ## CI Optimization
313
+
314
+ When the pipeline exceeds 10 minutes, apply these strategies in order of impact:
315
+
316
+ ```
317
+ Slow CI pipeline?
318
+ ├── Cache dependencies
319
+ │ └── Use the setup-node cache option (or actions/cache) for the package manager cache, not node_modules
320
+ ├── Run jobs in parallel
321
+ │ └── Split lint, typecheck, test, build into separate parallel jobs
322
+ ├── Only run what changed
323
+ │ └── Use path filters to skip unrelated jobs (e.g., skip e2e for docs-only PRs)
324
+ ├── Use matrix builds
325
+ │ └── Shard test suites across multiple runners
326
+ ├── Optimize the test suite
327
+ │ └── Remove slow tests from the critical path, run them on a schedule instead
328
+ └── Use larger runners
329
+ └── GitHub-hosted larger runners or self-hosted for CPU-heavy builds
330
+ ```
331
+
332
+ **Example: caching and parallelism**
333
+ ```yaml
334
+ jobs:
335
+ lint:
336
+ runs-on: ubuntu-latest
337
+ steps:
338
+ - uses: actions/checkout@v4
339
+ - uses: actions/setup-node@v4
340
+ with: { node-version: '22', cache: 'npm' }
341
+ - run: npm ci
342
+ - run: npm run lint
343
+
344
+ typecheck:
345
+ runs-on: ubuntu-latest
346
+ steps:
347
+ - uses: actions/checkout@v4
348
+ - uses: actions/setup-node@v4
349
+ with: { node-version: '22', cache: 'npm' }
350
+ - run: npm ci
351
+ - run: npx tsc --noEmit
352
+
353
+ test:
354
+ runs-on: ubuntu-latest
355
+ steps:
356
+ - uses: actions/checkout@v4
357
+ - uses: actions/setup-node@v4
358
+ with: { node-version: '22', cache: 'npm' }
359
+ - run: npm ci
360
+ - run: npm test -- --coverage
361
+ ```
362
+
363
+ ## Common Rationalizations
364
+
365
+ | Rationalization | Reality |
366
+ |---|---|
367
+ | "CI is too slow" | Optimize the pipeline (see CI Optimization below), don't skip it. A 5-minute pipeline prevents hours of debugging. |
368
+ | "This change is trivial, skip CI" | Trivial changes break builds. CI is fast for trivial changes anyway. |
369
+ | "The test is flaky, just re-run" | Flaky tests mask real bugs and waste everyone's time. Fix the flakiness. |
370
+ | "We'll add CI later" | Projects without CI accumulate broken states. Set it up on day one. |
371
+ | "Manual testing is enough" | Manual testing doesn't scale and isn't repeatable. Automate what you can. |
372
+
373
+ ## Red Flags
374
+
375
+ - No CI pipeline in the project
376
+ - CI failures ignored or silenced
377
+ - Tests disabled in CI to make the pipeline pass
378
+ - Production deploys without staging verification
379
+ - No rollback mechanism
380
+ - Secrets stored in code or CI config files (not secrets manager)
381
+ - Long CI times with no optimization effort
382
+
383
+ ## Verification
384
+
385
+ After setting up or modifying CI:
386
+
387
+ - [ ] All quality gates are present (lint, types, tests, build, audit)
388
+ - [ ] Pipeline runs on every PR and push to main
389
+ - [ ] Failures block merge (branch protection configured)
390
+ - [ ] CI results feed back into the development loop
391
+ - [ ] Secrets are stored in the secrets manager, not in code
392
+ - [ ] Deployment has a rollback mechanism
393
+ - [ ] Pipeline runs in under 10 minutes for the test suite
@@ -0,0 +1,252 @@
1
+ ---
2
+ name: ship-deprecation-and-migration
3
+ description: Manages deprecation and migration. Use when removing old systems, APIs, or features. Use when migrating users from one implementation to another. Use when migrating a database schema in production, such as renaming or dropping a column without downtime (expand/contract). Use when deciding whether to maintain or sunset existing code.
4
+ ---
5
+
6
+ # Deprecation and Migration
7
+
8
+ ## Overview
9
+
10
+ Code is a liability, not an asset. Every line of code has ongoing maintenance cost — bugs to fix, dependencies to update, security patches to apply, and new engineers to onboard. Deprecation is the discipline of removing code that no longer earns its keep, and migration is the process of moving users safely from the old to the new.
11
+
12
+ Most engineering organizations are good at building things. Few are good at removing them. This skill addresses that gap.
13
+
14
+ ## When to Use
15
+
16
+ - Replacing an old system, API, or library with a new one
17
+ - Sunsetting a feature that's no longer needed
18
+ - Consolidating duplicate implementations
19
+ - Removing dead code that nobody owns but everybody depends on
20
+ - Planning the lifecycle of a new system (deprecation planning starts at design time)
21
+ - Deciding whether to maintain a legacy system or invest in migration
22
+
23
+ ## Core Principles
24
+
25
+ ### Code Is a Liability
26
+
27
+ Every line of code has ongoing cost: it needs tests, documentation, security patches, dependency updates, and mental overhead for anyone working nearby. The value of code is the functionality it provides, not the code itself. When the same functionality can be provided with less code, less complexity, or better abstractions — the old code should go.
28
+
29
+ ### Hyrum's Law Makes Removal Hard
30
+
31
+ With enough users, every observable behavior becomes depended on — including bugs, timing quirks, and undocumented side effects. This is why deprecation requires active migration, not just announcement. Users can't "just switch" when they depend on behaviors the replacement doesn't replicate.
32
+
33
+ ### Deprecation Planning Starts at Design Time
34
+
35
+ When building something new, ask: "How would we remove this in 3 years?" Systems designed with clean interfaces, feature flags, and minimal surface area are easier to deprecate than systems that leak implementation details everywhere.
36
+
37
+ ## The Deprecation Decision
38
+
39
+ Before deprecating anything, answer these questions:
40
+
41
+ ```
42
+ 1. Does this system still provide unique value?
43
+ → If yes, maintain it. If no, proceed.
44
+
45
+ 2. How many users/consumers depend on it?
46
+ → Quantify the migration scope.
47
+
48
+ 3. Does a replacement exist?
49
+ → If no, build the replacement first. Don't deprecate without an alternative.
50
+
51
+ 4. What's the migration cost for each consumer?
52
+ → If trivially automated, do it. If manual and high-effort, weigh against maintenance cost.
53
+
54
+ 5. What's the ongoing maintenance cost of NOT deprecating?
55
+ → Security risk, engineer time, opportunity cost of complexity.
56
+ ```
57
+
58
+ ## Compulsory vs Advisory Deprecation
59
+
60
+ | Type | When to Use | Mechanism |
61
+ |------|-------------|-----------|
62
+ | **Advisory** | Migration is optional, old system is stable | Warnings, documentation, nudges. Users migrate on their own timeline. |
63
+ | **Compulsory** | Old system has security issues, blocks progress, or maintenance cost is unsustainable | Hard deadline. Old system will be removed by date X. Provide migration tooling. |
64
+
65
+ **Default to advisory.** Use compulsory only when the maintenance cost or risk justifies forcing migration. Compulsory deprecation requires providing migration tooling, documentation, and support — you can't just announce a deadline.
66
+
67
+ ## The Migration Process
68
+
69
+ ### Step 1: Build the Replacement
70
+
71
+ Don't deprecate without a working alternative. The replacement must:
72
+
73
+ - Cover all critical use cases of the old system
74
+ - Have documentation and migration guides
75
+ - Be proven in production (not just "theoretically better")
76
+
77
+ ### Step 2: Announce and Document
78
+
79
+ ```markdown
80
+ ## Deprecation Notice: OldService
81
+
82
+ **Status:** Deprecated as of 2025-03-01
83
+ **Replacement:** NewService (see migration guide below)
84
+ **Removal date:** Advisory — no hard deadline yet
85
+ **Reason:** OldService requires manual scaling and lacks observability.
86
+ NewService handles both automatically.
87
+
88
+ ### Migration Guide
89
+ 1. Replace `import { client } from 'old-service'` with `import { client } from 'new-service'`
90
+ 2. Update configuration (see examples below)
91
+ 3. Run the migration verification script: `npx migrate-check`
92
+ ```
93
+
94
+ ### Step 3: Migrate Incrementally
95
+
96
+ Migrate consumers one at a time, not all at once. For each consumer:
97
+
98
+ ```
99
+ 1. Identify all touchpoints with the deprecated system
100
+ 2. Update to use the replacement
101
+ 3. Verify behavior matches (tests, integration checks)
102
+ 4. Remove references to the old system
103
+ 5. Confirm no regressions
104
+ ```
105
+
106
+ **The Churn Rule:** If you own the infrastructure being deprecated, you are responsible for migrating your users — or providing backward-compatible updates that require no migration. Don't announce deprecation and leave users to figure it out.
107
+
108
+ ### Step 4: Remove the Old System
109
+
110
+ Only after all consumers have migrated:
111
+
112
+ ```
113
+ 1. Verify zero active usage (metrics, logs, dependency analysis)
114
+ 2. Remove the code
115
+ 3. Remove associated tests, documentation, and configuration
116
+ 4. Remove the deprecation notices
117
+ 5. Celebrate — removing code is an achievement
118
+ ```
119
+
120
+ ## Migration Patterns
121
+
122
+ ### Strangler Pattern
123
+
124
+ Run old and new systems in parallel. Route traffic incrementally from old to new. When the old system handles 0% of traffic, remove it.
125
+
126
+ ```
127
+ Phase 1: New system handles 0%, old handles 100%
128
+ Phase 2: New system handles 10% (canary)
129
+ Phase 3: New system handles 50%
130
+ Phase 4: New system handles 100%, old system idle
131
+ Phase 5: Remove old system
132
+ ```
133
+
134
+ ### Adapter Pattern
135
+
136
+ Create an adapter that translates calls from the old interface to the new implementation. Consumers keep using the old interface while you migrate the backend.
137
+
138
+ ```typescript
139
+ // Adapter: old interface, new implementation
140
+ class LegacyTaskService implements OldTaskAPI {
141
+ constructor(private newService: NewTaskService) {}
142
+
143
+ // Old method signature, delegates to new implementation
144
+ getTask(id: number): OldTask {
145
+ const task = this.newService.findById(String(id));
146
+ return this.toOldFormat(task);
147
+ }
148
+
149
+ // Translate the new shape back into what old consumers expect
150
+ private toOldFormat(task: Task): OldTask {
151
+ return { id: Number(task.id), title: task.title, done: task.status === 'done' };
152
+ }
153
+ }
154
+ ```
155
+
156
+ ### Feature Flag Migration
157
+
158
+ Use feature flags to switch consumers from old to new system one at a time:
159
+
160
+ ```typescript
161
+ function getTaskService(userId: string): TaskService {
162
+ if (featureFlags.isEnabled('new-task-service', { userId })) {
163
+ return new NewTaskService();
164
+ }
165
+ return new OldTaskService();
166
+ }
167
+ ```
168
+
169
+ ### Database Schema Migrations (Expand/Contract)
170
+
171
+ A schema change is the riskiest migration because the data is the one thing you cannot roll back by reverting a deploy. The failure mode is coupling the schema change to the code change: rename a column in the same release that starts using the new name, and during the rollout window — when old and new code run at once — one of them is querying a column that doesn't exist. The fix is to **never change a column in place**. Migrate in additive phases so old and new code are both valid at every step.
172
+
173
+ ```
174
+ EXPAND ──────────────→ MIGRATE ──────────────→ CONTRACT
175
+ add the new column, backfill existing rows, once no code reads the
176
+ nullable, alongside dual-write old+new from old column, drop it in
177
+ the old one the app a later, separate deploy
178
+ ```
179
+
180
+ **Worked example — renaming `name` to `full_name`:**
181
+
182
+ 1. **Expand.** Add `full_name` as nullable. Deploy. (Old code ignores it; nothing breaks.)
183
+ 2. **Dual-write.** App writes both `name` and `full_name` on every insert/update. Deploy.
184
+ 3. **Backfill.** Copy `name → full_name` for existing rows, in batches, so you don't lock the table.
185
+ 4. **Switch reads.** Point the app at `full_name`, keep writing both. Deploy and bake.
186
+ 5. **Contract.** Stop writing `name`, then — in a *separate, later* deploy — drop the column.
187
+
188
+ Each step is independently deployable and reversible: if step 4 misbehaves, roll the code back and `full_name` is still being populated. Treat each phase as a thin vertical slice — see the `build-incremental-implementation` skill.
189
+
190
+ **Rules:**
191
+ - **Additive first, destructive last and alone.** Adds (new nullable column, new table, new index) are safe in any deploy; drops and renames get their own deploy *after* no code references the old shape.
192
+ - **Every migration has a tested down path.** A migration you can't reverse is a deploy you can't roll back. Write and run the `down` before merging.
193
+ - **Backfill in batches, off the hot path.** A single `UPDATE` over millions of rows locks the table; chunk it and throttle.
194
+ - **Build large indexes without blocking writes** (e.g. Postgres `CREATE INDEX CONCURRENTLY`).
195
+ - **Decouple from code by feature flag** when the cutover is risky, exactly as in the Feature Flag Migration pattern above.
196
+
197
+ ## Zombie Code
198
+
199
+ Zombie code is code that nobody owns but everybody depends on. It's not actively maintained, has no clear owner, and accumulates security vulnerabilities and compatibility issues. Signs:
200
+
201
+ - No commits in 6+ months but active consumers exist
202
+ - No assigned maintainer or team
203
+ - Failing tests that nobody fixes
204
+ - Dependencies with known vulnerabilities that nobody updates
205
+ - Documentation that references systems that no longer exist
206
+
207
+ **Response:** Either assign an owner and maintain it properly, or deprecate it with a concrete migration plan. Zombie code cannot stay in limbo — it either gets investment or removal.
208
+
209
+ ## Common Rationalizations
210
+
211
+ | Rationalization | Reality |
212
+ |---|---|
213
+ | "It still works, why remove it?" | Working code that nobody maintains accumulates security debt and complexity. Maintenance cost grows silently. |
214
+ | "Someone might need it later" | If it's needed later, it can be rebuilt. Keeping unused code "just in case" costs more than rebuilding. |
215
+ | "The migration is too expensive" | Compare migration cost to ongoing maintenance cost over 2-3 years. Migration is usually cheaper long-term. |
216
+ | "We'll deprecate it after we finish the new system" | Deprecation planning starts at design time. By the time the new system is done, you'll have new priorities. Plan now. |
217
+ | "Users will migrate on their own" | They won't. Provide tooling, documentation, and incentives — or do the migration yourself (the Churn Rule). |
218
+ | "We can maintain both systems indefinitely" | Two systems doing the same thing is double the maintenance, testing, documentation, and onboarding cost. |
219
+ | "Just rename the column, it's one line" | During the rollout, old and new code run together — one will query a column that no longer exists. Expand/contract, never rename in place. |
220
+ | "I'll add the column and drop the old one in the same migration" | That couples a safe add to a destructive drop. Drops get their own deploy, after no code references the old shape. |
221
+ | "We'll write the rollback if we need it" | A migration with no down path is a deploy you can't reverse. Write and run the `down` before merging. |
222
+
223
+ ## Red Flags
224
+
225
+ - Deprecated systems with no replacement available
226
+ - Deprecation announcements with no migration tooling or documentation
227
+ - "Soft" deprecation that's been advisory for years with no progress
228
+ - Zombie code with no owner and active consumers
229
+ - New features added to a deprecated system (invest in the replacement instead)
230
+ - Deprecation without measuring current usage
231
+ - Removing code without verifying zero active consumers
232
+ - A schema change and the code that depends on it shipped in the same deploy
233
+ - A column renamed or dropped in place rather than via expand/contract
234
+ - A migration merged with no tested down path, or a backfill that locks the table
235
+
236
+ ## Verification
237
+
238
+ After completing a deprecation:
239
+
240
+ - [ ] Replacement is production-proven and covers all critical use cases
241
+ - [ ] Migration guide exists with concrete steps and examples
242
+ - [ ] All active consumers have been migrated (verified by metrics/logs)
243
+ - [ ] Old code, tests, documentation, and configuration are fully removed
244
+ - [ ] No references to the deprecated system remain in the codebase
245
+ - [ ] Deprecation notices are removed (they served their purpose)
246
+
247
+ After a database schema migration:
248
+
249
+ - [ ] The change ships in additive phases (expand → backfill → contract), not a single in-place edit
250
+ - [ ] Old and new code are both valid against the schema at every deploy step
251
+ - [ ] Each migration has a tested down path; backfills run in throttled batches
252
+ - [ ] Destructive steps (drop/rename) ship in their own deploy after no code references the old shape