aiwf 0.3.23 β†’ 0.4.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 (321) hide show
  1. package/.claude-plugin/marketplace.json +146 -0
  2. package/CHANGELOG.md +49 -1
  3. package/README.ko.md +118 -309
  4. package/README.md +68 -254
  5. package/docs/modernization/BROWNFIELD-GREENFIELD.ko.md +105 -0
  6. package/docs/modernization/CLAUDE-PLAN-REVIEW-2026-10-03.ko.md +77 -0
  7. package/docs/modernization/CLI-PRODUCTIVITY-REVIEWED-2026-10-03.ko.md +177 -0
  8. package/docs/modernization/CLI-PRODUCTIVITY.ko.md +193 -0
  9. package/docs/modernization/CORE-PACKAGE-PLAN.md +7 -0
  10. package/docs/modernization/DEEP-REVERSE-ENGINEERING.ko.md +88 -0
  11. package/docs/modernization/DELEGATION-OPTIONAL.ko.md +57 -0
  12. package/docs/modernization/DIRECTION.ko.md +56 -0
  13. package/docs/modernization/FULL-TEST-2026-10-03.md +49 -0
  14. package/docs/modernization/LEGACY-REMOVAL-PLAN.md +9 -0
  15. package/docs/modernization/PILOT-RESULT-2026-10-03.ko.md +85 -0
  16. package/docs/modernization/PILOT-UC-001.ko.md +79 -0
  17. package/docs/modernization/PLAN.md +28 -0
  18. package/docs/modernization/SKILLS.ko.md +105 -0
  19. package/docs/modernization/SPRINTABLE.ko.md +47 -0
  20. package/docs/modernization/SYNC-DOCS-VALIDATION-2026-10-04.ko.md +38 -0
  21. package/docs/modernization/VALIDATION.md +79 -0
  22. package/docs/modernization/evidence/example-review-packet.json +115 -0
  23. package/docs/modernization/evidence/example-spec-pin.json +48 -0
  24. package/docs/modernization/evidence/full-test-20261003/claude-lint.md +22 -0
  25. package/docs/modernization/evidence/full-test-20261003/claude-review-retry.md +56 -0
  26. package/docs/modernization/evidence/full-test-20261003/codex-review-packet.json +159 -0
  27. package/docs/modernization/evidence/full-test-20261003/src/expense.mjs +40 -0
  28. package/docs/modernization/evidence/full-test-20261003/summary.json +106 -0
  29. package/docs/modernization/evidence/full-test-20261003/tests/expense.test.mjs +61 -0
  30. package/docs/modernization/evidence/local-pilot-20261003/README.ko.md +40 -0
  31. package/docs/modernization/evidence/local-pilot-20261003/execution.json +1055 -0
  32. package/docs/modernization/evidence/local-pilot-20261003/maintenance/dependencies.json +24 -0
  33. package/docs/modernization/evidence/local-pilot-20261003/maintenance/dependencies.stderr.txt +0 -0
  34. package/docs/modernization/evidence/local-pilot-20261003/maintenance/dependencies.stdout.txt +5 -0
  35. package/docs/modernization/evidence/local-pilot-20261003/maintenance/docs.json +24 -0
  36. package/docs/modernization/evidence/local-pilot-20261003/maintenance/docs.stderr.txt +0 -0
  37. package/docs/modernization/evidence/local-pilot-20261003/maintenance/docs.stdout.txt +6 -0
  38. package/docs/modernization/evidence/local-pilot-20261003/maintenance/example.json +24 -0
  39. package/docs/modernization/evidence/local-pilot-20261003/maintenance/example.stderr.txt +0 -0
  40. package/docs/modernization/evidence/local-pilot-20261003/maintenance/example.stdout.txt +5 -0
  41. package/docs/modernization/evidence/local-pilot-20261003/maintenance/local-docs.json +24 -0
  42. package/docs/modernization/evidence/local-pilot-20261003/maintenance/local-docs.stderr.txt +0 -0
  43. package/docs/modernization/evidence/local-pilot-20261003/maintenance/local-docs.stdout.txt +6 -0
  44. package/docs/modernization/evidence/local-pilot-20261003/maintenance/node.json +23 -0
  45. package/docs/modernization/evidence/local-pilot-20261003/maintenance/node.stderr.txt +0 -0
  46. package/docs/modernization/evidence/local-pilot-20261003/maintenance/node.stdout.txt +535 -0
  47. package/docs/modernization/evidence/local-pilot-20261003/maintenance/provenance.json +24 -0
  48. package/docs/modernization/evidence/local-pilot-20261003/maintenance/provenance.stderr.txt +0 -0
  49. package/docs/modernization/evidence/local-pilot-20261003/maintenance/provenance.stdout.txt +5 -0
  50. package/docs/modernization/evidence/local-pilot-20261003/maintenance/readme-replay.json +24 -0
  51. package/docs/modernization/evidence/local-pilot-20261003/maintenance/readme-replay.stderr.txt +0 -0
  52. package/docs/modernization/evidence/local-pilot-20261003/maintenance/readme-replay.stdout.txt +273 -0
  53. package/docs/modernization/evidence/local-pilot-20261003/maintenance/upstream.json +24 -0
  54. package/docs/modernization/evidence/local-pilot-20261003/maintenance/upstream.stderr.txt +0 -0
  55. package/docs/modernization/evidence/local-pilot-20261003/maintenance/upstream.stdout.txt +7 -0
  56. package/docs/modernization/evidence/local-pilot-20261003/project/artifacts/archive-service.stderr.txt +0 -0
  57. package/docs/modernization/evidence/local-pilot-20261003/project/artifacts/archive-service.stdout.txt +148 -0
  58. package/docs/modernization/evidence/local-pilot-20261003/project/artifacts/archive-structure.stderr.txt +0 -0
  59. package/docs/modernization/evidence/local-pilot-20261003/project/artifacts/archive-structure.stdout.txt +9 -0
  60. package/docs/modernization/evidence/local-pilot-20261003/project/artifacts/baseline-check.stderr.txt +0 -0
  61. package/docs/modernization/evidence/local-pilot-20261003/project/artifacts/baseline-check.stdout.txt +67 -0
  62. package/docs/modernization/evidence/local-pilot-20261003/project/artifacts/baseline-evidence.json +34 -0
  63. package/docs/modernization/evidence/local-pilot-20261003/project/artifacts/baseline-packet.json +128 -0
  64. package/docs/modernization/evidence/local-pilot-20261003/project/artifacts/baseline-packet.stderr.txt +0 -0
  65. package/docs/modernization/evidence/local-pilot-20261003/project/artifacts/baseline-packet.stdout.txt +128 -0
  66. package/docs/modernization/evidence/local-pilot-20261003/project/artifacts/baseline-pin.json +54 -0
  67. package/docs/modernization/evidence/local-pilot-20261003/project/artifacts/baseline-pin.stderr.txt +0 -0
  68. package/docs/modernization/evidence/local-pilot-20261003/project/artifacts/baseline-pin.stdout.txt +60 -0
  69. package/docs/modernization/evidence/local-pilot-20261003/project/artifacts/baseline-readback.json +15 -0
  70. package/docs/modernization/evidence/local-pilot-20261003/project/artifacts/baseline-service.stderr.txt +0 -0
  71. package/docs/modernization/evidence/local-pilot-20261003/project/artifacts/baseline-service.stdout.txt +82 -0
  72. package/docs/modernization/evidence/local-pilot-20261003/project/artifacts/baseline-structure.stderr.txt +0 -0
  73. package/docs/modernization/evidence/local-pilot-20261003/project/artifacts/baseline-structure.stdout.txt +9 -0
  74. package/docs/modernization/evidence/local-pilot-20261003/project/artifacts/changed-check.stderr.txt +0 -0
  75. package/docs/modernization/evidence/local-pilot-20261003/project/artifacts/changed-check.stdout.txt +79 -0
  76. package/docs/modernization/evidence/local-pilot-20261003/project/artifacts/changed-packet-refused.stderr.txt +0 -0
  77. package/docs/modernization/evidence/local-pilot-20261003/project/artifacts/changed-packet-refused.stdout.txt +7 -0
  78. package/docs/modernization/evidence/local-pilot-20261003/project/artifacts/changed-pin-refresh.stderr.txt +0 -0
  79. package/docs/modernization/evidence/local-pilot-20261003/project/artifacts/changed-pin-refresh.stdout.txt +66 -0
  80. package/docs/modernization/evidence/local-pilot-20261003/project/artifacts/changed-pin.json +60 -0
  81. package/docs/modernization/evidence/local-pilot-20261003/project/artifacts/changed-structure.stderr.txt +0 -0
  82. package/docs/modernization/evidence/local-pilot-20261003/project/artifacts/changed-structure.stdout.txt +9 -0
  83. package/docs/modernization/evidence/local-pilot-20261003/project/artifacts/final-check.stderr.txt +0 -0
  84. package/docs/modernization/evidence/local-pilot-20261003/project/artifacts/final-check.stdout.txt +73 -0
  85. package/docs/modernization/evidence/local-pilot-20261003/project/artifacts/final-evidence.json +34 -0
  86. package/docs/modernization/evidence/local-pilot-20261003/project/artifacts/final-packet.json +134 -0
  87. package/docs/modernization/evidence/local-pilot-20261003/project/artifacts/final-packet.stderr.txt +0 -0
  88. package/docs/modernization/evidence/local-pilot-20261003/project/artifacts/final-packet.stdout.txt +134 -0
  89. package/docs/modernization/evidence/local-pilot-20261003/project/artifacts/final-readback.json +15 -0
  90. package/docs/modernization/evidence/local-pilot-20261003/project/artifacts/final-service.stderr.txt +0 -0
  91. package/docs/modernization/evidence/local-pilot-20261003/project/artifacts/final-service.stdout.txt +148 -0
  92. package/docs/modernization/evidence/local-pilot-20261003/project/artifacts/final-structure.stderr.txt +0 -0
  93. package/docs/modernization/evidence/local-pilot-20261003/project/artifacts/final-structure.stdout.txt +9 -0
  94. package/docs/modernization/evidence/local-pilot-20261003/project/artifacts/node-version.stderr.txt +0 -0
  95. package/docs/modernization/evidence/local-pilot-20261003/project/artifacts/node-version.stdout.txt +1 -0
  96. package/docs/modernization/evidence/local-pilot-20261003/project/artifacts/python-version.stderr.txt +0 -0
  97. package/docs/modernization/evidence/local-pilot-20261003/project/artifacts/python-version.stdout.txt +1 -0
  98. package/docs/modernization/evidence/local-pilot-20261003/project/artifacts/red-evidence.json +34 -0
  99. package/docs/modernization/evidence/local-pilot-20261003/project/artifacts/red-packet.json +134 -0
  100. package/docs/modernization/evidence/local-pilot-20261003/project/artifacts/red-packet.stderr.txt +0 -0
  101. package/docs/modernization/evidence/local-pilot-20261003/project/artifacts/red-packet.stdout.txt +134 -0
  102. package/docs/modernization/evidence/local-pilot-20261003/project/artifacts/red-readback.json +15 -0
  103. package/docs/modernization/evidence/local-pilot-20261003/project/artifacts/red-service.stderr.txt +0 -0
  104. package/docs/modernization/evidence/local-pilot-20261003/project/artifacts/red-service.stdout.txt +266 -0
  105. package/docs/modernization/evidence/local-pilot-20261003/project/artifacts/red-structure.stderr.txt +0 -0
  106. package/docs/modernization/evidence/local-pilot-20261003/project/artifacts/red-structure.stdout.txt +9 -0
  107. package/docs/modernization/evidence/local-pilot-20261003/project/docs/entity_model.md +33 -0
  108. package/docs/modernization/evidence/local-pilot-20261003/project/docs/glossary.md +9 -0
  109. package/docs/modernization/evidence/local-pilot-20261003/project/docs/plans/UC-001.md +20 -0
  110. package/docs/modernization/evidence/local-pilot-20261003/project/docs/requirements.md +10 -0
  111. package/docs/modernization/evidence/local-pilot-20261003/project/docs/test_cases/TC-001-submit-expense.md +37 -0
  112. package/docs/modernization/evidence/local-pilot-20261003/project/docs/test_cases/TC-002-description-limit.md +42 -0
  113. package/docs/modernization/evidence/local-pilot-20261003/project/docs/use_cases/UC-001-submit-expense.md +76 -0
  114. package/docs/modernization/evidence/local-pilot-20261003/project/docs/use_cases.puml +12 -0
  115. package/docs/modernization/evidence/local-pilot-20261003/project/docs/vision.md +21 -0
  116. package/docs/modernization/evidence/local-pilot-20261003/project/src/expense.mjs +48 -0
  117. package/docs/modernization/evidence/local-pilot-20261003/project/tests/expense.test.mjs +116 -0
  118. package/docs/modernization/evidence/local-pilot-20261003/scope.json +31 -0
  119. package/docs/modernization/reviews/2026-10-03-claude-cli/CONTRACTS.ko.md +122 -0
  120. package/docs/modernization/reviews/2026-10-03-claude-cli/DIRECTION.ko.md +84 -0
  121. package/examples/spec-workflow/README.md +54 -0
  122. package/examples/spec-workflow/docs/entity_model.md +33 -0
  123. package/examples/spec-workflow/docs/glossary.md +9 -0
  124. package/examples/spec-workflow/docs/requirements.md +10 -0
  125. package/examples/spec-workflow/docs/test_cases/TC-001-submit-expense.md +37 -0
  126. package/examples/spec-workflow/docs/use_cases/UC-001-submit-expense.md +63 -0
  127. package/examples/spec-workflow/docs/use_cases.puml +12 -0
  128. package/examples/spec-workflow/docs/vision.md +21 -0
  129. package/package.json +37 -105
  130. package/plugins/aiwf-angular-jpa/.claude-plugin/plugin.json +11 -0
  131. package/plugins/aiwf-angular-jpa/LICENSE +201 -0
  132. package/plugins/aiwf-angular-jpa/NOTICE +16 -0
  133. package/plugins/aiwf-angular-jpa/README.md +54 -0
  134. package/plugins/aiwf-angular-jpa/UPSTREAM.json +35 -0
  135. package/plugins/aiwf-angular-jpa/agents/uc-coverage.md +263 -0
  136. package/plugins/aiwf-angular-jpa/rules/mcp-servers.md +64 -0
  137. package/plugins/aiwf-angular-jpa/skills/coverage-check/SKILL.md +190 -0
  138. package/plugins/aiwf-angular-jpa/skills/flyway-migration/SKILL.md +119 -0
  139. package/plugins/aiwf-angular-jpa/skills/implement/SKILL.md +528 -0
  140. package/plugins/aiwf-angular-jpa/skills/implement/references/module-layout.md +95 -0
  141. package/plugins/aiwf-angular-jpa/skills/playwright-test/SKILL.md +360 -0
  142. package/plugins/aiwf-angular-jpa/skills/spring-boot-test/SKILL.md +504 -0
  143. package/plugins/aiwf-angular-jpa/skills/vitest-test/SKILL.md +309 -0
  144. package/plugins/aiwf-blazor-dotnet/.claude-plugin/plugin.json +11 -0
  145. package/plugins/aiwf-blazor-dotnet/LICENSE +201 -0
  146. package/plugins/aiwf-blazor-dotnet/NOTICE +16 -0
  147. package/plugins/aiwf-blazor-dotnet/README.md +53 -0
  148. package/plugins/aiwf-blazor-dotnet/UPSTREAM.json +31 -0
  149. package/plugins/aiwf-blazor-dotnet/rules/mcp-servers.md +25 -0
  150. package/plugins/aiwf-blazor-dotnet/skills/bunit-test/SKILL.md +110 -0
  151. package/plugins/aiwf-blazor-dotnet/skills/dotnet-test/SKILL.md +108 -0
  152. package/plugins/aiwf-blazor-dotnet/skills/ef-migration/SKILL.md +43 -0
  153. package/plugins/aiwf-blazor-dotnet/skills/implement/SKILL.md +149 -0
  154. package/plugins/aiwf-blazor-dotnet/skills/playwright-test/SKILL.md +130 -0
  155. package/plugins/aiwf-core/.claude-plugin/plugin.json +11 -0
  156. package/plugins/aiwf-core/LICENSE +201 -0
  157. package/plugins/aiwf-core/NOTICE +20 -0
  158. package/plugins/aiwf-core/README.md +38 -0
  159. package/plugins/aiwf-core/UPSTREAM.json +50 -0
  160. package/plugins/aiwf-core/skills/entity-model/SKILL.md +160 -0
  161. package/plugins/aiwf-core/skills/entity-model/references/REFERENCE.md +36 -0
  162. package/plugins/aiwf-core/skills/requirements/SKILL.md +157 -0
  163. package/plugins/aiwf-core/skills/requirements/references/REFERENCE.md +70 -0
  164. package/plugins/aiwf-core/skills/requirements/references/glossary.md +7 -0
  165. package/plugins/aiwf-core/skills/reverse-engineer/SKILL.md +509 -0
  166. package/plugins/aiwf-core/skills/reverse-engineer/references/stack-signals.md +210 -0
  167. package/plugins/aiwf-core/skills/spec-review/SKILL.md +197 -0
  168. package/plugins/aiwf-core/skills/spec-review/references/lint-codes.md +63 -0
  169. package/plugins/aiwf-core/skills/spec-review/references/review-checklist.md +189 -0
  170. package/plugins/aiwf-core/skills/spec-review/scripts/spec_lint.py +1216 -0
  171. package/plugins/aiwf-core/skills/test-case/SKILL.md +138 -0
  172. package/plugins/aiwf-core/skills/test-case/references/example-process.bpmn +118 -0
  173. package/plugins/aiwf-core/skills/test-case/references/example.md +38 -0
  174. package/plugins/aiwf-core/skills/test-case/references/test-case.md +35 -0
  175. package/plugins/aiwf-core/skills/test-case/scripts/bpmn_paths.py +542 -0
  176. package/plugins/aiwf-core/skills/use-case-diagram/SKILL.md +99 -0
  177. package/plugins/aiwf-core/skills/use-case-spec/SKILL.md +257 -0
  178. package/plugins/aiwf-core/skills/use-case-spec/references/clarify-checklist.md +70 -0
  179. package/plugins/aiwf-core/skills/use-case-spec/references/example.md +88 -0
  180. package/plugins/aiwf-core/skills/use-case-spec/references/format-spec.md +246 -0
  181. package/plugins/aiwf-core/skills/use-case-spec/references/use-case.md +50 -0
  182. package/plugins/aiwf-core/skills/use-case-spec/scripts/validate_use_case.py +941 -0
  183. package/plugins/aiwf-delegate-claude/.claude-plugin/plugin.json +9 -0
  184. package/plugins/aiwf-delegate-claude/LICENSE +21 -0
  185. package/plugins/aiwf-delegate-claude/NOTICE +4 -0
  186. package/plugins/aiwf-delegate-claude/README.md +10 -0
  187. package/plugins/aiwf-delegate-claude/plugin.json +13 -0
  188. package/plugins/aiwf-delegate-claude/skills/delegate-claude/LICENSE +21 -0
  189. package/plugins/aiwf-delegate-claude/skills/delegate-claude/NOTICE +4 -0
  190. package/plugins/aiwf-delegate-claude/skills/delegate-claude/SKILL.md +49 -0
  191. package/plugins/aiwf-delegate-claude/skills/delegate-claude/agents/openai.yaml +2 -0
  192. package/plugins/aiwf-delegate-codex/.claude-plugin/plugin.json +9 -0
  193. package/plugins/aiwf-delegate-codex/LICENSE +21 -0
  194. package/plugins/aiwf-delegate-codex/NOTICE +4 -0
  195. package/plugins/aiwf-delegate-codex/README.md +10 -0
  196. package/plugins/aiwf-delegate-codex/plugin.json +13 -0
  197. package/plugins/aiwf-delegate-codex/skills/delegate-codex/LICENSE +21 -0
  198. package/plugins/aiwf-delegate-codex/skills/delegate-codex/NOTICE +4 -0
  199. package/plugins/aiwf-delegate-codex/skills/delegate-codex/SKILL.md +47 -0
  200. package/plugins/aiwf-delegate-codex/skills/delegate-codex/agents/openai.yaml +2 -0
  201. package/plugins/aiwf-nestjs-nextjs/.claude-plugin/plugin.json +11 -0
  202. package/plugins/aiwf-nestjs-nextjs/LICENSE +201 -0
  203. package/plugins/aiwf-nestjs-nextjs/NOTICE +16 -0
  204. package/plugins/aiwf-nestjs-nextjs/README.md +53 -0
  205. package/plugins/aiwf-nestjs-nextjs/UPSTREAM.json +32 -0
  206. package/plugins/aiwf-nestjs-nextjs/rules/mcp-servers.md +59 -0
  207. package/plugins/aiwf-nestjs-nextjs/skills/drizzle-migration/SKILL.md +222 -0
  208. package/plugins/aiwf-nestjs-nextjs/skills/implement/SKILL.md +393 -0
  209. package/plugins/aiwf-nestjs-nextjs/skills/implement/references/project-layout.md +158 -0
  210. package/plugins/aiwf-nestjs-nextjs/skills/nest-test/SKILL.md +300 -0
  211. package/plugins/aiwf-nestjs-nextjs/skills/playwright-test/SKILL.md +245 -0
  212. package/plugins/aiwf-nestjs-nextjs/skills/react-test/SKILL.md +217 -0
  213. package/plugins/aiwf-spec/.claude-plugin/plugin.json +9 -0
  214. package/plugins/aiwf-spec/LICENSE +201 -0
  215. package/plugins/aiwf-spec/NOTICE +20 -0
  216. package/plugins/aiwf-spec/README.md +36 -0
  217. package/plugins/aiwf-spec/skills/sync-docs/SKILL.md +47 -0
  218. package/plugins/aiwf-spec/skills/workflow/SKILL.md +42 -0
  219. package/plugins/aiwf-vaadin-jooq/.claude-plugin/plugin.json +11 -0
  220. package/plugins/aiwf-vaadin-jooq/LICENSE +201 -0
  221. package/plugins/aiwf-vaadin-jooq/NOTICE +16 -0
  222. package/plugins/aiwf-vaadin-jooq/README.md +56 -0
  223. package/plugins/aiwf-vaadin-jooq/UPSTREAM.json +43 -0
  224. package/plugins/aiwf-vaadin-jooq/agents/uc-coverage.md +260 -0
  225. package/plugins/aiwf-vaadin-jooq/rules/mcp-servers.md +44 -0
  226. package/plugins/aiwf-vaadin-jooq/skills/browserless-test/SKILL.md +407 -0
  227. package/plugins/aiwf-vaadin-jooq/skills/browserless-test/references/UC001ManagePersonsTest.java +111 -0
  228. package/plugins/aiwf-vaadin-jooq/skills/coverage-check/SKILL.md +190 -0
  229. package/plugins/aiwf-vaadin-jooq/skills/flyway-migration/SKILL.md +70 -0
  230. package/plugins/aiwf-vaadin-jooq/skills/hilla-test/SKILL.md +350 -0
  231. package/plugins/aiwf-vaadin-jooq/skills/hilla-test/references/UC001ManagePersonsServiceTest.java +81 -0
  232. package/plugins/aiwf-vaadin-jooq/skills/hilla-test/references/UC001ManagePersonsViewTest.tsx +87 -0
  233. package/plugins/aiwf-vaadin-jooq/skills/implement/SKILL.md +196 -0
  234. package/plugins/aiwf-vaadin-jooq/skills/implement-hilla/SKILL.md +216 -0
  235. package/plugins/aiwf-vaadin-jooq/skills/karibu-test/SKILL.md +298 -0
  236. package/plugins/aiwf-vaadin-jooq/skills/karibu-test/references/UC001ManagePersonsTest.java +93 -0
  237. package/plugins/aiwf-vaadin-jooq/skills/playwright-test/SKILL.md +237 -0
  238. package/plugins/aiwf-vaadin-jooq/skills/playwright-test/references/ExampleViewIT.java +143 -0
  239. package/plugins/aiwf-vaadin-jooq/skills/playwright-test/references/TC001CustomerOnboardingIT.java +144 -0
  240. package/plugins/aiwf-vaadin-jooq/skills/playwright-test/references/dramafinder-api.md +190 -0
  241. package/scripts/check-dependencies.js +26 -96
  242. package/scripts/install-spec-skills.mjs +126 -0
  243. package/scripts/validate-spec-plugin.mjs +145 -0
  244. package/src/cli/spec-cli.js +292 -0
  245. package/src/lib/spec-workflow.js +982 -0
  246. package/docs/ADR_MANAGEMENT_GUIDE.ko.md +0 -602
  247. package/docs/ADR_MANAGEMENT_GUIDE.md +0 -602
  248. package/docs/AI-WORKFLOW.ko.md +0 -299
  249. package/docs/AI-WORKFLOW.md +0 -401
  250. package/docs/API_REFERENCE_FULL.ko.md +0 -1135
  251. package/docs/API_REFERENCE_FULL.md +0 -1135
  252. package/docs/ARCHITECTURE.ko.md +0 -314
  253. package/docs/ARCHITECTURE.md +0 -314
  254. package/docs/CLI_USAGE_GUIDE.ko.md +0 -634
  255. package/docs/CLI_USAGE_GUIDE.md +0 -640
  256. package/docs/CODE_CLEANUP_GUIDE.ko.md +0 -415
  257. package/docs/CODE_CLEANUP_GUIDE.md +0 -415
  258. package/docs/COMMANDS_GUIDE.ko.md +0 -1037
  259. package/docs/COMMANDS_GUIDE.md +0 -1037
  260. package/docs/CONTRIBUTING.ko.md +0 -408
  261. package/docs/CONTRIBUTING.md +0 -408
  262. package/docs/DEVELOPMENT_GUIDE.ko.md +0 -440
  263. package/docs/DEVELOPMENT_GUIDE.md +0 -727
  264. package/docs/EXAMPLES.ko.md +0 -695
  265. package/docs/EXAMPLES.md +0 -693
  266. package/docs/GETTING_STARTED.ko.md +0 -219
  267. package/docs/GETTING_STARTED.md +0 -476
  268. package/docs/MODULE_MANAGEMENT_GUIDE.ko.md +0 -289
  269. package/docs/MODULE_MANAGEMENT_GUIDE.md +0 -289
  270. package/docs/PERFORMANCE_ARCHITECTURE.md +0 -494
  271. package/docs/PERFORMANCE_GUIDELINES.ko.md +0 -388
  272. package/docs/PERFORMANCE_GUIDELINES.md +0 -553
  273. package/docs/PRD.ko.md +0 -148
  274. package/docs/PRD.md +0 -150
  275. package/docs/ROADMAP_v0.4.0.md +0 -286
  276. package/docs/STATE_MANAGEMENT_GUIDE.ko.md +0 -278
  277. package/docs/STATE_MANAGEMENT_GUIDE.md +0 -278
  278. package/docs/TROUBLESHOOTING.ko.md +0 -366
  279. package/docs/TROUBLESHOOTING.md +0 -722
  280. package/docs/VALIDATOR_API.ko.md +0 -324
  281. package/docs/VALIDATOR_API.md +0 -324
  282. package/docs/YOLO_SYSTEM_GUIDE.ko.md +0 -542
  283. package/docs/YOLO_SYSTEM_GUIDE.md +0 -542
  284. package/docs/designs/AI_PERSONA_SYSTEM_DESIGN.md +0 -516
  285. package/docs/designs/API_DOCUMENTATION.md +0 -932
  286. package/docs/designs/API_REFERENCE.md +0 -979
  287. package/docs/designs/Enhanced_Installation_Flow_Design.md +0 -498
  288. package/docs/designs/aiwf-metadata-system-prd.md +0 -127
  289. package/docs/designs/offline-template-cache.md +0 -323
  290. package/docs/designs/persona-aware-compression.md +0 -168
  291. package/docs/guides/ai-personas-guide-ko.md +0 -239
  292. package/docs/guides/ai-personas-guide.md +0 -239
  293. package/docs/guides/checkpoint-system-guide-ko.md +0 -356
  294. package/docs/guides/checkpoint-system-guide.md +0 -356
  295. package/docs/guides/context-compression-guide-ko.md +0 -313
  296. package/docs/guides/context-compression-guide.md +0 -313
  297. package/docs/guides/independent-sprint-guide-ko.md +0 -321
  298. package/docs/guides/independent-sprint-guide.md +0 -321
  299. package/rules/global/aiwf-code-style-guide.md +0 -30
  300. package/rules/global/aiwf-coding-principles.md +0 -33
  301. package/rules/global/aiwf-development-process.md +0 -41
  302. package/rules/global/aiwf-global-rules.md +0 -84
  303. package/rules/manual/aiwf-generate-plan-docs.md +0 -280
  304. package/scripts/run-integration-tests.js +0 -317
  305. package/scripts/update-file-lists.js +0 -267
  306. package/scripts/validate-commands.js +0 -254
  307. package/src/cli/index.js +0 -184
  308. package/src/commands/sprint-independent.js +0 -393
  309. package/src/commands/state.js +0 -1164
  310. package/src/commands/yolo-config.js +0 -502
  311. package/src/config/file-lists.js +0 -147
  312. package/src/config/yolo-config-template.yaml +0 -168
  313. package/src/lib/backup-manager.js +0 -271
  314. package/src/lib/file-downloader.js +0 -304
  315. package/src/lib/installer.js +0 -1270
  316. package/src/lib/rollback-manager.js +0 -418
  317. package/src/lib/validator.js +0 -376
  318. package/src/utils/checkpoint-manager.js +0 -435
  319. package/src/utils/language-utils.js +0 -331
  320. package/src/utils/messages.js +0 -190
  321. package/src/utils/paths.js +0 -112
@@ -1,418 +0,0 @@
1
- import fs from 'fs/promises';
2
- import path from 'path';
3
- import ora from 'ora';
4
- import chalk from 'chalk';
5
- import { getMessages } from '../utils/messages.js';
6
- import { getToolDirectory as getToolDirectoryPath } from '../utils/paths.js';
7
-
8
- // Backup file patterns for each tool
9
- const BACKUP_PATTERNS = {
10
- claudeCode: /^claude-commands-aiwf-.*\.bak$/,
11
- geminiCLI: /^gemini-prompts-aiwf-.*\.bak$/,
12
- cursor: /^cursor-rules-.*\.bak$/,
13
- windsurf: /^windsurf-rules-.*\.bak$/,
14
- aiwf: /^aiwf-.*\.bak$/
15
- };
16
-
17
- // Backup file prefixes
18
- const BACKUP_PREFIXES = {
19
- claudeCode: 'claude-commands-aiwf-',
20
- geminiCLI: 'gemini-prompts-aiwf-',
21
- cursor: 'cursor-rules-',
22
- windsurf: 'windsurf-rules-',
23
- aiwf: 'aiwf-'
24
- };
25
-
26
- // Tool names for localization
27
- const TOOL_NAMES = {
28
- ko: {
29
- aiwf: 'AIWF μ½”μ–΄ ꡬ쑰',
30
- claudeCode: 'Claude Code λͺ…λ Ήμ–΄',
31
- 'claude-code': 'Claude Code λͺ…λ Ήμ–΄',
32
- geminiCLI: 'Gemini-CLI ν”„λ‘¬ν”„νŠΈ',
33
- 'gemini-cli': 'Gemini-CLI ν”„λ‘¬ν”„νŠΈ',
34
- cursor: 'Cursor IDE κ·œμΉ™',
35
- windsurf: 'Windsurf IDE κ·œμΉ™'
36
- },
37
- en: {
38
- aiwf: 'AIWF Core Structure',
39
- claudeCode: 'Claude Code Commands',
40
- 'claude-code': 'Claude Code Commands',
41
- geminiCLI: 'Gemini-CLI Prompts',
42
- 'gemini-cli': 'Gemini-CLI Prompts',
43
- cursor: 'Cursor IDE Rules',
44
- windsurf: 'Windsurf IDE Rules'
45
- }
46
- };
47
-
48
- /**
49
- * Get tool directory path
50
- * @param {string} tool - Tool name
51
- * @returns {string|null} Directory path or null
52
- */
53
- export function getToolDirectory(tool) {
54
- return getToolDirectoryPath(tool);
55
- }
56
-
57
- /**
58
- * Get localized tool name
59
- * @param {string} tool - Tool name
60
- * @param {string} language - Language code
61
- * @returns {string} Localized tool name
62
- */
63
- export function getToolName(tool, language) {
64
- return TOOL_NAMES[language]?.[tool] || tool;
65
- }
66
-
67
- /**
68
- * Restore original path from backup filename
69
- * @param {string} backupFileName - Backup file name
70
- * @param {string} tool - Tool name
71
- * @returns {string|null} Original path or null
72
- */
73
- function restoreOriginalPath(backupFileName, tool) {
74
- const baseDir = getToolDirectory(tool);
75
- if (!baseDir) return null;
76
-
77
- let originalFileName = backupFileName;
78
-
79
- // Remove tool-specific prefix
80
- const prefix = BACKUP_PREFIXES[tool];
81
- if (prefix && originalFileName.startsWith(prefix)) {
82
- originalFileName = originalFileName.substring(prefix.length);
83
- }
84
-
85
- // Remove .bak extension
86
- if (originalFileName.endsWith('.bak')) {
87
- originalFileName = originalFileName.substring(0, originalFileName.length - 4);
88
- }
89
-
90
- // Replace hyphens with slashes (subdirectory structure)
91
- originalFileName = originalFileName.replace(/-/g, '/');
92
-
93
- return path.join(baseDir, originalFileName);
94
- }
95
-
96
- /**
97
- * Get backup files for a specific tool
98
- * @param {string} tool - Tool name
99
- * @param {string} backupDir - Backup directory path
100
- * @returns {Promise<Array>} Array of backup file info
101
- */
102
- async function getBackupFilesForTool(tool, backupDir) {
103
- const toolBackupFiles = [];
104
-
105
- try {
106
- const backupFiles = await fs.readdir(backupDir);
107
- const pattern = BACKUP_PATTERNS[tool];
108
-
109
- if (pattern) {
110
- const matchingFiles = backupFiles.filter(file => pattern.test(file));
111
- for (const file of matchingFiles) {
112
- toolBackupFiles.push({
113
- backupFile: path.join(backupDir, file),
114
- originalPath: restoreOriginalPath(file, tool)
115
- });
116
- }
117
- }
118
- } catch (error) {
119
- // Backup directory doesn't exist or can't be read
120
- }
121
-
122
- return toolBackupFiles;
123
- }
124
-
125
- /**
126
- * Restore a single backup file
127
- * @param {Object} backup - Backup file info
128
- * @returns {Promise<boolean>} Success status
129
- */
130
- async function restoreBackupFile(backup) {
131
- try {
132
- // Ensure target directory exists
133
- const targetDir = path.dirname(backup.originalPath);
134
- await fs.mkdir(targetDir, { recursive: true });
135
-
136
- // Copy backup file to original location
137
- await fs.copyFile(backup.backupFile, backup.originalPath);
138
- return true;
139
- } catch (error) {
140
- return false;
141
- }
142
- }
143
-
144
- /**
145
- * Rollback a specific tool
146
- * @param {string} tool - Tool name
147
- * @param {string} backupDir - Backup directory path
148
- * @param {string} language - Language code
149
- * @returns {Promise<Object>} Rollback result
150
- */
151
- export async function rollbackTool(tool, backupDir, language = 'ko') {
152
- const messages = getMessages(language);
153
- const spinner = ora(
154
- language === 'ko' ? `${tool} 도ꡬλ₯Ό λ‘€λ°±ν•˜λŠ” 쀑...` : `Rolling back ${tool}...`
155
- ).start();
156
-
157
- try {
158
- // 1. Remove tool directory
159
- const toolDir = getToolDirectory(tool);
160
- if (toolDir) {
161
- const dirExists = await fs
162
- .access(toolDir)
163
- .then(() => true)
164
- .catch(() => false);
165
- if (dirExists) {
166
- await fs.rm(toolDir, { recursive: true, force: true });
167
- spinner.text =
168
- language === 'ko' ? `${tool} 디렉토리 μ‚­μ œ μ™„λ£Œ` : `${tool} directory removed`;
169
- }
170
- }
171
-
172
- // 2. Restore from backup
173
- const backupFiles = await getBackupFilesForTool(tool, backupDir);
174
- let restoredCount = 0;
175
-
176
- for (const backup of backupFiles) {
177
- const restored = await restoreBackupFile(backup);
178
- if (restored) {
179
- restoredCount++;
180
- }
181
- }
182
-
183
- if (restoredCount > 0) {
184
- spinner.succeed(
185
- chalk.green(
186
- language === 'ko'
187
- ? `${tool} λ‘€λ°± μ™„λ£Œ (${restoredCount}개 파일 볡원)`
188
- : `${tool} rolled back successfully (${restoredCount} files restored)`
189
- )
190
- );
191
- return { success: true, restoredCount };
192
- } else {
193
- spinner.warn(
194
- chalk.yellow(
195
- language === 'ko'
196
- ? `${tool} λ‘€λ°±: 볡원할 λ°±μ—… 파일이 μ—†μŒ`
197
- : `${tool} rollback: No backup files to restore`
198
- )
199
- );
200
- return { success: true, restoredCount: 0 };
201
- }
202
- } catch (error) {
203
- spinner.fail(
204
- chalk.red(
205
- language === 'ko'
206
- ? `${tool} λ‘€λ°± μ‹€νŒ¨: ${error.message}`
207
- : `Failed to rollback ${tool}: ${error.message}`
208
- )
209
- );
210
- return { success: false, error: error.message };
211
- }
212
- }
213
-
214
- /**
215
- * Enhanced rollback function with backup directory
216
- * @param {string} tool - Tool name
217
- * @param {string} backupDir - Backup directory path
218
- * @param {string} language - Language code
219
- * @returns {Promise<boolean>} Success status
220
- */
221
- export async function rollbackToolEnhanced(tool, backupDir, language = 'ko') {
222
- const spinner = ora(`Rolling back ${tool}...`).start();
223
-
224
- try {
225
- // Get tool directory mapping
226
- const toolDir = getToolDirectory(tool);
227
- if (!toolDir) {
228
- spinner.fail(`Unknown tool: ${tool}`);
229
- return false;
230
- }
231
-
232
- // Remove installed directory
233
- try {
234
- await fs.access(toolDir);
235
- await fs.rm(toolDir, { recursive: true, force: true });
236
- spinner.text = `Removed ${toolDir}`;
237
- } catch (error) {
238
- // Directory doesn't exist, skip
239
- }
240
-
241
- // Restore from backup if available
242
- if (backupDir) {
243
- const backupFiles = await getBackupFilesForTool(tool, backupDir);
244
- for (const backup of backupFiles) {
245
- await restoreBackupFile(backup);
246
- spinner.text = `Restored ${backup.originalPath}`;
247
- }
248
- }
249
-
250
- spinner.succeed(`${tool} rolled back successfully`);
251
- return true;
252
- } catch (error) {
253
- spinner.fail(`Failed to rollback ${tool}: ${error.message}`);
254
- return false;
255
- }
256
- }
257
-
258
- /**
259
- * Generate installation report
260
- * @param {Object} validationResults - Validation results
261
- * @param {string} language - Language code
262
- * @param {string} installationType - Installation type
263
- */
264
- export function generateInstallationReport(
265
- validationResults,
266
- language,
267
- installationType = 'install'
268
- ) {
269
- const messages = getMessages(language);
270
-
271
- // Header
272
- console.log(chalk.blue.bold('\n' + '='.repeat(60)));
273
- console.log(
274
- chalk.blue.bold(
275
- language === 'ko'
276
- ? 'πŸ” AIWF μ„€μΉ˜ 검증 및 리포트'
277
- : 'πŸ” AIWF Installation Validation & Report'
278
- )
279
- );
280
- console.log(chalk.blue.bold('='.repeat(60)));
281
-
282
- // Installation type
283
- const installTypeText = {
284
- install: language === 'ko' ? 'μƒˆ μ„€μΉ˜' : 'Fresh Installation',
285
- update: language === 'ko' ? 'μ—…λ°μ΄νŠΈ' : 'Update',
286
- reinstall: language === 'ko' ? 'μž¬μ„€μΉ˜' : 'Reinstallation'
287
- };
288
- console.log(
289
- chalk.gray(
290
- `μ„€μΉ˜ μœ ν˜• / Installation Type: ${installTypeText[installationType] || installTypeText.install}`
291
- )
292
- );
293
- console.log(chalk.gray(`검증 μ‹œκ°„ / Validation Time: ${new Date().toLocaleString()}`));
294
-
295
- // Overall summary
296
- const { overall } = validationResults;
297
- const statusIcon = overall.success ? 'βœ…' : '❌';
298
- const statusColor = overall.success ? chalk.green : chalk.red;
299
-
300
- console.log(
301
- statusColor(
302
- `\n${statusIcon} 전체 μƒνƒœ / Overall Status: ${overall.success ? 'PASSED' : 'FAILED'}`
303
- )
304
- );
305
- console.log(chalk.gray(` κ²€μ¦ν•œ 도ꡬ / Tools Checked: ${overall.toolsChecked}`));
306
- console.log(chalk.gray(` μ„±κ³΅ν•œ 도ꡬ / Tools Passed: ${overall.toolsPassed}`));
307
-
308
- if (overall.toolsFailed > 0) {
309
- console.log(chalk.red(` μ‹€νŒ¨ν•œ 도ꡬ / Tools Failed: ${overall.toolsFailed}`));
310
- console.log(chalk.red(` 총 이슈 수 / Total Issues: ${overall.totalIssues}`));
311
- }
312
-
313
- // Individual tool results
314
- console.log(chalk.blue('\n=== κ°œλ³„ 도ꡬ κ²°κ³Ό / Individual Tool Results ==='));
315
-
316
- for (const [toolName, result] of Object.entries(validationResults.tools)) {
317
- const toolIcon = result.success ? 'βœ…' : '❌';
318
- const toolColor = result.success ? chalk.green : chalk.red;
319
-
320
- console.log(toolColor(`\n${toolIcon} ${result.description} (${toolName})`));
321
- console.log(chalk.gray(` 디렉토리 / Directory: ${result.baseDir}`));
322
- console.log(chalk.gray(` 파일 수 / Files Found: ${result.checks.fileCount}`));
323
- console.log(
324
- chalk.gray(` 총 크기 / Total Size: ${(result.checks.totalSize / 1024).toFixed(2)} KB`)
325
- );
326
-
327
- if (result.checks.issues.length > 0) {
328
- console.log(chalk.red(` 이슈 / Issues:`));
329
- for (const issue of result.checks.issues) {
330
- console.log(chalk.red(` β€’ ${issue}`));
331
- }
332
- }
333
-
334
- if (result.checks.requiredFiles.length > 0) {
335
- console.log(chalk.gray(` ν•„μˆ˜ 파일 / Required Files:`));
336
- for (const fileCheck of result.checks.requiredFiles) {
337
- const fileIcon = fileCheck.valid ? 'βœ…' : '❌';
338
- const fileColor = fileCheck.valid ? chalk.gray : chalk.red;
339
- console.log(
340
- fileColor(
341
- ` ${fileIcon} ${fileCheck.file} (${(fileCheck.size / 1024).toFixed(2)} KB)`
342
- )
343
- );
344
- }
345
- }
346
- }
347
-
348
- // Recommendations
349
- console.log(chalk.blue('\n=== ꢌμž₯사항 / Recommendations ==='));
350
- if (overall.success) {
351
- console.log(chalk.green('πŸŽ‰ λͺ¨λ“  도ꡬ가 μ˜¬λ°”λ₯΄κ²Œ μ„€μΉ˜λ˜μ–΄ κ²€μ¦λ˜μ—ˆμŠ΅λ‹ˆλ‹€!'));
352
- console.log(chalk.green('πŸŽ‰ All tools are properly installed and validated!'));
353
- console.log(chalk.blue('\nλ‹€μŒ 단계 / Next Steps:'));
354
- console.log(chalk.white(' 1. Claude Codeμ—μ„œ ν”„λ‘œμ νŠΈλ₯Ό μ—΄μ–΄λ³΄μ„Έμš”'));
355
- console.log(chalk.white(' 2. /project:aiwf:initialize λͺ…λ Ήμ–΄λ‘œ ν”„λ‘œμ νŠΈλ₯Ό μ΄ˆκΈ°ν™”ν•˜μ„Έμš”'));
356
- console.log(chalk.white(' 3. ν”„λ‘œμ νŠΈ 관리λ₯Ό μ‹œμž‘ν•˜μ„Έμš”!'));
357
- } else {
358
- console.log(chalk.yellow('⚠️ 일뢀 μ΄μŠˆκ°€ λ°œκ²¬λ˜μ—ˆμŠ΅λ‹ˆλ‹€. μœ„μ˜ 세뢀사항을 ν™•μΈν•˜μ„Έμš”.'));
359
- console.log(chalk.yellow('⚠️ Some issues were found. See details above.'));
360
-
361
- // Solutions for failed tools
362
- const failedTools = Object.entries(validationResults.tools)
363
- .filter(([_, result]) => !result.success)
364
- .map(([tool, _]) => tool);
365
-
366
- if (failedTools.length > 0) {
367
- console.log(chalk.blue('\nν•΄κ²° λ°©μ•ˆ / Solutions:'));
368
- console.log(chalk.yellow(' β€’ 전체 μž¬μ„€μΉ˜λ₯Ό μ‹œλ„ν•΄λ³΄μ„Έμš”'));
369
- console.log(chalk.yellow(' β€’ μ‹€νŒ¨ν•œ λ„κ΅¬λ§Œ λ‘€λ°± ν›„ λ‹€μ‹œ μ„€μΉ˜ν•˜μ„Έμš”'));
370
- console.log(chalk.yellow(' β€’ λ„€νŠΈμ›Œν¬ 연결을 ν™•μΈν•˜κ³  λ‹€μ‹œ μ‹œλ„ν•˜μ„Έμš”'));
371
- }
372
- }
373
-
374
- console.log(chalk.blue.bold('\n' + '='.repeat(60)));
375
- }
376
-
377
- /**
378
- * Enhanced installation report generation
379
- * @param {Object} results - Installation results
380
- * @param {string} language - Language code
381
- */
382
- export function generateInstallationReportEnhanced(results, language) {
383
- const msg = getMessages(language);
384
-
385
- console.log(
386
- '\n' + chalk.bold(language === 'ko' ? 'πŸ“‹ μ„€μΉ˜ 리포트' : 'πŸ“‹ Installation Report')
387
- );
388
- console.log('─'.repeat(50));
389
-
390
- if (results.success.length > 0) {
391
- console.log(
392
- chalk.green(
393
- language === 'ko' ? 'βœ… μ„±κ³΅μ μœΌλ‘œ μ„€μΉ˜λœ 도ꡬ:' : 'βœ… Successfully Installed Tools:'
394
- )
395
- );
396
- results.success.forEach(tool => {
397
- console.log(chalk.green(` βœ“ ${getToolName(tool, language)}`));
398
- });
399
- }
400
-
401
- if (results.failed.length > 0) {
402
- console.log(
403
- chalk.red(language === 'ko' ? '\n❌ μ„€μΉ˜ μ‹€νŒ¨ν•œ 도ꡬ:' : '\n❌ Failed to Install:')
404
- );
405
- results.failed.forEach(({ tool, reason }) => {
406
- console.log(chalk.red(` βœ— ${getToolName(tool, language)}: ${reason}`));
407
- });
408
- }
409
-
410
- if (results.warnings.length > 0) {
411
- console.log(chalk.yellow(language === 'ko' ? '\n⚠️ 경고:' : '\n⚠️ Warnings:'));
412
- results.warnings.forEach(warning => {
413
- console.log(chalk.yellow(` ⚠ ${warning}`));
414
- });
415
- }
416
-
417
- console.log('─'.repeat(50));
418
- }