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,254 +0,0 @@
1
- #!/usr/bin/env node
2
-
3
- /**
4
- * AIWF 명령어 파일 일관성 검증 도구
5
- *
6
- * 이 스크립트는 다음을 검증합니다:
7
- * 1. 한국어/영어 명령어 파일 간의 일관성
8
- * 2. 명령어 파일명과 실제 명령어명의 매칭
9
- * 3. 누락된 명령어 파일 식별
10
- * 4. GitHub URL 참조 일관성
11
- */
12
-
13
- import fs from 'fs/promises';
14
- import path from 'path';
15
-
16
- // 색상 출력을 위한 ANSI 코드
17
- const colors = {
18
- reset: '\x1b[0m',
19
- red: '\x1b[31m',
20
- green: '\x1b[32m',
21
- yellow: '\x1b[33m',
22
- blue: '\x1b[34m',
23
- cyan: '\x1b[36m',
24
- gray: '\x1b[90m'
25
- };
26
-
27
- // chalk 대체 함수
28
- const chalk = {
29
- red: (text) => `${colors.red}${text}${colors.reset}`,
30
- green: (text) => `${colors.green}${text}${colors.reset}`,
31
- yellow: (text) => `${colors.yellow}${text}${colors.reset}`,
32
- blue: (text) => `${colors.blue}${text}${colors.reset}`,
33
- cyan: (text) => `${colors.cyan}${text}${colors.reset}`,
34
- gray: (text) => `${colors.gray}${text}${colors.reset}`,
35
- bold: (text) => `\x1b[1m${text}${colors.reset}`
36
- };
37
-
38
- const KO_COMMANDS_DIR = 'claude-code/aiwf/ko/.claude/commands/aiwf';
39
- const EN_COMMANDS_DIR = 'claude-code/aiwf/en/.claude/commands/aiwf';
40
-
41
- // 명령어 파일 메타데이터 추출
42
- async function extractCommandMetadata(filePath) {
43
- try {
44
- const content = await fs.readFile(filePath, 'utf-8');
45
- const lines = content.split('\n');
46
-
47
- // YAML frontmatter 찾기
48
- if (lines[0] === '---') {
49
- const endIndex = lines.findIndex((line, index) => index > 0 && line === '---');
50
- if (endIndex !== -1) {
51
- const frontmatter = lines.slice(1, endIndex).join('\n');
52
- // 간단한 YAML 파싱 (name 추출)
53
- const nameMatch = frontmatter.match(/name:\s*["']?([^"'\n]+)["']?/);
54
- const descMatch = frontmatter.match(/description:\s*["']?([^"'\n]+)["']?/);
55
-
56
- return {
57
- name: nameMatch ? nameMatch[1] : null,
58
- description: descMatch ? descMatch[1] : null,
59
- hasFrontmatter: true
60
- };
61
- }
62
- }
63
-
64
- // 첫 번째 헤더에서 명령어명 추출
65
- const headerMatch = content.match(/^#\s+(.+)/m);
66
- return {
67
- name: headerMatch ? headerMatch[1] : null,
68
- description: null,
69
- hasFrontmatter: false
70
- };
71
- } catch (error) {
72
- return { error: error.message };
73
- }
74
- }
75
-
76
- // 디렉토리의 모든 명령어 파일 스캔
77
- async function scanCommandsDirectory(dir) {
78
- const commands = {};
79
-
80
- try {
81
- const files = await fs.readdir(dir);
82
- const mdFiles = files.filter(file => file.endsWith('.md'));
83
-
84
- for (const file of mdFiles) {
85
- const filePath = path.join(dir, file);
86
- const metadata = await extractCommandMetadata(filePath);
87
- commands[file] = {
88
- ...metadata,
89
- path: filePath
90
- };
91
- }
92
- } catch (error) {
93
- console.error(chalk.red(`Error scanning directory ${dir}: ${error.message}`));
94
- }
95
-
96
- return commands;
97
- }
98
-
99
- // GitHub URL 참조 검증
100
- async function validateGitHubUrls(filePath) {
101
- try {
102
- const content = await fs.readFile(filePath, 'utf-8');
103
- const moonklabsRefs = content.match(/moonklabs\/aiwf/g) || [];
104
- const aiwfRefs = content.match(/aiwf\/aiwf/g) || [];
105
-
106
- return {
107
- moonklabsCount: moonklabsRefs.length,
108
- aiwfCount: aiwfRefs.length,
109
- hasInconsistentUrls: moonklabsRefs.length > 0
110
- };
111
- } catch (error) {
112
- return { error: error.message };
113
- }
114
- }
115
-
116
- // 명령어 파일 검증
117
- async function validateCommands() {
118
- console.log(chalk.blue(chalk.bold('\n🔍 AIWF Command Files Validation\n')));
119
- console.log('='.repeat(50));
120
-
121
- // 1. 디렉토리 스캔
122
- console.log(chalk.cyan('\n1. 디렉토리 스캔 중...'));
123
- const koCommands = await scanCommandsDirectory(KO_COMMANDS_DIR);
124
- const enCommands = await scanCommandsDirectory(EN_COMMANDS_DIR);
125
-
126
- console.log(chalk.gray(` 한국어 명령어: ${Object.keys(koCommands).length}개`));
127
- console.log(chalk.gray(` 영어 명령어: ${Object.keys(enCommands).length}개`));
128
-
129
- // 2. 명령어 일관성 검증
130
- console.log(chalk.cyan('\n2. 명령어 일관성 검증 중...'));
131
-
132
- const allFiles = new Set([...Object.keys(koCommands), ...Object.keys(enCommands)]);
133
- const issues = [];
134
-
135
- for (const fileName of allFiles) {
136
- const koExists = koCommands[fileName];
137
- const enExists = enCommands[fileName];
138
-
139
- if (!koExists) {
140
- issues.push({
141
- type: 'missing_ko',
142
- file: fileName,
143
- message: `한국어 버전 누락: ${fileName}`
144
- });
145
- }
146
-
147
- if (!enExists) {
148
- issues.push({
149
- type: 'missing_en',
150
- file: fileName,
151
- message: `영어 버전 누락: ${fileName}`
152
- });
153
- }
154
-
155
- // 명령어명 일관성 검증 (언어가 다르므로 생략)
156
- if (koExists && enExists && koExists.name && enExists.name) {
157
- // 언어가 다르므로 명령어명이 다른 것은 정상
158
- // 이 검증은 제거
159
- }
160
- }
161
-
162
- // 3. update_docs 명령어 검증
163
- console.log(chalk.cyan('\n3. update_docs 명령어 검증 중...'));
164
-
165
- const updateDocsFiles = [
166
- 'aiwf_update_docs.md',
167
- 'aiwf_docs.md'
168
- ];
169
-
170
- const updateDocsStatus = {};
171
- for (const file of updateDocsFiles) {
172
- updateDocsStatus[file] = {
173
- ko: !!koCommands[file],
174
- en: !!enCommands[file]
175
- };
176
- }
177
-
178
- // 4. GitHub URL 검증
179
- console.log(chalk.cyan('\n4. GitHub URL 참조 검증 중...'));
180
-
181
- const urlIssues = [];
182
- for (const [fileName, command] of Object.entries({ ...koCommands, ...enCommands })) {
183
- if (command.path) {
184
- const urlCheck = await validateGitHubUrls(command.path);
185
- if (urlCheck.hasInconsistentUrls) {
186
- urlIssues.push({
187
- file: fileName,
188
- path: command.path,
189
- moonklabsCount: urlCheck.moonklabsCount
190
- });
191
- }
192
- }
193
- }
194
-
195
- // 결과 출력
196
- console.log(chalk.blue(chalk.bold('\n📋 검증 결과\n')));
197
- console.log('='.repeat(50));
198
-
199
- // 일관성 이슈
200
- if (issues.length > 0) {
201
- console.log(chalk.red(`\n❌ 발견된 이슈 (${issues.length}개):`));
202
- for (const issue of issues) {
203
- console.log(chalk.red(` • ${issue.message}`));
204
- }
205
- } else {
206
- console.log(chalk.green('\n✅ 명령어 일관성 검증 통과'));
207
- }
208
-
209
- // update_docs 상태
210
- console.log(chalk.blue('\n📝 update_docs 명령어 상태:'));
211
- for (const [file, status] of Object.entries(updateDocsStatus)) {
212
- const koIcon = status.ko ? '✅' : '❌';
213
- const enIcon = status.en ? '✅' : '❌';
214
- console.log(chalk.gray(` ${file}: KO ${koIcon} EN ${enIcon}`));
215
- }
216
-
217
- // GitHub URL 이슈
218
- if (urlIssues.length > 0) {
219
- console.log(chalk.yellow(`\n⚠️ GitHub URL 이슈 (${urlIssues.length}개):`));
220
- for (const issue of urlIssues) {
221
- console.log(chalk.yellow(` • ${issue.file}: moonklabs/aiwf 참조 ${issue.moonklabsCount}개`));
222
- }
223
- } else {
224
- console.log(chalk.green('\n✅ GitHub URL 참조 검증 통과'));
225
- }
226
-
227
- // 요약
228
- console.log(chalk.blue(chalk.bold('\n📊 요약:')));
229
- console.log(chalk.gray(` 총 명령어 파일: ${allFiles.size}개`));
230
- console.log(chalk.gray(` 한국어/영어 쌍: ${Math.min(Object.keys(koCommands).length, Object.keys(enCommands).length)}개`));
231
- console.log(chalk.gray(` 일관성 이슈: ${issues.length}개`));
232
- console.log(chalk.gray(` URL 이슈: ${urlIssues.length}개`));
233
-
234
- const overallSuccess = issues.length === 0 && urlIssues.length === 0;
235
- console.log(overallSuccess ?
236
- chalk.green('\n🎉 모든 검증 통과!') :
237
- chalk.red('\n⚠️ 일부 이슈가 발견되었습니다.')
238
- );
239
-
240
- return {
241
- success: overallSuccess,
242
- issues,
243
- urlIssues,
244
- updateDocsStatus,
245
- totalFiles: allFiles.size
246
- };
247
- }
248
-
249
- // 메인 실행
250
- if (import.meta.url === `file://${process.argv[1]}`) {
251
- validateCommands().catch(console.error);
252
- }
253
-
254
- export { validateCommands };
package/src/cli/index.js DELETED
@@ -1,184 +0,0 @@
1
- #!/usr/bin/env node
2
-
3
- import { program } from 'commander';
4
- import chalk from 'chalk';
5
- import figlet from 'figlet';
6
- import { installAIWF } from '../lib/installer.js';
7
- import StateCommand from '../commands/state.js';
8
- import { createYoloConfig, createInteractiveYoloConfig, showYoloConfig } from '../commands/yolo-config.js';
9
-
10
- // Parse version from package.json
11
- import { readFileSync } from 'fs';
12
- import { fileURLToPath } from 'url';
13
- import { dirname, join } from 'path';
14
-
15
- const __filename = fileURLToPath(import.meta.url);
16
- const __dirname = dirname(__filename);
17
- const packageJson = JSON.parse(readFileSync(join(__dirname, '../../package.json'), 'utf8'));
18
-
19
- // Main program setup
20
- program
21
- .name('aiwf')
22
- .version(packageJson.version)
23
- .description('AIWF - AI Workflow Framework');
24
-
25
- // Install command
26
- program
27
- .command('install')
28
- .description('Install AIWF framework')
29
- .option('-f, --force', 'Force complete reinstall without prompts')
30
- .option('--docs-only', 'Install AIWF documentation folder only')
31
- .option('--claude-only', 'Install Claude Code commands and agents only')
32
- .option('--windsurf-only', 'Install Windsurf rules only')
33
- .option('--cursor-only', 'Install Cursor rules only')
34
- .option('--all', 'Install all components (default behavior)')
35
- .option('--interactive', 'Interactive installation with option selection')
36
- .action((options) => {
37
- // Convert CLI options to selectedOptions array
38
- const selectedOptions = [];
39
-
40
- if (options.docsOnly) {
41
- selectedOptions.push('aiwf-docs');
42
- } else if (options.claudeOnly) {
43
- selectedOptions.push('claude-code-commands');
44
- } else if (options.windsurfOnly) {
45
- selectedOptions.push('windsurf-rules');
46
- } else if (options.cursorOnly) {
47
- selectedOptions.push('cursor-rules');
48
- } else if (options.all) {
49
- selectedOptions.push('aiwf-docs', 'claude-code-commands', 'windsurf-rules', 'cursor-rules');
50
- }
51
-
52
- // Pass selected options to installer
53
- installAIWF({
54
- ...options,
55
- debugLog: true,
56
- preselectedOptions: selectedOptions.length > 0 ? selectedOptions : null
57
- });
58
- });
59
-
60
- // State management commands
61
- const state = program.command('state');
62
- state.description('Manage task state index / 태스크 상태 인덱스 관리');
63
-
64
- state
65
- .command('init')
66
- .description('Initialize state index / 상태 인덱스 초기화')
67
- .action(async () => {
68
- const stateCmd = new StateCommand();
69
- await stateCmd.execute(['init']);
70
- });
71
-
72
- state
73
- .command('update')
74
- .alias('u')
75
- .description('Update state index / 상태 인덱스 업데이트')
76
- .action(async () => {
77
- const stateCmd = new StateCommand();
78
- await stateCmd.execute(['update']);
79
- });
80
-
81
- state
82
- .command('show')
83
- .alias('s')
84
- .description('Show current state / 현재 상태 표시')
85
- .action(async () => {
86
- const stateCmd = new StateCommand();
87
- await stateCmd.execute(['show']);
88
- });
89
-
90
- state
91
- .command('focus <task-id>')
92
- .alias('f')
93
- .description('Focus on a task / 태스크에 포커스')
94
- .action(async (taskId) => {
95
- const stateCmd = new StateCommand();
96
- await stateCmd.execute(['focus', taskId]);
97
- });
98
-
99
- state
100
- .command('complete <task-id>')
101
- .alias('c')
102
- .description('Mark task as completed / 태스크 완료 처리')
103
- .action(async (taskId) => {
104
- const stateCmd = new StateCommand();
105
- await stateCmd.execute(['complete', taskId]);
106
- });
107
-
108
- state
109
- .command('next')
110
- .alias('n')
111
- .description('Suggest next actions / 다음 작업 제안')
112
- .action(async () => {
113
- const stateCmd = new StateCommand();
114
- await stateCmd.execute(['next']);
115
- });
116
-
117
- // YOLO configuration commands
118
- const yoloConfig = program.command('yolo-config');
119
- yoloConfig.description('YOLO configuration management / YOLO 설정 관리');
120
-
121
- yoloConfig
122
- .command('init')
123
- .description('Initialize YOLO configuration / YOLO 설정 초기화')
124
- .option('-f, --force', 'Force overwrite existing config / 기존 설정 덮어쓰기')
125
- .action(async (options) => {
126
- try {
127
- const result = await createYoloConfig(options);
128
- if (result.success) {
129
- console.log(chalk.green('✅ YOLO 설정이 초기화되었습니다!'));
130
- console.log(`📁 위치: ${chalk.cyan(result.configPath)}`);
131
- } else if (result.skipped) {
132
- console.log(chalk.yellow('⏭️ 설정 파일이 이미 존재합니다.'));
133
- }
134
- } catch (error) {
135
- console.error(chalk.red('❌ YOLO 설정 초기화 실패:'), error.message);
136
- process.exit(1);
137
- }
138
- });
139
-
140
- yoloConfig
141
- .command('wizard')
142
- .alias('interactive')
143
- .description('Interactive YOLO configuration wizard / 대화형 YOLO 설정 마법사')
144
- .action(async () => {
145
- try {
146
- const result = await createInteractiveYoloConfig();
147
- if (!result.success && result.cancelled) {
148
- process.exit(0);
149
- }
150
- } catch (error) {
151
- console.error(chalk.red('❌ YOLO 설정 마법사 실패:'), error.message);
152
- process.exit(1);
153
- }
154
- });
155
-
156
- yoloConfig
157
- .command('show')
158
- .alias('status')
159
- .description('Show current YOLO configuration / 현재 YOLO 설정 확인')
160
- .action(async () => {
161
- try {
162
- await showYoloConfig();
163
- } catch (error) {
164
- console.error(chalk.red('❌ YOLO 설정 확인 실패:'), error.message);
165
- process.exit(1);
166
- }
167
- });
168
-
169
-
170
- // Display ASCII art logo
171
- const aiwfLogo = figlet.textSync('AIWF', {
172
- font: 'ANSI Shadow',
173
- horizontalLayout: 'default',
174
- verticalLayout: 'default',
175
- width: 80,
176
- whitespaceBreak: true
177
- });
178
-
179
- console.log(chalk.magentaBright(aiwfLogo));
180
- console.log(chalk.cyanBright.bold('AI Workflow Framework'));
181
- console.log();
182
-
183
- // Parse command line arguments
184
- program.parse(process.argv);