@sk8metal/michi-cli 0.0.8 → 0.1.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 (433) hide show
  1. package/CHANGELOG.md +60 -0
  2. package/README.md +420 -49
  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 +146 -5
  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 +26 -22
  24. package/dist/scripts/__tests__/validate-phase.test.js.map +1 -1
  25. package/dist/scripts/config/config-schema.d.ts +17 -0
  26. package/dist/scripts/config/config-schema.d.ts.map +1 -1
  27. package/dist/scripts/config/config-schema.js +55 -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.d.ts +2 -0
  36. package/dist/scripts/constants/__tests__/environments.test.d.ts.map +1 -0
  37. package/dist/scripts/constants/__tests__/environments.test.js +125 -0
  38. package/dist/scripts/constants/__tests__/environments.test.js.map +1 -0
  39. package/dist/scripts/constants/__tests__/languages.test.d.ts +2 -0
  40. package/dist/scripts/constants/__tests__/languages.test.d.ts.map +1 -0
  41. package/dist/scripts/constants/__tests__/languages.test.js +82 -0
  42. package/dist/scripts/constants/__tests__/languages.test.js.map +1 -0
  43. package/dist/scripts/constants/environments.d.ts +33 -0
  44. package/dist/scripts/constants/environments.d.ts.map +1 -0
  45. package/dist/scripts/constants/environments.js +64 -0
  46. package/dist/scripts/constants/environments.js.map +1 -0
  47. package/dist/scripts/constants/languages.d.ts +23 -0
  48. package/dist/scripts/constants/languages.d.ts.map +1 -0
  49. package/dist/scripts/constants/languages.js +53 -0
  50. package/dist/scripts/constants/languages.js.map +1 -0
  51. package/dist/scripts/constants/test-commands.d.ts +36 -0
  52. package/dist/scripts/constants/test-commands.d.ts.map +1 -0
  53. package/dist/scripts/constants/test-commands.js +70 -0
  54. package/dist/scripts/constants/test-commands.js.map +1 -0
  55. package/dist/scripts/create-project.d.ts +4 -0
  56. package/dist/scripts/create-project.d.ts.map +1 -1
  57. package/dist/scripts/create-project.js +51 -22
  58. package/dist/scripts/create-project.js.map +1 -1
  59. package/dist/scripts/jira-sync.d.ts +89 -3
  60. package/dist/scripts/jira-sync.d.ts.map +1 -1
  61. package/dist/scripts/jira-sync.js +366 -96
  62. package/dist/scripts/jira-sync.js.map +1 -1
  63. package/dist/scripts/markdown-to-confluence.js +1 -1
  64. package/dist/scripts/markdown-to-confluence.js.map +1 -1
  65. package/dist/scripts/phase-runner.d.ts +1 -1
  66. package/dist/scripts/phase-runner.d.ts.map +1 -1
  67. package/dist/scripts/phase-runner.js +809 -13
  68. package/dist/scripts/phase-runner.js.map +1 -1
  69. package/dist/scripts/pr-automation.d.ts.map +1 -1
  70. package/dist/scripts/pr-automation.js.map +1 -1
  71. package/dist/scripts/pre-flight-check.js +1 -1
  72. package/dist/scripts/pre-flight-check.js.map +1 -1
  73. package/dist/scripts/setup-existing-project.d.ts +3 -1
  74. package/dist/scripts/setup-existing-project.d.ts.map +1 -1
  75. package/dist/scripts/setup-existing-project.js +165 -78
  76. package/dist/scripts/setup-existing-project.js.map +1 -1
  77. package/dist/scripts/setup-interactive.js +3 -3
  78. package/dist/scripts/setup-interactive.js.map +1 -1
  79. package/dist/scripts/spec-impl-workflow.d.ts +94 -0
  80. package/dist/scripts/spec-impl-workflow.d.ts.map +1 -0
  81. package/dist/scripts/spec-impl-workflow.js +354 -0
  82. package/dist/scripts/spec-impl-workflow.js.map +1 -0
  83. package/dist/scripts/template/__tests__/renderer.test.d.ts +2 -0
  84. package/dist/scripts/template/__tests__/renderer.test.d.ts.map +1 -0
  85. package/dist/scripts/template/__tests__/renderer.test.js +165 -0
  86. package/dist/scripts/template/__tests__/renderer.test.js.map +1 -0
  87. package/dist/scripts/template/renderer.d.ts +70 -0
  88. package/dist/scripts/template/renderer.d.ts.map +1 -0
  89. package/dist/scripts/template/renderer.js +99 -0
  90. package/dist/scripts/template/renderer.js.map +1 -0
  91. package/dist/scripts/test-execution-generator.d.ts +52 -0
  92. package/dist/scripts/test-execution-generator.d.ts.map +1 -0
  93. package/dist/scripts/test-execution-generator.js +576 -0
  94. package/dist/scripts/test-execution-generator.js.map +1 -0
  95. package/dist/scripts/test-interactive.d.ts +10 -0
  96. package/dist/scripts/test-interactive.d.ts.map +1 -0
  97. package/dist/scripts/test-interactive.js +627 -0
  98. package/dist/scripts/test-interactive.js.map +1 -0
  99. package/dist/scripts/test-new-features.d.ts +5 -0
  100. package/dist/scripts/test-new-features.d.ts.map +1 -0
  101. package/dist/scripts/test-new-features.js +145 -0
  102. package/dist/scripts/test-new-features.js.map +1 -0
  103. package/dist/scripts/test-spec-generator.d.ts +29 -0
  104. package/dist/scripts/test-spec-generator.d.ts.map +1 -0
  105. package/dist/scripts/test-spec-generator.js +494 -0
  106. package/dist/scripts/test-spec-generator.js.map +1 -0
  107. package/dist/scripts/test-workflow-stages.d.ts +6 -0
  108. package/dist/scripts/test-workflow-stages.d.ts.map +1 -0
  109. package/dist/scripts/test-workflow-stages.js +43 -0
  110. package/dist/scripts/test-workflow-stages.js.map +1 -0
  111. package/dist/scripts/utils/__tests__/aidlc-parser.test.d.ts +5 -0
  112. package/dist/scripts/utils/__tests__/aidlc-parser.test.d.ts.map +1 -0
  113. package/dist/scripts/utils/__tests__/aidlc-parser.test.js +315 -0
  114. package/dist/scripts/utils/__tests__/aidlc-parser.test.js.map +1 -0
  115. package/dist/scripts/utils/__tests__/business-days.test.d.ts +5 -0
  116. package/dist/scripts/utils/__tests__/business-days.test.d.ts.map +1 -0
  117. package/dist/scripts/utils/__tests__/business-days.test.js +171 -0
  118. package/dist/scripts/utils/__tests__/business-days.test.js.map +1 -0
  119. package/dist/scripts/utils/__tests__/config-loader.test.js +1 -1
  120. package/dist/scripts/utils/__tests__/config-loader.test.js.map +1 -1
  121. package/dist/scripts/utils/__tests__/config-validator.test.js +164 -35
  122. package/dist/scripts/utils/__tests__/config-validator.test.js.map +1 -1
  123. package/dist/scripts/utils/__tests__/env-config.test.d.ts +5 -0
  124. package/dist/scripts/utils/__tests__/env-config.test.d.ts.map +1 -0
  125. package/dist/scripts/utils/__tests__/env-config.test.js +218 -0
  126. package/dist/scripts/utils/__tests__/env-config.test.js.map +1 -0
  127. package/dist/scripts/utils/__tests__/jira-issue-type-fetcher.test.d.ts +5 -0
  128. package/dist/scripts/utils/__tests__/jira-issue-type-fetcher.test.d.ts.map +1 -0
  129. package/dist/scripts/utils/__tests__/jira-issue-type-fetcher.test.js +202 -0
  130. package/dist/scripts/utils/__tests__/jira-issue-type-fetcher.test.js.map +1 -0
  131. package/dist/scripts/utils/__tests__/tasks-converter.test.d.ts +5 -0
  132. package/dist/scripts/utils/__tests__/tasks-converter.test.d.ts.map +1 -0
  133. package/dist/scripts/utils/__tests__/tasks-converter.test.js +500 -0
  134. package/dist/scripts/utils/__tests__/tasks-converter.test.js.map +1 -0
  135. package/dist/scripts/utils/__tests__/tasks-format-validator.test.d.ts +5 -0
  136. package/dist/scripts/utils/__tests__/tasks-format-validator.test.d.ts.map +1 -0
  137. package/dist/scripts/utils/__tests__/tasks-format-validator.test.js +314 -0
  138. package/dist/scripts/utils/__tests__/tasks-format-validator.test.js.map +1 -0
  139. package/dist/scripts/utils/__tests__/test-runner.test.d.ts +5 -0
  140. package/dist/scripts/utils/__tests__/test-runner.test.d.ts.map +1 -0
  141. package/dist/scripts/utils/__tests__/test-runner.test.js +64 -0
  142. package/dist/scripts/utils/__tests__/test-runner.test.js.map +1 -0
  143. package/dist/scripts/utils/aidlc-parser.d.ts +86 -0
  144. package/dist/scripts/utils/aidlc-parser.d.ts.map +1 -0
  145. package/dist/scripts/utils/aidlc-parser.js +208 -0
  146. package/dist/scripts/utils/aidlc-parser.js.map +1 -0
  147. package/dist/scripts/utils/business-days.d.ts +52 -0
  148. package/dist/scripts/utils/business-days.d.ts.map +1 -0
  149. package/dist/scripts/utils/business-days.js +98 -0
  150. package/dist/scripts/utils/business-days.js.map +1 -0
  151. package/dist/scripts/utils/ci-generator.d.ts +14 -0
  152. package/dist/scripts/utils/ci-generator.d.ts.map +1 -0
  153. package/dist/scripts/utils/ci-generator.js +61 -0
  154. package/dist/scripts/utils/ci-generator.js.map +1 -0
  155. package/dist/scripts/utils/config-loader.js +2 -2
  156. package/dist/scripts/utils/config-loader.js.map +1 -1
  157. package/dist/scripts/utils/config-validator.d.ts +7 -1
  158. package/dist/scripts/utils/config-validator.d.ts.map +1 -1
  159. package/dist/scripts/utils/config-validator.js +136 -23
  160. package/dist/scripts/utils/config-validator.js.map +1 -1
  161. package/dist/scripts/utils/confluence-approval.d.ts +46 -0
  162. package/dist/scripts/utils/confluence-approval.d.ts.map +1 -0
  163. package/dist/scripts/utils/confluence-approval.js +118 -0
  164. package/dist/scripts/utils/confluence-approval.js.map +1 -0
  165. package/dist/scripts/utils/confluence-hierarchy.d.ts.map +1 -1
  166. package/dist/scripts/utils/confluence-hierarchy.js +1 -1
  167. package/dist/scripts/utils/confluence-hierarchy.js.map +1 -1
  168. package/dist/scripts/utils/docker-generator.d.ts +9 -0
  169. package/dist/scripts/utils/docker-generator.d.ts.map +1 -0
  170. package/dist/scripts/utils/docker-generator.js +132 -0
  171. package/dist/scripts/utils/docker-generator.js.map +1 -0
  172. package/dist/scripts/utils/docker-requirement-detector.d.ts +15 -0
  173. package/dist/scripts/utils/docker-requirement-detector.d.ts.map +1 -0
  174. package/dist/scripts/utils/docker-requirement-detector.js +124 -0
  175. package/dist/scripts/utils/docker-requirement-detector.js.map +1 -0
  176. package/dist/scripts/utils/env-config.d.ts +54 -0
  177. package/dist/scripts/utils/env-config.d.ts.map +1 -0
  178. package/dist/scripts/utils/env-config.js +414 -0
  179. package/dist/scripts/utils/env-config.js.map +1 -0
  180. package/dist/scripts/utils/jira-issue-type-fetcher.d.ts +70 -0
  181. package/dist/scripts/utils/jira-issue-type-fetcher.d.ts.map +1 -0
  182. package/dist/scripts/utils/jira-issue-type-fetcher.js +147 -0
  183. package/dist/scripts/utils/jira-issue-type-fetcher.js.map +1 -0
  184. package/dist/scripts/utils/language-detector.d.ts +14 -0
  185. package/dist/scripts/utils/language-detector.d.ts.map +1 -0
  186. package/dist/scripts/utils/language-detector.js +119 -0
  187. package/dist/scripts/utils/language-detector.js.map +1 -0
  188. package/dist/scripts/utils/markdown-parser.d.ts +55 -0
  189. package/dist/scripts/utils/markdown-parser.d.ts.map +1 -0
  190. package/dist/scripts/utils/markdown-parser.js +289 -0
  191. package/dist/scripts/utils/markdown-parser.js.map +1 -0
  192. package/dist/scripts/utils/project-detector.d.ts +17 -0
  193. package/dist/scripts/utils/project-detector.d.ts.map +1 -0
  194. package/dist/scripts/utils/project-detector.js +166 -0
  195. package/dist/scripts/utils/project-detector.js.map +1 -0
  196. package/dist/scripts/utils/project-finder.js +2 -2
  197. package/dist/scripts/utils/project-finder.js.map +1 -1
  198. package/dist/scripts/utils/release-notes-generator.d.ts +56 -0
  199. package/dist/scripts/utils/release-notes-generator.d.ts.map +1 -0
  200. package/dist/scripts/utils/release-notes-generator.js +162 -0
  201. package/dist/scripts/utils/release-notes-generator.js.map +1 -0
  202. package/dist/scripts/utils/spec-loader.d.ts +79 -0
  203. package/dist/scripts/utils/spec-loader.d.ts.map +1 -0
  204. package/dist/scripts/utils/spec-loader.js +80 -0
  205. package/dist/scripts/utils/spec-loader.js.map +1 -0
  206. package/dist/scripts/utils/spec-updater.d.ts +7 -0
  207. package/dist/scripts/utils/spec-updater.d.ts.map +1 -1
  208. package/dist/scripts/utils/spec-updater.js.map +1 -1
  209. package/dist/scripts/utils/tasks-converter.d.ts +57 -0
  210. package/dist/scripts/utils/tasks-converter.d.ts.map +1 -0
  211. package/dist/scripts/utils/tasks-converter.js +322 -0
  212. package/dist/scripts/utils/tasks-converter.js.map +1 -0
  213. package/dist/scripts/utils/tasks-format-validator.d.ts +36 -0
  214. package/dist/scripts/utils/tasks-format-validator.d.ts.map +1 -0
  215. package/dist/scripts/utils/tasks-format-validator.js +158 -0
  216. package/dist/scripts/utils/tasks-format-validator.js.map +1 -0
  217. package/dist/scripts/utils/template-applier.d.ts +37 -0
  218. package/dist/scripts/utils/template-applier.d.ts.map +1 -0
  219. package/dist/scripts/utils/template-applier.js +129 -0
  220. package/dist/scripts/utils/template-applier.js.map +1 -0
  221. package/dist/scripts/utils/template-finder.d.ts +37 -0
  222. package/dist/scripts/utils/template-finder.d.ts.map +1 -0
  223. package/dist/scripts/utils/template-finder.js +63 -0
  224. package/dist/scripts/utils/template-finder.js.map +1 -0
  225. package/dist/scripts/utils/test-config-generator.d.ts +12 -0
  226. package/dist/scripts/utils/test-config-generator.d.ts.map +1 -0
  227. package/dist/scripts/utils/test-config-generator.js +185 -0
  228. package/dist/scripts/utils/test-config-generator.js.map +1 -0
  229. package/dist/scripts/utils/test-runner.d.ts +31 -0
  230. package/dist/scripts/utils/test-runner.d.ts.map +1 -0
  231. package/dist/scripts/utils/test-runner.js +103 -0
  232. package/dist/scripts/utils/test-runner.js.map +1 -0
  233. package/dist/scripts/validate-phase.d.ts +1 -1
  234. package/dist/scripts/validate-phase.d.ts.map +1 -1
  235. package/dist/scripts/validate-phase.js +153 -5
  236. package/dist/scripts/validate-phase.js.map +1 -1
  237. package/dist/scripts/workflow-orchestrator.d.ts +8 -0
  238. package/dist/scripts/workflow-orchestrator.d.ts.map +1 -1
  239. package/dist/scripts/workflow-orchestrator.js +108 -7
  240. package/dist/scripts/workflow-orchestrator.js.map +1 -1
  241. package/dist/src/__tests__/integration/internationalization.test.d.ts +8 -0
  242. package/dist/src/__tests__/integration/internationalization.test.d.ts.map +1 -0
  243. package/dist/src/__tests__/integration/internationalization.test.js +333 -0
  244. package/dist/src/__tests__/integration/internationalization.test.js.map +1 -0
  245. package/dist/src/__tests__/integration/setup/claude-agent.test.d.ts +5 -0
  246. package/dist/src/__tests__/integration/setup/claude-agent.test.d.ts.map +1 -0
  247. package/dist/src/__tests__/integration/setup/claude-agent.test.js +122 -0
  248. package/dist/src/__tests__/integration/setup/claude-agent.test.js.map +1 -0
  249. package/dist/src/__tests__/integration/setup/claude.test.d.ts +5 -0
  250. package/dist/src/__tests__/integration/setup/claude.test.d.ts.map +1 -0
  251. package/dist/src/__tests__/integration/setup/claude.test.js +111 -0
  252. package/dist/src/__tests__/integration/setup/claude.test.js.map +1 -0
  253. package/dist/src/__tests__/integration/setup/cursor.test.d.ts +5 -0
  254. package/dist/src/__tests__/integration/setup/cursor.test.d.ts.map +1 -0
  255. package/dist/src/__tests__/integration/setup/cursor.test.js +166 -0
  256. package/dist/src/__tests__/integration/setup/cursor.test.js.map +1 -0
  257. package/dist/src/__tests__/integration/setup/helpers/fs-assertions.d.ts +32 -0
  258. package/dist/src/__tests__/integration/setup/helpers/fs-assertions.d.ts.map +1 -0
  259. package/dist/src/__tests__/integration/setup/helpers/fs-assertions.js +72 -0
  260. package/dist/src/__tests__/integration/setup/helpers/fs-assertions.js.map +1 -0
  261. package/dist/src/__tests__/integration/setup/helpers/test-project.d.ts +38 -0
  262. package/dist/src/__tests__/integration/setup/helpers/test-project.d.ts.map +1 -0
  263. package/dist/src/__tests__/integration/setup/helpers/test-project.js +83 -0
  264. package/dist/src/__tests__/integration/setup/helpers/test-project.js.map +1 -0
  265. package/dist/src/__tests__/integration/setup/validation.test.d.ts +5 -0
  266. package/dist/src/__tests__/integration/setup/validation.test.d.ts.map +1 -0
  267. package/dist/src/__tests__/integration/setup/validation.test.js +301 -0
  268. package/dist/src/__tests__/integration/setup/validation.test.js.map +1 -0
  269. package/dist/src/cli.d.ts.map +1 -1
  270. package/dist/src/cli.js +228 -18
  271. package/dist/src/cli.js.map +1 -1
  272. package/dist/src/commands/setup-existing.d.ts +25 -0
  273. package/dist/src/commands/setup-existing.d.ts.map +1 -0
  274. package/dist/src/commands/setup-existing.js +695 -0
  275. package/dist/src/commands/setup-existing.js.map +1 -0
  276. package/dist/vitest.config.d.ts.map +1 -1
  277. package/dist/vitest.config.js +4 -3
  278. package/dist/vitest.config.js.map +1 -1
  279. package/docs/README.md +3 -1
  280. package/docs/context.md +59 -0
  281. package/docs/design-issue-55.md +240 -0
  282. package/docs/design-issue-56.md +181 -0
  283. package/docs/michi-development/testing/manual-verification-flow.md +2242 -0
  284. package/docs/michi-development/testing/pre-publish-checklist.md +560 -0
  285. package/docs/plan.md +275 -0
  286. package/docs/user-guide/getting-started/github-token-setup.md +509 -0
  287. package/docs/{getting-started → user-guide/getting-started}/new-repository-setup.md +108 -28
  288. package/docs/{getting-started → user-guide/getting-started}/quick-start.md +73 -6
  289. package/docs/{getting-started → user-guide/getting-started}/setup.md +278 -3
  290. package/docs/{guides → user-guide/guides}/customization.md +3 -3
  291. package/docs/user-guide/guides/internationalization.md +540 -0
  292. package/docs/{guides → user-guide/guides}/multi-project.md +2 -2
  293. package/docs/{guides → user-guide/guides}/phase-automation.md +67 -9
  294. package/docs/user-guide/guides/workflow.md +582 -0
  295. package/docs/user-guide/hands-on/README.md +142 -0
  296. package/docs/user-guide/hands-on/claude-agent-setup.md +455 -0
  297. package/docs/user-guide/hands-on/claude-setup.md +398 -0
  298. package/docs/user-guide/hands-on/cursor-setup.md +352 -0
  299. package/docs/user-guide/hands-on/troubleshooting.md +964 -0
  300. package/docs/user-guide/hands-on/verification-checklist.md +438 -0
  301. package/docs/user-guide/hands-on/workflow-walkthrough.md +906 -0
  302. package/docs/user-guide/reference/config.md +564 -0
  303. package/docs/{reference → user-guide/reference}/quick-reference.md +75 -53
  304. package/docs/user-guide/release/ci-setup.md +541 -0
  305. package/docs/user-guide/release/release-flow.md +476 -0
  306. package/docs/user-guide/templates/test-specs/README.md +173 -0
  307. package/docs/user-guide/templates/test-specs/e2e-test-spec-template.md +547 -0
  308. package/docs/user-guide/templates/test-specs/integration-test-spec-template.md +435 -0
  309. package/docs/user-guide/templates/test-specs/performance-test-spec-template.md +454 -0
  310. package/docs/user-guide/templates/test-specs/security-test-spec-template.md +664 -0
  311. package/docs/user-guide/templates/test-specs/unit-test-spec-template.md +328 -0
  312. package/docs/user-guide/testing/integration-tests.md +312 -0
  313. package/docs/user-guide/testing/tdd-cycle.md +349 -0
  314. package/docs/user-guide/testing/test-execution-flow.md +396 -0
  315. package/docs/user-guide/testing/test-failure-handling.md +521 -0
  316. package/docs/user-guide/testing/test-planning-flow.md +181 -0
  317. package/docs/user-guide/testing-strategy.md +185 -0
  318. package/docs/verification-guide.md +518 -0
  319. package/package.json +13 -3
  320. package/scripts/__tests__/create-project.test.ts +67 -49
  321. package/scripts/__tests__/jira-transitions.test.ts +225 -0
  322. package/scripts/__tests__/multi-project-estimate.test.ts +36 -30
  323. package/scripts/__tests__/setup-existing-project.test.ts +171 -6
  324. package/scripts/__tests__/setup-interactive.test.ts +52 -46
  325. package/scripts/__tests__/spec-impl-workflow.test.ts +429 -0
  326. package/scripts/__tests__/spec-loader.test.ts +199 -0
  327. package/scripts/__tests__/validate-phase.test.ts +78 -54
  328. package/scripts/config/config-schema.ts +89 -50
  329. package/scripts/config-interactive.ts +191 -136
  330. package/scripts/confluence-sync.ts +0 -12
  331. package/scripts/constants/__tests__/environments.test.ts +146 -0
  332. package/scripts/constants/__tests__/languages.test.ts +100 -0
  333. package/scripts/constants/environments.ts +81 -0
  334. package/scripts/constants/languages.ts +70 -0
  335. package/scripts/constants/test-commands.ts +96 -0
  336. package/scripts/create-project.ts +52 -22
  337. package/scripts/jira-sync.ts +767 -232
  338. package/scripts/markdown-to-confluence.ts +1 -1
  339. package/scripts/phase-runner.ts +1056 -63
  340. package/scripts/pr-automation.ts +0 -1
  341. package/scripts/pre-flight-check.ts +1 -1
  342. package/scripts/pre-publish-check.sh +311 -0
  343. package/scripts/quick-verify.sh +115 -0
  344. package/scripts/setup-existing-project.ts +306 -143
  345. package/scripts/setup-interactive.ts +4 -4
  346. package/scripts/spec-impl-workflow.ts +505 -0
  347. package/scripts/template/__tests__/renderer.test.ts +206 -0
  348. package/scripts/template/renderer.ts +133 -0
  349. package/scripts/test-execution-generator.ts +695 -0
  350. package/scripts/test-interactive.ts +779 -0
  351. package/scripts/test-new-features.ts +168 -0
  352. package/scripts/test-npm-package.sh +345 -0
  353. package/scripts/test-spec-generator.ts +574 -0
  354. package/scripts/test-workflow-stages.ts +53 -0
  355. package/scripts/utils/__tests__/aidlc-parser.test.ts +349 -0
  356. package/scripts/utils/__tests__/business-days.test.ts +214 -0
  357. package/scripts/utils/__tests__/config-loader.test.ts +1 -1
  358. package/scripts/utils/__tests__/config-validator.test.ts +309 -88
  359. package/scripts/utils/__tests__/env-config.test.ts +259 -0
  360. package/scripts/utils/__tests__/jira-issue-type-fetcher.test.ts +272 -0
  361. package/scripts/utils/__tests__/tasks-converter.test.ts +582 -0
  362. package/scripts/utils/__tests__/tasks-format-validator.test.ts +338 -0
  363. package/scripts/utils/__tests__/test-runner.test.ts +77 -0
  364. package/scripts/utils/aidlc-parser.ts +289 -0
  365. package/scripts/utils/business-days.ts +115 -0
  366. package/scripts/utils/ci-generator.ts +84 -0
  367. package/scripts/utils/config-loader.ts +2 -2
  368. package/scripts/utils/config-validator.ts +304 -117
  369. package/scripts/utils/confluence-approval.ts +167 -0
  370. package/scripts/utils/confluence-hierarchy.ts +2 -4
  371. package/scripts/utils/docker-generator.ts +151 -0
  372. package/scripts/utils/docker-requirement-detector.ts +153 -0
  373. package/scripts/utils/env-config.ts +526 -0
  374. package/scripts/utils/jira-issue-type-fetcher.ts +199 -0
  375. package/scripts/utils/language-detector.ts +139 -0
  376. package/scripts/utils/markdown-parser.ts +376 -0
  377. package/scripts/utils/project-detector.ts +192 -0
  378. package/scripts/utils/project-finder.ts +2 -2
  379. package/scripts/utils/release-notes-generator.ts +210 -0
  380. package/scripts/utils/spec-loader.ts +125 -0
  381. package/scripts/utils/spec-updater.ts +8 -1
  382. package/scripts/utils/tasks-converter.ts +601 -0
  383. package/scripts/utils/tasks-format-validator.ts +193 -0
  384. package/scripts/utils/template-applier.ts +202 -0
  385. package/scripts/utils/template-finder.ts +75 -0
  386. package/scripts/utils/test-config-generator.ts +210 -0
  387. package/scripts/utils/test-runner.ts +133 -0
  388. package/scripts/validate-phase.ts +186 -9
  389. package/scripts/workflow-orchestrator.ts +130 -12
  390. package/templates/ci/github-actions/java.yml +54 -0
  391. package/templates/ci/github-actions/nodejs.yml +46 -0
  392. package/templates/ci/github-actions/php.yml +52 -0
  393. package/templates/ci/screwdriver/java.yaml +17 -0
  394. package/templates/ci/screwdriver/nodejs.yaml +17 -0
  395. package/templates/ci/screwdriver/php.yaml +20 -0
  396. package/templates/claude/commands/kiro/kiro-spec-impl.md +244 -0
  397. package/templates/claude/commands/kiro/kiro-spec-tasks.md +354 -0
  398. package/templates/claude/commands/michi/confluence-sync.md +38 -0
  399. package/templates/claude/commands/michi/project-switch.md +36 -0
  400. package/templates/claude/rules/atlassian-integration.md +35 -0
  401. package/templates/claude/rules/michi-core.md +54 -0
  402. package/templates/claude-agent/README.md +31 -0
  403. package/templates/claude-agent/agents/.gitkeep +0 -0
  404. package/templates/claude-agent/agents/designer.md +79 -0
  405. package/templates/claude-agent/agents/developer.md +68 -0
  406. package/templates/claude-agent/agents/manager-agent.md +59 -0
  407. package/templates/claude-agent/agents/tester.md +101 -0
  408. package/templates/claude-agent/commands/kiro/.gitkeep +0 -0
  409. package/templates/claude-agent/commands/kiro/kiro-spec-impl.md +244 -0
  410. package/templates/claude-agent/commands/kiro/kiro-spec-tasks.md +354 -0
  411. package/templates/cline/rules/atlassian-integration.md +36 -0
  412. package/templates/cline/rules/michi-core.md +56 -0
  413. package/templates/codex/AGENTS.override.md +277 -0
  414. package/templates/codex/prompts/confluence-sync.md +177 -0
  415. package/templates/codex/rules/README.md +210 -0
  416. package/templates/common/.kiro/project.json.template +21 -0
  417. package/templates/cursor/commands/kiro/kiro-spec-impl.md +244 -0
  418. package/templates/cursor/commands/kiro/kiro-spec-tasks.md +354 -0
  419. package/templates/cursor/commands/michi/confluence-sync.md +76 -0
  420. package/templates/cursor/commands/michi/project-switch.md +69 -0
  421. package/templates/cursor/rules/atlassian-mcp.mdc +188 -0
  422. package/templates/cursor/rules/github-ssot.mdc +151 -0
  423. package/templates/cursor/rules/multi-project.mdc +81 -0
  424. package/templates/gemini/commands/README.md +41 -0
  425. package/templates/gemini/rules/GEMINI.md +80 -0
  426. package/docs/guides/workflow.md +0 -342
  427. package/docs/reference/config.md +0 -545
  428. package/scripts/setup-env.sh +0 -52
  429. package/scripts/setup-existing.sh +0 -152
  430. /package/docs/{contributing → michi-development/contributing}/development.md +0 -0
  431. /package/docs/{contributing → michi-development/contributing}/release.md +0 -0
  432. /package/docs/{testing-strategy.md → michi-development/testing-strategy.md} +0 -0
  433. /package/docs/{reference → user-guide/reference}/tasks-template.md +0 -0
@@ -0,0 +1,168 @@
1
+ /**
2
+ * 新規実装機能の動作確認スクリプト
3
+ */
4
+
5
+ import { executeTests, generateTestReport } from './utils/test-runner.js';
6
+ import { createReleaseNotes, getCommits, generateReleaseNotes, formatReleaseNotes } from './utils/release-notes-generator.js';
7
+ import { getApprovalStatus } from './utils/confluence-approval.js';
8
+
9
+ async function testTestRunner() {
10
+ console.log('\n📋 Test 1: テスト実行とレポート生成');
11
+ console.log('='.repeat(60));
12
+
13
+ try {
14
+ // 言語検出のテスト(このプロジェクト自体がNode.js/TypeScript)
15
+ console.log('\n✅ このプロジェクトでテストを実行します...');
16
+ const result = await executeTests('Node.js/TypeScript', process.cwd());
17
+
18
+ console.log('\n📊 テスト結果:');
19
+ console.log(` ステータス: ${result.success ? '✅ 成功' : '❌ 失敗'}`);
20
+ console.log(` 言語: ${result.language}`);
21
+ console.log(` コマンド: ${result.command}`);
22
+ console.log(` 実行時間: ${result.duration.toFixed(2)}秒`);
23
+
24
+ if (!result.success && result.error) {
25
+ console.log(` エラー: ${result.error}`);
26
+ }
27
+
28
+ // レポート生成
29
+ console.log('\n📝 レポート生成中...');
30
+ const report = generateTestReport(result, 'test-feature');
31
+ console.log('\n--- レポートプレビュー ---');
32
+ console.log(report.substring(0, 500) + '...');
33
+
34
+ return true;
35
+ } catch (error: any) {
36
+ console.error('❌ テストランナーエラー:', error.message);
37
+ return false;
38
+ }
39
+ }
40
+
41
+ async function testReleaseNotesGenerator() {
42
+ console.log('\n📋 Test 2: リリースノート生成');
43
+ console.log('='.repeat(60));
44
+
45
+ try {
46
+ // コミット履歴を取得
47
+ console.log('\n✅ 最新10コミットを取得します...');
48
+ // HEAD~10からHEADまでのコミットを取得(範囲指定を修正)
49
+ const commits = await getCommits('HEAD~10', 'HEAD', process.cwd());
50
+
51
+ console.log(`\n📊 取得したコミット数: ${commits.length}`);
52
+
53
+ if (commits.length > 0) {
54
+ console.log('\n最初の3コミット:');
55
+ commits.slice(0, 3).forEach((commit, index) => {
56
+ console.log(` ${index + 1}. [${commit.type}] ${commit.subject}`);
57
+ if (commit.scope) console.log(` scope: ${commit.scope}`);
58
+ if (commit.breaking) console.log(' ⚠️ BREAKING CHANGE');
59
+ });
60
+
61
+ // リリースノート生成
62
+ console.log('\n📝 リリースノート生成中...');
63
+ const notes = generateReleaseNotes(commits, 'v1.0.0-test');
64
+ const markdown = formatReleaseNotes(notes);
65
+
66
+ console.log('\n--- リリースノートプレビュー ---');
67
+ console.log(markdown.substring(0, 800));
68
+ if (markdown.length > 800) {
69
+ console.log('...');
70
+ }
71
+
72
+ return true;
73
+ } else {
74
+ console.log('⚠️ コミットが見つかりませんでした');
75
+ return false;
76
+ }
77
+ } catch (error: any) {
78
+ console.error('❌ リリースノート生成エラー:', error.message);
79
+ return false;
80
+ }
81
+ }
82
+
83
+ async function testConfluenceApproval() {
84
+ console.log('\n📋 Test 3: Confluence承認状態確認');
85
+ console.log('='.repeat(60));
86
+
87
+ try {
88
+ // 環境変数チェック
89
+ const hasConfig = process.env.ATLASSIAN_URL &&
90
+ process.env.ATLASSIAN_EMAIL &&
91
+ process.env.ATLASSIAN_API_TOKEN;
92
+
93
+ if (!hasConfig) {
94
+ console.log('⚠️ Confluence認証情報が設定されていません');
95
+ console.log(' 以下の環境変数を設定すると、実際のAPIテストが可能です:');
96
+ console.log(' - ATLASSIAN_URL');
97
+ console.log(' - ATLASSIAN_EMAIL');
98
+ console.log(' - ATLASSIAN_API_TOKEN');
99
+ console.log(' - CONFLUENCE_TEST_PAGE_ID (テスト用ページID)');
100
+ return false;
101
+ }
102
+
103
+ const testPageId = process.env.CONFLUENCE_TEST_PAGE_ID;
104
+ if (!testPageId) {
105
+ console.log('⚠️ CONFLUENCE_TEST_PAGE_ID が設定されていません');
106
+ console.log(' 実際のページIDを設定すると、承認状態の確認テストが可能です');
107
+ return false;
108
+ }
109
+
110
+ console.log('\n✅ Confluence承認状態を確認します...');
111
+ const config = {
112
+ url: process.env.ATLASSIAN_URL!,
113
+ email: process.env.ATLASSIAN_EMAIL!,
114
+ apiToken: process.env.ATLASSIAN_API_TOKEN!
115
+ };
116
+
117
+ const status = await getApprovalStatus(testPageId, config);
118
+
119
+ console.log('\n📊 承認状態:');
120
+ console.log(` ページID: ${status.pageId}`);
121
+ console.log(` ページタイトル: ${status.pageTitle}`);
122
+ console.log(` 承認済み: ${status.approved ? '✅ はい' : '❌ いいえ'}`);
123
+ console.log(` 承認者: ${status.approvers.join(', ') || 'なし'}`);
124
+
125
+ return true;
126
+ } catch (error: any) {
127
+ console.error('❌ Confluence承認状態確認エラー:', error.message);
128
+ return false;
129
+ }
130
+ }
131
+
132
+ // メイン実行
133
+ async function main() {
134
+ console.log('\n🚀 新規実装機能の動作確認');
135
+ console.log('='.repeat(60));
136
+
137
+ const results = {
138
+ testRunner: false,
139
+ releaseNotes: false,
140
+ confluenceApproval: false
141
+ };
142
+
143
+ // Test 1: テストランナー
144
+ results.testRunner = await testTestRunner();
145
+
146
+ // Test 2: リリースノート生成
147
+ results.releaseNotes = await testReleaseNotesGenerator();
148
+
149
+ // Test 3: Confluence承認状態確認
150
+ results.confluenceApproval = await testConfluenceApproval();
151
+
152
+ // サマリー
153
+ console.log('\n\n📊 動作確認サマリー');
154
+ console.log('='.repeat(60));
155
+ console.log(`1. テスト実行とレポート生成: ${results.testRunner ? '✅ 成功' : '❌ 失敗'}`);
156
+ console.log(`2. リリースノート生成: ${results.releaseNotes ? '✅ 成功' : '❌ 失敗'}`);
157
+ console.log(`3. Confluence承認状態確認: ${results.confluenceApproval ? '✅ 成功' : '⚠️ スキップ(環境変数未設定)'}`);
158
+
159
+ const successCount = Object.values(results).filter(r => r).length;
160
+ console.log(`\n合計: ${successCount}/3 テスト成功`);
161
+ }
162
+
163
+ main()
164
+ .then(() => process.exit(0))
165
+ .catch((error) => {
166
+ console.error('\n❌ 動作確認エラー:', error.message);
167
+ process.exit(1);
168
+ });
@@ -0,0 +1,345 @@
1
+ #!/bin/bash
2
+
3
+ # Michi NPM Package Test Script
4
+ # NPMパッケージとしてインストールした状態での動作確認を実施
5
+
6
+ set -e # エラー時に即座に終了
7
+
8
+ # カラー出力用
9
+ RED='\033[0;31m'
10
+ GREEN='\033[0;32m'
11
+ YELLOW='\033[1;33m'
12
+ BLUE='\033[0;34m'
13
+ NC='\033[0m' # No Color
14
+
15
+ # プロジェクトルートディレクトリ
16
+ PROJECT_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/..)" && pwd)"
17
+ cd "$PROJECT_ROOT"
18
+
19
+ echo -e "${BLUE}========================================${NC}"
20
+ echo -e "${BLUE}Michi NPM Package Test${NC}"
21
+ echo -e "${BLUE}========================================${NC}"
22
+ echo ""
23
+
24
+ # テストディレクトリ名(デフォルト)
25
+ DEFAULT_TEST_DIR="/tmp/michi-test-$(date +%s)"
26
+ TEST_DIR="${1:-$DEFAULT_TEST_DIR}"
27
+
28
+ # パッケージファイル名(後で設定)
29
+ PACKAGE_FILE=""
30
+
31
+ # クリーンアップ関数
32
+ cleanup() {
33
+ echo -e "\n${YELLOW}Cleaning up...${NC}"
34
+
35
+ # パッケージファイルの削除
36
+ if [ -n "$PACKAGE_FILE" ] && [ -f "$PROJECT_ROOT/$PACKAGE_FILE" ]; then
37
+ rm -f "$PROJECT_ROOT/$PACKAGE_FILE"
38
+ echo -e "${GREEN}✓ Package file removed: $PACKAGE_FILE${NC}"
39
+ fi
40
+
41
+ # テストディレクトリの削除
42
+ if [ -d "$TEST_DIR" ]; then
43
+ rm -rf "$TEST_DIR"
44
+ echo -e "${GREEN}✓ Test directory removed: $TEST_DIR${NC}"
45
+ fi
46
+ }
47
+
48
+ # エラー時のクリーンアップ
49
+ trap cleanup EXIT
50
+
51
+ # ステップカウンター
52
+ STEP=1
53
+
54
+ echo_step() {
55
+ echo -e "\n${BLUE}[Step ${STEP}] $1${NC}"
56
+ STEP=$((STEP + 1))
57
+ }
58
+
59
+ echo_success() {
60
+ echo -e "${GREEN}✓ $1${NC}"
61
+ }
62
+
63
+ echo_error() {
64
+ echo -e "${RED}✗ $1${NC}"
65
+ }
66
+
67
+ echo_info() {
68
+ echo -e "${YELLOW}ℹ $1${NC}"
69
+ }
70
+
71
+ # ========================================
72
+ # Step 1: パッケージのビルド
73
+ # ========================================
74
+ echo_step "Building Package"
75
+ if npm run build; then
76
+ echo_success "Build succeeded"
77
+ else
78
+ echo_error "Build failed"
79
+ exit 1
80
+ fi
81
+
82
+ # ========================================
83
+ # Step 2: npm pack でパッケージを作成
84
+ # ========================================
85
+ echo_step "Creating NPM Package (npm pack)"
86
+
87
+ # npm pack を実行してパッケージファイル名を取得
88
+ PACKAGE_FILE=$(npm pack 2>&1 | tail -n 1)
89
+
90
+ if [ -f "$PROJECT_ROOT/$PACKAGE_FILE" ]; then
91
+ echo_success "Package created: $PACKAGE_FILE"
92
+ echo_info "Package size: $(du -h "$PROJECT_ROOT/$PACKAGE_FILE" | cut -f1)"
93
+ else
94
+ echo_error "Package creation failed"
95
+ exit 1
96
+ fi
97
+
98
+ # ========================================
99
+ # Step 3: テストディレクトリの作成
100
+ # ========================================
101
+ echo_step "Creating Test Directory: $TEST_DIR"
102
+
103
+ if mkdir -p "$TEST_DIR"; then
104
+ echo_success "Test directory created"
105
+ cd "$TEST_DIR"
106
+ else
107
+ echo_error "Failed to create test directory"
108
+ exit 1
109
+ fi
110
+
111
+ # ========================================
112
+ # Step 4: パッケージのインストール
113
+ # ========================================
114
+ echo_step "Installing Package in Test Directory"
115
+
116
+ # package.jsonを作成(npm installに必要)
117
+ cat > package.json <<EOF
118
+ {
119
+ "name": "michi-test",
120
+ "version": "1.0.0",
121
+ "description": "Test environment for Michi package",
122
+ "private": true
123
+ }
124
+ EOF
125
+
126
+ # ローカルパッケージをインストール
127
+ if npm install "$PROJECT_ROOT/$PACKAGE_FILE"; then
128
+ echo_success "Package installed successfully"
129
+ else
130
+ echo_error "Package installation failed"
131
+ exit 1
132
+ fi
133
+
134
+ # ========================================
135
+ # Step 5: .kiro ディレクトリ構造の準備
136
+ # ========================================
137
+ echo_step "Setting up .kiro directory structure"
138
+
139
+ mkdir -p .kiro/specs/test-feature
140
+
141
+ # 最小限のspec.jsonを作成
142
+ cat > .kiro/specs/test-feature/spec.json <<EOF
143
+ {
144
+ "feature": "test-feature",
145
+ "description": "Test feature for package verification",
146
+ "status": "draft",
147
+ "milestones": {},
148
+ "confluence": {},
149
+ "jira": {}
150
+ }
151
+ EOF
152
+
153
+ # requirements.md
154
+ cat > .kiro/specs/test-feature/requirements.md <<EOF
155
+ # Requirements: test-feature
156
+
157
+ This is a test feature for package verification.
158
+ EOF
159
+
160
+ # design.md
161
+ cat > .kiro/specs/test-feature/design.md <<EOF
162
+ # Design: test-feature
163
+
164
+ This is a test feature for package verification.
165
+ EOF
166
+
167
+ # tasks.md(新ワークフロー構造)
168
+ cat > .kiro/specs/test-feature/tasks.md <<EOF
169
+ # tasks.md
170
+
171
+ ## Phase 0.1: 要件定義
172
+
173
+ ### Story 0.1.1: 要件定義書作成
174
+
175
+ ## Phase 0.2: 設計
176
+
177
+ ### Story 0.2.1: 基本設計
178
+
179
+ ## Phase 2: TDD実装
180
+
181
+ ### Story 2.1: プロジェクトセットアップ
182
+
183
+ ## Phase 4: リリース準備
184
+
185
+ ### Story 4.1: 本番環境構築
186
+
187
+ ## Phase 5: リリース
188
+
189
+ ### Story 5.1: ステージング環境デプロイ
190
+
191
+ Day 1(月): 営業日ベース
192
+ EOF
193
+
194
+ echo_success ".kiro directory structure created"
195
+
196
+ # ========================================
197
+ # Step 6: CLIコマンドの動作確認
198
+ # ========================================
199
+ echo_step "Testing CLI Commands"
200
+
201
+ # michi コマンドのパスを取得
202
+ MICHI_CMD="$TEST_DIR/node_modules/.bin/michi"
203
+
204
+ if [ ! -f "$MICHI_CMD" ]; then
205
+ echo_error "michi command not found at $MICHI_CMD"
206
+ exit 1
207
+ fi
208
+
209
+ echo_info "Testing phase:run commands..."
210
+
211
+ # Phase 0.3: test-type-selection
212
+ echo_info "Testing phase:run test-type-selection"
213
+ if "$MICHI_CMD" phase:run test-feature test-type-selection > /dev/null 2>&1; then
214
+ echo_success "phase:run test-type-selection succeeded"
215
+ else
216
+ echo_error "phase:run test-type-selection failed"
217
+ exit 1
218
+ fi
219
+
220
+ # Phase 0.4: test-spec
221
+ echo_info "Testing phase:run test-spec"
222
+ if "$MICHI_CMD" phase:run test-feature test-spec > /dev/null 2>&1; then
223
+ echo_success "phase:run test-spec succeeded"
224
+ else
225
+ echo_error "phase:run test-spec failed"
226
+ exit 1
227
+ fi
228
+
229
+ # Phase 1: environment-setup
230
+ echo_info "Testing phase:run environment-setup"
231
+ if "$MICHI_CMD" phase:run test-feature environment-setup > /dev/null 2>&1; then
232
+ echo_success "phase:run environment-setup succeeded"
233
+ else
234
+ echo_error "phase:run environment-setup failed"
235
+ exit 1
236
+ fi
237
+
238
+ # Phase A: phase-a
239
+ echo_info "Testing phase:run phase-a"
240
+ if "$MICHI_CMD" phase:run test-feature phase-a > /dev/null 2>&1; then
241
+ echo_success "phase:run phase-a succeeded"
242
+ else
243
+ echo_error "phase:run phase-a failed"
244
+ exit 1
245
+ fi
246
+
247
+ # Phase B: phase-b
248
+ echo_info "Testing phase:run phase-b"
249
+ if "$MICHI_CMD" phase:run test-feature phase-b > /dev/null 2>&1; then
250
+ echo_success "phase:run phase-b succeeded"
251
+ else
252
+ echo_error "phase:run phase-b failed"
253
+ exit 1
254
+ fi
255
+
256
+ # ========================================
257
+ # Step 7: バリデーションの確認
258
+ # ========================================
259
+ echo_step "Testing Validation Commands"
260
+
261
+ echo_info "Testing validate:phase commands..."
262
+
263
+ # Phase 0.3
264
+ echo_info "Validating test-type-selection"
265
+ if "$MICHI_CMD" validate:phase test-feature test-type-selection > /dev/null 2>&1; then
266
+ echo_success "validate:phase test-type-selection succeeded"
267
+ else
268
+ echo_error "validate:phase test-type-selection failed"
269
+ exit 1
270
+ fi
271
+
272
+ # Phase 0.4
273
+ echo_info "Validating test-spec"
274
+ if "$MICHI_CMD" validate:phase test-feature test-spec > /dev/null 2>&1; then
275
+ echo_success "validate:phase test-spec succeeded"
276
+ else
277
+ echo_error "validate:phase test-spec failed"
278
+ exit 1
279
+ fi
280
+
281
+ # Phase 1
282
+ echo_info "Validating environment-setup"
283
+ if "$MICHI_CMD" validate:phase test-feature environment-setup > /dev/null 2>&1; then
284
+ echo_success "validate:phase environment-setup succeeded"
285
+ else
286
+ echo_error "validate:phase environment-setup failed"
287
+ exit 1
288
+ fi
289
+
290
+ # Phase A
291
+ echo_info "Validating phase-a"
292
+ if "$MICHI_CMD" validate:phase test-feature phase-a > /dev/null 2>&1; then
293
+ echo_success "validate:phase phase-a succeeded"
294
+ else
295
+ echo_error "validate:phase phase-a failed"
296
+ exit 1
297
+ fi
298
+
299
+ # Phase B
300
+ echo_info "Validating phase-b"
301
+ if "$MICHI_CMD" validate:phase test-feature phase-b > /dev/null 2>&1; then
302
+ echo_success "validate:phase phase-b succeeded"
303
+ else
304
+ echo_error "validate:phase phase-b failed"
305
+ exit 1
306
+ fi
307
+
308
+ # ========================================
309
+ # Step 8: CLIヘルプの確認
310
+ # ========================================
311
+ echo_step "Testing CLI Help Messages"
312
+
313
+ echo_info "Testing phase:run help"
314
+ if "$MICHI_CMD" phase:run 2>&1 | grep -q "Available Phases"; then
315
+ echo_success "phase:run help message OK"
316
+ else
317
+ echo_error "phase:run help message missing"
318
+ exit 1
319
+ fi
320
+
321
+ echo_info "Testing validate:phase help"
322
+ if "$MICHI_CMD" validate:phase 2>&1 | grep -q "Available Phases"; then
323
+ echo_success "validate:phase help message OK"
324
+ else
325
+ echo_error "validate:phase help message missing"
326
+ exit 1
327
+ fi
328
+
329
+ # ========================================
330
+ # 完了
331
+ # ========================================
332
+ echo ""
333
+ echo -e "${GREEN}========================================${NC}"
334
+ echo -e "${GREEN}✓ All NPM Package Tests Passed!${NC}"
335
+ echo -e "${GREEN}========================================${NC}"
336
+ echo ""
337
+ echo -e "${BLUE}Summary:${NC}"
338
+ echo -e " ✓ Package built and created successfully"
339
+ echo -e " ✓ Package installed in clean environment: $TEST_DIR"
340
+ echo -e " ✓ All phase:run commands working"
341
+ echo -e " ✓ All validate:phase commands working"
342
+ echo -e " ✓ CLI help messages OK"
343
+ echo ""
344
+ echo -e "${GREEN}Package is ready for npm publish!${NC}"
345
+ echo ""