@sk8metal/michi-cli 0.0.9 → 0.2.0

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 (388) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/README.md +236 -57
  3. package/dist/scripts/__tests__/create-project.test.js +24 -28
  4. package/dist/scripts/__tests__/create-project.test.js.map +1 -1
  5. package/dist/scripts/__tests__/jira-transitions.test.d.ts +5 -0
  6. package/dist/scripts/__tests__/jira-transitions.test.d.ts.map +1 -0
  7. package/dist/scripts/__tests__/jira-transitions.test.js +172 -0
  8. package/dist/scripts/__tests__/jira-transitions.test.js.map +1 -0
  9. package/dist/scripts/__tests__/multi-project-estimate.test.js +14 -15
  10. package/dist/scripts/__tests__/multi-project-estimate.test.js.map +1 -1
  11. package/dist/scripts/__tests__/setup-existing-project.test.js +79 -0
  12. package/dist/scripts/__tests__/setup-existing-project.test.js.map +1 -1
  13. package/dist/scripts/__tests__/setup-interactive.test.js +23 -17
  14. package/dist/scripts/__tests__/setup-interactive.test.js.map +1 -1
  15. package/dist/scripts/__tests__/spec-impl-workflow.test.d.ts +5 -0
  16. package/dist/scripts/__tests__/spec-impl-workflow.test.d.ts.map +1 -0
  17. package/dist/scripts/__tests__/spec-impl-workflow.test.js +321 -0
  18. package/dist/scripts/__tests__/spec-impl-workflow.test.js.map +1 -0
  19. package/dist/scripts/__tests__/spec-loader.test.d.ts +5 -0
  20. package/dist/scripts/__tests__/spec-loader.test.d.ts.map +1 -0
  21. package/dist/scripts/__tests__/spec-loader.test.js +153 -0
  22. package/dist/scripts/__tests__/spec-loader.test.js.map +1 -0
  23. package/dist/scripts/__tests__/validate-phase.test.js +109 -22
  24. package/dist/scripts/__tests__/validate-phase.test.js.map +1 -1
  25. package/dist/scripts/config/config-schema.d.ts +31 -0
  26. package/dist/scripts/config/config-schema.d.ts.map +1 -1
  27. package/dist/scripts/config/config-schema.js +64 -26
  28. package/dist/scripts/config/config-schema.js.map +1 -1
  29. package/dist/scripts/config-interactive.d.ts.map +1 -1
  30. package/dist/scripts/config-interactive.js +53 -38
  31. package/dist/scripts/config-interactive.js.map +1 -1
  32. package/dist/scripts/confluence-sync.d.ts.map +1 -1
  33. package/dist/scripts/confluence-sync.js +0 -11
  34. package/dist/scripts/confluence-sync.js.map +1 -1
  35. package/dist/scripts/constants/__tests__/environments.test.js +39 -5
  36. package/dist/scripts/constants/__tests__/environments.test.js.map +1 -1
  37. package/dist/scripts/constants/environments.d.ts +1 -1
  38. package/dist/scripts/constants/environments.d.ts.map +1 -1
  39. package/dist/scripts/constants/environments.js +22 -7
  40. package/dist/scripts/constants/environments.js.map +1 -1
  41. package/dist/scripts/constants/test-commands.d.ts +36 -0
  42. package/dist/scripts/constants/test-commands.d.ts.map +1 -0
  43. package/dist/scripts/constants/test-commands.js +70 -0
  44. package/dist/scripts/constants/test-commands.js.map +1 -0
  45. package/dist/scripts/jira-sync.d.ts +89 -3
  46. package/dist/scripts/jira-sync.d.ts.map +1 -1
  47. package/dist/scripts/jira-sync.js +366 -96
  48. package/dist/scripts/jira-sync.js.map +1 -1
  49. package/dist/scripts/markdown-to-confluence.js +1 -1
  50. package/dist/scripts/markdown-to-confluence.js.map +1 -1
  51. package/dist/scripts/phase-runner.d.ts +1 -1
  52. package/dist/scripts/phase-runner.d.ts.map +1 -1
  53. package/dist/scripts/phase-runner.js +809 -13
  54. package/dist/scripts/phase-runner.js.map +1 -1
  55. package/dist/scripts/pr-automation.d.ts.map +1 -1
  56. package/dist/scripts/pr-automation.js.map +1 -1
  57. package/dist/scripts/pre-flight-check.js +1 -1
  58. package/dist/scripts/pre-flight-check.js.map +1 -1
  59. package/dist/scripts/setup-existing-project.js +61 -29
  60. package/dist/scripts/setup-existing-project.js.map +1 -1
  61. package/dist/scripts/setup-interactive.js +3 -3
  62. package/dist/scripts/setup-interactive.js.map +1 -1
  63. package/dist/scripts/spec-impl-workflow.d.ts +94 -0
  64. package/dist/scripts/spec-impl-workflow.d.ts.map +1 -0
  65. package/dist/scripts/spec-impl-workflow.js +354 -0
  66. package/dist/scripts/spec-impl-workflow.js.map +1 -0
  67. package/dist/scripts/template/__tests__/renderer.test.js.map +1 -1
  68. package/dist/scripts/test-execution-generator.d.ts +52 -0
  69. package/dist/scripts/test-execution-generator.d.ts.map +1 -0
  70. package/dist/scripts/test-execution-generator.js +576 -0
  71. package/dist/scripts/test-execution-generator.js.map +1 -0
  72. package/dist/scripts/test-interactive.d.ts +10 -0
  73. package/dist/scripts/test-interactive.d.ts.map +1 -0
  74. package/dist/scripts/test-interactive.js +627 -0
  75. package/dist/scripts/test-interactive.js.map +1 -0
  76. package/dist/scripts/test-new-features.d.ts +5 -0
  77. package/dist/scripts/test-new-features.d.ts.map +1 -0
  78. package/dist/scripts/test-new-features.js +145 -0
  79. package/dist/scripts/test-new-features.js.map +1 -0
  80. package/dist/scripts/test-spec-generator.d.ts +29 -0
  81. package/dist/scripts/test-spec-generator.d.ts.map +1 -0
  82. package/dist/scripts/test-spec-generator.js +494 -0
  83. package/dist/scripts/test-spec-generator.js.map +1 -0
  84. package/dist/scripts/test-workflow-stages.d.ts +6 -0
  85. package/dist/scripts/test-workflow-stages.d.ts.map +1 -0
  86. package/dist/scripts/test-workflow-stages.js +43 -0
  87. package/dist/scripts/test-workflow-stages.js.map +1 -0
  88. package/dist/scripts/utils/__tests__/aidlc-parser.test.d.ts +5 -0
  89. package/dist/scripts/utils/__tests__/aidlc-parser.test.d.ts.map +1 -0
  90. package/dist/scripts/utils/__tests__/aidlc-parser.test.js +315 -0
  91. package/dist/scripts/utils/__tests__/aidlc-parser.test.js.map +1 -0
  92. package/dist/scripts/utils/__tests__/business-days.test.d.ts +5 -0
  93. package/dist/scripts/utils/__tests__/business-days.test.d.ts.map +1 -0
  94. package/dist/scripts/utils/__tests__/business-days.test.js +171 -0
  95. package/dist/scripts/utils/__tests__/business-days.test.js.map +1 -0
  96. package/dist/scripts/utils/__tests__/config-loader.test.js +1 -1
  97. package/dist/scripts/utils/__tests__/config-loader.test.js.map +1 -1
  98. package/dist/scripts/utils/__tests__/config-validator.test.js +164 -35
  99. package/dist/scripts/utils/__tests__/config-validator.test.js.map +1 -1
  100. package/dist/scripts/utils/__tests__/env-config.test.d.ts +5 -0
  101. package/dist/scripts/utils/__tests__/env-config.test.d.ts.map +1 -0
  102. package/dist/scripts/utils/__tests__/env-config.test.js +218 -0
  103. package/dist/scripts/utils/__tests__/env-config.test.js.map +1 -0
  104. package/dist/scripts/utils/__tests__/jira-issue-type-fetcher.test.d.ts +5 -0
  105. package/dist/scripts/utils/__tests__/jira-issue-type-fetcher.test.d.ts.map +1 -0
  106. package/dist/scripts/utils/__tests__/jira-issue-type-fetcher.test.js +202 -0
  107. package/dist/scripts/utils/__tests__/jira-issue-type-fetcher.test.js.map +1 -0
  108. package/dist/scripts/utils/__tests__/tasks-converter.test.d.ts +5 -0
  109. package/dist/scripts/utils/__tests__/tasks-converter.test.d.ts.map +1 -0
  110. package/dist/scripts/utils/__tests__/tasks-converter.test.js +500 -0
  111. package/dist/scripts/utils/__tests__/tasks-converter.test.js.map +1 -0
  112. package/dist/scripts/utils/__tests__/tasks-format-validator.test.d.ts +5 -0
  113. package/dist/scripts/utils/__tests__/tasks-format-validator.test.d.ts.map +1 -0
  114. package/dist/scripts/utils/__tests__/tasks-format-validator.test.js +314 -0
  115. package/dist/scripts/utils/__tests__/tasks-format-validator.test.js.map +1 -0
  116. package/dist/scripts/utils/__tests__/test-runner.test.d.ts +5 -0
  117. package/dist/scripts/utils/__tests__/test-runner.test.d.ts.map +1 -0
  118. package/dist/scripts/utils/__tests__/test-runner.test.js +64 -0
  119. package/dist/scripts/utils/__tests__/test-runner.test.js.map +1 -0
  120. package/dist/scripts/utils/aidlc-parser.d.ts +86 -0
  121. package/dist/scripts/utils/aidlc-parser.d.ts.map +1 -0
  122. package/dist/scripts/utils/aidlc-parser.js +208 -0
  123. package/dist/scripts/utils/aidlc-parser.js.map +1 -0
  124. package/dist/scripts/utils/business-days.d.ts +52 -0
  125. package/dist/scripts/utils/business-days.d.ts.map +1 -0
  126. package/dist/scripts/utils/business-days.js +98 -0
  127. package/dist/scripts/utils/business-days.js.map +1 -0
  128. package/dist/scripts/utils/ci-generator.d.ts +14 -0
  129. package/dist/scripts/utils/ci-generator.d.ts.map +1 -0
  130. package/dist/scripts/utils/ci-generator.js +61 -0
  131. package/dist/scripts/utils/ci-generator.js.map +1 -0
  132. package/dist/scripts/utils/config-loader.js +2 -2
  133. package/dist/scripts/utils/config-loader.js.map +1 -1
  134. package/dist/scripts/utils/config-validator.d.ts +7 -1
  135. package/dist/scripts/utils/config-validator.d.ts.map +1 -1
  136. package/dist/scripts/utils/config-validator.js +136 -23
  137. package/dist/scripts/utils/config-validator.js.map +1 -1
  138. package/dist/scripts/utils/confluence-approval.d.ts +46 -0
  139. package/dist/scripts/utils/confluence-approval.d.ts.map +1 -0
  140. package/dist/scripts/utils/confluence-approval.js +118 -0
  141. package/dist/scripts/utils/confluence-approval.js.map +1 -0
  142. package/dist/scripts/utils/confluence-hierarchy.d.ts.map +1 -1
  143. package/dist/scripts/utils/confluence-hierarchy.js +1 -1
  144. package/dist/scripts/utils/confluence-hierarchy.js.map +1 -1
  145. package/dist/scripts/utils/docker-generator.d.ts +9 -0
  146. package/dist/scripts/utils/docker-generator.d.ts.map +1 -0
  147. package/dist/scripts/utils/docker-generator.js +132 -0
  148. package/dist/scripts/utils/docker-generator.js.map +1 -0
  149. package/dist/scripts/utils/docker-requirement-detector.d.ts +15 -0
  150. package/dist/scripts/utils/docker-requirement-detector.d.ts.map +1 -0
  151. package/dist/scripts/utils/docker-requirement-detector.js +124 -0
  152. package/dist/scripts/utils/docker-requirement-detector.js.map +1 -0
  153. package/dist/scripts/utils/env-config.d.ts +54 -0
  154. package/dist/scripts/utils/env-config.d.ts.map +1 -0
  155. package/dist/scripts/utils/env-config.js +414 -0
  156. package/dist/scripts/utils/env-config.js.map +1 -0
  157. package/dist/scripts/utils/jira-issue-type-fetcher.d.ts +70 -0
  158. package/dist/scripts/utils/jira-issue-type-fetcher.d.ts.map +1 -0
  159. package/dist/scripts/utils/jira-issue-type-fetcher.js +147 -0
  160. package/dist/scripts/utils/jira-issue-type-fetcher.js.map +1 -0
  161. package/dist/scripts/utils/language-detector.d.ts +14 -0
  162. package/dist/scripts/utils/language-detector.d.ts.map +1 -0
  163. package/dist/scripts/utils/language-detector.js +119 -0
  164. package/dist/scripts/utils/language-detector.js.map +1 -0
  165. package/dist/scripts/utils/markdown-parser.d.ts +55 -0
  166. package/dist/scripts/utils/markdown-parser.d.ts.map +1 -0
  167. package/dist/scripts/utils/markdown-parser.js +289 -0
  168. package/dist/scripts/utils/markdown-parser.js.map +1 -0
  169. package/dist/scripts/utils/project-detector.d.ts +17 -0
  170. package/dist/scripts/utils/project-detector.d.ts.map +1 -0
  171. package/dist/scripts/utils/project-detector.js +166 -0
  172. package/dist/scripts/utils/project-detector.js.map +1 -0
  173. package/dist/scripts/utils/project-finder.js +2 -2
  174. package/dist/scripts/utils/project-finder.js.map +1 -1
  175. package/dist/scripts/utils/release-notes-generator.d.ts +56 -0
  176. package/dist/scripts/utils/release-notes-generator.d.ts.map +1 -0
  177. package/dist/scripts/utils/release-notes-generator.js +162 -0
  178. package/dist/scripts/utils/release-notes-generator.js.map +1 -0
  179. package/dist/scripts/utils/spec-loader.d.ts +79 -0
  180. package/dist/scripts/utils/spec-loader.d.ts.map +1 -0
  181. package/dist/scripts/utils/spec-loader.js +80 -0
  182. package/dist/scripts/utils/spec-loader.js.map +1 -0
  183. package/dist/scripts/utils/spec-updater.d.ts +7 -0
  184. package/dist/scripts/utils/spec-updater.d.ts.map +1 -1
  185. package/dist/scripts/utils/spec-updater.js.map +1 -1
  186. package/dist/scripts/utils/tasks-converter.d.ts +57 -0
  187. package/dist/scripts/utils/tasks-converter.d.ts.map +1 -0
  188. package/dist/scripts/utils/tasks-converter.js +322 -0
  189. package/dist/scripts/utils/tasks-converter.js.map +1 -0
  190. package/dist/scripts/utils/tasks-format-validator.d.ts +36 -0
  191. package/dist/scripts/utils/tasks-format-validator.d.ts.map +1 -0
  192. package/dist/scripts/utils/tasks-format-validator.js +158 -0
  193. package/dist/scripts/utils/tasks-format-validator.js.map +1 -0
  194. package/dist/scripts/utils/template-applier.d.ts +37 -0
  195. package/dist/scripts/utils/template-applier.d.ts.map +1 -0
  196. package/dist/scripts/utils/template-applier.js +129 -0
  197. package/dist/scripts/utils/template-applier.js.map +1 -0
  198. package/dist/scripts/utils/test-config-generator.d.ts +12 -0
  199. package/dist/scripts/utils/test-config-generator.d.ts.map +1 -0
  200. package/dist/scripts/utils/test-config-generator.js +185 -0
  201. package/dist/scripts/utils/test-config-generator.js.map +1 -0
  202. package/dist/scripts/utils/test-runner.d.ts +31 -0
  203. package/dist/scripts/utils/test-runner.d.ts.map +1 -0
  204. package/dist/scripts/utils/test-runner.js +103 -0
  205. package/dist/scripts/utils/test-runner.js.map +1 -0
  206. package/dist/scripts/validate-phase.d.ts +1 -1
  207. package/dist/scripts/validate-phase.d.ts.map +1 -1
  208. package/dist/scripts/validate-phase.js +171 -8
  209. package/dist/scripts/validate-phase.js.map +1 -1
  210. package/dist/scripts/workflow-orchestrator.d.ts +8 -0
  211. package/dist/scripts/workflow-orchestrator.d.ts.map +1 -1
  212. package/dist/scripts/workflow-orchestrator.js +108 -7
  213. package/dist/scripts/workflow-orchestrator.js.map +1 -1
  214. package/dist/src/__tests__/integration/internationalization.test.d.ts +8 -0
  215. package/dist/src/__tests__/integration/internationalization.test.d.ts.map +1 -0
  216. package/dist/src/__tests__/integration/internationalization.test.js +333 -0
  217. package/dist/src/__tests__/integration/internationalization.test.js.map +1 -0
  218. package/dist/src/__tests__/integration/setup/claude-agent.test.d.ts +1 -1
  219. package/dist/src/__tests__/integration/setup/claude-agent.test.js +17 -20
  220. package/dist/src/__tests__/integration/setup/claude-agent.test.js.map +1 -1
  221. package/dist/src/__tests__/integration/setup/claude.test.js +82 -0
  222. package/dist/src/__tests__/integration/setup/claude.test.js.map +1 -1
  223. package/dist/src/__tests__/integration/setup/cursor.test.js +23 -19
  224. package/dist/src/__tests__/integration/setup/cursor.test.js.map +1 -1
  225. package/dist/src/__tests__/integration/setup/validation.test.js +41 -58
  226. package/dist/src/__tests__/integration/setup/validation.test.js.map +1 -1
  227. package/dist/src/cli.d.ts.map +1 -1
  228. package/dist/src/cli.js +209 -18
  229. package/dist/src/cli.js.map +1 -1
  230. package/dist/src/commands/setup-existing.d.ts +4 -0
  231. package/dist/src/commands/setup-existing.d.ts.map +1 -1
  232. package/dist/src/commands/setup-existing.js +367 -47
  233. package/dist/src/commands/setup-existing.js.map +1 -1
  234. package/docs/README.md +3 -1
  235. package/docs/context.md +59 -0
  236. package/docs/design-issue-55.md +240 -0
  237. package/docs/design-issue-56.md +181 -0
  238. package/docs/michi-development/testing/manual-verification-flow.md +2242 -0
  239. package/docs/michi-development/testing/pre-publish-checklist.md +560 -0
  240. package/docs/plan.md +275 -0
  241. package/docs/user-guide/getting-started/github-token-setup.md +509 -0
  242. package/docs/{getting-started → user-guide/getting-started}/quick-start.md +16 -0
  243. package/docs/{getting-started → user-guide/getting-started}/setup.md +28 -1
  244. package/docs/user-guide/guides/agent-skills-integration.md +217 -0
  245. package/docs/{guides → user-guide/guides}/customization.md +2 -2
  246. package/docs/user-guide/guides/internationalization.md +540 -0
  247. package/docs/{guides → user-guide/guides}/multi-project.md +3 -3
  248. package/docs/{guides → user-guide/guides}/phase-automation.md +92 -34
  249. package/docs/user-guide/guides/workflow.md +570 -0
  250. package/docs/user-guide/hands-on/README.md +142 -0
  251. package/docs/user-guide/hands-on/claude-agent-setup.md +455 -0
  252. package/docs/user-guide/hands-on/claude-setup.md +398 -0
  253. package/docs/user-guide/hands-on/cursor-setup.md +352 -0
  254. package/docs/user-guide/hands-on/troubleshooting.md +964 -0
  255. package/docs/user-guide/hands-on/verification-checklist.md +438 -0
  256. package/docs/user-guide/hands-on/workflow-walkthrough.md +906 -0
  257. package/docs/user-guide/reference/config.md +564 -0
  258. package/docs/{reference → user-guide/reference}/quick-reference.md +53 -40
  259. package/docs/{reference → user-guide/reference}/tasks-template.md +2 -2
  260. package/docs/user-guide/release/ci-setup.md +541 -0
  261. package/docs/user-guide/release/release-flow.md +476 -0
  262. package/docs/user-guide/templates/test-specs/README.md +173 -0
  263. package/docs/user-guide/templates/test-specs/e2e-test-spec-template.md +547 -0
  264. package/docs/user-guide/templates/test-specs/integration-test-spec-template.md +435 -0
  265. package/docs/user-guide/templates/test-specs/performance-test-spec-template.md +454 -0
  266. package/docs/user-guide/templates/test-specs/security-test-spec-template.md +664 -0
  267. package/docs/user-guide/templates/test-specs/unit-test-spec-template.md +328 -0
  268. package/docs/{testing → user-guide/testing}/integration-tests.md +24 -9
  269. package/docs/user-guide/testing/tdd-cycle.md +349 -0
  270. package/docs/user-guide/testing/test-execution-flow.md +396 -0
  271. package/docs/user-guide/testing/test-failure-handling.md +521 -0
  272. package/docs/user-guide/testing/test-planning-flow.md +181 -0
  273. package/docs/user-guide/testing-strategy.md +185 -0
  274. package/docs/verification-guide.md +518 -0
  275. package/package.json +7 -2
  276. package/scripts/__tests__/create-project.test.ts +67 -49
  277. package/scripts/__tests__/jira-transitions.test.ts +225 -0
  278. package/scripts/__tests__/multi-project-estimate.test.ts +36 -30
  279. package/scripts/__tests__/setup-existing-project.test.ts +98 -1
  280. package/scripts/__tests__/setup-interactive.test.ts +52 -46
  281. package/scripts/__tests__/spec-impl-workflow.test.ts +429 -0
  282. package/scripts/__tests__/spec-loader.test.ts +199 -0
  283. package/scripts/__tests__/validate-phase.test.ts +178 -54
  284. package/scripts/config/config-schema.ts +100 -50
  285. package/scripts/config-interactive.ts +191 -136
  286. package/scripts/confluence-sync.ts +0 -12
  287. package/scripts/constants/__tests__/environments.test.ts +42 -6
  288. package/scripts/constants/environments.ts +33 -13
  289. package/scripts/constants/test-commands.ts +96 -0
  290. package/scripts/jira-sync.ts +767 -232
  291. package/scripts/markdown-to-confluence.ts +1 -1
  292. package/scripts/phase-runner.ts +1056 -63
  293. package/scripts/pr-automation.ts +0 -1
  294. package/scripts/pre-flight-check.ts +1 -1
  295. package/scripts/pre-publish-check.sh +311 -0
  296. package/scripts/quick-verify.sh +115 -0
  297. package/scripts/setup-existing-project.ts +201 -117
  298. package/scripts/setup-interactive.ts +4 -4
  299. package/scripts/spec-impl-workflow.ts +505 -0
  300. package/scripts/template/__tests__/renderer.test.ts +1 -2
  301. package/scripts/test-execution-generator.ts +695 -0
  302. package/scripts/test-interactive.ts +779 -0
  303. package/scripts/test-new-features.ts +168 -0
  304. package/scripts/test-npm-package.sh +345 -0
  305. package/scripts/test-spec-generator.ts +574 -0
  306. package/scripts/test-workflow-stages.ts +53 -0
  307. package/scripts/utils/__tests__/aidlc-parser.test.ts +349 -0
  308. package/scripts/utils/__tests__/business-days.test.ts +214 -0
  309. package/scripts/utils/__tests__/config-loader.test.ts +1 -1
  310. package/scripts/utils/__tests__/config-validator.test.ts +309 -88
  311. package/scripts/utils/__tests__/env-config.test.ts +259 -0
  312. package/scripts/utils/__tests__/jira-issue-type-fetcher.test.ts +272 -0
  313. package/scripts/utils/__tests__/tasks-converter.test.ts +582 -0
  314. package/scripts/utils/__tests__/tasks-format-validator.test.ts +338 -0
  315. package/scripts/utils/__tests__/test-runner.test.ts +77 -0
  316. package/scripts/utils/aidlc-parser.ts +289 -0
  317. package/scripts/utils/business-days.ts +115 -0
  318. package/scripts/utils/ci-generator.ts +84 -0
  319. package/scripts/utils/config-loader.ts +2 -2
  320. package/scripts/utils/config-validator.ts +304 -117
  321. package/scripts/utils/confluence-approval.ts +167 -0
  322. package/scripts/utils/confluence-hierarchy.ts +2 -4
  323. package/scripts/utils/docker-generator.ts +151 -0
  324. package/scripts/utils/docker-requirement-detector.ts +153 -0
  325. package/scripts/utils/env-config.ts +526 -0
  326. package/scripts/utils/jira-issue-type-fetcher.ts +199 -0
  327. package/scripts/utils/language-detector.ts +139 -0
  328. package/scripts/utils/markdown-parser.ts +376 -0
  329. package/scripts/utils/project-detector.ts +192 -0
  330. package/scripts/utils/project-finder.ts +2 -2
  331. package/scripts/utils/release-notes-generator.ts +210 -0
  332. package/scripts/utils/spec-loader.ts +125 -0
  333. package/scripts/utils/spec-updater.ts +8 -1
  334. package/scripts/utils/tasks-converter.ts +601 -0
  335. package/scripts/utils/tasks-format-validator.ts +193 -0
  336. package/scripts/utils/template-applier.ts +202 -0
  337. package/scripts/utils/test-config-generator.ts +210 -0
  338. package/scripts/utils/test-runner.ts +133 -0
  339. package/scripts/validate-phase.ts +207 -12
  340. package/scripts/workflow-orchestrator.ts +130 -12
  341. package/templates/ci/github-actions/java.yml +54 -0
  342. package/templates/ci/github-actions/nodejs.yml +46 -0
  343. package/templates/ci/github-actions/php.yml +52 -0
  344. package/templates/ci/screwdriver/java.yaml +17 -0
  345. package/templates/ci/screwdriver/nodejs.yaml +17 -0
  346. package/templates/ci/screwdriver/php.yaml +20 -0
  347. package/templates/claude/agents/design-reviewer/AGENT.md +497 -0
  348. package/templates/claude/agents/e2e-first-planner/AGENT.md +410 -0
  349. package/templates/claude/agents/oss-license-checker/AGENT.md +265 -0
  350. package/templates/claude/agents/pr-resolver/AGENT.md +196 -0
  351. package/templates/claude/agents/stable-version-auditor/AGENT.md +279 -0
  352. package/templates/claude/commands/kiro/kiro-spec-impl.md +253 -0
  353. package/templates/claude/commands/kiro/kiro-spec-tasks.md +368 -0
  354. package/templates/claude/commands/michi/design-review.md +66 -0
  355. package/templates/claude/commands/michi/e2e-plan.md +113 -0
  356. package/templates/claude/commands/michi/license-check.md +80 -0
  357. package/templates/claude/commands/michi/pr-resolve.md +153 -0
  358. package/templates/claude/commands/michi/version-audit.md +91 -0
  359. package/templates/claude/skills/design-review/SKILL.md +648 -0
  360. package/templates/claude/skills/e2e-first-planning/SKILL.md +360 -0
  361. package/templates/claude/skills/oss-license/SKILL.md +232 -0
  362. package/templates/claude/skills/stable-version/SKILL.md +252 -0
  363. package/templates/claude-agent/README.md +7 -1
  364. package/templates/claude-agent/agents/.gitkeep +0 -0
  365. package/templates/claude-agent/agents/designer.md +79 -0
  366. package/templates/claude-agent/agents/developer.md +68 -0
  367. package/templates/claude-agent/agents/manager-agent.md +59 -0
  368. package/templates/claude-agent/agents/tester.md +101 -0
  369. package/templates/claude-agent/commands/kiro/.gitkeep +0 -0
  370. package/templates/claude-agent/commands/kiro/kiro-spec-impl.md +244 -0
  371. package/templates/claude-agent/commands/kiro/kiro-spec-tasks.md +354 -0
  372. package/templates/cline/rules/atlassian-integration.md +36 -0
  373. package/templates/cline/rules/michi-core.md +56 -0
  374. package/templates/codex/AGENTS.override.md +277 -0
  375. package/templates/codex/prompts/confluence-sync.md +177 -0
  376. package/templates/codex/rules/README.md +210 -0
  377. package/templates/common/.kiro/project.json.template +21 -0
  378. package/templates/cursor/commands/kiro/kiro-spec-impl.md +244 -0
  379. package/templates/cursor/commands/kiro/kiro-spec-tasks.md +354 -0
  380. package/templates/gemini/commands/README.md +41 -0
  381. package/templates/gemini/rules/GEMINI.md +80 -0
  382. package/docs/guides/workflow.md +0 -342
  383. package/docs/reference/config.md +0 -545
  384. package/scripts/setup-existing.sh +0 -279
  385. /package/docs/{contributing → michi-development/contributing}/development.md +0 -0
  386. /package/docs/{contributing → michi-development/contributing}/release.md +0 -0
  387. /package/docs/{testing-strategy.md → michi-development/testing-strategy.md} +0 -0
  388. /package/docs/{getting-started → user-guide/getting-started}/new-repository-setup.md +0 -0
@@ -0,0 +1,541 @@
1
+ # CI/CD設定
2
+
3
+ このドキュメントでは、michiを使用したプロジェクトでのCI/CD(継続的インテグレーション/継続的デリバリー)設定について説明します。
4
+
5
+ ## michiのCI/CD方針
6
+
7
+ michiでは、**Phase Aのテスト(単体テスト、Lint、ビルド)のみをCI/CDで自動実行**します。
8
+
9
+ ### CI/CDで実行されるもの
10
+
11
+ | テストタイプ | 実行タイミング | CI/CDで自動実行 |
12
+ |------------|--------------|---------------|
13
+ | 単体テスト | Phase A(PR前) | ✅ はい |
14
+ | Lint | Phase A(PR前) | ✅ はい |
15
+ | ビルド | Phase A(PR前) | ✅ はい |
16
+ | 統合テスト | Phase B(リリース準備時) | ❌ いいえ(手動) |
17
+ | E2Eテスト | Phase B(リリース準備時) | ❌ いいえ(手動) |
18
+ | パフォーマンステスト | Phase B(リリース準備時) | ❌ いいえ(手動) |
19
+ | セキュリティテスト | Phase B(リリース準備時) | ❌ いいえ(手動) |
20
+
21
+ **理由**:
22
+ - Phase Aは高速実行が必要(数分以内)
23
+ - Phase Bは時間がかかる(数十分〜数時間)
24
+ - Phase Bは本番環境に近い状態での検証が必要
25
+
26
+ ## 対応CI/CDツール
27
+
28
+ michiは以下のCI/CDツールをサポートしています:
29
+
30
+ ### 1. GitHub Actions(推奨)
31
+
32
+ - **対象**: GitHubホストのリポジトリ
33
+ - **メリット**: GitHubとの統合が容易、無料枠が充実
34
+ - **設定ファイル**: `.github/workflows/`
35
+
36
+ ### 2. Screwdriver
37
+
38
+ - **対象**: オープンソースのCI/CDツールを使用したいプロジェクト
39
+ - **メリット**: 高いカスタマイズ性、柔軟なパイプライン設定
40
+ - **設定ファイル**: `screwdriver.yaml`
41
+
42
+ ## Node.js/TypeScript プロジェクトのCI/CD設定
43
+
44
+ ### GitHub Actions設定例
45
+
46
+ **.github/workflows/test.yml**
47
+
48
+ ```yaml
49
+ name: Test
50
+
51
+ on:
52
+ push:
53
+ branches:
54
+ - main
55
+ pull_request:
56
+
57
+ jobs:
58
+ test:
59
+ runs-on: ubuntu-latest
60
+
61
+ strategy:
62
+ matrix:
63
+ node-version: [18.x, 20.x]
64
+
65
+ steps:
66
+ - uses: actions/checkout@v4
67
+
68
+ - name: Setup Node.js
69
+ uses: actions/setup-node@v4
70
+ with:
71
+ node-version: ${{ matrix.node-version }}
72
+ cache: 'npm'
73
+
74
+ - name: Install dependencies
75
+ run: npm ci
76
+
77
+ - name: Run lint
78
+ run: npm run lint
79
+
80
+ - name: Run tests
81
+ run: npm test
82
+
83
+ - name: Build
84
+ run: npm run build
85
+
86
+ - name: Upload coverage
87
+ uses: codecov/codecov-action@v3
88
+ if: matrix.node-version == '20.x'
89
+ with:
90
+ files: ./coverage/coverage-final.json
91
+ ```
92
+
93
+ ### Screwdriver設定例
94
+
95
+ **screwdriver.yaml**
96
+
97
+ ```yaml
98
+ shared:
99
+ image: node:20
100
+
101
+ jobs:
102
+ main:
103
+ requires: [~pr, ~commit]
104
+ steps:
105
+ - install: npm ci
106
+ - lint: npm run lint
107
+ - test: npm test
108
+ - build: npm run build
109
+ - coverage: |
110
+ if [ -d "coverage" ]; then
111
+ echo "Coverage report generated"
112
+ fi
113
+ ```
114
+
115
+ ### package.jsonスクリプト設定
116
+
117
+ ```json
118
+ {
119
+ "scripts": {
120
+ "test": "vitest run --coverage",
121
+ "test:watch": "vitest",
122
+ "lint": "eslint src/**/*.ts",
123
+ "lint:fix": "eslint src/**/*.ts --fix",
124
+ "build": "tsc",
125
+ "type-check": "tsc --noEmit"
126
+ }
127
+ }
128
+ ```
129
+
130
+ ## Java(Gradle)プロジェクトのCI/CD設定
131
+
132
+ ### GitHub Actions設定例
133
+
134
+ **.github/workflows/test.yml**
135
+
136
+ ```yaml
137
+ name: Test
138
+
139
+ on:
140
+ push:
141
+ branches:
142
+ - main
143
+ pull_request:
144
+
145
+ jobs:
146
+ test:
147
+ runs-on: ubuntu-latest
148
+
149
+ strategy:
150
+ matrix:
151
+ java-version: [17, 21]
152
+
153
+ steps:
154
+ - uses: actions/checkout@v4
155
+
156
+ - name: Setup JDK
157
+ uses: actions/setup-java@v4
158
+ with:
159
+ distribution: 'temurin'
160
+ java-version: ${{ matrix.java-version }}
161
+ cache: 'gradle'
162
+
163
+ - name: Grant execute permission for gradlew
164
+ run: chmod +x gradlew
165
+
166
+ - name: Run checkstyle
167
+ run: ./gradlew checkstyleMain checkstyleTest
168
+
169
+ - name: Run tests
170
+ run: ./gradlew test
171
+
172
+ - name: Build
173
+ run: ./gradlew build
174
+
175
+ - name: Upload test results
176
+ uses: actions/upload-artifact@v3
177
+ if: failure()
178
+ with:
179
+ name: test-results
180
+ path: build/reports/tests/test/
181
+ ```
182
+
183
+ ### Screwdriver設定例
184
+
185
+ **screwdriver.yaml**
186
+
187
+ ```yaml
188
+ shared:
189
+ image: openjdk:17
190
+
191
+ jobs:
192
+ main:
193
+ requires: [~pr, ~commit]
194
+ steps:
195
+ - setup: chmod +x gradlew
196
+ - checkstyle: ./gradlew checkstyleMain checkstyleTest
197
+ - test: ./gradlew test
198
+ - build: ./gradlew build
199
+ - report: |
200
+ if [ -d "build/reports" ]; then
201
+ echo "Test reports generated"
202
+ fi
203
+ ```
204
+
205
+ ### build.gradle設定
206
+
207
+ ```gradle
208
+ plugins {
209
+ id 'java'
210
+ id 'checkstyle'
211
+ id 'jacoco'
212
+ }
213
+
214
+ test {
215
+ useJUnitPlatform()
216
+ testLogging {
217
+ events "passed", "skipped", "failed"
218
+ }
219
+ }
220
+
221
+ jacoco {
222
+ toolVersion = "0.8.10"
223
+ }
224
+
225
+ jacocoTestReport {
226
+ reports {
227
+ xml.required = true
228
+ html.required = true
229
+ }
230
+ }
231
+
232
+ checkstyle {
233
+ toolVersion = '10.12.0'
234
+ configFile = file("${rootDir}/config/checkstyle/checkstyle.xml")
235
+ }
236
+ ```
237
+
238
+ ## PHP プロジェクトのCI/CD設定
239
+
240
+ ### GitHub Actions設定例
241
+
242
+ **.github/workflows/test.yml**
243
+
244
+ ```yaml
245
+ name: Test
246
+
247
+ on:
248
+ push:
249
+ branches:
250
+ - main
251
+ pull_request:
252
+
253
+ jobs:
254
+ test:
255
+ runs-on: ubuntu-latest
256
+
257
+ strategy:
258
+ matrix:
259
+ php-version: ['8.1', '8.2', '8.3']
260
+
261
+ steps:
262
+ - uses: actions/checkout@v4
263
+
264
+ - name: Setup PHP
265
+ uses: shivammathur/setup-php@v2
266
+ with:
267
+ php-version: ${{ matrix.php-version }}
268
+ coverage: xdebug
269
+ tools: composer:v2
270
+
271
+ - name: Cache Composer packages
272
+ uses: actions/cache@v3
273
+ with:
274
+ path: vendor
275
+ key: ${{ runner.os }}-php-${{ hashFiles('**/composer.lock') }}
276
+ restore-keys: |
277
+ ${{ runner.os }}-php-
278
+
279
+ - name: Install dependencies
280
+ run: composer install --prefer-dist --no-progress
281
+
282
+ - name: Run PHPStan
283
+ run: composer phpstan
284
+
285
+ - name: Run tests
286
+ run: composer test
287
+
288
+ - name: Upload coverage
289
+ uses: codecov/codecov-action@v3
290
+ if: matrix.php-version == '8.3'
291
+ with:
292
+ files: ./coverage.xml
293
+ ```
294
+
295
+ ### Screwdriver設定例
296
+
297
+ **screwdriver.yaml**
298
+
299
+ ```yaml
300
+ shared:
301
+ image: php:8.3
302
+
303
+ jobs:
304
+ main:
305
+ requires: [~pr, ~commit]
306
+ steps:
307
+ - install-composer: |
308
+ php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
309
+ php composer-setup.php
310
+ php -r "unlink('composer-setup.php');"
311
+ - install: php composer.phar install --prefer-dist --no-progress
312
+ - phpstan: php composer.phar phpstan
313
+ - test: php composer.phar test
314
+ ```
315
+
316
+ ### composer.json設定
317
+
318
+ ```json
319
+ {
320
+ "scripts": {
321
+ "test": "phpunit --coverage-clover coverage.xml",
322
+ "test:unit": "phpunit --testsuite Unit",
323
+ "phpstan": "phpstan analyse src tests --level=8",
324
+ "cs-fix": "php-cs-fixer fix"
325
+ },
326
+ "require-dev": {
327
+ "phpunit/phpunit": "^10.0",
328
+ "phpstan/phpstan": "^1.10",
329
+ "friendsofphp/php-cs-fixer": "^3.0"
330
+ }
331
+ }
332
+ ```
333
+
334
+ ## CI/CDのベストプラクティス
335
+
336
+ ### 1. キャッシュの活用
337
+
338
+ **Node.js(npm):**
339
+ ```yaml
340
+ - uses: actions/setup-node@v4
341
+ with:
342
+ cache: 'npm'
343
+ ```
344
+
345
+ **Java(Gradle):**
346
+ ```yaml
347
+ - uses: actions/setup-java@v4
348
+ with:
349
+ cache: 'gradle'
350
+ ```
351
+
352
+ **PHP(Composer):**
353
+ ```yaml
354
+ - uses: actions/cache@v3
355
+ with:
356
+ path: vendor
357
+ key: ${{ runner.os }}-php-${{ hashFiles('**/composer.lock') }}
358
+ ```
359
+
360
+ ### 2. 並列実行(マトリックス戦略)
361
+
362
+ ```yaml
363
+ strategy:
364
+ matrix:
365
+ node-version: [18.x, 20.x]
366
+ os: [ubuntu-latest, windows-latest, macos-latest]
367
+ ```
368
+
369
+ ### 3. タイムアウト設定
370
+
371
+ ```yaml
372
+ jobs:
373
+ test:
374
+ timeout-minutes: 10 # 10分でタイムアウト
375
+ ```
376
+
377
+ ### 4. エラー時の通知
378
+
379
+ **GitHub Actions(Slack通知):**
380
+ ```yaml
381
+ - name: Notify Slack on failure
382
+ if: failure()
383
+ uses: 8398a7/action-slack@v3
384
+ with:
385
+ status: ${{ job.status }}
386
+ webhook_url: ${{ secrets.SLACK_WEBHOOK }}
387
+ ```
388
+
389
+ ### 5. アーティファクトの保存
390
+
391
+ ```yaml
392
+ - name: Upload test results
393
+ uses: actions/upload-artifact@v3
394
+ if: failure()
395
+ with:
396
+ name: test-results
397
+ path: build/reports/
398
+ ```
399
+
400
+ ## トラブルシューティング
401
+
402
+ ### Node.js関連
403
+
404
+ #### 問題: `npm ci` が失敗する
405
+
406
+ **原因**: package-lock.jsonが古い
407
+
408
+ **解決方法**:
409
+ ```bash
410
+ # ローカルで再生成
411
+ rm -rf node_modules package-lock.json
412
+ npm install
413
+ git add package-lock.json
414
+ git commit -m "fix: update package-lock.json"
415
+ ```
416
+
417
+ #### 問題: テストがローカルでは成功するがCI/CDで失敗
418
+
419
+ **原因**: 環境依存の問題(タイムゾーン、ファイルパス等)
420
+
421
+ **解決方法**:
422
+ ```javascript
423
+ // タイムゾーンを固定
424
+ process.env.TZ = 'UTC';
425
+
426
+ // ファイルパスは絶対パスではなく相対パス
427
+ const configPath = path.join(__dirname, '../config.json');
428
+ ```
429
+
430
+ ### Java(Gradle)関連
431
+
432
+ #### 問題: Gradleビルドが遅い
433
+
434
+ **原因**: キャッシュが効いていない
435
+
436
+ **解決方法**:
437
+ ```yaml
438
+ # GitHub Actionsでキャッシュを有効化
439
+ - uses: actions/setup-java@v4
440
+ with:
441
+ cache: 'gradle'
442
+
443
+ # または手動でキャッシュ
444
+ - uses: actions/cache@v3
445
+ with:
446
+ path: |
447
+ ~/.gradle/caches
448
+ ~/.gradle/wrapper
449
+ key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
450
+ ```
451
+
452
+ #### 問題: `./gradlew: Permission denied`
453
+
454
+ **原因**: 実行権限がない
455
+
456
+ **解決方法**:
457
+ ```yaml
458
+ - name: Grant execute permission
459
+ run: chmod +x gradlew
460
+ ```
461
+
462
+ ### PHP関連
463
+
464
+ #### 問題: Composer installが失敗
465
+
466
+ **原因**: メモリ不足
467
+
468
+ **解決方法**:
469
+ ```yaml
470
+ - name: Install dependencies
471
+ run: composer install --prefer-dist --no-progress
472
+ env:
473
+ COMPOSER_MEMORY_LIMIT: -1
474
+ ```
475
+
476
+ #### 問題: PHPStanがCI/CDで異なる結果を返す
477
+
478
+ **原因**: PHPバージョンの違い
479
+
480
+ **解決方法**:
481
+ ```yaml
482
+ # 特定のPHPバージョンを指定
483
+ - uses: shivammathur/setup-php@v2
484
+ with:
485
+ php-version: '8.3' # プロジェクトと同じバージョン
486
+ ```
487
+
488
+ ## CI/CD設定のチェックリスト
489
+
490
+ ### 初回設定時
491
+
492
+ - [ ] CI/CD設定ファイルを作成(GitHub Actions or Screwdriver)
493
+ - [ ] 単体テストが自動実行される
494
+ - [ ] Lintが自動実行される
495
+ - [ ] ビルドが自動実行される
496
+ - [ ] キャッシュが有効化されている
497
+ - [ ] マトリックス戦略で複数バージョンをテスト
498
+ - [ ] タイムアウト設定を追加
499
+ - [ ] エラー時の通知設定(任意)
500
+
501
+ ### 運用時の定期確認
502
+
503
+ - [ ] CI/CDの実行時間が長くなっていないか(目標: 5分以内)
504
+ - [ ] キャッシュが効いているか
505
+ - [ ] 失敗率が高くなっていないか
506
+ - [ ] 依存パッケージが古くなっていないか
507
+
508
+ ## リリースタグ作成時のCI/CD
509
+
510
+ リリースタグを作成すると、CI/CDが自動的に実行されます:
511
+
512
+ ```yaml
513
+ # タグプッシュ時にも実行
514
+ on:
515
+ push:
516
+ tags:
517
+ - 'v*'
518
+ ```
519
+
520
+ **実行内容**:
521
+ 1. 単体テスト
522
+ 2. Lint
523
+ 3. ビルド
524
+
525
+ **すべて成功したら、GitHub Releaseを作成**します(手動)。
526
+
527
+ 詳細は [リリースフロー](./release-flow.md) を参照してください。
528
+
529
+ ## 次のステップ
530
+
531
+ - [リリースフロー](./release-flow.md): リリースタグ作成からGitHub Releaseまで
532
+ - [テスト実行フロー](../testing/test-execution-flow.md): Phase A/Bの詳細
533
+
534
+ ## CI/CD設定テンプレート
535
+
536
+ 実際のCI/CD設定ファイルテンプレートは、以下のディレクトリに用意されています:
537
+
538
+ - GitHub Actions: `templates/ci/github-actions/`
539
+ - Screwdriver: `templates/ci/screwdriver/`
540
+
541
+ 詳細は各テンプレートファイルを参照してください。