aiwf 0.3.22 → 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 (456) 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 -104
  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/{src/lib/resources/templates/npm-library/template → plugins/aiwf-delegate-claude}/LICENSE +2 -2
  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/DEPENDENCY_MAP.md +0 -90
  308. package/src/cli/cache-cli.js +0 -459
  309. package/src/cli/checkpoint-cli.js +0 -417
  310. package/src/cli/index.js +0 -481
  311. package/src/cli/language-cli.js +0 -286
  312. package/src/cli/sprint-cli.js +0 -287
  313. package/src/commands/ai-tool.js +0 -383
  314. package/src/commands/compress.js +0 -60
  315. package/src/commands/create-project.js +0 -160
  316. package/src/commands/evaluate.js +0 -459
  317. package/src/commands/persona.js +0 -309
  318. package/src/commands/sprint-independent.js +0 -393
  319. package/src/commands/sprint-task.js +0 -262
  320. package/src/commands/state.js +0 -1164
  321. package/src/commands/token.js +0 -312
  322. package/src/commands/yolo-config.js +0 -502
  323. package/src/config/file-lists.js +0 -147
  324. package/src/config/yolo-config-template.yaml +0 -168
  325. package/src/lib/ai-persona-manager.js +0 -711
  326. package/src/lib/backup-manager.js +0 -271
  327. package/src/lib/cache-system.js +0 -332
  328. package/src/lib/context-engine.js +0 -568
  329. package/src/lib/file-downloader.js +0 -304
  330. package/src/lib/github-integration.js +0 -402
  331. package/src/lib/installer.js +0 -1066
  332. package/src/lib/memory-profiler.js +0 -471
  333. package/src/lib/metrics-collector.js +0 -885
  334. package/src/lib/offline-detector.js +0 -386
  335. package/src/lib/resource-loader-enhanced.js +0 -399
  336. package/src/lib/resource-loader.js +0 -250
  337. package/src/lib/resources/commands/ai-persona.js +0 -602
  338. package/src/lib/resources/commands/compress-context.js +0 -389
  339. package/src/lib/resources/commands/evaluate.js +0 -246
  340. package/src/lib/resources/commands/persona-context-apply.js +0 -562
  341. package/src/lib/resources/commands/token-tracking.js +0 -443
  342. package/src/lib/resources/config/commit-patterns.js +0 -103
  343. package/src/lib/resources/config/language.json +0 -6
  344. package/src/lib/resources/personas/PERSONA_INDEX.md +0 -57
  345. package/src/lib/resources/personas/analyst.json +0 -44
  346. package/src/lib/resources/personas/architect/best_practices.md +0 -136
  347. package/src/lib/resources/personas/architect/knowledge_base.md +0 -377
  348. package/src/lib/resources/personas/architect.json +0 -44
  349. package/src/lib/resources/personas/backend/best_practices.md +0 -766
  350. package/src/lib/resources/personas/backend/knowledge_base.md +0 -1070
  351. package/src/lib/resources/personas/data_analyst/best_practices.md +0 -594
  352. package/src/lib/resources/personas/data_analyst/knowledge_base.md +0 -1057
  353. package/src/lib/resources/personas/developer.json +0 -44
  354. package/src/lib/resources/personas/developer.md +0 -37
  355. package/src/lib/resources/personas/evaluation_criteria.json +0 -137
  356. package/src/lib/resources/personas/frontend/best_practices.md +0 -445
  357. package/src/lib/resources/personas/frontend/knowledge_base.md +0 -729
  358. package/src/lib/resources/personas/persona-index.json +0 -31
  359. package/src/lib/resources/personas/reviewer.json +0 -44
  360. package/src/lib/resources/personas/security/best_practices.md +0 -307
  361. package/src/lib/resources/personas/security/knowledge_base.md +0 -498
  362. package/src/lib/resources/personas/tester.json +0 -44
  363. package/src/lib/resources/templates/README.md +0 -78
  364. package/src/lib/resources/templates/api-server/config.json +0 -64
  365. package/src/lib/resources/templates/api-server/template/.aiwf/config.json +0 -56
  366. package/src/lib/resources/templates/api-server/template/.aiwf/feature-ledger.json +0 -42
  367. package/src/lib/resources/templates/api-server/template/.aiwf/personas/backend-engineer.json +0 -40
  368. package/src/lib/resources/templates/api-server/template/.aiwf/scripts/cli.js +0 -111
  369. package/src/lib/resources/templates/api-server/template/.env.example +0 -29
  370. package/src/lib/resources/templates/api-server/template/.eslintrc.json +0 -23
  371. package/src/lib/resources/templates/api-server/template/README.md +0 -171
  372. package/src/lib/resources/templates/api-server/template/jest.config.js +0 -26
  373. package/src/lib/resources/templates/api-server/template/nodemon.json +0 -9
  374. package/src/lib/resources/templates/api-server/template/package.json +0 -61
  375. package/src/lib/resources/templates/api-server/template/src/app.ts +0 -60
  376. package/src/lib/resources/templates/api-server/template/src/config/swagger.ts +0 -38
  377. package/src/lib/resources/templates/api-server/template/src/controllers/aiwfController.ts +0 -54
  378. package/src/lib/resources/templates/api-server/template/src/controllers/authController.ts +0 -128
  379. package/src/lib/resources/templates/api-server/template/src/controllers/statusController.ts +0 -28
  380. package/src/lib/resources/templates/api-server/template/src/index.ts +0 -28
  381. package/src/lib/resources/templates/api-server/template/src/middleware/aiwfMiddleware.ts +0 -50
  382. package/src/lib/resources/templates/api-server/template/src/middleware/authMiddleware.ts +0 -41
  383. package/src/lib/resources/templates/api-server/template/src/middleware/errorHandler.ts +0 -42
  384. package/src/lib/resources/templates/api-server/template/src/middleware/notFoundHandler.ts +0 -14
  385. package/src/lib/resources/templates/api-server/template/src/middleware/requestLogger.ts +0 -20
  386. package/src/lib/resources/templates/api-server/template/src/routes/aiwf.ts +0 -31
  387. package/src/lib/resources/templates/api-server/template/src/routes/index.ts +0 -13
  388. package/src/lib/resources/templates/api-server/template/src/routes/v1/index.ts +0 -67
  389. package/src/lib/resources/templates/api-server/template/src/utils/logger.ts +0 -37
  390. package/src/lib/resources/templates/api-server/template/tests/app.test.ts +0 -40
  391. package/src/lib/resources/templates/api-server/template/tsconfig.json +0 -43
  392. package/src/lib/resources/templates/npm-library/config.json +0 -61
  393. package/src/lib/resources/templates/npm-library/template/README.md +0 -201
  394. package/src/lib/resources/templates/npm-library/template/package.json +0 -78
  395. package/src/lib/resources/templates/web-app/config.json +0 -53
  396. package/src/lib/resources/templates/web-app/template/.aiwf/config.json +0 -54
  397. package/src/lib/resources/templates/web-app/template/.aiwf/feature-ledger.json +0 -37
  398. package/src/lib/resources/templates/web-app/template/.aiwf/personas/fullstack-developer.json +0 -40
  399. package/src/lib/resources/templates/web-app/template/.aiwf/scripts/cli.js +0 -110
  400. package/src/lib/resources/templates/web-app/template/.eslintrc.cjs +0 -20
  401. package/src/lib/resources/templates/web-app/template/README.md +0 -151
  402. package/src/lib/resources/templates/web-app/template/index.html +0 -14
  403. package/src/lib/resources/templates/web-app/template/package.json +0 -44
  404. package/src/lib/resources/templates/web-app/template/postcss.config.js +0 -6
  405. package/src/lib/resources/templates/web-app/template/public/vite.svg +0 -1
  406. package/src/lib/resources/templates/web-app/template/src/App.tsx +0 -21
  407. package/src/lib/resources/templates/web-app/template/src/components/Layout.tsx +0 -57
  408. package/src/lib/resources/templates/web-app/template/src/components/aiwf/ContextStatus.tsx +0 -107
  409. package/src/lib/resources/templates/web-app/template/src/components/aiwf/TokenUsage.tsx +0 -71
  410. package/src/lib/resources/templates/web-app/template/src/index.css +0 -60
  411. package/src/lib/resources/templates/web-app/template/src/main.tsx +0 -10
  412. package/src/lib/resources/templates/web-app/template/src/pages/AiwfDashboard.tsx +0 -57
  413. package/src/lib/resources/templates/web-app/template/src/pages/HomePage.tsx +0 -89
  414. package/src/lib/resources/templates/web-app/template/src/pages/NotFound.tsx +0 -25
  415. package/src/lib/resources/templates/web-app/template/src/stores/aiwfStore.ts +0 -126
  416. package/src/lib/resources/templates/web-app/template/src/types/global.d.ts +0 -9
  417. package/src/lib/resources/templates/web-app/template/src/vite-env.d.ts +0 -1
  418. package/src/lib/resources/templates/web-app/template/tailwind.config.js +0 -30
  419. package/src/lib/resources/templates/web-app/template/tsconfig.json +0 -37
  420. package/src/lib/resources/templates/web-app/template/tsconfig.node.json +0 -10
  421. package/src/lib/resources/templates/web-app/template/vite.config.ts +0 -23
  422. package/src/lib/resources/utils/background-monitor.js +0 -223
  423. package/src/lib/resources/utils/compression-metrics.js +0 -1031
  424. package/src/lib/resources/utils/compression-strategies.js +0 -557
  425. package/src/lib/resources/utils/content-normalizer.js +0 -455
  426. package/src/lib/resources/utils/context-compressor.js +0 -583
  427. package/src/lib/resources/utils/context-rule-parser.js +0 -180
  428. package/src/lib/resources/utils/context-token-monitor.js +0 -463
  429. package/src/lib/resources/utils/context-update-manager.js +0 -502
  430. package/src/lib/resources/utils/git-utils.js +0 -220
  431. package/src/lib/resources/utils/importance-classifier.js +0 -645
  432. package/src/lib/resources/utils/information-filter.js +0 -710
  433. package/src/lib/resources/utils/persona-aware-compressor.js +0 -598
  434. package/src/lib/resources/utils/prompt-injector.js +0 -242
  435. package/src/lib/resources/utils/simplified-evaluator.js +0 -119
  436. package/src/lib/resources/utils/text-summarizer.js +0 -492
  437. package/src/lib/resources/utils/token-counter.js +0 -177
  438. package/src/lib/resources/utils/token-monitor.js +0 -484
  439. package/src/lib/resources/utils/token-reporter.js +0 -452
  440. package/src/lib/resources/utils/token-storage.js +0 -433
  441. package/src/lib/resources/utils/token-tracker.js +0 -283
  442. package/src/lib/rollback-manager.js +0 -418
  443. package/src/lib/state/priority-calculator.js +0 -217
  444. package/src/lib/state/state-index.js +0 -155
  445. package/src/lib/state/task-scanner.js +0 -328
  446. package/src/lib/task-analyzer.js +0 -599
  447. package/src/lib/template-cache-system.js +0 -559
  448. package/src/lib/template-downloader.js +0 -467
  449. package/src/lib/template-version-manager.js +0 -491
  450. package/src/lib/token-optimizer.js +0 -517
  451. package/src/lib/validator.js +0 -376
  452. package/src/utils/checkpoint-manager.js +0 -435
  453. package/src/utils/engineering-guard.js +0 -399
  454. package/src/utils/language-utils.js +0 -331
  455. package/src/utils/messages.js +0 -166
  456. package/src/utils/paths.js +0 -112
@@ -1,553 +0,0 @@
1
- # AIWF 성능 가이드라인
2
-
3
- ## 개요
4
-
5
- 이 문서는 AIWF 프로젝트에서 최적의 성능을 얻기 위한 가이드라인과 모범 사례를 제공합니다. 개발자들이 성능을 고려한 코드를 작성하고 시스템을 효율적으로 운영할 수 있도록 돕습니다.
6
-
7
- ## 1. GitHub API 사용 최적화
8
-
9
- ### 1.1 캐싱 전략
10
-
11
- #### 기본 캐싱 사용법
12
-
13
- ```javascript
14
- import { GitHubAPICache, OptimizedGitHubClient } from './lib/cache-system.js';
15
-
16
- // 캐시 시스템 초기화
17
- const githubClient = new OptimizedGitHubClient();
18
- await githubClient.init();
19
-
20
- // 자동 캐싱과 함께 API 호출
21
- const repoData = await githubClient.cachedFetch('https://api.github.com/repos/user/repo');
22
- ```
23
-
24
- #### 캐시 설정 최적화
25
-
26
- ```javascript
27
- // 환경별 캐시 설정
28
- const cacheOptions = {
29
- cacheDir: process.env.NODE_ENV === 'production' ? '.aiwf/cache' : '.aiwf/cache-dev',
30
- ttl: process.env.NODE_ENV === 'production' ? 300000 : 60000 // 프로덕션: 5분, 개발: 1분
31
- };
32
-
33
- const client = new OptimizedGitHubClient('https://api.github.com', cacheOptions);
34
- ```
35
-
36
- ### 1.2 배치 처리
37
-
38
- #### 여러 API 호출 최적화
39
-
40
- ```javascript
41
- // 순차 호출 (비효율적)
42
- const repos = [];
43
- for (const repoName of repoNames) {
44
- repos.push(await client.cachedFetch(`/repos/user/${repoName}`));
45
- }
46
-
47
- // 배치 처리 (효율적)
48
- const urls = repoNames.map(name => `/repos/user/${name}`);
49
- const results = await client.batchRequest(urls, { batchSize: 10 });
50
- ```
51
-
52
- ### 1.3 Rate Limiting 대응
53
-
54
- ```javascript
55
- // Rate Limiter 커스터마이징
56
- class CustomRateLimiter extends RateLimiter {
57
- constructor() {
58
- super(60, 60000); // 분당 60개 요청
59
- }
60
-
61
- async waitForNext() {
62
- // GitHub API 헤더에서 남은 요청 수 확인
63
- const remaining = this.getRemainingRequests();
64
- if (remaining < 10) {
65
- // 남은 요청이 적으면 더 오래 대기
66
- await new Promise(resolve => setTimeout(resolve, 2000));
67
- }
68
-
69
- return super.waitForNext();
70
- }
71
- }
72
- ```
73
-
74
- ## 2. 파일 시스템 작업 최적화
75
-
76
- ### 2.1 배치 처리 활용
77
-
78
- #### 단일 파일 작업 (비효율적)
79
-
80
- ```javascript
81
- // 비효율적인 방법
82
- for (const filePath of filePaths) {
83
- const content = await fs.readFile(filePath, 'utf8');
84
- await processFile(content);
85
- }
86
- ```
87
-
88
- #### 배치 처리 (효율적)
89
-
90
- ```javascript
91
- import { FileBatchProcessor, FileUtils } from './lib/file-batch-processor.js';
92
-
93
- // 효율적인 방법
94
- const processor = new FileBatchProcessor({
95
- maxConcurrency: 5,
96
- batchSize: 20
97
- });
98
-
99
- const results = await FileUtils.readMultipleFiles(filePaths, processor);
100
- ```
101
-
102
- ### 2.2 큰 파일 처리
103
-
104
- #### 스트리밍 처리
105
-
106
- ```javascript
107
- // 큰 파일은 자동으로 스트리밍 처리됨 (10MB 이상)
108
- const processor = new FileBatchProcessor();
109
-
110
- // 큰 파일 읽기 - 자동으로 스트리밍 사용
111
- const content = await processor.addReadOperation('/path/to/large/file.txt');
112
-
113
- // 큰 파일 쓰기 - 자동으로 스트리밍 사용
114
- await processor.addWriteOperation('/path/to/output.txt', largeContent);
115
- ```
116
-
117
- ### 2.3 메모리 효율적인 파일 복사
118
-
119
- ```javascript
120
- // 메모리 효율적인 파일 복사
121
- const fileMappings = {
122
- '/source/file1.txt': '/dest/file1.txt',
123
- '/source/file2.txt': '/dest/file2.txt'
124
- };
125
-
126
- const results = await FileUtils.copyMultipleFiles(fileMappings, processor);
127
- ```
128
-
129
- ## 3. 메모리 사용량 최적화
130
-
131
- ### 3.1 메모리 프로파일링
132
-
133
- #### 기본 프로파일링
134
-
135
- ```javascript
136
- import { MemoryProfiler } from './lib/memory-profiler.js';
137
-
138
- const profiler = new MemoryProfiler({
139
- samplingInterval: 1000, // 1초마다 샘플링
140
- heapThreshold: 100 * 1024 * 1024 // 100MB 임계값
141
- });
142
-
143
- // 프로파일링 시작
144
- profiler.startProfiling();
145
-
146
- // 작업 실행
147
- await performWorkload();
148
-
149
- // 프로파일링 중지 및 보고서 생성
150
- profiler.stopProfiling();
151
- const report = profiler.generateReport();
152
- console.log('메모리 사용량 보고서:', report);
153
- ```
154
-
155
- #### 스냅샷 비교
156
-
157
- ```javascript
158
- // 작업 전후 메모리 사용량 비교
159
- profiler.createSnapshot('before-operation');
160
-
161
- // 메모리 집약적인 작업
162
- await processLargeDataset();
163
-
164
- profiler.createSnapshot('after-operation');
165
-
166
- // 메모리 변화 분석
167
- const comparison = profiler.compareSnapshots('before-operation', 'after-operation');
168
- console.log('메모리 변화:', comparison.memoryDiff);
169
- ```
170
-
171
- ### 3.2 메모리 누수 방지
172
-
173
- #### 객체 추적
174
-
175
- ```javascript
176
- // 객체 생성/소멸 추적
177
- const leakDetector = profiler.objectLeakDetector;
178
- leakDetector.startTracking();
179
-
180
- // 객체 생성 추적
181
- leakDetector.trackObject('MyClass', 'create');
182
-
183
- // 객체 소멸 추적
184
- leakDetector.trackObject('MyClass', 'destroy');
185
-
186
- // 누수 의심 객체 확인
187
- const leaking = leakDetector.findLeakingObjects(1000);
188
- if (leaking.length > 0) {
189
- console.warn('메모리 누수 의심 객체:', leaking);
190
- }
191
- ```
192
-
193
- #### 가비지 컬렉션 최적화
194
-
195
- ```javascript
196
- // 메모리 정리 필요 시 강제 GC 실행
197
- const gcResult = profiler.forceGarbageCollection();
198
- if (gcResult) {
199
- console.log('GC로 해제된 메모리:', gcResult.freed);
200
- }
201
- ```
202
-
203
- ### 3.3 메모리 최적화 제안 활용
204
-
205
- ```javascript
206
- import { MemoryOptimizer } from './lib/memory-profiler.js';
207
-
208
- // 대용량 파일 처리 최적화
209
- const fileOptimization = await MemoryOptimizer.optimizeForLargeFiles('/path/to/large/file');
210
- if (fileOptimization.recommendation === 'streaming') {
211
- // 스트리밍 처리 사용
212
- console.log('스트리밍 처리 권장:', fileOptimization.reason);
213
- }
214
-
215
- // 데이터 구조 최적화
216
- const dataOptimization = MemoryOptimizer.optimizeDataStructures(largeArray);
217
- if (dataOptimization.recommendation !== 'Current data structure is optimal') {
218
- console.log('데이터 구조 최적화 제안:', dataOptimization);
219
- }
220
- ```
221
-
222
- ## 4. 성능 벤치마킹
223
-
224
- ### 4.1 기본 벤치마크 실행
225
-
226
- ```javascript
227
- import { PerformanceBenchmark, BenchmarkSuites } from './lib/performance-benchmark.js';
228
-
229
- const benchmark = new PerformanceBenchmark({
230
- iterations: 100,
231
- warmupIterations: 10,
232
- memoryProfiling: true
233
- });
234
-
235
- // 사전 정의된 테스트 스위트 실행
236
- const fileOpsSuite = BenchmarkSuites.fileOperations();
237
- const results = await benchmark.run(fileOpsSuite);
238
-
239
- console.log('벤치마크 결과:', results.summary);
240
- ```
241
-
242
- ### 4.2 커스텀 벤치마크 작성
243
-
244
- ```javascript
245
- // 커스텀 테스트 스위트 정의
246
- const customSuite = {
247
- name: 'Custom Performance Tests',
248
- tests: [
249
- {
250
- name: 'Data Processing Performance',
251
- fn: async () => {
252
- const startTime = performance.now();
253
- await processData(testData);
254
- const endTime = performance.now();
255
- return { duration: endTime - startTime };
256
- }
257
- },
258
- {
259
- name: 'Cache Hit Performance',
260
- fn: async () => {
261
- const cache = new GitHubAPICache();
262
- await cache.init();
263
-
264
- // 캐시에 데이터 저장
265
- await cache.set('test-key', testData);
266
-
267
- const startTime = performance.now();
268
- const result = await cache.get('test-key');
269
- const endTime = performance.now();
270
-
271
- return { duration: endTime - startTime, throughput: 1 };
272
- }
273
- }
274
- ]
275
- };
276
-
277
- const customResults = await benchmark.run(customSuite);
278
- ```
279
-
280
- ### 4.3 부하 테스트
281
-
282
- ```javascript
283
- // API 엔드포인트 부하 테스트
284
- const loadTestResult = await benchmark.runLoadTest({
285
- name: 'GitHub API Load Test',
286
- target: 'https://api.github.com/repos/user/repo',
287
- duration: 60000, // 1분
288
- concurrency: 10, // 동시 10개 요청
289
- rampUp: 5000 // 5초에 걸쳐 점진적 증가
290
- });
291
-
292
- console.log('부하 테스트 결과:', loadTestResult.metrics);
293
- ```
294
-
295
- ### 4.4 성능 회귀 감지
296
-
297
- ```javascript
298
- // 이전 결과와 비교하여 성능 회귀 감지
299
- const currentResult = await benchmark.run(testSuite);
300
- const baselineResult = loadBaselineResults(); // 기준 결과 로드
301
-
302
- const regression = benchmark.detectPerformanceRegression(currentResult, baselineResult);
303
- if (regression.detected) {
304
- console.error('성능 회귀 감지:', regression.issues);
305
- } else {
306
- console.log('성능 개선:', regression.improvements);
307
- }
308
- ```
309
-
310
- ## 5. 통합 성능 최적화 워크플로우
311
-
312
- ### 5.1 전체 최적화 프로세스
313
-
314
- ```javascript
315
- async function optimizeApplicationPerformance() {
316
- // 1. 메모리 프로파일링 시작
317
- const profiler = new MemoryProfiler();
318
- profiler.startProfiling();
319
-
320
- // 2. GitHub API 캐싱 설정
321
- const githubClient = new OptimizedGitHubClient();
322
- await githubClient.init();
323
-
324
- // 3. 파일 배치 처리 설정
325
- const fileProcessor = new FileBatchProcessor({
326
- maxConcurrency: 5,
327
- batchSize: 20
328
- });
329
-
330
- // 4. 성능 벤치마크 실행
331
- const benchmark = new PerformanceBenchmark({
332
- iterations: 50,
333
- memoryProfiling: true
334
- });
335
-
336
- const suites = [
337
- BenchmarkSuites.fileOperations(),
338
- BenchmarkSuites.memoryOperations(),
339
- BenchmarkSuites.githubAPICache()
340
- ];
341
-
342
- const results = await Promise.all(
343
- suites.map(suite => benchmark.run(suite))
344
- );
345
-
346
- // 5. 결과 분석 및 보고서 생성
347
- profiler.stopProfiling();
348
- const memoryReport = profiler.generateReport();
349
- const suggestions = profiler.getOptimizationSuggestions();
350
-
351
- // 6. 보고서 저장
352
- await benchmark.saveReport('./performance-report.json');
353
- await benchmark.generateHTMLReport('./performance-report.html');
354
- await profiler.saveReport('./memory-report.json');
355
-
356
- return {
357
- performanceResults: results,
358
- memoryReport,
359
- suggestions,
360
- githubStats: githubClient.getStats(),
361
- fileProcessorStats: fileProcessor.getStats()
362
- };
363
- }
364
- ```
365
-
366
- ### 5.2 CI/CD 통합
367
-
368
- ```javascript
369
- // CI/CD 파이프라인에서 성능 테스트 실행
370
- async function runPerformanceTests() {
371
- const benchmark = new PerformanceBenchmark();
372
- const results = await benchmark.run(BenchmarkSuites.fileOperations());
373
-
374
- // 성능 기준 확인
375
- const avgDuration = results.summary.averageDuration;
376
- const threshold = 1000; // 1초
377
-
378
- if (avgDuration > threshold) {
379
- throw new Error(`Performance regression detected: ${avgDuration}ms > ${threshold}ms`);
380
- }
381
-
382
- console.log('✅ Performance tests passed');
383
- return results;
384
- }
385
- ```
386
-
387
- ## 6. 모니터링 및 경고
388
-
389
- ### 6.1 실시간 모니터링 설정
390
-
391
- ```javascript
392
- // 프로덕션 환경에서 실시간 모니터링
393
- const productionProfiler = new MemoryProfiler({
394
- samplingInterval: 5000, // 5초마다
395
- heapThreshold: 500 * 1024 * 1024, // 500MB
396
- alertCallback: (alerts) => {
397
- // 알림 시스템으로 경고 전송
398
- alerts.forEach(alert => {
399
- sendAlert(`Memory Alert: ${alert.type}`, alert);
400
- });
401
- }
402
- });
403
-
404
- productionProfiler.startProfiling();
405
- ```
406
-
407
- ### 6.2 성능 대시보드
408
-
409
- ```javascript
410
- // 성능 메트릭 대시보드용 데이터 생성
411
- function generateDashboardData() {
412
- return {
413
- timestamp: Date.now(),
414
- memory: process.memoryUsage(),
415
- cache: githubClient.getStats(),
416
- fileProcessor: fileProcessor.getStats(),
417
- uptime: process.uptime()
418
- };
419
- }
420
-
421
- // 주기적으로 대시보드 데이터 업데이트
422
- setInterval(() => {
423
- const dashboardData = generateDashboardData();
424
- updateDashboard(dashboardData);
425
- }, 30000); // 30초마다
426
- ```
427
-
428
- ## 7. 환경별 설정 가이드
429
-
430
- ### 7.1 개발 환경
431
-
432
- ```javascript
433
- const developmentConfig = {
434
- github: {
435
- cacheDir: '.aiwf/cache-dev',
436
- ttl: 60000, // 1분
437
- rateLimitPerMinute: 30
438
- },
439
- fileProcessor: {
440
- maxConcurrency: 2,
441
- batchSize: 10
442
- },
443
- memoryProfiler: {
444
- samplingInterval: 2000, // 2초
445
- alertThreshold: 100 * 1024 * 1024 // 100MB
446
- }
447
- };
448
- ```
449
-
450
- ### 7.2 프로덕션 환경
451
-
452
- ```javascript
453
- const productionConfig = {
454
- github: {
455
- cacheDir: '.aiwf/cache',
456
- ttl: 300000, // 5분
457
- rateLimitPerMinute: 60
458
- },
459
- fileProcessor: {
460
- maxConcurrency: 10,
461
- batchSize: 50
462
- },
463
- memoryProfiler: {
464
- samplingInterval: 5000, // 5초
465
- alertThreshold: 500 * 1024 * 1024 // 500MB
466
- }
467
- };
468
- ```
469
-
470
- ## 8. 문제 해결 가이드
471
-
472
- ### 8.1 메모리 사용량 급증
473
-
474
- ```javascript
475
- // 메모리 사용량이 급증하는 경우
476
- if (currentMemoryUsage > threshold) {
477
- // 1. 강제 가비지 컬렉션
478
- const gcResult = profiler.forceGarbageCollection();
479
-
480
- // 2. 캐시 정리
481
- await githubClient.cleanup();
482
-
483
- // 3. 임시 파일 정리
484
- await MemoryOptimizer.cleanupTemporaryFiles();
485
-
486
- // 4. 배치 처리 큐 정리
487
- fileProcessor.clearQueue();
488
- }
489
- ```
490
-
491
- ### 8.2 GitHub API Rate Limit 초과
492
-
493
- ```javascript
494
- // Rate limit 초과 시 대응
495
- client.on('rateLimit', async (resetTime) => {
496
- console.log(`Rate limit exceeded. Waiting until ${new Date(resetTime)}`);
497
-
498
- // 캐시된 데이터 우선 사용
499
- const cachedData = await cache.get(url);
500
- if (cachedData) {
501
- return cachedData;
502
- }
503
-
504
- // Reset 시간까지 대기
505
- const waitTime = resetTime - Date.now();
506
- await new Promise(resolve => setTimeout(resolve, waitTime));
507
- });
508
- ```
509
-
510
- ### 8.3 파일 시스템 성능 저하
511
-
512
- ```javascript
513
- // 파일 시스템 성능 저하 시
514
- if (fileProcessor.getStats().averageProcessingTime > 5000) { // 5초 이상
515
- // 1. 동시성 감소
516
- fileProcessor.maxConcurrency = Math.max(1, fileProcessor.maxConcurrency / 2);
517
-
518
- // 2. 배치 크기 감소
519
- fileProcessor.batchSize = Math.max(5, fileProcessor.batchSize / 2);
520
-
521
- // 3. 임시 파일 정리
522
- await MemoryOptimizer.cleanupTemporaryFiles();
523
- }
524
- ```
525
-
526
- ## 9. 베스트 프랙티스
527
-
528
- ### 9.1 코드 레벨 최적화
529
-
530
- 1. **비동기 처리 활용**: Promise.all() 대신 Promise.allSettled() 사용
531
- 2. **메모리 효율적인 데이터 구조**: 큰 데이터셋에는 Map/Set 사용
532
- 3. **스트리밍 처리**: 큰 파일은 항상 스트림으로 처리
533
- 4. **캐시 우선 사용**: API 호출 전 항상 캐시 확인
534
-
535
- ### 9.2 아키텍처 레벨 최적화
536
-
537
- 1. **배치 처리 우선**: 개별 작업보다 배치 처리 사용
538
- 2. **적절한 캐시 TTL**: 데이터 성격에 맞는 TTL 설정
539
- 3. **동시성 제어**: 시스템 리소스에 맞는 동시성 수준 설정
540
- 4. **모니터링 필수**: 프로덕션에서 항상 성능 모니터링
541
-
542
- ### 9.3 운영 레벨 최적화
543
-
544
- 1. **정기적인 정리**: 캐시, 로그, 임시 파일 정기 정리
545
- 2. **성능 기준 설정**: 명확한 성능 SLA 정의
546
- 3. **알림 시스템**: 성능 저하 시 즉시 알림
547
- 4. **지속적인 개선**: 정기적인 성능 벤치마크 실행
548
-
549
- ## 결론
550
-
551
- AIWF의 성능 최적화는 GitHub API 캐싱, 파일 배치 처리, 메모리 관리, 성능 벤치마킹의 4가지 핵심 영역에서 이루어집니다. 이 가이드라인을 따라 구현하면 대규모 프로젝트에서도 안정적이고 효율적인 성능을 유지할 수 있습니다.
552
-
553
- 성능 최적화는 지속적인 과정이므로, 정기적인 모니터링과 벤치마킹을 통해 시스템을 개선해 나가는 것이 중요합니다.
package/docs/PRD.ko.md DELETED
@@ -1,148 +0,0 @@
1
- # AIWF - AI 워크플로우 프레임워크
2
-
3
- _버전: 0.3.0_
4
-
5
- ## 개요
6
-
7
- 모든 프로젝트에 AIWF (AI 워크플로우 프레임워크)를 설치하기 위한 포괄적인 `npx` 실행 가능 커맨드 라인 도구입니다. AI 지원 프로젝트 관리를 위한 구조화된 디렉토리 레이아웃과 커맨드 라인 도구를 제공하며, 다국어(영어 및 한국어)를 완벽하게 지원합니다.
8
-
9
- ## 핵심 기능
10
-
11
- ### 설치 명령어
12
-
13
- 이 도구는 `npx`를 통해 실행됩니다:
14
-
15
- ```bash
16
- npx aiwf # 대화형 언어 선택
17
- npx aiwf --force # 프롬프트 건너뛰기 (기본값: 한국어)
18
- ```
19
-
20
- ### 주요 특징
21
-
22
- 1. **다국어 지원**:
23
- - 대화형 언어 선택 (영어/한국어)
24
- - 언어별 명령어 파일 및 문서
25
- - 현지화된 사용자 인터페이스 및 메시지
26
-
27
- 2. **디렉토리 구조 생성**:
28
- - 문서, 요구사항, 스프린트 등을 위한 표준화된 하위 디렉토리를 포함하는 `.aiwf/` 디렉토리를 초기화합니다
29
- - 사용자 지정 Claude 명령어를 위한 `.claude/commands/aiwf/` 디렉토리를 설정합니다
30
- - Cursor 및 Windsurf용 IDE별 규칙을 구성합니다
31
-
32
- 3. **GitHub에서 파일 가져오기**:
33
- - GitHub의 `aiwf/aiwf` 리포지토리에서 최신 프레임워크 파일을 다운로드합니다
34
- - `claude-code/aiwf/ko/` 또는 `claude-code/aiwf/en/`에서 언어별 파일을 가져옵니다
35
- - 명령어, 문서 템플릿, 프로젝트 매니페스트를 설치합니다
36
-
37
- 4. **기존 설치 처리**:
38
- - AIWF 프레임워크가 이미 존재하는지 감지합니다
39
- - 사용자에게 **업데이트**, **건너뛰기**, 또는 **취소**를 요청합니다
40
- - 업데이트 프로세스는 사용자가 생성한 파일(작업, 스프린트)을 보존하면서 명령어 스크립트와 `CLAUDE.md` 문서를 업데이트합니다
41
- - 덮어쓴 파일은 타임스탬프가 포함된 `.bak` 확장자로 자동 백업합니다
42
-
43
- 5. **IDE 통합**:
44
- - Cursor IDE용 규칙을 자동으로 변환하고 설치합니다 (`.mdc` 형식)
45
- - 일반 마크다운 규칙으로 Windsurf IDE를 지원합니다
46
- - Claude Code와의 원활한 통합
47
-
48
- ## 기술적 접근 방식
49
-
50
- - **Node.js 스크립트**: Node.js로 구축된 단일 실행 스크립트입니다.
51
- - **의존성**: 커맨드 라인 인터페이스를 향상시키기 위해 외부 라이브러리를 사용합니다:
52
- - `commander`: 커맨드 라인 인수 구문 분석용.
53
- - `ora`: 로딩 스피너 표시용.
54
- - `prompts`: 대화형 사용자 프롬프트용.
55
- - `chalk`: 콘솔 출력에 색상 추가용.
56
- - **GitHub Fetching**: GitHub API를 사용하여 디렉토리 내용을 나열하고, `raw.githubusercontent.com` 소스에서 직접 파일을 다운로드합니다.
57
-
58
- ## 설치 흐름
59
-
60
- 1. 환영 메시지가 표시됩니다
61
- 2. 언어 선택 프롬프트 (영어/한국어) - `--force` 플래그 사용 시 제외
62
- 3. 스크립트가 기존 설치를 확인합니다
63
- 4. 설치가 존재하면 사용자에게 작업(업데이트, 건너뛰기, 취소)을 선택하라는 메시지를 표시합니다
64
- 5. 진행 시, 스피너가 GitHub에서 파일을 가져오는 중임을 나타냅니다
65
- 6. 선택한 언어에 따라 필요한 디렉토리 구조가 생성됩니다
66
- 7. 언어별 디렉토리에서 프레임워크 파일(매니페스트, 템플릿, 문서, 명령어)이 다운로드됩니다
67
- 8. IDE 규칙이 처리되고 설치됩니다 (Cursor/Windsurf)
68
- 9. 시작을 위한 다음 단계와 함께 성공 메시지가 표시됩니다
69
- 10. 단계가 실패하면 오류 메시지가 표시되고 가능한 경우 백업에서 기존 파일이 복원됩니다
70
-
71
- ## 생성되는 파일 구조
72
-
73
- 설치 프로그램은 프로젝트에 다음 구조를 생성합니다:
74
-
75
- ```
76
- your_project/
77
- ├── .aiwf/ # AIWF 프로젝트 관리 구조
78
- │ ├── 00_PROJECT_MANIFEST.md # 중앙 프로젝트 추적
79
- │ ├── 01_PROJECT_DOCS/ # 프로젝트 문서
80
- │ │ └── ARCHITECTURE.md # 시스템 아키텍처 문서
81
- │ ├── 02_REQUIREMENTS/ # 마일스톤 기반 요구사항
82
- │ │ └── M01_*/ # 마일스톤 폴더
83
- │ ├── 03_SPRINTS/ # 스프린트 실행 폴더
84
- │ │ └── S01_*/ # 태스크가 포함된 스프린트 폴더
85
- │ ├── 04_GENERAL_TASKS/ # 스프린트 외 태스크
86
- │ ├── 98_PROMPTS/ # 유용한 프롬프트
87
- │ └── 99_TEMPLATES/ # 문서 템플릿
88
- ├── .claude/commands/aiwf/ # Claude Code 사용자 정의 명령어
89
- │ ├── initialize.md # 프로젝트 초기화
90
- │ ├── prime_context.md # 컨텍스트 로딩
91
- │ ├── aiwf_create_milestone_plan.md # 마일스톤 계획
92
- │ ├── create_sprints_from_milestone.md # 스프린트 생성
93
- │ ├── do_task.md # 태스크 실행
94
- │ ├── commit.md # Git 커밋 워크플로우
95
- │ ├── yolo.md # 자율 실행
96
- │ └── ... (20개 이상의 추가 명령어)
97
- ├── .cursor/rules/ # Cursor IDE 통합 (감지된 경우)
98
- │ ├── code-style-guide.mdc
99
- │ ├── coding-principles.mdc
100
- │ └── ... (변환된 규칙)
101
- └── .windsurf/rules/ # Windsurf IDE 통합 (감지된 경우)
102
- ├── code-style-guide.md
103
- ├── coding-principles.md
104
- └── ... (일반 마크다운 규칙)
105
- ```
106
-
107
- ## 상세 기능
108
-
109
- ### 다국어 지원
110
- - **언어 선택**: 설치 중 대화형 프롬프트
111
- - **지원 언어**: 영어 및 한국어
112
- - **언어별 파일**: 선택한 언어에 따라 명령어와 문서가 설치됨
113
- - **기본값**: `--force` 플래그 사용 시 한국어로 기본 설정
114
-
115
- ### 명령어 시스템
116
- 이 프레임워크는 AI 지원 개발을 위한 25개 이상의 전문 명령어를 포함합니다:
117
- - **설정**: `initialize`, `prime`, `prime_context`
118
- - **계획**: `aiwf_create_milestone_plan`, `aiwf_create_sprints_from_milestone`, `aiwf_create_sprint_tasks`
119
- - **개발**: `do_task`, `commit`, `test`, `code_review`
120
- - **자동화**: `yolo` (자율 태스크 실행)
121
- - **GitHub 통합**: `issue_create`, `pr_create`
122
- - **분석**: `ultrathink_*`, `mermaid`, `project_review`
123
-
124
- ### IDE 통합
125
- - **Cursor IDE**: 프론트매터가 포함된 `.mdc` 형식으로 규칙 변환
126
- - **Windsurf IDE**: 일반 마크다운 형식 사용
127
- - **Claude Code**: 사용자 정의 명령어와의 네이티브 통합
128
-
129
- ## 현재 상태 (v0.3.0)
130
-
131
- ### 완료된 기능
132
- - ✅ NPM 패키지 배포 (`npx aiwf`)
133
- - ✅ 다국어 지원 (한국어/영어)
134
- - ✅ IDE 통합 (Cursor, Windsurf)
135
- - ✅ 25개 이상의 Claude Code 명령어
136
- - ✅ 백업/복원 메커니즘
137
- - ✅ GitHub API 통합
138
-
139
- ### 알려진 이슈
140
- - `update_docs` 명령어 파일 누락 (`aiwf_docs.md`만 존재)
141
- - GitHub 저장소 URL이 `aiwf/aiwf`로 통일됨
142
-
143
- ### 로드맵
144
- - [ ] 오프라인 설치 옵션
145
- - [ ] 추가 언어 지원
146
- - [ ] VS Code 확장
147
- - [ ] 향상된 프로젝트 템플릿
148
- - [ ] 사용자 정의 명령어를 위한 커뮤니티 마켓플레이스