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
@@ -0,0 +1,84 @@
1
+ # Claude 계획 리뷰 — 방향·범위·우선순위
2
+
3
+ 작성: 2026-10-03. 상태: **AI 리뷰 완료, 휴먼 리뷰 대기**.
4
+
5
+ [검토 대상 계획](../../CLI-PRODUCTIVITY.ko.md), [통합 판단](../../CLAUDE-PLAN-REVIEW-2026-10-03.ko.md).
6
+
7
+ - 실제 CLI: Claude Code `2.1.288`.
8
+ - 세션 ID: `0f7eb76e-d5a5-4859-b6a6-9756fa26af16`.
9
+ - 요청·관측 모델: `claude-sonnet-5-5` (`modelUsage` 확인).
10
+ - 요청 effort: `high`. 결과 JSON에 실제 적용 effort가 없어 관측 effort는 미확인.
11
+ - 검토 당시 계획 SHA256: `426d38f8d52001678083979ca7418c64c6d0b780fa8ef504aec1d6aa5c6b7ab8`.
12
+ - 실행 결과: exit 0, `subtype: success`, `is_error: false`, 권한 거부 0, stderr 0 bytes.
13
+ - 도구: `Glob, Grep, Read`. 원문 결과를 별도 수정 없이 아래에 옮겼다. 행 번호는 위 hash의 계획을 기준으로 한다.
14
+ - 셸·테스트 실행 및 파일 편집은 리뷰 세션에 제공하지 않았다. 모델 리뷰는 자동 테스트 통과나 휴먼 승인이 아니다.
15
+
16
+ 아래는 최종 리뷰 답변이며, 프롬프트·전체 세션 JSON·실행 로그는 저장소 밖의 비공개 임시 경로에 유지한다.
17
+
18
+ ---
19
+
20
+ # CLI-PRODUCTIVITY.ko.md 계획 리뷰 (review-1: 목적·범위·우선순위·도입 부담)
21
+
22
+ ## 결론: 조건부 적합
23
+
24
+ 방향은 맞습니다. 현재 도구로 실제 UC 하나를 먼저 돌리고, 병목이 확인될 때만 자동화한다는 순서입니다. 다만 문서 본문은 그 순서를 따르지 않고 `verify`, receipt, runner의 설계를 먼저 상세히 씁니다. 파일럿의 종료·확장 조건이 없어서 "관찰된 병목이 있을 때만 확장"이라는 원칙이 실제로는 작동하지 않습니다. 아래 P1과 P2를 고치면 적합입니다. 이견이 없는 부분은 "유지할 강점"에 적었습니다.
25
+
26
+ ## 지적
27
+
28
+ ### P1. 파일럿이 1순위로 선언되지만 설계 항목이 없고, 확장 판단 기준도 없음
29
+ - 사실: 13~16행은 "실제 UC 하나를 먼저 수행하고, 반복한 것을 `verify`로 통합하고, 병목이면 runner를 만든다"고 씁니다. 그런데 본문 섹션은 `첫 단계`(67행), `두 번째 단계`(91행)가 구현 설계이고, 파일럿 섹션(142행)은 대상 예제와 측정값 표만 있습니다.
30
+ - 사실: 측정 표(146~152행)에는 기준선, 임계값, 중단 조건이 없습니다. 154행도 비교 부등식만 주고 수치는 비워 두었습니다. 그래서 "수작업이 반복됐다"를 몇 번·몇 분부터 `verify`나 runner로 올리는지 정해져 있지 않습니다.
31
+ - 사실: 파일럿의 끝은 packet이 `awaiting_review`인 상태입니다(workflow SKILL.md 33행). 목표→명세→구현→검증은 이어지지만, 사람이 packet을 읽고 결과를 어디에 어떻게 남기는지는 계획에 없습니다. DIRECTION.ko.md 9행의 "검토자가 한 묶음으로 읽는다"에 해당하는 단계가 파일럿에서 빠져 있습니다.
32
+ - 사실: 기존 근거 FULL-TEST-2026-10-03.md(25~27행)는 예제 UC의 서비스 범위만 다뤘습니다. UI와 로그인은 제외했고, 소비 프로젝트 파일럿이 아닙니다. 계획 144행도 이를 smoke 용도로만 쓴다고 인정합니다.
33
+ - 영향: 파일럿이 완료됐는지, 결과로 무엇을 만들지 판단할 기준이 없습니다. 결국 이미 상세히 설계된 runner로 자연스럽게 넘어가게 됩니다.
34
+ - 최소 수정안: 파일럿 섹션에 다음 네 가지만 추가합니다. (a) 대상 UC 선정 기준, (b) 기록 양식: 단계별 실제 시간, 수작업 전사 횟수, 누락·오류, 사람 검토자가 packet을 읽은 결과와 재요청 횟수, (c) 확장 트리거: 예를 들어 같은 수작업이 2개 UC에서 반복되고 합계가 N분 이상이면 `verify`로 올린다, (d) 종료 조건: 자동화 없이 충분하면 종료. N 값은 사용자가 정할 휴먼 결정으로 남겨도 됩니다.
35
+
36
+ ### P2. 두 번째 단계가 범용 task runner·증명 체계로 번지는 설계
37
+ - 사실: 93~127행은 receipt 9항목, 입력 manifest와 제외 정책, `fresh/stale/unknown`, 환경 allowlist, 프로세스 취소·Windows `.cmd` 차이, packet v2, v1 투영을 정의합니다. 성공 조건 표(131~138행)도 runner 행에서 정상·실패·미시작·시작 오류·timeout·취소·출력 초과·저장 실패를 모두 요구합니다.
38
+ - 사실: workflow는 "기존 프로젝트 도구와 현재 에이전트를 사용하고 별도 런타임을 설치하지 않는다"고 합니다(SKILL.md 12행). DIRECTION.ko.md 32행도 같은 방향입니다. 반면 111행의 "프로젝트가 명시적으로 정의한 검사 ID"는 소비 프로젝트에 새 검사 정의 설정 형식이 생긴다는 뜻입니다. UC/BR/TC→check 매핑도 필수라고 하는데, 그 형식을 어디에 둘지는 정하지 않았습니다. core는 upstream 바이트 보존 대상이라 `aiwf-core`에는 둘 수 없고, `aiwf-spec`/CLI의 새 계약이 됩니다. 이 소유권 결정이 계획에 없습니다.
39
+ - 추론: 병목이라는 측정이 없는 상태(29행에서 "측정은 없다"고 인정)에서 이 크기의 계약을 먼저 쓰면 도입 부담이 크고 유지비용이 큽니다. 154행의 손익 부등식이 오히려 이 범위를 반대합니다.
40
+ - 영향: 로컬 receipt는 변조 방지가 아니라고 125행이 스스로 인정합니다. 그런데 비용은 증명 체계 수준입니다. 효용 대비 비용이 불균형합니다.
41
+ - 최소 수정안: 두 번째 단계는 "파일럿에서 결과 전사가 병목으로 측정되면 별도 설계 문서를 쓴다"는 한 문단과 트리거만 남깁니다. 세부 receipt·입력 manifest·성공 조건은 부록이나 후속 문서로 옮기거나 "초안·미채택" 표시를 붙입니다. 매핑 형식의 소유 플러그인(`aiwf-spec`)은 한 줄로 명시합니다.
42
+
43
+ ### P2. 유지보수 자동화가 "첫 단계"로 올라와 파일럿 우선순위를 흐림
44
+ - 사실: 근거 표 1순위(26행)는 AIWF 저장소의 한글 검토 보고서입니다. 67~75행 "첫 단계"의 첫 소제목도 "AIWF 저장소를 유지하는 사람"입니다. 같은 문서 18행은 이를 "새 제품 기능의 선행 조건으로 만들지 않는다"고 하므로 순서가 모순됩니다.
45
+ - 사실: 현재 병목은 도구 부재가 아니라 사람 검토 0건(26행의 70개 대기, `human_review` 기록은 manifest.json에서 검색되지 않음)입니다. checker가 이미 원문·번역·해시·링크를 검사합니다. 보고서가 줄이는 것은 검토 준비 시간인데, 검토 자체가 시작되지 않았습니다. 시간 절감 추정도 계획이 "추론·중간"으로 분류했습니다.
46
+ - 사실: CI 연결(75행)은 기존 명령을 재사용하므로 비용이 작고 적절합니다. `.github/`가 없다는 점도 확인했습니다.
47
+ - 영향: 사용자 지침인 "문서 관리 우선"은 만족하지만, 그 해석이 AIWF 저장소 내부 도구로 쏠려 소비 프로젝트 UC의 명세 최신성 확인이라는 제품 핵심이 뒤로 밀립니다.
48
+ - 최소 수정안: 문서 검토 보고서는 `verify`와 같은 단계에 묶지 말고 "사람 검토가 시작되어 준비 시간이 실제 병목으로 기록되면 도입"으로 이동합니다. 기존 CI 연결만 즉시 가능한 항목으로 남깁니다. 1순위 행은 "파일럿"으로 바꿉니다.
49
+
50
+ ### P3. DIRECTION.ko.md의 플러그인 수가 현재 구성과 불일치
51
+ - 사실: DIRECTION.ko.md 40행은 "현재 배포는 6개 core/workflow/stack 플러그인"이라고 합니다. README.ko.md 51~60행과 docs/ko-skills/README.md 19~28행은 위임 애드온 2개를 포함한 8개입니다. 이번 변경이 이 파일의 44행을 수정했지만 40행은 그대로입니다.
52
+ - 영향: 문서 정확성 우선 지침과 어긋납니다.
53
+ - 최소 수정안: 40행을 "8개(위임 애드온 2개는 선택)"로 수정합니다. 한글 검토본이나 manifest 해시와는 무관한 문서라서 영향은 없다고 추정합니다. 확인은 못 했습니다.
54
+
55
+ ### P3. 범위 밖 항목과 시점 고정 검증 기록
56
+ - 사실: 140행의 Node 20 EOL·runtime 지원 정책은 파일럿과 직접 관계가 없습니다. 또 166~177행의 검증 결과는 파일 수정 후에는 오래된 기록이 됩니다. 계획 본문은 SHA256 기준으로 고정되지 않습니다.
57
+ - 최소 수정안: runtime 결정은 별도 항목으로 분리하고 이 문서에서는 한 줄 참조로 줄입니다. 166행 이하는 "작성 시점의 기록, 이후 수정은 재검증 필요"를 명시하거나 대상 해시를 병기합니다.
58
+
59
+ ## 현재 core와 workflow의 책임 경계 평가 (사실)
60
+ - 경계는 일관됩니다. core 7개는 upstream 그대로, `aiwf-spec`은 workflow 1개와 CLI, 별도 모델 런타임은 없습니다(DIRECTION.ko.md 28~34행). 계획 113행의 "모델 호출·교차 CLI는 기존 위임 스킬 계약 유지"도 맞습니다.
61
+ - 모호한 곳은 한 군데입니다. runner가 만드는 UC/BR/TC→check 매핑과 검사 정의의 소유 위치입니다(P2 참조).
62
+
63
+ ## 유지할 강점
64
+ - 새 스킬·명령 수를 성공 지표로 삼지 않고, 문서 누락·오래된 결과 재사용 감소를 기준으로 둔 점(20행).
65
+ - 미구현 상태를 일관되게 표기하고, README·한글 README·aiwf-spec 번역·catalog·DIRECTION에 연결한 점. 승인·merge·배포를 자동화 부수효과에서 제외했고(127행), 완료·승인·수용을 분리했습니다.
66
+ - `exit 0`이 구조 검사 전체 실행을 뜻하지 않는다는 점(`VALIDATOR_MISSING`)을 `incomplete`로 구분한 설계.
67
+ - 병렬 실행, Sprintable, 무인 실행, 영향 기반 테스트 축소를 명확히 뒤로 미룬 점(156~162행).
68
+ - 승인 기록은 `awaiting_review`를 유지하고 에이전트가 승인을 만들지 않는다는 원칙.
69
+
70
+ ## 가장 작은 다음 단계 (제안)
71
+ 1. 사용자가 지정한 소비 프로젝트의 UC 1개를 현재 `workflow`와 CLI 4개 명령만으로 실행합니다. 단계별 시간, 수작업 전사 건수, 누락·오류를 한 장의 기록으로 남깁니다.
72
+ 2. 실제 사람 검토자가 packet을 읽고 재요청 사유를 기록합니다. 이것이 휴먼 리뷰 단계의 증거가 됩니다.
73
+ 3. 그 기록으로 `verify`가 필요한지 판단합니다.
74
+ 4. 저비용 병행 항목은 기존 `npm`·Python 검사를 CI에 연결하는 것 하나뿐입니다. 문서 보고서는 보류합니다.
75
+
76
+ 미룰 항목: receipt/packet v2/runner 세부 계약, 문서 검토 보고서, 독립 doctor, Node 지원 하한 결정, 변경 영향 기반 테스트 축소, Sprintable, 병렬·무인 실행.
77
+
78
+ ## 미확인 사항과 휴먼 결정
79
+ - 확인하지 못한 것: 계획 166~177행에 적힌 `npm test` 85개 통과 등 실행 결과는 이 세션에서 재실행하지 않았습니다. 계획의 주장 그대로입니다. `src/lib/spec-workflow.js`의 evidence 허용 필드와 `spec_lint.py`의 INFO 동작은 이 세션에서 직접 읽지 않았고, 다른 세션 담당인 기술 audit 범위로 남깁니다. `docs/ko-skills/aiwf-spec/README.ko.md`와 manifest 해시 일치 여부, README.md 영문 변경의 세부 내용도 확인하지 않았습니다. manifest의 `awaiting_review` 70개는 확인했습니다.
80
+ - 사용자가 정할 것: 파일럿 대상 소비 프로젝트와 UC, 확장 트리거의 임계값 N, 검토자 지정, 문서 검토 보고서의 도입 시점, runtime 하한 정책의 별도 처리 여부.
81
+ - 한글 검토본의 의미 검토와 휴먼 승인은 이 리뷰로 대체되지 않습니다. 모두 `awaiting_review`입니다.
82
+
83
+ ## 수행 기록
84
+ 파일 변경 없음. 셸·테스트·`docs:check` 실행 없음. 권한 거부 없음. 사용한 도구는 Read, Grep, Glob뿐이고 다른 세션 결과는 보지 않았습니다. 세션 시작 hook에 스킬 호출 지시가 있었지만, 이 세션의 제한(스킬 도구가 목록에 없고, 지정된 읽기 전용 범위)에 따라 호출하지 않았습니다.
@@ -0,0 +1,54 @@
1
+ # Spec Workflow Example: 지출 내역 제출
2
+
3
+ AIUP(AI Unified Process) 명세 산출물을 최소 구성으로 끝까지 보여주는 예제다.
4
+ 헤딩, 라벨, 상태 토큰, 식별자는 파서 호환을 위해 영어를 유지하고, 서술 내용은 한국어로 적는다.
5
+
6
+ ## 구성
7
+
8
+ | 경로 | 내용 |
9
+ |------|------|
10
+ | `docs/vision.md` | 제품 비전, 문제, 결과, 범위 밖 |
11
+ | `docs/requirements.md` | 기능 요구사항 FR-001 |
12
+ | `docs/glossary.md` | 도메인 용어와 금지 동의어 |
13
+ | `docs/entity_model.md` | 엔터티와 속성 |
14
+ | `docs/use_cases.puml` | 유스케이스 다이어그램 |
15
+ | `docs/use_cases/UC-001-submit-expense.md` | 유스케이스 명세 |
16
+ | `docs/test_cases/TC-001-submit-expense.md` | 테스트 케이스 |
17
+
18
+ ## 상태
19
+
20
+ - 유스케이스 UC-001: Reviewed
21
+ - 테스트 케이스 TC-001: Reviewed
22
+ - 요구사항 FR-001: Open
23
+ - 비전, 요구사항, 용어집, 엔터티 모델: Reviewed
24
+
25
+ 식별자와 파일 이름은 도구 호환을 위해 영어 슬러그(`UC-001-submit-expense`, `TC-001-submit-expense`)를 쓰고,
26
+ 화면에 보이는 유스케이스 이름과 본문 서술은 한국어를 쓴다. 추적의 기준 키는 한국어 제목이 아니라 ID(UC-001, TC-001)다.
27
+
28
+ ## 검증
29
+
30
+ 저장소 루트에서 다음을 실행한다.
31
+
32
+ ```bash
33
+ python3 plugins/aiwf-core/skills/spec-review/scripts/spec_lint.py \
34
+ --docs examples/spec-workflow/docs --strict --no-baseline
35
+
36
+ python3 plugins/aiwf-core/skills/use-case-spec/scripts/validate_use_case.py --strict \
37
+ examples/spec-workflow/docs/use_cases/UC-001-submit-expense.md
38
+
39
+ python3 plugins/aiwf-core/skills/spec-review/scripts/spec_lint.py \
40
+ --docs examples/spec-workflow/docs --trace
41
+ ```
42
+
43
+ ## 이 예제가 증명하는 것과 증명하지 않는 것
44
+
45
+ 이 예제는 명세 문서가 파서의 구조 규칙과 문서 사이의 상호 참조 규칙을 통과함을 보여준다.
46
+ 린트 통과는 다음을 뜻하지 않는다.
47
+
48
+ - 비즈니스 수용: 실제 이해관계자가 내용과 범위를 검토해 승인했다는 증거가 아니다.
49
+ - 한국어 의미 완전성: 린터는 영어 기준의 구조와 어휘를 검사하므로, 한국어 서술의 누락, 모호함, 문서 사이의 모순을 탐지하지 않는다.
50
+ - 구현 일치: 코드가 이 명세를 구현했는지는 별도의 검증 대상이다.
51
+
52
+ 따라서 `Status: Reviewed`는 문서 상태이지 승인, 완료, 비즈니스 수용의 선언이 아니다.
53
+
54
+ 지출 제출은 설명을 위한 가상 제품이다. 실제 회사 규정이나 고객 요구사항을 근거로 작성한 문서가 아니다.
@@ -0,0 +1,33 @@
1
+ # Entity Model
2
+
3
+ > Status: Reviewed
4
+
5
+ ## Entity Relationship Diagram
6
+
7
+ ```mermaid
8
+ erDiagram
9
+ SUBMITTER ||--o{ EXPENSE_REPORT : "submits"
10
+ ```
11
+
12
+ ### SUBMITTER
13
+
14
+ 지출 내역을 제출하는 사람을 나타낸다.
15
+
16
+ | Attribute | Description | Data Type | Length/Precision | Validation Rules |
17
+ |-----------|--------------------|-----------|------------------|-----------------------|
18
+ | id | 제출자 고유 식별자 | Long | 19 | Primary Key, Sequence |
19
+ | name | 제출자 이름 | String | 100 | Not Null |
20
+
21
+ ### EXPENSE_REPORT
22
+
23
+ 제출된 지출 내역 한 건을 나타낸다.
24
+
25
+ | Attribute | Description | Data Type | Length/Precision | Validation Rules |
26
+ |--------------|------------------|-----------|------------------|-------------------------------------|
27
+ | id | 지출 내역 식별자 | Long | 19 | Primary Key, Sequence |
28
+ | amount | 제출 금액 | Decimal | 10,2 | Not Null, greater than 0 |
29
+ | description | 사용 내용 | String | 200 | Optional |
30
+ | submitted_at | 제출 시각 | DateTime | - | Not Null |
31
+ | submitter_id | 제출자 참조 | Long | 19 | Not Null, Foreign Key (SUBMITTER.id) |
32
+
33
+ **Constraints:** 지출 내역의 금액은 0보다 커야 한다.
@@ -0,0 +1,9 @@
1
+ # Glossary
2
+
3
+ > Status: Reviewed
4
+
5
+ | Term | Definition | Avoid |
6
+ |-----------|----------------------------------------------------------------|-----------|
7
+ | 제출자 | 지출 내역을 작성해 제출하는 사람. | 신청자 |
8
+ | 지출 내역 | 정산을 위해 제출하는 금액과 사용 내용의 묶음. | 경비 청구 |
9
+ | 승인자 | 제출된 지출 내역을 검토하고 승인 여부를 결정하는 사람. | |
@@ -0,0 +1,10 @@
1
+ # Requirements
2
+
3
+ > Status: Reviewed
4
+
5
+ ## Functional Requirements
6
+
7
+ | ID | Title | User Story | Priority | Status |
8
+ |--------|----------------|-----------------------------------------------------------------------------|----------|--------|
9
+ | FR-001 | 지출 내역 제출 | As a 제출자, I want 지출 내역을 제출하기 so that 승인자가 검토할 수 있다. | High | Open |
10
+
@@ -0,0 +1,37 @@
1
+ # Test Case: 지출 내역 제출
2
+
3
+ ## Overview
4
+
5
+ **ID:** TC-001
6
+ **Goal:** 제출자가 지출 내역을 제출하고 접수 번호를 받는 흐름을 끝까지 확인한다.
7
+ **Priority:** High
8
+ **Status:** Reviewed
9
+
10
+ ## Roles
11
+
12
+ - 제출자 (지출 금액과 사용 내용을 입력하고 제출한다)
13
+
14
+ ## Preconditions
15
+
16
+ - 제출자 계정이 준비되어 있다 (테스트 데이터 시드)
17
+
18
+ ## Flow
19
+
20
+ | Step | Name | Description | Test Data | Use Case |
21
+ |------|------|-------------|-----------|----------|
22
+ | 1 | 제출 시작 | 제출자가 지출 내역 제출을 시작한다 | - | [UC-001](../use_cases/UC-001-submit-expense.md) |
23
+ | 2 | 잘못된 금액 입력 | 제출자가 금액과 사용 내용을 입력한다 | -100, 팀 회식 | [UC-001](../use_cases/UC-001-submit-expense.md) |
24
+ | 3 | 오류 확인 | 금액 오류 메시지가 표시되고 제출된 내역이 없음을 확인한다 | - | - |
25
+ | 4 | 금액 수정 | 제출자가 금액을 수정한다 | 12000 | [UC-001](../use_cases/UC-001-submit-expense.md) |
26
+ | 5 | 제출 확정 | 제출자가 제출을 확정한다 | - | [UC-001](../use_cases/UC-001-submit-expense.md) |
27
+ | 6 | 접수 확인 | 접수 번호가 표시되는지 확인한다 | - | - |
28
+
29
+ ## Validation
30
+
31
+ 1. **접수 상태**: 최종 지출 내역이 제출 상태로 표시된다.
32
+ 2. **금액 보존**: 기록된 금액이 12000으로 표시된다.
33
+
34
+ ## Postconditions
35
+
36
+ - 지출 내역 1건이 제출 상태로 남는다 (금액 12000, 사용 내용 팀 회식).
37
+ - 접수 번호가 기록된다.
@@ -0,0 +1,63 @@
1
+ # Use Case: 지출 내역 제출
2
+
3
+ ## Overview
4
+
5
+ **Use Case ID:** UC-001
6
+ **Use Case Name:** 지출 내역 제출
7
+ **Primary Actor:** 제출자
8
+ **Goal:** 제출자가 지출 내역을 제출하여 승인자가 검토할 수 있게 한다.
9
+ **Trigger:** 제출자가 지출 내역 제출을 요청한다.
10
+ **Status:** Reviewed
11
+
12
+ **Requirements:** [FR-001](../requirements.md)
13
+
14
+ ## Preconditions
15
+
16
+ - 제출자가 시스템에 로그인되어 있다
17
+ - 제출할 지출 내역의 금액과 사용 내용을 알고 있다
18
+
19
+ ## Main Success Scenario
20
+
21
+ 1. 제출자가 지출 내역 제출을 시작한다.
22
+ 2. 시스템이 지출 내역 입력 화면을 표시한다.
23
+ 3. 제출자가 지출 금액과 사용 내용을 입력한다.
24
+ 4. 시스템이 입력한 금액이 0보다 큰지 확인한다.
25
+ 5. 제출자가 제출을 확정한다.
26
+ 6. 시스템이 지출 내역을 제출 상태로 기록하고 접수 번호를 표시한다.
27
+
28
+ ## Alternative Flows
29
+
30
+ ### A1: 유효하지 않은 금액
31
+
32
+ **Trigger:** 입력한 금액이 0 이하이다 (step 4)
33
+ **Flow:**
34
+
35
+ 1. 시스템이 금액은 0보다 커야 한다는 메시지를 표시한다.
36
+ 2. 제출자가 금액을 수정한다.
37
+ 3. Use case continues at step 4.
38
+
39
+ ### A2: 제출 처리 실패
40
+
41
+ **Trigger:** 시스템이 지출 내역을 기록할 수 없다 (step 6)
42
+ **Flow:**
43
+
44
+ 1. 시스템이 제출을 완료하지 못했음을 알린다.
45
+ 2. Use case ends.
46
+
47
+ ## Postconditions
48
+
49
+ ### Success Postconditions
50
+
51
+ - 지출 내역이 제출 상태로 기록되어 있다
52
+ - 제출자에게 접수 번호가 부여되어 있다
53
+
54
+ ### Failure Postconditions
55
+
56
+ - 지출 내역이 제출 상태로 기록되지 않는다
57
+ - 기존에 기록된 지출 내역은 변경되지 않는다
58
+
59
+ ## Business Rules
60
+
61
+ ### BR-001: 금액 조건
62
+
63
+ 제출하는 지출 금액은 0보다 커야 한다.
@@ -0,0 +1,12 @@
1
+ @startuml Use Cases Overview
2
+ left to right direction
3
+
4
+ actor "제출자" as submitter
5
+
6
+ rectangle "지출 정산 시스템" {
7
+ usecase "UC-001\n지출 내역 제출" as UC001
8
+ }
9
+
10
+ submitter --> UC001
11
+
12
+ @enduml
@@ -0,0 +1,21 @@
1
+ # Vision
2
+
3
+ > Status: Reviewed
4
+
5
+ ## Product
6
+
7
+ 지출 정산 시스템
8
+
9
+ ## Problem
10
+
11
+ 팀 구성원이 지출 내역을 구두나 메신저로 보고하면 승인자가 금액과 사용 내용을 다시 확인해야 하므로 누락과 착오가 생긴다.
12
+
13
+ ## Outcome
14
+
15
+ 제출자가 지출 내역을 제출하면 접수 번호를 받고, 승인자가 검토할 수 있는 상태가 된다.
16
+
17
+ ## Non-Goals
18
+
19
+ - 지출 승인과 반려 결정
20
+ - 회계 시스템으로의 자동 전기
21
+ - 지출 증빙 이미지의 자동 인식
package/package.json CHANGED
@@ -1,36 +1,34 @@
1
1
  {
2
2
  "name": "aiwf",
3
- "version": "0.3.23",
4
- "description": "AI Workflow Framework for Claude Code with multi-language support (Korean/English)",
5
- "main": "index.js",
3
+ "version": "0.4.0",
4
+ "description": "AI Workflow Framework: use-case-driven specs and evidence for coding agents",
5
+ "main": "./src/lib/spec-workflow.js",
6
6
  "type": "module",
7
7
  "bin": {
8
- "aiwf": "./src/cli/index.js",
9
- "aiwf-lang": "./src/cli/language-cli.js",
10
- "aiwf-sprint": "./src/cli/sprint-cli.js"
8
+ "aiwf-spec": "./src/cli/spec-cli.js"
11
9
  },
12
10
  "scripts": {
13
- "test": "node --experimental-vm-modules node_modules/.bin/jest",
11
+ "test": "node --test tests/spec-workflow/*.test.mjs",
12
+ "pretest": "npm run docs:check",
13
+ "docs:check": "node scripts/check-korean-docs.mjs",
14
+ "docs:check:local": "node scripts/check-korean-docs.mjs --check-local",
14
15
  "check:deps": "node scripts/check-dependencies.js",
15
- "prepublishOnly": "npm run check:deps",
16
- "lang:status": "node src/cli/index.js lang status",
17
- "lang:set": "node src/cli/index.js lang set",
18
- "lang:reset": "node src/cli/index.js lang reset",
19
- "validate:commands": "node scripts/validate-commands.js",
20
- "update:file-lists": "node scripts/update-file-lists.js",
21
- "update:file-lists:dry-run": "node scripts/update-file-lists.js --dry-run",
22
- "update:file-lists:verbose": "node scripts/update-file-lists.js --verbose"
16
+ "prepublishOnly": "npm run docs:check && npm run check:deps",
17
+ "test:spec": "npm test",
18
+ "validate:spec-plugin": "node scripts/validate-spec-plugin.mjs",
19
+ "test:spec-upstream": "python3 plugins/aiwf-core/skills/use-case-spec/scripts/validate_use_case.py --self-test && python3 plugins/aiwf-core/skills/test-case/scripts/bpmn_paths.py --self-test && python3 plugins/aiwf-core/skills/spec-review/scripts/spec_lint.py --self-test",
20
+ "validate:spec-example": "python3 plugins/aiwf-core/skills/spec-review/scripts/spec_lint.py --docs examples/spec-workflow/docs --strict --no-baseline"
23
21
  },
24
22
  "keywords": [
25
23
  "aiwf",
26
24
  "ai",
27
25
  "workflow",
28
- "framework",
29
26
  "claude-code",
30
- "multilingual",
31
- "korean",
32
- "english",
33
- "project-management"
27
+ "codex",
28
+ "spec-driven",
29
+ "use-case",
30
+ "evidence",
31
+ "sprintable"
34
32
  ],
35
33
  "author": "moonklabs",
36
34
  "license": "MIT",
@@ -43,93 +41,27 @@
43
41
  },
44
42
  "homepage": "https://github.com/moonklabs/aiwf#readme",
45
43
  "engines": {
46
- "node": ">=14.0.0"
44
+ "node": ">=20.0.0"
47
45
  },
48
46
  "files": [
49
- "src/",
50
- "docs/",
51
- "config/",
52
- "utils/",
53
- "lib/",
54
- "commands/",
55
- "templates/",
56
- "rules/",
57
- "personas/",
58
- "hooks/",
59
- "scripts/",
60
- "ai-tools/",
61
- "index.js",
47
+ "src/cli/spec-cli.js",
48
+ "src/lib/spec-workflow.js",
49
+ ".claude-plugin/marketplace.json",
50
+ "scripts/check-dependencies.js",
51
+ "scripts/install-spec-skills.mjs",
52
+ "scripts/validate-spec-plugin.mjs",
53
+ "docs/modernization/",
54
+ "examples/spec-workflow/",
62
55
  "README.md",
63
56
  "README.ko.md",
64
57
  "CHANGELOG.md",
65
- "GUIDE.md",
66
- "GUIDE.ko.md"
67
- ],
68
- "dependencies": {
69
- "chalk": "^5.3.0",
70
- "chokidar": "^3.5.3",
71
- "commander": "^11.1.0",
72
- "fs-extra": "^11.3.0",
73
- "glob": "^10.3.10",
74
- "js-yaml": "^4.1.0",
75
- "ora": "^8.0.1",
76
- "prompts": "^2.4.2",
77
- "table": "^6.8.1",
78
- "tar": "^6.2.1",
79
- "tiktoken": "^1.0.21",
80
- "yaml": "^2.3.4",
81
- "figlet": "^1.7.0"
82
- },
83
- "devDependencies": {
84
- "jest": "^30.0.3"
85
- },
86
- "aiwf": {
87
- "moduleCategories": {
88
- "core": [
89
- "utils/paths.js",
90
- "utils/messages.js",
91
- "utils/language-utils.js"
92
- ],
93
- "yolo": [
94
- "utils/engineering-guard.js",
95
- "utils/checkpoint-manager.js"
96
- ],
97
- "persona": [
98
- "lib/ai-persona-manager.js",
99
- "lib/context-engine.js",
100
- "lib/metrics-collector.js",
101
- "lib/task-analyzer.js",
102
- "lib/token-optimizer.js"
103
- ],
104
- "installer": [
105
- "lib/installer.js",
106
- "lib/backup-manager.js",
107
- "lib/file-downloader.js",
108
- "lib/rollback-manager.js",
109
- "lib/validator.js"
110
- ],
111
- "cache": [
112
- "lib/template-cache-system.js",
113
- "lib/offline-detector.js",
114
- "lib/template-downloader.js",
115
- "lib/template-version-manager.js"
116
- ],
117
- "github": [
118
- "lib/github-integration.js",
119
- "lib/state/state-index.js",
120
- "lib/state/priority-calculator.js",
121
- "lib/state/task-scanner.js"
122
- ],
123
- "common": [
124
- "lib/resource-loader.js"
125
- ]
126
- },
127
- "criticalModules": [
128
- "utils/engineering-guard.js",
129
- "utils/checkpoint-manager.js"
130
- ],
131
- "dynamicImports": [
132
- "utils/engineering-guard.js"
133
- ]
134
- }
135
- }
58
+ "plugins/aiwf-core/",
59
+ "plugins/aiwf-spec/",
60
+ "plugins/aiwf-delegate-claude/",
61
+ "plugins/aiwf-delegate-codex/",
62
+ "plugins/aiwf-vaadin-jooq/",
63
+ "plugins/aiwf-angular-jpa/",
64
+ "plugins/aiwf-blazor-dotnet/",
65
+ "plugins/aiwf-nestjs-nextjs/"
66
+ ]
67
+ }
@@ -0,0 +1,11 @@
1
+ {
2
+ "name": "aiwf-angular-jpa",
3
+ "version": "0.7.0",
4
+ "description": "AI Unified Process construction skills for Spring Boot + Spring Data JPA and Angular applications.",
5
+ "author": {
6
+ "name": "Marc Affolter",
7
+ "email": "marc_affolter@outlook.com",
8
+ "url": "https://unifiedprocess.ai"
9
+ },
10
+ "license": "Apache-2.0"
11
+ }