@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,328 @@
1
+ # Unit Test Specification: {{TEST_NAME}}
2
+
3
+ **Author**: {{AUTHOR}}
4
+ **Date**: {{DATE}}
5
+ **Version**: 1.0
6
+
7
+ ## 1. Overview
8
+
9
+ ### 1.1 Purpose
10
+ {{PURPOSE}}
11
+
12
+ Example: To verify that individual functions and classes in the {{MODULE_NAME}} module work correctly in isolation.
13
+
14
+ ### 1.2 Scope
15
+ {{SCOPE}}
16
+
17
+ Example: This test specification covers all public methods of the {{CLASS_NAME}} class and their edge cases.
18
+
19
+ ### 1.3 Testing Tool
20
+ - **Tool**: {{TOOL_NAME}}
21
+ - **Version**: {{VERSION}}
22
+
23
+ Example:
24
+ - **Tool**: Vitest (Node.js) / JUnit 5 (Java) / PHPUnit (PHP)
25
+ - **Version**: 1.0.0 / 5.10.0 / 10.5.0
26
+
27
+ ## 2. Test Environment
28
+
29
+ ### 2.1 Software Requirements
30
+ - Programming Language: {{LANGUAGE}} {{LANGUAGE_VERSION}}
31
+ - Testing Framework: {{FRAMEWORK}} {{FRAMEWORK_VERSION}}
32
+ - Mocking Library: {{MOCKING_LIBRARY}} (if applicable)
33
+ - Dependencies: {{DEPENDENCIES}}
34
+
35
+ ### 2.2 Hardware Requirements
36
+ - Not applicable for unit tests (runs on developer's machine or CI/CD)
37
+
38
+ ### 2.3 Test Data
39
+ - Mock data location: `{{MOCK_DATA_PATH}}`
40
+ - Test fixtures: `{{FIXTURES_PATH}}`
41
+ - Data setup: {{DATA_SETUP_DESCRIPTION}}
42
+
43
+ ## 3. Functions/Classes to Test
44
+
45
+ ### 3.1 Target Components
46
+ List all functions/classes to be tested:
47
+
48
+ | Component | Type | Description | Priority |
49
+ |-----------|------|-------------|----------|
50
+ | {{COMPONENT_1}} | Function/Class | {{DESCRIPTION_1}} | High/Medium/Low |
51
+ | {{COMPONENT_2}} | Function/Class | {{DESCRIPTION_2}} | High/Medium/Low |
52
+
53
+ ### 3.2 Mocking Strategy
54
+ Describe what external dependencies will be mocked:
55
+
56
+ | Dependency | Mock Type | Reason |
57
+ |------------|-----------|--------|
58
+ | {{DEPENDENCY_1}} | {{MOCK_TYPE}} | {{REASON}} |
59
+ | {{DEPENDENCY_2}} | {{MOCK_TYPE}} | {{REASON}} |
60
+
61
+ Example:
62
+ | Dependency | Mock Type | Reason |
63
+ |------------|-----------|--------|
64
+ | Database | Mock object | Avoid external I/O, ensure test isolation |
65
+ | HTTP API | Stub | Control response for predictable testing |
66
+
67
+ ## 4. Test Cases
68
+
69
+ ### Test Case UT-001: {{TEST_CASE_NAME}}
70
+
71
+ **Description**: {{TEST_CASE_DESCRIPTION}}
72
+
73
+ Example: Verify that `calculateTotal()` returns the correct sum when given an array of positive numbers.
74
+
75
+ **Preconditions**:
76
+ - {{PRECONDITION_1}}
77
+ - {{PRECONDITION_2}}
78
+
79
+ Example:
80
+ - Input array is not null
81
+ - All array elements are valid numbers
82
+
83
+ **Test Steps**:
84
+ 1. {{STEP_1}}
85
+ 2. {{STEP_2}}
86
+ 3. {{STEP_3}}
87
+
88
+ Example:
89
+ 1. Create an input array: `[10, 20, 30]`
90
+ 2. Call `calculateTotal(input)`
91
+ 3. Assert that the result equals `60`
92
+
93
+ **Expected Results**:
94
+ {{EXPECTED_RESULTS}}
95
+
96
+ Example:
97
+ - Function returns `60`
98
+ - No exceptions are thrown
99
+
100
+ **Actual Results**:
101
+ [To be filled during test execution]
102
+
103
+ **Status**: [ ] Pass / [ ] Fail / [ ] Blocked
104
+
105
+ **Notes**:
106
+ {{NOTES}}
107
+
108
+ ---
109
+
110
+ ### Test Case UT-002: {{TEST_CASE_NAME}}
111
+
112
+ **Description**: {{TEST_CASE_DESCRIPTION}}
113
+
114
+ **Preconditions**:
115
+ - {{PRECONDITION_1}}
116
+ - {{PRECONDITION_2}}
117
+
118
+ **Test Steps**:
119
+ 1. {{STEP_1}}
120
+ 2. {{STEP_2}}
121
+ 3. {{STEP_3}}
122
+
123
+ **Expected Results**:
124
+ {{EXPECTED_RESULTS}}
125
+
126
+ **Actual Results**:
127
+ [To be filled during test execution]
128
+
129
+ **Status**: [ ] Pass / [ ] Fail / [ ] Blocked
130
+
131
+ **Notes**:
132
+ {{NOTES}}
133
+
134
+ ---
135
+
136
+ ### Test Case UT-003: Edge Case - {{EDGE_CASE_NAME}}
137
+
138
+ **Description**: {{EDGE_CASE_DESCRIPTION}}
139
+
140
+ Example: Verify that `calculateTotal()` handles empty array correctly.
141
+
142
+ **Preconditions**:
143
+ - {{PRECONDITION}}
144
+
145
+ **Test Steps**:
146
+ 1. {{STEP_1}}
147
+ 2. {{STEP_2}}
148
+
149
+ Example:
150
+ 1. Create an empty array: `[]`
151
+ 2. Call `calculateTotal([])`
152
+ 3. Assert that the result equals `0`
153
+
154
+ **Expected Results**:
155
+ {{EXPECTED_RESULTS}}
156
+
157
+ **Actual Results**:
158
+ [To be filled during test execution]
159
+
160
+ **Status**: [ ] Pass / [ ] Fail / [ ] Blocked
161
+
162
+ **Notes**:
163
+ {{NOTES}}
164
+
165
+ ---
166
+
167
+ ### Test Case UT-004: Error Case - {{ERROR_CASE_NAME}}
168
+
169
+ **Description**: {{ERROR_CASE_DESCRIPTION}}
170
+
171
+ Example: Verify that `calculateTotal()` throws an appropriate error when given invalid input.
172
+
173
+ **Preconditions**:
174
+ - {{PRECONDITION}}
175
+
176
+ **Test Steps**:
177
+ 1. {{STEP_1}}
178
+ 2. {{STEP_2}}
179
+
180
+ Example:
181
+ 1. Create an array with non-numeric value: `[10, 'invalid', 30]`
182
+ 2. Call `calculateTotal(input)`
183
+ 3. Assert that a `TypeError` is thrown
184
+
185
+ **Expected Results**:
186
+ {{EXPECTED_RESULTS}}
187
+
188
+ **Actual Results**:
189
+ [To be filled during test execution]
190
+
191
+ **Status**: [ ] Pass / [ ] Fail / [ ] Blocked
192
+
193
+ **Notes**:
194
+ {{NOTES}}
195
+
196
+ ---
197
+
198
+ ## 5. Test Coverage
199
+
200
+ ### 5.1 Coverage Goals
201
+ - **Target Coverage**: {{TARGET_COVERAGE}}%
202
+ - **Minimum Acceptable Coverage**: {{MIN_COVERAGE}}%
203
+
204
+ Example:
205
+ - **Target Coverage**: 95%
206
+ - **Minimum Acceptable Coverage**: 80%
207
+
208
+ ### 5.2 Coverage Report Location
209
+ - Report Path: `{{COVERAGE_REPORT_PATH}}`
210
+ - HTML Report: `{{HTML_REPORT_PATH}}`
211
+
212
+ Example:
213
+ - Report Path: `coverage/lcov.info`
214
+ - HTML Report: `coverage/index.html`
215
+
216
+ ## 6. Test Execution Summary
217
+
218
+ | ID | Test Name | Status | Executed By | Date | Notes |
219
+ |----|-----------|--------|-------------|------|-------|
220
+ | UT-001 | {{NAME}} | | | | |
221
+ | UT-002 | {{NAME}} | | | | |
222
+ | UT-003 | {{NAME}} | | | | |
223
+ | UT-004 | {{NAME}} | | | | |
224
+
225
+ ## 7. Defects Found
226
+
227
+ | Defect ID | Severity | Description | Status |
228
+ |-----------|----------|-------------|--------|
229
+ | | High/Medium/Low | | Open/In Progress/Fixed/Closed |
230
+
231
+ ## 8. Sign-off
232
+
233
+ **Tested By**: _______________
234
+ **Date**: _______________
235
+ **Approved By**: _______________
236
+ **Date**: _______________
237
+
238
+ ---
239
+
240
+ ## Appendix A: Code Examples
241
+
242
+ ### Example Test Code (Node.js/Vitest)
243
+
244
+ ```typescript
245
+ import { describe, it, expect, vi } from 'vitest';
246
+ import { calculateTotal } from './calculator';
247
+
248
+ describe('calculateTotal', () => {
249
+ it('should return correct sum for positive numbers', () => {
250
+ const input = [10, 20, 30];
251
+ const result = calculateTotal(input);
252
+ expect(result).toBe(60);
253
+ });
254
+
255
+ it('should handle empty array', () => {
256
+ const result = calculateTotal([]);
257
+ expect(result).toBe(0);
258
+ });
259
+
260
+ it('should throw error for invalid input', () => {
261
+ expect(() => calculateTotal([10, 'invalid', 30])).toThrow(TypeError);
262
+ });
263
+ });
264
+ ```
265
+
266
+ ### Example Test Code (Java/JUnit 5)
267
+
268
+ ```java
269
+ import org.junit.jupiter.api.Test;
270
+ import static org.junit.jupiter.api.Assertions.*;
271
+
272
+ class CalculatorTest {
273
+ @Test
274
+ void shouldReturnCorrectSumForPositiveNumbers() {
275
+ Calculator calc = new Calculator();
276
+ int[] input = {10, 20, 30};
277
+ int result = calc.calculateTotal(input);
278
+ assertEquals(60, result);
279
+ }
280
+
281
+ @Test
282
+ void shouldHandleEmptyArray() {
283
+ Calculator calc = new Calculator();
284
+ int[] input = {};
285
+ int result = calc.calculateTotal(input);
286
+ assertEquals(0, result);
287
+ }
288
+ }
289
+ ```
290
+
291
+ ### Example Test Code (PHP/PHPUnit)
292
+
293
+ ```php
294
+ <?php
295
+ use PHPUnit\Framework\TestCase;
296
+
297
+ class CalculatorTest extends TestCase
298
+ {
299
+ public function testShouldReturnCorrectSumForPositiveNumbers()
300
+ {
301
+ $calculator = new Calculator();
302
+ $input = [10, 20, 30];
303
+ $result = $calculator->calculateTotal($input);
304
+ $this->assertEquals(60, $result);
305
+ }
306
+
307
+ public function testShouldHandleEmptyArray()
308
+ {
309
+ $calculator = new Calculator();
310
+ $input = [];
311
+ $result = $calculator->calculateTotal($input);
312
+ $this->assertEquals(0, $result);
313
+ }
314
+ }
315
+ ```
316
+
317
+ ## Appendix B: TDD Principles
318
+
319
+ ### RED-GREEN-REFACTOR Cycle
320
+ 1. **RED**: Write a failing test first
321
+ 2. **GREEN**: Write minimum code to pass the test
322
+ 3. **REFACTOR**: Improve code while keeping tests green
323
+
324
+ ### Important Rule
325
+ **Tests represent specifications. Do NOT modify tests to match implementation.**
326
+
327
+ - ❌ NG: Implementation doesn't match test, so modify the test
328
+ - ✅ OK: Specification changed, so update the test accordingly
@@ -44,7 +44,7 @@ src/__tests__/integration/setup/
44
44
 
45
45
  #### Claude Agent環境 (`claude-agent.test.ts`)
46
46
 
47
- - ✅ `.claude/subagents/` ディレクトリ作成
47
+ - ✅ `.claude/agents/` ディレクトリ作成
48
48
  - ✅ `.kiro/` ディレクトリ構造作成
49
49
  - ✅ `project.json` 作成
50
50
  - ✅ `.env` テンプレート作成
@@ -68,11 +68,13 @@ src/__tests__/integration/setup/
68
68
  #### プロジェクト名バリデーション
69
69
 
70
70
  **正常系:**
71
+
71
72
  - ✅ 有効なプロジェクト名
72
73
  - ✅ 日本語文字を含むプロジェクト名
73
74
  - ✅ 前後の空白はトリム
74
75
 
75
76
  **異常系:**
77
+
76
78
  - ❌ 空文字列
77
79
  - ❌ パストラバーサル文字 (`/`, `\`, `..`)
78
80
  - ❌ 制御文字
@@ -81,10 +83,12 @@ src/__tests__/integration/setup/
81
83
  #### JIRAキーバリデーション
82
84
 
83
85
  **正常系:**
86
+
84
87
  - ✅ 2-10文字の大文字英字
85
88
  - ✅ 小文字は自動的に大文字に変換
86
89
 
87
90
  **異常系:**
91
+
88
92
  - ❌ 1文字以下
89
93
  - ❌ 11文字以上
90
94
  - ❌ 数字を含む
@@ -131,14 +135,17 @@ npm run test:ui
131
135
  GitHub Actionsワークフローが `.github/workflows/test-setup.yml` に定義されています。
132
136
 
133
137
  **実行タイミング:**
138
+
134
139
  - `main`, `develop`, `feature/**` ブランチへのプッシュ
135
140
  - `main`, `develop` ブランチへのプルリクエスト
136
141
 
137
142
  **マトリクス戦略:**
143
+
138
144
  - Node.js 18.x
139
145
  - Node.js 20.x
140
146
 
141
147
  **ステップ:**
148
+
142
149
  1. コードチェックアウト
143
150
  2. Node.js セットアップ
144
151
  3. 依存関係インストール
@@ -157,6 +164,7 @@ GitHub Actionsワークフローが `.github/workflows/test-setup.yml` に定義
157
164
  **原因:** 一時ディレクトリの権限問題
158
165
 
159
166
  **解決策:**
167
+
160
168
  ```bash
161
169
  # 一時ディレクトリの権限を確認
162
170
  ls -la /tmp
@@ -172,6 +180,7 @@ rm -rf /tmp/test-project-*
172
180
  **原因:** Gitがインストールされていない
173
181
 
174
182
  **解決策:**
183
+
175
184
  ```bash
176
185
  # Gitインストール確認
177
186
  git --version
@@ -190,6 +199,7 @@ sudo apt-get install git
190
199
  **原因:** 型定義の不一致
191
200
 
192
201
  **解決策:**
202
+
193
203
  ```bash
194
204
  # 型チェック
195
205
  npm run type-check
@@ -204,12 +214,14 @@ npm install
204
214
  **目標:** 95%以上のカバレッジ
205
215
 
206
216
  **確認方法:**
217
+
207
218
  ```bash
208
219
  npm run test:coverage:setup
209
220
  open coverage/lcov-report/index.html
210
221
  ```
211
222
 
212
223
  **改善策:**
224
+
213
225
  1. 未テストのエッジケースを追加
214
226
  2. エラーハンドリングのテストを追加
215
227
  3. モックが不十分な箇所を特定
@@ -221,6 +233,7 @@ open coverage/lcov-report/index.html
221
233
  **原因1:** ローカルとCI環境の違い
222
234
 
223
235
  **解決策:**
236
+
224
237
  ```bash
225
238
  # ローカルでCI環境を再現
226
239
  docker run -it -v $(pwd):/app node:20 bash
@@ -232,10 +245,11 @@ npm run test:integration:setup
232
245
  **原因2:** タイムアウト
233
246
 
234
247
  **解決策:** `.github/workflows/test-setup.yml` でタイムアウトを延長
248
+
235
249
  ```yaml
236
250
  - name: Run integration tests
237
251
  run: npm run test:integration:setup
238
- timeout-minutes: 10 # デフォルト: 360分
252
+ timeout-minutes: 10 # デフォルト: 360分
239
253
  ```
240
254
 
241
255
  ## ベストプラクティス
@@ -252,23 +266,25 @@ npm run test:integration:setup
252
266
  - `beforeEach`, `afterEach` でクリーンアップ
253
267
 
254
268
  3. **意味のあるテスト名**
269
+
255
270
  ```typescript
256
271
  // ❌ Bad
257
- it('test 1', () => {});
258
-
272
+ it("test 1", () => {});
273
+
259
274
  // ✅ Good
260
- it('should create .cursor/rules directory', () => {});
275
+ it("should create .cursor/rules directory", () => {});
261
276
  ```
262
277
 
263
278
  4. **アサーションは明確に**
279
+
264
280
  ```typescript
265
281
  // ❌ Bad
266
282
  expect(result).toBe(true);
267
-
283
+
268
284
  // ✅ Good
269
285
  assertDirectoryExists(
270
- join(testProject.path, '.cursor/rules'),
271
- 'Expected .cursor/rules directory to exist'
286
+ join(testProject.path, ".cursor/rules"),
287
+ "Expected .cursor/rules directory to exist",
272
288
  );
273
289
  ```
274
290
 
@@ -294,4 +310,3 @@ npm run test:integration:setup
294
310
  - [Vitest公式ドキュメント](https://vitest.dev/)
295
311
  - [テスト戦略](../testing-strategy.md)
296
312
  - [開発ガイド](../contributing/development.md)
297
-