@sk8metal/michi-cli 0.0.9 → 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 (371) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/README.md +235 -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 +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.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 +153 -5
  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/cursor.test.js +23 -19
  222. package/dist/src/__tests__/integration/setup/cursor.test.js.map +1 -1
  223. package/dist/src/__tests__/integration/setup/validation.test.js +41 -58
  224. package/dist/src/__tests__/integration/setup/validation.test.js.map +1 -1
  225. package/dist/src/cli.d.ts.map +1 -1
  226. package/dist/src/cli.js +208 -18
  227. package/dist/src/cli.js.map +1 -1
  228. package/dist/src/commands/setup-existing.d.ts +3 -0
  229. package/dist/src/commands/setup-existing.d.ts.map +1 -1
  230. package/dist/src/commands/setup-existing.js +334 -47
  231. package/dist/src/commands/setup-existing.js.map +1 -1
  232. package/docs/README.md +3 -1
  233. package/docs/context.md +59 -0
  234. package/docs/design-issue-55.md +240 -0
  235. package/docs/design-issue-56.md +181 -0
  236. package/docs/michi-development/testing/manual-verification-flow.md +2242 -0
  237. package/docs/michi-development/testing/pre-publish-checklist.md +560 -0
  238. package/docs/plan.md +275 -0
  239. package/docs/user-guide/getting-started/github-token-setup.md +509 -0
  240. package/docs/{getting-started → user-guide/getting-started}/quick-start.md +16 -0
  241. package/docs/{getting-started → user-guide/getting-started}/setup.md +28 -1
  242. package/docs/user-guide/guides/internationalization.md +540 -0
  243. package/docs/{guides → user-guide/guides}/multi-project.md +1 -1
  244. package/docs/{guides → user-guide/guides}/phase-automation.md +67 -9
  245. package/docs/user-guide/guides/workflow.md +582 -0
  246. package/docs/user-guide/hands-on/README.md +142 -0
  247. package/docs/user-guide/hands-on/claude-agent-setup.md +455 -0
  248. package/docs/user-guide/hands-on/claude-setup.md +398 -0
  249. package/docs/user-guide/hands-on/cursor-setup.md +352 -0
  250. package/docs/user-guide/hands-on/troubleshooting.md +964 -0
  251. package/docs/user-guide/hands-on/verification-checklist.md +438 -0
  252. package/docs/user-guide/hands-on/workflow-walkthrough.md +906 -0
  253. package/docs/user-guide/reference/config.md +564 -0
  254. package/docs/{reference → user-guide/reference}/quick-reference.md +53 -40
  255. package/docs/user-guide/release/ci-setup.md +541 -0
  256. package/docs/user-guide/release/release-flow.md +476 -0
  257. package/docs/user-guide/templates/test-specs/README.md +173 -0
  258. package/docs/user-guide/templates/test-specs/e2e-test-spec-template.md +547 -0
  259. package/docs/user-guide/templates/test-specs/integration-test-spec-template.md +435 -0
  260. package/docs/user-guide/templates/test-specs/performance-test-spec-template.md +454 -0
  261. package/docs/user-guide/templates/test-specs/security-test-spec-template.md +664 -0
  262. package/docs/user-guide/templates/test-specs/unit-test-spec-template.md +328 -0
  263. package/docs/{testing → user-guide/testing}/integration-tests.md +24 -9
  264. package/docs/user-guide/testing/tdd-cycle.md +349 -0
  265. package/docs/user-guide/testing/test-execution-flow.md +396 -0
  266. package/docs/user-guide/testing/test-failure-handling.md +521 -0
  267. package/docs/user-guide/testing/test-planning-flow.md +181 -0
  268. package/docs/user-guide/testing-strategy.md +185 -0
  269. package/docs/verification-guide.md +518 -0
  270. package/package.json +7 -2
  271. package/scripts/__tests__/create-project.test.ts +67 -49
  272. package/scripts/__tests__/jira-transitions.test.ts +225 -0
  273. package/scripts/__tests__/multi-project-estimate.test.ts +36 -30
  274. package/scripts/__tests__/setup-existing-project.test.ts +98 -1
  275. package/scripts/__tests__/setup-interactive.test.ts +52 -46
  276. package/scripts/__tests__/spec-impl-workflow.test.ts +429 -0
  277. package/scripts/__tests__/spec-loader.test.ts +199 -0
  278. package/scripts/__tests__/validate-phase.test.ts +78 -54
  279. package/scripts/config/config-schema.ts +89 -50
  280. package/scripts/config-interactive.ts +191 -136
  281. package/scripts/confluence-sync.ts +0 -12
  282. package/scripts/constants/__tests__/environments.test.ts +42 -6
  283. package/scripts/constants/environments.ts +33 -13
  284. package/scripts/constants/test-commands.ts +96 -0
  285. package/scripts/jira-sync.ts +767 -232
  286. package/scripts/markdown-to-confluence.ts +1 -1
  287. package/scripts/phase-runner.ts +1056 -63
  288. package/scripts/pr-automation.ts +0 -1
  289. package/scripts/pre-flight-check.ts +1 -1
  290. package/scripts/pre-publish-check.sh +311 -0
  291. package/scripts/quick-verify.sh +115 -0
  292. package/scripts/setup-existing-project.ts +201 -117
  293. package/scripts/setup-interactive.ts +4 -4
  294. package/scripts/spec-impl-workflow.ts +505 -0
  295. package/scripts/template/__tests__/renderer.test.ts +1 -2
  296. package/scripts/test-execution-generator.ts +695 -0
  297. package/scripts/test-interactive.ts +779 -0
  298. package/scripts/test-new-features.ts +168 -0
  299. package/scripts/test-npm-package.sh +345 -0
  300. package/scripts/test-spec-generator.ts +574 -0
  301. package/scripts/test-workflow-stages.ts +53 -0
  302. package/scripts/utils/__tests__/aidlc-parser.test.ts +349 -0
  303. package/scripts/utils/__tests__/business-days.test.ts +214 -0
  304. package/scripts/utils/__tests__/config-loader.test.ts +1 -1
  305. package/scripts/utils/__tests__/config-validator.test.ts +309 -88
  306. package/scripts/utils/__tests__/env-config.test.ts +259 -0
  307. package/scripts/utils/__tests__/jira-issue-type-fetcher.test.ts +272 -0
  308. package/scripts/utils/__tests__/tasks-converter.test.ts +582 -0
  309. package/scripts/utils/__tests__/tasks-format-validator.test.ts +338 -0
  310. package/scripts/utils/__tests__/test-runner.test.ts +77 -0
  311. package/scripts/utils/aidlc-parser.ts +289 -0
  312. package/scripts/utils/business-days.ts +115 -0
  313. package/scripts/utils/ci-generator.ts +84 -0
  314. package/scripts/utils/config-loader.ts +2 -2
  315. package/scripts/utils/config-validator.ts +304 -117
  316. package/scripts/utils/confluence-approval.ts +167 -0
  317. package/scripts/utils/confluence-hierarchy.ts +2 -4
  318. package/scripts/utils/docker-generator.ts +151 -0
  319. package/scripts/utils/docker-requirement-detector.ts +153 -0
  320. package/scripts/utils/env-config.ts +526 -0
  321. package/scripts/utils/jira-issue-type-fetcher.ts +199 -0
  322. package/scripts/utils/language-detector.ts +139 -0
  323. package/scripts/utils/markdown-parser.ts +376 -0
  324. package/scripts/utils/project-detector.ts +192 -0
  325. package/scripts/utils/project-finder.ts +2 -2
  326. package/scripts/utils/release-notes-generator.ts +210 -0
  327. package/scripts/utils/spec-loader.ts +125 -0
  328. package/scripts/utils/spec-updater.ts +8 -1
  329. package/scripts/utils/tasks-converter.ts +601 -0
  330. package/scripts/utils/tasks-format-validator.ts +193 -0
  331. package/scripts/utils/template-applier.ts +202 -0
  332. package/scripts/utils/test-config-generator.ts +210 -0
  333. package/scripts/utils/test-runner.ts +133 -0
  334. package/scripts/validate-phase.ts +186 -9
  335. package/scripts/workflow-orchestrator.ts +130 -12
  336. package/templates/ci/github-actions/java.yml +54 -0
  337. package/templates/ci/github-actions/nodejs.yml +46 -0
  338. package/templates/ci/github-actions/php.yml +52 -0
  339. package/templates/ci/screwdriver/java.yaml +17 -0
  340. package/templates/ci/screwdriver/nodejs.yaml +17 -0
  341. package/templates/ci/screwdriver/php.yaml +20 -0
  342. package/templates/claude/commands/kiro/kiro-spec-impl.md +244 -0
  343. package/templates/claude/commands/kiro/kiro-spec-tasks.md +354 -0
  344. package/templates/claude-agent/README.md +7 -1
  345. package/templates/claude-agent/agents/.gitkeep +0 -0
  346. package/templates/claude-agent/agents/designer.md +79 -0
  347. package/templates/claude-agent/agents/developer.md +68 -0
  348. package/templates/claude-agent/agents/manager-agent.md +59 -0
  349. package/templates/claude-agent/agents/tester.md +101 -0
  350. package/templates/claude-agent/commands/kiro/.gitkeep +0 -0
  351. package/templates/claude-agent/commands/kiro/kiro-spec-impl.md +244 -0
  352. package/templates/claude-agent/commands/kiro/kiro-spec-tasks.md +354 -0
  353. package/templates/cline/rules/atlassian-integration.md +36 -0
  354. package/templates/cline/rules/michi-core.md +56 -0
  355. package/templates/codex/AGENTS.override.md +277 -0
  356. package/templates/codex/prompts/confluence-sync.md +177 -0
  357. package/templates/codex/rules/README.md +210 -0
  358. package/templates/common/.kiro/project.json.template +21 -0
  359. package/templates/cursor/commands/kiro/kiro-spec-impl.md +244 -0
  360. package/templates/cursor/commands/kiro/kiro-spec-tasks.md +354 -0
  361. package/templates/gemini/commands/README.md +41 -0
  362. package/templates/gemini/rules/GEMINI.md +80 -0
  363. package/docs/guides/workflow.md +0 -342
  364. package/docs/reference/config.md +0 -545
  365. package/scripts/setup-existing.sh +0 -279
  366. /package/docs/{contributing → michi-development/contributing}/development.md +0 -0
  367. /package/docs/{contributing → michi-development/contributing}/release.md +0 -0
  368. /package/docs/{testing-strategy.md → michi-development/testing-strategy.md} +0 -0
  369. /package/docs/{getting-started → user-guide/getting-started}/new-repository-setup.md +0 -0
  370. /package/docs/{guides → user-guide/guides}/customization.md +0 -0
  371. /package/docs/{reference → user-guide/reference}/tasks-template.md +0 -0
@@ -0,0 +1,547 @@
1
+ # E2E 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 end users can successfully complete critical user journeys in the {{APPLICATION_NAME}} from start to finish in a real browser environment.
13
+
14
+ ### 1.2 Scope
15
+ {{SCOPE}}
16
+
17
+ Example: This test specification covers the complete user registration and login flow, including UI interactions, form validations, and successful authentication.
18
+
19
+ ### 1.3 Testing Tool
20
+ - **Tool**: {{TOOL_NAME}}
21
+ - **Version**: {{VERSION}}
22
+
23
+ Example:
24
+ - **Tool**: Playwright / Selenium WebDriver / Cypress
25
+ - **Version**: 1.40.0 / 4.15.0 / 13.6.0
26
+
27
+ ## 2. Test Environment
28
+
29
+ ### 2.1 Software Requirements
30
+ - Browser Automation Tool: {{AUTOMATION_TOOL}} {{VERSION}}
31
+ - Browsers: {{BROWSER_LIST}}
32
+ - Application Environment: {{ENV_URL}}
33
+ - Backend API: {{API_URL}}
34
+ - Test Data Management: {{DATA_MANAGEMENT}}
35
+
36
+ Example:
37
+ - Browser Automation Tool: Playwright 1.40.0
38
+ - Browsers: Chrome 120, Firefox 121, Safari 17
39
+ - Application Environment: [https://staging.example.com](https://staging.example.com)
40
+ - Backend API: [https://api-staging.example.com](https://api-staging.example.com)
41
+ - Test Data Management: Test database with seeded data
42
+
43
+ ### 2.2 Hardware Requirements
44
+ - Test Machine: {{MACHINE_SPEC}}
45
+ - Display Resolution: {{RESOLUTION_LIST}}
46
+ - Network: {{NETWORK_REQUIREMENTS}}
47
+
48
+ Example:
49
+ - Test Machine: macOS/Windows/Linux with 8GB RAM
50
+ - Display Resolution: 1920x1080 (Desktop), 768x1024 (Tablet), 375x667 (Mobile)
51
+ - Network: Stable internet connection (minimum 10 Mbps)
52
+
53
+ ### 2.3 Test Data
54
+ - Test user accounts: `{{TEST_ACCOUNTS_FILE}}`
55
+ - Test data setup script: `{{SETUP_SCRIPT}}`
56
+ - Data cleanup script: `{{CLEANUP_SCRIPT}}`
57
+ - Environment variables: `{{ENV_FILE}}`
58
+
59
+ ## 3. User Flows
60
+
61
+ ### 3.1 User Journey Map
62
+
63
+ ```text
64
+ {{STEP_1}} → {{STEP_2}} → {{STEP_3}} → {{STEP_4}} → {{STEP_5}}
65
+ ```
66
+
67
+ Example:
68
+
69
+ ```text
70
+ Landing Page → Sign Up Form → Email Verification → Profile Setup → Dashboard
71
+ ```
72
+
73
+ ### 3.2 User Flow Details
74
+
75
+ | Flow ID | Flow Name | Description | Priority | Steps |
76
+ |---------|-----------|-------------|----------|-------|
77
+ | {{FLOW_1}} | {{NAME}} | {{DESC}} | High/Medium/Low | {{COUNT}} |
78
+ | {{FLOW_2}} | {{NAME}} | {{DESC}} | High/Medium/Low | {{COUNT}} |
79
+
80
+ Example:
81
+
82
+ | Flow ID | Flow Name | Description | Priority | Steps |
83
+ |---------|-----------|-------------|----------|-------|
84
+ | UF-001 | User Registration | New user signs up and verifies email | High | 5 |
85
+ | UF-002 | Product Purchase | User browses, adds to cart, and completes checkout | High | 8 |
86
+ | UF-003 | Password Reset | User resets forgotten password | Medium | 4 |
87
+
88
+ ### 3.3 Browser/Device Matrix
89
+
90
+ Test each user flow on the following combinations:
91
+
92
+ | Browser | Version | Desktop | Tablet | Mobile | Priority |
93
+ |---------|---------|---------|--------|--------|----------|
94
+ | Chrome | {{VER}} | ✓ | ✓ | ✓ | High |
95
+ | Firefox | {{VER}} | ✓ | - | - | Medium |
96
+ | Safari | {{VER}} | ✓ | ✓ | ✓ | High |
97
+ | Edge | {{VER}} | ✓ | - | - | Low |
98
+
99
+ Example:
100
+
101
+ | Browser | Version | Desktop | Tablet | Mobile | Priority |
102
+ |---------|---------|---------|--------|--------|----------|
103
+ | Chrome | 120+ | ✓ | ✓ | ✓ | High |
104
+ | Firefox | 121+ | ✓ | - | - | Medium |
105
+ | Safari | 17+ | ✓ | ✓ | ✓ | High |
106
+ | Edge | 120+ | ✓ | - | - | Low |
107
+
108
+ **Priority Guide**:
109
+ - High: Must test on all marked platforms
110
+ - Medium: Test on desktop only
111
+ - Low: Test if time permits
112
+
113
+ ## 4. Test Cases
114
+
115
+ ### Test Case E2E-001: {{TEST_CASE_NAME}}
116
+
117
+ **Description**: {{TEST_CASE_DESCRIPTION}}
118
+
119
+ Example: Verify that a new user can complete the entire registration process from landing page to successful login.
120
+
121
+ **User Flow**: {{FLOW_ID}}
122
+ **Browser/Device**: {{BROWSER}} / {{DEVICE}}
123
+
124
+ Example:
125
+ **User Flow**: UF-001 (User Registration)
126
+ **Browser/Device**: Chrome / Desktop
127
+
128
+ **Preconditions**:
129
+ - {{PRECONDITION_1}}
130
+ - {{PRECONDITION_2}}
131
+
132
+ Example:
133
+ - Application is deployed to staging environment
134
+ - Test email account is accessible
135
+ - No existing user with test email address
136
+
137
+ **Test Steps**:
138
+ 1. {{STEP_1}}
139
+ 2. {{STEP_2}}
140
+ 3. {{STEP_3}}
141
+ 4. {{STEP_4}}
142
+ 5. {{STEP_5}}
143
+
144
+ Example:
145
+ 1. Navigate to `https://staging.example.com`
146
+ 2. Click "Sign Up" button
147
+ 3. Fill in registration form (name: "Test User", email: "test@example.com", password: "Test1234!")
148
+ 4. Click "Create Account" button
149
+ 5. Verify confirmation message appears
150
+ 6. Check email inbox for verification link
151
+ 7. Click verification link in email
152
+ 8. Verify redirect to profile setup page
153
+ 9. Complete profile setup
154
+ 10. Verify redirect to dashboard with welcome message
155
+
156
+ **Expected Results**:
157
+ {{EXPECTED_RESULTS}}
158
+
159
+ Example:
160
+ - User is successfully registered
161
+ - Verification email is received within 1 minute
162
+ - Profile setup page loads correctly
163
+ - Dashboard displays user name and welcome message
164
+ - User can logout and login again with credentials
165
+
166
+ **Actual Results**:
167
+ [To be filled during test execution]
168
+
169
+ **Status**: [ ] Pass / [ ] Fail / [ ] Blocked
170
+
171
+ **Screenshots/Videos**:
172
+ - [ ] Screenshot of each major step
173
+ - [ ] Video recording of entire flow
174
+
175
+ **Notes**:
176
+ {{NOTES}}
177
+
178
+ ---
179
+
180
+ ### Test Case E2E-002: {{TEST_CASE_NAME}}
181
+
182
+ **Description**: {{TEST_CASE_DESCRIPTION}}
183
+
184
+ Example: Verify that a user can complete a product purchase from search to payment confirmation.
185
+
186
+ **User Flow**: {{FLOW_ID}}
187
+ **Browser/Device**: {{BROWSER}} / {{DEVICE}}
188
+
189
+ **Preconditions**:
190
+ - {{PRECONDITION_1}}
191
+ - {{PRECONDITION_2}}
192
+
193
+ **Test Steps**:
194
+ 1. {{STEP_1}}
195
+ 2. {{STEP_2}}
196
+ 3. {{STEP_3}}
197
+
198
+ **Expected Results**:
199
+ {{EXPECTED_RESULTS}}
200
+
201
+ **Actual Results**:
202
+ [To be filled during test execution]
203
+
204
+ **Status**: [ ] Pass / [ ] Fail / [ ] Blocked
205
+
206
+ **Screenshots/Videos**:
207
+ - [ ] Screenshot of each major step
208
+ - [ ] Video recording of entire flow
209
+
210
+ **Notes**:
211
+ {{NOTES}}
212
+
213
+ ---
214
+
215
+ ### Test Case E2E-003: Error Handling - {{SCENARIO_NAME}}
216
+
217
+ **Description**: {{TEST_CASE_DESCRIPTION}}
218
+
219
+ Example: Verify that user receives appropriate error messages when submitting invalid registration data.
220
+
221
+ **User Flow**: {{FLOW_ID}}
222
+ **Browser/Device**: {{BROWSER}} / {{DEVICE}}
223
+
224
+ **Preconditions**:
225
+ - {{PRECONDITION}}
226
+
227
+ **Test Steps**:
228
+ 1. {{STEP_1}}
229
+ 2. {{STEP_2}}
230
+ 3. {{STEP_3}}
231
+
232
+ Example:
233
+ 1. Navigate to registration page
234
+ 2. Enter invalid email format: "notanemail"
235
+ 3. Enter password less than minimum length: "123"
236
+ 4. Click "Create Account"
237
+ 5. Verify inline error messages appear for each field
238
+ 6. Verify error messages are user-friendly and actionable
239
+
240
+ **Expected Results**:
241
+ {{EXPECTED_RESULTS}}
242
+
243
+ Example:
244
+ - Email field shows error: "Please enter a valid email address"
245
+ - Password field shows error: "Password must be at least 8 characters"
246
+ - Submit button remains disabled or form doesn't submit
247
+ - No server error occurs
248
+
249
+ **Actual Results**:
250
+ [To be filled during test execution]
251
+
252
+ **Status**: [ ] Pass / [ ] Fail / [ ] Blocked
253
+
254
+ **Screenshots/Videos**:
255
+ - [ ] Screenshot of error messages
256
+
257
+ **Notes**:
258
+ {{NOTES}}
259
+
260
+ ---
261
+
262
+ ### Test Case E2E-004: Responsive Design - {{DEVICE_TYPE}}
263
+
264
+ **Description**: {{TEST_CASE_DESCRIPTION}}
265
+
266
+ Example: Verify that the registration flow works correctly on mobile devices with proper responsive design.
267
+
268
+ **User Flow**: {{FLOW_ID}}
269
+ **Browser/Device**: {{BROWSER}} / {{DEVICE}}
270
+
271
+ Example:
272
+ **Browser/Device**: Chrome / Mobile (375x667)
273
+
274
+ **Preconditions**:
275
+ - {{PRECONDITION}}
276
+
277
+ **Test Steps**:
278
+ 1. {{STEP_1}}
279
+ 2. {{STEP_2}}
280
+ 3. {{STEP_3}}
281
+
282
+ Example:
283
+ 1. Open browser with mobile viewport (375x667)
284
+ 2. Navigate to registration page
285
+ 3. Verify all form fields are visible and accessible
286
+ 4. Verify buttons are appropriately sized for touch
287
+ 5. Complete registration flow
288
+ 6. Verify no horizontal scrolling required
289
+ 7. Verify all interactive elements are easily tappable
290
+
291
+ **Expected Results**:
292
+ {{EXPECTED_RESULTS}}
293
+
294
+ Example:
295
+ - Layout adapts properly to mobile viewport
296
+ - All text is readable without zooming
297
+ - Form fields are properly sized
298
+ - Navigation is accessible via hamburger menu
299
+ - No UI elements are cut off or overlapping
300
+
301
+ **Actual Results**:
302
+ [To be filled during test execution]
303
+
304
+ **Status**: [ ] Pass / [ ] Fail / [ ] Blocked
305
+
306
+ **Screenshots/Videos**:
307
+ - [ ] Screenshots at different viewport sizes
308
+ - [ ] Video of mobile interaction
309
+
310
+ **Notes**:
311
+ {{NOTES}}
312
+
313
+ ---
314
+
315
+ ## 5. Test Execution Summary
316
+
317
+ | ID | Test Name | Flow | Browser | Device | Status | Date | Notes |
318
+ |----|-----------|------|---------|--------|--------|------|-------|
319
+ | E2E-001 | {{NAME}} | {{FLOW}} | Chrome | Desktop | | | |
320
+ | E2E-002 | {{NAME}} | {{FLOW}} | Chrome | Desktop | | | |
321
+ | E2E-003 | {{NAME}} | {{FLOW}} | Firefox | Desktop | | | |
322
+ | E2E-004 | {{NAME}} | {{FLOW}} | Chrome | Mobile | | | |
323
+
324
+ ## 6. Defects Found
325
+
326
+ | Defect ID | Severity | Description | Browser/Device | Screenshot/Video | Status |
327
+ |-----------|----------|-------------|----------------|------------------|--------|
328
+ | | High/Medium/Low | | | | Open/In Progress/Fixed/Closed |
329
+
330
+ ## 7. Sign-off
331
+
332
+ **Tested By**: _______________
333
+ **Date**: _______________
334
+ **Approved By**: _______________
335
+ **Date**: _______________
336
+
337
+ ---
338
+
339
+ ## Appendix A: Test Environment Setup
340
+
341
+ ### Playwright Setup
342
+
343
+ ```bash
344
+ # Install Playwright
345
+ npm install -D @playwright/test
346
+
347
+ # Install browsers
348
+ npx playwright install
349
+
350
+ # Run tests
351
+ npx playwright test
352
+
353
+ # Run tests in UI mode
354
+ npx playwright test --ui
355
+
356
+ # Generate HTML report
357
+ npx playwright show-report
358
+ ```
359
+
360
+ ### Selenium WebDriver Setup
361
+
362
+ ```bash
363
+ # Install Selenium (Node.js)
364
+ npm install selenium-webdriver
365
+
366
+ # Download browser drivers
367
+ # ChromeDriver, GeckoDriver, etc.
368
+
369
+ # Run tests
370
+ node e2e-tests/registration.test.js
371
+ ```
372
+
373
+ ### Cypress Setup
374
+
375
+ ```bash
376
+ # Install Cypress
377
+ npm install -D cypress
378
+
379
+ # Open Cypress
380
+ npx cypress open
381
+
382
+ # Run tests headless
383
+ npx cypress run
384
+
385
+ # Run specific test
386
+ npx cypress run --spec "cypress/e2e/registration.cy.js"
387
+ ```
388
+
389
+ ## Appendix B: Code Examples
390
+
391
+ ### Example E2E Test Code (Playwright)
392
+
393
+ ```typescript
394
+ import { test, expect } from '@playwright/test';
395
+
396
+ test('User registration flow', async ({ page }) => {
397
+ // Navigate to landing page
398
+ await page.goto('https://staging.example.com');
399
+
400
+ // Click sign up button
401
+ await page.click('text=Sign Up');
402
+
403
+ // Fill registration form
404
+ await page.fill('input[name="name"]', 'Test User');
405
+ await page.fill('input[name="email"]', 'test@example.com');
406
+ await page.fill('input[name="password"]', 'Test1234!');
407
+
408
+ // Submit form
409
+ await page.click('button[type="submit"]');
410
+
411
+ // Verify confirmation message
412
+ await expect(page.locator('text=Account created successfully')).toBeVisible();
413
+
414
+ // Verify redirect to dashboard
415
+ await expect(page).toHaveURL(/.*dashboard/);
416
+ await expect(page.locator('text=Welcome, Test User')).toBeVisible();
417
+ });
418
+
419
+ test('Registration with invalid email', async ({ page }) => {
420
+ await page.goto('https://staging.example.com/signup');
421
+
422
+ await page.fill('input[name="email"]', 'notanemail');
423
+ await page.fill('input[name="password"]', 'Test1234!');
424
+ await page.click('button[type="submit"]');
425
+
426
+ // Verify error message
427
+ await expect(page.locator('text=Please enter a valid email')).toBeVisible();
428
+ });
429
+ ```
430
+
431
+ ### Example E2E Test Code (Selenium WebDriver)
432
+
433
+ ```javascript
434
+ const { Builder, By, until } = require('selenium-webdriver');
435
+
436
+ async function testUserRegistration() {
437
+ let driver = await new Builder().forBrowser('chrome').build();
438
+
439
+ try {
440
+ // Navigate to landing page
441
+ await driver.get('https://staging.example.com');
442
+
443
+ // Click sign up button
444
+ await driver.findElement(By.linkText('Sign Up')).click();
445
+
446
+ // Fill registration form
447
+ await driver.findElement(By.name('name')).sendKeys('Test User');
448
+ await driver.findElement(By.name('email')).sendKeys('test@example.com');
449
+ await driver.findElement(By.name('password')).sendKeys('Test1234!');
450
+
451
+ // Submit form
452
+ await driver.findElement(By.css('button[type="submit"]')).click();
453
+
454
+ // Wait for confirmation
455
+ await driver.wait(until.elementLocated(By.xpath('//*[contains(text(), "Account created")]')), 5000);
456
+
457
+ // Verify redirect
458
+ let currentUrl = await driver.getCurrentUrl();
459
+ assert(currentUrl.includes('dashboard'));
460
+
461
+ } finally {
462
+ await driver.quit();
463
+ }
464
+ }
465
+
466
+ testUserRegistration();
467
+ ```
468
+
469
+ ### Example E2E Test Code (Cypress)
470
+
471
+ ```javascript
472
+ describe('User Registration Flow', () => {
473
+ it('should complete registration successfully', () => {
474
+ // Navigate to landing page
475
+ cy.visit('https://staging.example.com');
476
+
477
+ // Click sign up button
478
+ cy.contains('Sign Up').click();
479
+
480
+ // Fill registration form
481
+ cy.get('input[name="name"]').type('Test User');
482
+ cy.get('input[name="email"]').type('test@example.com');
483
+ cy.get('input[name="password"]').type('Test1234!');
484
+
485
+ // Submit form
486
+ cy.get('button[type="submit"]').click();
487
+
488
+ // Verify confirmation
489
+ cy.contains('Account created successfully').should('be.visible');
490
+
491
+ // Verify redirect to dashboard
492
+ cy.url().should('include', '/dashboard');
493
+ cy.contains('Welcome, Test User').should('be.visible');
494
+ });
495
+
496
+ it('should show error for invalid email', () => {
497
+ cy.visit('https://staging.example.com/signup');
498
+
499
+ cy.get('input[name="email"]').type('notanemail');
500
+ cy.get('input[name="password"]').type('Test1234!');
501
+ cy.get('button[type="submit"]').click();
502
+
503
+ // Verify error message
504
+ cy.contains('Please enter a valid email').should('be.visible');
505
+ });
506
+ });
507
+ ```
508
+
509
+ ## Appendix C: Screenshot and Video Configuration
510
+
511
+ ### Playwright Configuration
512
+
513
+ ```typescript
514
+ // playwright.config.ts
515
+ export default {
516
+ use: {
517
+ screenshot: 'only-on-failure',
518
+ video: 'retain-on-failure',
519
+ trace: 'retain-on-failure',
520
+ },
521
+ };
522
+ ```
523
+
524
+ ### Cypress Configuration
525
+
526
+ ```javascript
527
+ // cypress.config.js
528
+ module.exports = {
529
+ video: true,
530
+ screenshotOnRunFailure: true,
531
+ videosFolder: 'cypress/videos',
532
+ screenshotsFolder: 'cypress/screenshots',
533
+ };
534
+ ```
535
+
536
+ ## Appendix D: Execution Timing
537
+
538
+ ## Phase B (Before Release) - Manual Execution
539
+
540
+ E2E tests are executed manually before creating a release tag:
541
+
542
+ 1. After PR is merged to main branch
543
+ 2. Before creating a release tag
544
+ 3. Run all E2E tests in Phase B
545
+ 4. Verify all critical user flows pass before proceeding to release
546
+
547
+ E2E tests are **NOT** executed automatically in CI/CD during PR phase (only unit tests run automatically).