@k2works/claude-code-booster 6.3.1 → 6.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 (292) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +61 -61
  3. package/bin/claude-code-booster +113 -113
  4. package/lib/assets/.claude/README.md +287 -287
  5. package/lib/assets/.claude/agents/xp-architect.md +250 -250
  6. package/lib/assets/.claude/agents/xp-executive.md +207 -207
  7. package/lib/assets/.claude/agents/xp-interaction-designer.md +239 -239
  8. package/lib/assets/.claude/agents/xp-product-manager.md +245 -245
  9. package/lib/assets/.claude/agents/xp-programmer.md +268 -268
  10. package/lib/assets/.claude/agents/xp-project-manager.md +229 -229
  11. package/lib/assets/.claude/agents/xp-technical-writer.md +224 -224
  12. package/lib/assets/.claude/agents/xp-tester.md +265 -265
  13. package/lib/assets/.claude/agents/xp-user-representative.md +204 -204
  14. package/lib/assets/.claude/scripts/generate-inception-deck.mjs +911 -911
  15. package/lib/assets/.claude/settings.json +11 -11
  16. package/lib/assets/.claude/skills/ai-agent-guidelines/SKILL.md +111 -111
  17. package/lib/assets/.claude/skills/analyzing-architecture/SKILL.md +83 -83
  18. package/lib/assets/.claude/skills/analyzing-business-architecture/SKILL.md +122 -122
  19. package/lib/assets/.claude/skills/analyzing-business-case/SKILL.md +148 -148
  20. package/lib/assets/.claude/skills/analyzing-business-strategy/SKILL.md +277 -277
  21. package/lib/assets/.claude/skills/analyzing-data-model/SKILL.md +77 -77
  22. package/lib/assets/.claude/skills/analyzing-domain-model/SKILL.md +117 -117
  23. package/lib/assets/.claude/skills/analyzing-inception-deck/SKILL.md +84 -84
  24. package/lib/assets/.claude/skills/analyzing-non-functional/SKILL.md +95 -95
  25. package/lib/assets/.claude/skills/analyzing-operation/SKILL.md +95 -95
  26. package/lib/assets/.claude/skills/analyzing-requirements/SKILL.md +91 -91
  27. package/lib/assets/.claude/skills/analyzing-review/SKILL.md +174 -174
  28. package/lib/assets/.claude/skills/analyzing-tech-stack/SKILL.md +101 -101
  29. package/lib/assets/.claude/skills/analyzing-test-strategy/SKILL.md +89 -89
  30. package/lib/assets/.claude/skills/analyzing-ui-design/SKILL.md +80 -80
  31. package/lib/assets/.claude/skills/analyzing-usecases/SKILL.md +72 -72
  32. package/lib/assets/.claude/skills/closing-iteration/SKILL.md +176 -176
  33. package/lib/assets/.claude/skills/creating-adr/SKILL.md +117 -117
  34. package/lib/assets/.claude/skills/creating-development-strategy/SKILL.md +151 -127
  35. package/lib/assets/.claude/skills/creating-iteration-report/SKILL.md +210 -210
  36. package/lib/assets/.claude/skills/creating-journal/SKILL.md +140 -140
  37. package/lib/assets/.claude/skills/creating-manual/SKILL.md +199 -199
  38. package/lib/assets/.claude/skills/creating-release-report/SKILL.md +161 -161
  39. package/lib/assets/.claude/skills/creating-slides/SKILL.md +86 -86
  40. package/lib/assets/.claude/skills/creating-slides/agents/openai.yaml +4 -4
  41. package/lib/assets/.claude/skills/creating-slides/references/manga-css.md +45 -45
  42. package/lib/assets/.claude/skills/creating-slides/scripts/slide_tools.py +239 -239
  43. package/lib/assets/.claude/skills/developing-backend/SKILL.md +100 -100
  44. package/lib/assets/.claude/skills/developing-frontend/SKILL.md +93 -93
  45. package/lib/assets/.claude/skills/developing-release/SKILL.md +120 -120
  46. package/lib/assets/.claude/skills/developing-review/SKILL.md +175 -175
  47. package/lib/assets/.claude/skills/developing-uiux-review/SKILL.md +207 -207
  48. package/lib/assets/.claude/skills/generating-bmc/SKILL.md +123 -123
  49. package/lib/assets/.claude/skills/generating-slides/SKILL.md +94 -94
  50. package/lib/assets/.claude/skills/git-commit/SKILL.md +81 -81
  51. package/lib/assets/.claude/skills/killing-processes/SKILL.md +44 -44
  52. package/lib/assets/.claude/skills/migrating-ai-dlc/evals/evals.json +59 -59
  53. package/lib/assets/.claude/skills/opening-iteration/SKILL.md +124 -124
  54. package/lib/assets/.claude/skills/operating-backup/SKILL.md +59 -59
  55. package/lib/assets/.claude/skills/operating-cicd/SKILL.md +54 -54
  56. package/lib/assets/.claude/skills/operating-deploy/SKILL.md +67 -67
  57. package/lib/assets/.claude/skills/operating-docs/SKILL.md +219 -219
  58. package/lib/assets/.claude/skills/operating-provision/SKILL.md +77 -77
  59. package/lib/assets/.claude/skills/operating-qt/SKILL.md +147 -147
  60. package/lib/assets/.claude/skills/operating-review/SKILL.md +171 -171
  61. package/lib/assets/.claude/skills/operating-script/SKILL.md +145 -145
  62. package/lib/assets/.claude/skills/operating-setup/SKILL.md +63 -63
  63. package/lib/assets/.claude/skills/orchestrating-analysis/SKILL.md +110 -110
  64. package/lib/assets/.claude/skills/orchestrating-development/SKILL.md +172 -172
  65. package/lib/assets/.claude/skills/orchestrating-operation/SKILL.md +161 -161
  66. package/lib/assets/.claude/skills/orchestrating-project/SKILL.md +149 -149
  67. package/lib/assets/.claude/skills/planning-releases/SKILL.md +121 -121
  68. package/lib/assets/.claude/skills/practicing-getting-start-tdd/SKILL.md +262 -262
  69. package/lib/assets/.claude/skills/syncing-github-project/SKILL.md +151 -151
  70. package/lib/assets/.claude/skills/tracking-progress/SKILL.md +91 -91
  71. package/lib/assets/.claude/skills/validating-design/SKILL.md +130 -130
  72. package/lib/assets/.claude/skills/validating-iteration-plan/SKILL.md +238 -238
  73. package/lib/assets/.claude/skills/validating-operating-setup/SKILL.md +118 -118
  74. package/lib/assets/.devcontainer/devcontainer.json +37 -37
  75. package/lib/assets/.env.example +32 -32
  76. package/lib/assets/.gitattributes +4 -4
  77. package/lib/assets/.github/workflows/docker-publish.yml +77 -77
  78. package/lib/assets/.github/workflows/mkdocs.yml +39 -39
  79. package/lib/assets/AGENTS.md +102 -102
  80. package/lib/assets/README.md +304 -304
  81. package/lib/assets/docker-compose.yml +33 -33
  82. package/lib/assets/docs/adr/index.md +10 -10
  83. package/lib/assets/docs/assets/css/extra.css +29 -29
  84. package/lib/assets/docs/assets/js/extra.js +48 -48
  85. package/lib/assets/docs/assets/js/mathjax.js +27 -27
  86. package/lib/assets/docs/design/index.md +44 -44
  87. package/lib/assets/docs/development/index.md +39 -39
  88. package/lib/assets/docs/index.md +1 -1
  89. package/lib/assets/docs/log.md +3 -0
  90. package/lib/assets/docs/operation/index.md +41 -41
  91. package/lib/assets/docs/reference/BDD/345/260/216/345/205/245/343/202/254/343/202/244/343/203/211.md +766 -0
  92. package/lib/assets/docs/reference/CodexCLIMCP/343/202/242/343/203/227/343/203/252/343/202/261/343/203/274/343/202/267/343/203/247/343/203/263/351/226/213/347/231/272/343/203/225/343/203/255/343/203/274.md +555 -555
  93. package/lib/assets/docs/reference/CodexCLIMCP/343/202/265/343/203/274/343/203/220/343/203/274/350/250/255/345/256/232/346/211/213/351/240/206.md +351 -351
  94. package/lib/assets/docs/reference/Java/343/202/242/343/203/227/343/203/252/343/202/261/343/203/274/343/202/267/343/203/247/343/203/263/347/222/260/345/242/203/346/247/213/347/257/211/343/202/254/343/202/244/343/203/211.md +592 -592
  95. package/lib/assets/docs/reference/OKF/345/260/216/345/205/245/343/202/254/343/202/244/343/203/211_V0.2.md +965 -965
  96. package/lib/assets/docs/reference/SonarQube/343/203/255/343/203/274/343/202/253/343/203/253/347/222/260/345/242/203/343/202/273/343/203/203/343/203/210/343/202/242/343/203/203/343/203/227/346/211/213/351/240/206/346/233/270.md +652 -652
  97. package/lib/assets/docs/reference/TypeScript/343/202/242/343/203/227/343/203/252/343/202/261/343/203/274/343/202/267/343/203/247/343/203/263/347/222/260/345/242/203/346/247/213/347/257/211/343/202/254/343/202/244/343/203/211.md +476 -476
  98. package/lib/assets/docs/reference/UI/350/250/255/350/250/210/343/202/254/343/202/244/343/203/211.md +460 -460
  99. package/lib/assets/docs/reference/Vim/346/223/215/344/275/234/343/203/236/343/203/213/343/203/245/343/202/242/343/203/253.md +177 -177
  100. package/lib/assets/docs/reference/images/Ansoff.drawio.svg +3 -3
  101. package/lib/assets/docs/reference/images/BMC.drawio.svg +3 -3
  102. package/lib/assets/docs/reference/images/BrandBasicStrategy.drawio.svg +3 -3
  103. package/lib/assets/docs/reference/images/BrandCategorization.drawio.svg +3 -3
  104. package/lib/assets/docs/reference/images/BrandRecurutementStrategy.drawio.svg +3 -3
  105. package/lib/assets/docs/reference/images/BrandValue.drawio.svg +3 -3
  106. package/lib/assets/docs/reference/images/BusinessActivitiy.svg +3 -3
  107. package/lib/assets/docs/reference/images/HRM.drawio.svg +3 -3
  108. package/lib/assets/docs/reference/images/MarketingStructure.drawio.svg +3 -3
  109. package/lib/assets/docs/reference/images/OrganizationElemnts.svg +3 -3
  110. package/lib/assets/docs/reference/images/PPM.drawio.svg +3 -3
  111. package/lib/assets/docs/reference/images/PositioningMap.drawio.svg +3 -3
  112. package/lib/assets/docs/reference/images/ProductLayer.drawio.svg +3 -3
  113. package/lib/assets/docs/reference/images/ProductMix.drawio.svg +3 -3
  114. package/lib/assets/docs/reference/images/SWOT.drawio.svg +3 -3
  115. package/lib/assets/docs/reference/images/TargetMarket.drawio.svg +3 -3
  116. package/lib/assets/docs/reference/images/ThreeGenericStrategies.drawio.svg +3 -3
  117. package/lib/assets/docs/reference/images/VRIO.drawio.svg +3 -3
  118. package/lib/assets/docs/reference/images/ValueChain.drawio.svg +3 -3
  119. package/lib/assets/docs/reference/index.md +1 -0
  120. package/lib/assets/docs/reference//343/202/210/343/201/204/343/202/275/343/203/225/343/203/210/343/202/246/343/202/247/343/202/242/343/201/250/343/201/257.md +250 -250
  121. package/lib/assets/docs/reference//343/202/242/343/203/274/343/202/255/343/203/206/343/202/257/343/203/201/343/203/243/350/250/255/350/250/210/343/202/254/343/202/244/343/203/211.md +2226 -2226
  122. package/lib/assets/docs/reference//343/202/244/343/203/263/343/203/225/343/203/251/350/250/255/350/250/210/343/202/254/343/202/244/343/203/211.md +1888 -1888
  123. package/lib/assets/docs/reference//343/202/250/343/202/257/343/202/271/343/203/210/343/203/252/343/203/274/343/203/240/343/203/227/343/203/255/343/202/260/343/203/251/343/203/237/343/203/263/343/202/260.md +549 -549
  124. package/lib/assets/docs/reference//343/202/263/343/203/274/343/203/207/343/202/243/343/203/263/343/202/260/343/201/250/343/203/206/343/202/271/343/203/210/343/202/254/343/202/244/343/203/211.md +715 -715
  125. package/lib/assets/docs/reference//343/203/206/343/202/271/343/203/210/346/210/246/347/225/245/343/202/254/343/202/244/343/203/211.md +1323 -1323
  126. package/lib/assets/docs/reference//343/203/207/343/203/274/343/202/277/343/203/242/343/203/207/343/203/253/350/250/255/350/250/210/343/202/254/343/202/244/343/203/211.md +321 -321
  127. package/lib/assets/docs/reference//343/203/211/343/203/241/343/202/244/343/203/263/343/203/242/343/203/207/343/203/253/350/250/255/350/250/210/343/202/254/343/202/244/343/203/211.md +609 -609
  128. package/lib/assets/docs/reference//343/203/223/343/202/270/343/203/215/343/202/271/343/202/242/343/203/274/343/202/255/343/203/206/343/202/257/343/203/201/343/203/243/345/210/206/346/236/220/343/202/254/343/202/244/343/203/211.md +537 -537
  129. package/lib/assets/docs/reference//343/203/246/343/203/274/343/202/271/343/202/261/343/203/274/343/202/271/344/275/234/346/210/220/343/202/254/343/202/244/343/203/211.md +699 -699
  130. package/lib/assets/docs/reference//343/203/252/343/203/252/343/203/274/343/202/271/343/202/254/343/202/244/343/203/211.md +470 -470
  131. package/lib/assets/docs/reference//343/203/252/343/203/252/343/203/274/343/202/271/343/203/273/343/202/244/343/203/206/343/203/254/343/203/274/343/202/267/343/203/247/343/203/263/350/250/210/347/224/273/343/202/254/343/202/244/343/203/211.md +580 -580
  132. package/lib/assets/docs/reference//343/203/255/343/202/270/343/202/253/343/203/253/343/202/267/343/203/263/343/202/255/343/203/263/343/202/260.md +1376 -1376
  133. package/lib/assets/docs/reference//344/274/201/346/245/255/347/265/214/345/226/266/350/253/226.md +2647 -2647
  134. package/lib/assets/docs/reference//347/222/260/345/242/203/345/244/211/346/225/260/347/256/241/347/220/206/343/202/254/343/202/244/343/203/211.md +675 -675
  135. package/lib/assets/docs/reference//347/265/214/345/226/266/346/210/246/347/225/245/345/210/206/346/236/220/343/202/254/343/202/244/343/203/211.md +575 -575
  136. package/lib/assets/docs/reference//350/246/201/344/273/266/345/256/232/347/276/251/343/202/254/343/202/244/343/203/211.md +1258 -1258
  137. package/lib/assets/docs/reference//350/250/200/350/252/236/345/210/245/351/226/213/347/231/272/343/202/254/343/202/244/343/203/211.md +527 -527
  138. package/lib/assets/docs/reference//351/201/213/345/226/266/347/256/241/347/220/206.md +1492 -1492
  139. package/lib/assets/docs/reference//351/201/213/347/224/250/343/202/271/343/202/257/343/203/252/343/203/227/343/203/210/344/275/234/346/210/220/343/202/254/343/202/244/343/203/211.md +430 -430
  140. package/lib/assets/docs/reference//351/201/213/347/224/250/350/246/201/344/273/266/345/256/232/347/276/251/343/202/254/343/202/244/343/203/211.md +402 -402
  141. package/lib/assets/docs/reference//351/226/213/347/231/272/343/202/254/343/202/244/343/203/211.md +314 -314
  142. package/lib/assets/docs/reference//351/235/236/346/251/237/350/203/275/350/246/201/344/273/266/345/256/232/347/276/251/343/202/254/343/202/244/343/203/211.md +1246 -1246
  143. package/lib/assets/docs/requirements/index.md +17 -17
  144. package/lib/assets/docs/review/index.md +5 -5
  145. package/lib/assets/docs/strategy/index.md +17 -17
  146. package/lib/assets/docs/template/ADR.md +39 -39
  147. package/lib/assets/docs/template/AWS/343/202/271/343/203/206/343/203/274/343/202/270/343/203/263/343/202/260/347/222/260/345/242/203/343/202/273/343/203/203/343/203/210/343/202/242/343/203/203/343/203/227/346/211/213/351/240/206/346/233/270.md +1375 -1375
  148. package/lib/assets/docs/template/AWS/343/203/227/343/203/255/343/203/200/343/202/257/343/202/267/343/203/247/343/203/263/347/222/260/345/242/203/343/202/273/343/203/203/343/203/210/343/202/242/343/203/203/343/203/227/346/211/213/351/240/206/346/233/270.md +643 -643
  149. package/lib/assets/docs/template/README.md +59 -59
  150. package/lib/assets/docs/template/index.md +24 -24
  151. package/lib/assets/docs/template//343/201/276/343/201/232/343/201/223/343/202/214/343/202/222/350/252/255/343/202/202/343/201/206/343/203/252/343/202/271/343/203/210.md +21 -21
  152. package/lib/assets/docs/template//343/202/242/343/203/227/343/203/252/343/202/261/343/203/274/343/202/267/343/203/247/343/203/263/351/226/213/347/231/272/347/222/260/345/242/203/343/202/273/343/203/203/343/203/210/343/202/242/343/203/203/343/203/227/346/211/213/351/240/206/346/233/270.md +556 -556
  153. package/lib/assets/docs/template//343/202/244/343/203/206/343/203/254/343/203/274/343/202/267/343/203/247/343/203/263/345/256/214/344/272/206/345/240/261/345/221/212/346/233/270.md +68 -68
  154. package/lib/assets/docs/template//343/202/244/343/203/206/343/203/254/343/203/274/343/202/267/343/203/247/343/203/263/350/250/210/347/224/273.md +336 -336
  155. package/lib/assets/docs/template//343/202/244/343/203/263/343/202/273/343/203/227/343/202/267/343/203/247/343/203/263/343/203/207/343/203/203/343/202/255.md +22 -22
  156. package/lib/assets/docs/template//343/203/223/343/202/270/343/203/215/343/202/271/343/202/242/343/203/274/343/202/255/343/203/206/343/202/257/343/203/201/343/203/243.md +388 -388
  157. package/lib/assets/docs/template//343/203/252/343/203/252/343/203/274/343/202/271/345/256/214/344/272/206/345/240/261/345/221/212/346/233/270.md +284 -284
  158. package/lib/assets/docs/template//343/203/252/343/203/252/343/203/274/343/202/271/350/250/210/347/224/273.md +289 -289
  159. package/lib/assets/docs/template//344/272/213/344/276/213/345/210/206/346/236/220.md +522 -522
  160. package/lib/assets/docs/template//344/274/201/346/245/255/345/210/206/346/236/220.md +582 -582
  161. package/lib/assets/docs/template//345/256/214/345/205/250/345/275/242/345/274/217/343/201/256/343/203/246/343/203/274/343/202/271/343/202/261/343/203/274/343/202/271.md +69 -69
  162. package/lib/assets/docs/template//350/246/201/344/273/266/345/256/232/347/276/251.md +669 -669
  163. package/lib/assets/docs/template//350/250/255/350/250/210.md +183 -183
  164. package/lib/assets/docs/template//351/226/213/347/231/272/347/222/260/345/242/203/343/202/273/343/203/203/343/203/210/343/202/242/343/203/203/343/203/227/346/211/213/351/240/206/346/233/270.md +697 -697
  165. package/lib/assets/gulpfile.js +29 -29
  166. package/lib/assets/mkdocs.yml +147 -138
  167. package/lib/assets/ops/docker/sonarqube-local/docker-compose.yml +57 -57
  168. package/lib/assets/ops/scripts/journal.js +180 -180
  169. package/lib/assets/ops/scripts/mkdocs.js +82 -82
  170. package/lib/assets/ops/scripts/release.js +431 -431
  171. package/lib/assets/ops/scripts/sonar_local.js +726 -726
  172. package/lib/assets/ops/scripts/ssh.js +190 -190
  173. package/lib/assets/ops/scripts/vault.js +299 -299
  174. package/lib/assets/package-lock.json +1673 -1673
  175. package/lib/assets/package.json +45 -45
  176. package/lib/gulpfile.js +37 -37
  177. package/package.json +41 -41
  178. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/benchmark.json +0 -20
  179. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/benchmark.md +0 -13
  180. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/eval_metadata.json +0 -14
  181. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/with_skill/grading.json +0 -39
  182. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/with_skill/outputs/docs_after/adr/001-db.md +0 -12
  183. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/with_skill/outputs/docs_after/adr/002-cache-strategy.md +0 -20
  184. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/with_skill/outputs/docs_after/adr/index.md +0 -4
  185. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/with_skill/outputs/docs_after/design/data-model.md +0 -12
  186. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/with_skill/outputs/docs_after/design/index.md +0 -3
  187. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/with_skill/outputs/docs_after/index.md +0 -10
  188. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/with_skill/outputs/docs_after/log.md +0 -7
  189. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/with_skill/outputs/docs_after/operation/deploy-old.md +0 -12
  190. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/with_skill/outputs/docs_after/operation/deploy.md +0 -12
  191. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/with_skill/outputs/docs_after/operation/index.md +0 -4
  192. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/with_skill/outputs/docs_after/reference/OKF/345/260/216/345/205/245/343/202/254/343/202/244/343/203/211_V0.2.md +0 -965
  193. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/with_skill/outputs/report.md +0 -76
  194. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/without_skill/grading.json +0 -39
  195. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/without_skill/outputs/docs_after/adr/001-db.md +0 -12
  196. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/without_skill/outputs/docs_after/adr/002-cache-strategy.md +0 -20
  197. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/without_skill/outputs/docs_after/adr/index.md +0 -4
  198. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/without_skill/outputs/docs_after/design/data-model.md +0 -12
  199. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/without_skill/outputs/docs_after/design/index.md +0 -3
  200. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/without_skill/outputs/docs_after/index.md +0 -10
  201. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/without_skill/outputs/docs_after/log.md +0 -7
  202. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/without_skill/outputs/docs_after/operation/deploy-old.md +0 -12
  203. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/without_skill/outputs/docs_after/operation/deploy.md +0 -12
  204. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/without_skill/outputs/docs_after/operation/index.md +0 -4
  205. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/without_skill/outputs/docs_after/reference/OKF/345/260/216/345/205/245/343/202/254/343/202/244/343/203/211_V0.2.md +0 -965
  206. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/without_skill/outputs/report.md +0 -22
  207. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/eval_metadata.json +0 -13
  208. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/with_skill/grading.json +0 -34
  209. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/with_skill/outputs/docs_after/adr/001-db.md +0 -12
  210. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/with_skill/outputs/docs_after/adr/002-cache-strategy.md +0 -11
  211. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/with_skill/outputs/docs_after/adr/index.md +0 -3
  212. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/with_skill/outputs/docs_after/design/data-model.md +0 -14
  213. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/with_skill/outputs/docs_after/design/index.md +0 -3
  214. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/with_skill/outputs/docs_after/index.md +0 -10
  215. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/with_skill/outputs/docs_after/log.md +0 -7
  216. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/with_skill/outputs/docs_after/operation/deploy-old.md +0 -12
  217. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/with_skill/outputs/docs_after/operation/deploy.md +0 -12
  218. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/with_skill/outputs/docs_after/operation/index.md +0 -4
  219. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/with_skill/outputs/docs_after/reference/OKF/345/260/216/345/205/245/343/202/254/343/202/244/343/203/211_V0.2.md +0 -965
  220. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/with_skill/outputs/report.md +0 -61
  221. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/without_skill/grading.json +0 -34
  222. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/without_skill/outputs/docs_after/adr/001-db.md +0 -12
  223. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/without_skill/outputs/docs_after/adr/002-cache-strategy.md +0 -11
  224. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/without_skill/outputs/docs_after/adr/index.md +0 -3
  225. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/without_skill/outputs/docs_after/design/data-model.md +0 -13
  226. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/without_skill/outputs/docs_after/design/index.md +0 -3
  227. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/without_skill/outputs/docs_after/index.md +0 -10
  228. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/without_skill/outputs/docs_after/log.md +0 -7
  229. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/without_skill/outputs/docs_after/operation/deploy-old.md +0 -12
  230. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/without_skill/outputs/docs_after/operation/deploy.md +0 -12
  231. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/without_skill/outputs/docs_after/operation/index.md +0 -4
  232. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/without_skill/outputs/docs_after/reference/OKF/345/260/216/345/205/245/343/202/254/343/202/244/343/203/211_V0.2.md +0 -965
  233. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/without_skill/outputs/report.md +0 -18
  234. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/eval_metadata.json +0 -13
  235. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/with_skill/grading.json +0 -34
  236. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/with_skill/outputs/docs_after/adr/001-db.md +0 -12
  237. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/with_skill/outputs/docs_after/adr/002-cache-strategy.md +0 -11
  238. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/with_skill/outputs/docs_after/adr/index.md +0 -3
  239. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/with_skill/outputs/docs_after/design/data-model.md +0 -12
  240. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/with_skill/outputs/docs_after/design/index.md +0 -3
  241. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/with_skill/outputs/docs_after/index.md +0 -10
  242. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/with_skill/outputs/docs_after/log.md +0 -7
  243. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/with_skill/outputs/docs_after/operation/deploy-old.md +0 -13
  244. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/with_skill/outputs/docs_after/operation/deploy.md +0 -12
  245. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/with_skill/outputs/docs_after/operation/index.md +0 -7
  246. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/with_skill/outputs/docs_after/reference/OKF/345/260/216/345/205/245/343/202/254/343/202/244/343/203/211_V0.2.md +0 -965
  247. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/with_skill/outputs/report.md +0 -83
  248. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/without_skill/grading.json +0 -34
  249. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/without_skill/outputs/docs_after/adr/001-db.md +0 -12
  250. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/without_skill/outputs/docs_after/adr/002-cache-strategy.md +0 -11
  251. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/without_skill/outputs/docs_after/adr/index.md +0 -3
  252. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/without_skill/outputs/docs_after/design/data-model.md +0 -12
  253. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/without_skill/outputs/docs_after/design/index.md +0 -3
  254. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/without_skill/outputs/docs_after/index.md +0 -10
  255. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/without_skill/outputs/docs_after/log.md +0 -7
  256. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/without_skill/outputs/docs_after/operation/deploy-old.md +0 -14
  257. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/without_skill/outputs/docs_after/operation/deploy.md +0 -12
  258. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/without_skill/outputs/docs_after/operation/index.md +0 -4
  259. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/without_skill/outputs/docs_after/reference/OKF/345/260/216/345/205/245/343/202/254/343/202/244/343/203/211_V0.2.md +0 -965
  260. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/without_skill/outputs/report.md +0 -15
  261. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/review.html +0 -1325
  262. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/benchmark.json +0 -20
  263. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/benchmark.md +0 -13
  264. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-1-migrate-docs/eval_metadata.json +0 -15
  265. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-1-migrate-docs/with_skill/grading.json +0 -44
  266. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-1-migrate-docs/with_skill/outputs/docs_after/adr/index.md +0 -10
  267. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-1-migrate-docs/with_skill/outputs/docs_after/index.md +0 -15
  268. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-1-migrate-docs/with_skill/outputs/docs_after/log.md +0 -5
  269. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-1-migrate-docs/with_skill/outputs/docs_after/reference/OKF/345/260/216/345/205/245/343/202/254/343/202/244/343/203/211_V0.2.md +0 -966
  270. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-1-migrate-docs/with_skill/outputs/docs_after/reference/index.md +0 -6
  271. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-1-migrate-docs/with_skill/outputs/docs_after/reference//343/202/210/343/201/204/343/202/275/343/203/225/343/203/210/343/202/246/343/202/247/343/202/242/343/201/250/343/201/257.md +0 -261
  272. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-1-migrate-docs/with_skill/outputs/docs_after/reference//343/203/252/343/203/252/343/203/274/343/202/271/343/202/254/343/202/244/343/203/211.md +0 -480
  273. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-1-migrate-docs/with_skill/outputs/docs_after/reference//347/222/260/345/242/203/345/244/211/346/225/260/347/256/241/347/220/206/343/202/254/343/202/244/343/203/211.md +0 -681
  274. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-1-migrate-docs/with_skill/outputs/report.md +0 -85
  275. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-1-migrate-docs/without_skill/grading.json +0 -44
  276. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-1-migrate-docs/without_skill/outputs/docs_after/adr/index.md +0 -8
  277. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-1-migrate-docs/without_skill/outputs/docs_after/index.md +0 -11
  278. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-1-migrate-docs/without_skill/outputs/docs_after/log.md +0 -7
  279. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-1-migrate-docs/without_skill/outputs/docs_after/reference/OKF/345/260/216/345/205/245/343/202/254/343/202/244/343/203/211_V0.2.md +0 -964
  280. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-1-migrate-docs/without_skill/outputs/docs_after/reference/index.md +0 -9
  281. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-1-migrate-docs/without_skill/outputs/docs_after/reference//343/202/210/343/201/204/343/202/275/343/203/225/343/203/210/343/202/246/343/202/247/343/202/242/343/201/250/343/201/257.md +0 -250
  282. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-1-migrate-docs/without_skill/outputs/docs_after/reference//343/203/252/343/203/252/343/203/274/343/202/271/343/202/254/343/202/244/343/203/211.md +0 -469
  283. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-1-migrate-docs/without_skill/outputs/docs_after/reference//347/222/260/345/242/203/345/244/211/346/225/260/347/256/241/347/220/206/343/202/254/343/202/244/343/203/211.md +0 -677
  284. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-1-migrate-docs/without_skill/outputs/report.md +0 -49
  285. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-2-upgrade-v01-to-v02/eval_metadata.json +0 -13
  286. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-2-upgrade-v01-to-v02/with_skill/grading.json +0 -34
  287. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-2-upgrade-v01-to-v02/with_skill/outputs/knowledge_after/index.md +0 -7
  288. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-2-upgrade-v01-to-v02/with_skill/outputs/knowledge_after/log.md +0 -7
  289. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-2-upgrade-v01-to-v02/with_skill/outputs/knowledge_after/metrics/churn.md +0 -9
  290. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-2-upgrade-v01-to-v02/with_skill/outputs/knowledge_after/metrics/income-statement.md +0 -15
  291. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-2-upgrade-v01-to-v02/with_skill/outputs/report.md +0 -147
  292. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/review.html +0 -1325
@@ -1,592 +1,592 @@
1
- ---
2
- type: Reference
3
- title: "Java アプリケーション環境構築ガイド"
4
- description: "本ガイドは、Java アプリケーション開発環境をゼロから構築し、ソフトウェア開発の三種の神器(バージョン管理、テスティング、自動化)を実践するための手順書です。"
5
- tags: [reference]
6
- status: stable
7
- generated: { by: human:kakimomokuri, at: 2026-04-06T03:31:33Z }
8
- stale_after: 2027-02-23T00:00:00Z
9
- ---
10
-
11
- # Java アプリケーション環境構築ガイド
12
-
13
- ## 概要
14
-
15
- 本ガイドは、Java アプリケーション開発環境をゼロから構築し、ソフトウェア開発の三種の神器(バージョン管理、テスティング、自動化)を実践するための手順書です。
16
-
17
- ## 前提条件
18
-
19
- - Java 17 以降がインストールされていること
20
- - Git がインストールされていること
21
- - IntelliJ IDEA または VS Code がインストールされていること(推奨)
22
-
23
- ## ソフトウェア開発の三種の神器
24
-
25
- ### 1. バージョン管理
26
-
27
- #### Git の基本設定
28
-
29
- ```bash
30
- # ユーザー設定
31
- git config --global user.name "Your Name"
32
- git config --global user.email "your.email@example.com"
33
-
34
- # リポジトリの初期化
35
- git init
36
-
37
- # .gitignore の作成
38
- echo "build/" >> .gitignore
39
- echo ".gradle/" >> .gitignore
40
- echo "*.class" >> .gitignore
41
- echo ".idea/" >> .gitignore
42
- echo "*.iml" >> .gitignore
43
- ```
44
-
45
- #### コミットメッセージ規約(Angular ルール)
46
-
47
- ```text
48
- <タイプ>(<スコープ>): <タイトル>
49
- <空行>
50
- <ボディ>
51
- <空行>
52
- <フッタ>
53
- ```
54
-
55
- **タイプの種類:**
56
-
57
- - `feat`: 新機能の追加
58
- - `fix`: バグ修正
59
- - `docs`: ドキュメント変更のみ
60
- - `style`: コードに影響を与えない変更(フォーマット等)
61
- - `refactor`: 機能追加でもバグ修正でもないコード変更
62
- - `perf`: パフォーマンスを改善するコード変更
63
- - `test`: テストの追加または修正
64
- - `chore`: ビルドプロセスやツールの変更
65
-
66
- **例:**
67
- ```bash
68
- git commit -m 'feat: FizzBuzz機能の実装'
69
- git commit -m 'refactor: メソッドの抽出'
70
- git commit -m 'chore: 静的コード解析セットアップ'
71
- ```
72
-
73
- ### 2. テスティング
74
-
75
- #### JUnit 5 と AssertJ のセットアップ
76
-
77
- Gradle プロジェクトの初期化:
78
-
79
- ```bash
80
- ./gradlew init --type java-application
81
- ```
82
-
83
- `build.gradle` の基本設定:
84
-
85
- ```groovy
86
- plugins {
87
- id 'java'
88
- id 'application'
89
- }
90
-
91
- repositories {
92
- mavenCentral()
93
- }
94
-
95
- dependencies {
96
- // JUnit 5
97
- testImplementation 'org.junit.jupiter:junit-jupiter-api:5.10.1'
98
- testImplementation 'org.junit.jupiter:junit-jupiter-params:5.10.1'
99
- testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.10.1'
100
-
101
- // AssertJ
102
- testImplementation 'org.assertj:assertj-core:3.24.2'
103
- }
104
-
105
- test {
106
- useJUnitPlatform()
107
- }
108
-
109
- application {
110
- mainClass = 'App'
111
- }
112
- ```
113
-
114
- #### テストの実行
115
-
116
- ```bash
117
- # テストの実行
118
- ./gradlew test
119
-
120
- # 継続的テスト実行(ファイル変更監視)
121
- ./gradlew test --continuous
122
- ```
123
-
124
- ### 3. 自動化
125
-
126
- #### 完全な Gradle セットアップ
127
-
128
- `build.gradle` の完全版:
129
-
130
- ```groovy
131
- plugins {
132
- id 'java'
133
- id 'application'
134
- id 'jacoco'
135
- id 'checkstyle'
136
- id 'pmd'
137
- id 'com.github.spotbugs' version '6.0.7'
138
- id 'org.gradle.test-retry' version '1.5.6'
139
- }
140
-
141
- repositories {
142
- mavenCentral()
143
- }
144
-
145
- dependencies {
146
- // テスト関連
147
- testImplementation 'org.junit.jupiter:junit-jupiter-api:5.10.1'
148
- testImplementation 'org.junit.jupiter:junit-jupiter-params:5.10.1'
149
- testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.10.1'
150
- testImplementation 'org.assertj:assertj-core:3.24.2'
151
-
152
- // SpotBugs関連
153
- spotbugsPlugins 'com.h3xstream.findsecbugs:findsecbugs-plugin:1.12.0'
154
- }
155
-
156
- application {
157
- mainClass = 'App'
158
- }
159
-
160
- test {
161
- useJUnitPlatform()
162
-
163
- // テスト失敗時のリトライ設定
164
- retry {
165
- maxRetries = 3
166
- maxFailures = 20
167
- failOnPassedAfterRetry = false
168
- }
169
-
170
- // テストログ設定
171
- testLogging {
172
- events "passed", "skipped", "failed"
173
- exceptionFormat "full"
174
- }
175
- }
176
-
177
- // JaCoCo(コードカバレッジ)設定
178
- jacoco {
179
- toolVersion = "0.8.11"
180
- }
181
-
182
- jacocoTestReport {
183
- dependsOn test
184
- reports {
185
- xml.required = false
186
- csv.required = false
187
- html.outputLocation = layout.buildDirectory.dir('jacocoHtml')
188
- }
189
- }
190
-
191
- // PMD 設定
192
- pmd {
193
- consoleOutput = true
194
- toolVersion = "6.55.0"
195
- ruleSetFiles = files("config/pmd/ruleset.xml")
196
- ruleSets = []
197
- }
198
-
199
- // カスタムタスク:TDD用の継続的テスト実行
200
- task tdd(type: Test) {
201
- useJUnitPlatform()
202
- testLogging {
203
- events "passed", "skipped", "failed"
204
- exceptionFormat "full"
205
- }
206
- outputs.upToDateWhen { false }
207
- }
208
-
209
- // カスタムタスク:品質チェック全実行
210
- task qualityCheck {
211
- dependsOn 'checkstyleMain', 'checkstyleTest', 'pmdMain', 'pmdTest', 'spotbugsMain', 'spotbugsTest'
212
- description 'Run all quality checks'
213
- group 'verification'
214
- }
215
-
216
- // カスタムタスク:すべてのチェックとテストを実行
217
- task fullCheck {
218
- dependsOn 'test', 'qualityCheck', 'jacocoTestReport'
219
- description 'Run all tests and quality checks'
220
- group 'verification'
221
- }
222
-
223
- // ファイル変更監視タスク
224
- task watchTest {
225
- doLast {
226
- println "Watching for file changes..."
227
- println "Run: ./gradlew test --continuous"
228
- println "Or use your IDE's auto-test feature"
229
- }
230
- }
231
- ```
232
-
233
- ## 静的コード解析ツール
234
-
235
- ### Checkstyle の設定
236
-
237
- `config/checkstyle/checkstyle.xml` を作成:
238
-
239
- ```bash
240
- mkdir -p config/checkstyle
241
- ```
242
-
243
- ```xml
244
- <?xml version="1.0"?>
245
- <!DOCTYPE module PUBLIC
246
- "-//Checkstyle//DTD Checkstyle Configuration 1.3//EN"
247
- "https://checkstyle.org/dtds/configuration_1_3.dtd">
248
-
249
- <module name="Checker">
250
- <property name="charset" value="UTF-8"/>
251
-
252
- <!-- ファイルレベルのチェック -->
253
- <module name="FileTabCharacter">
254
- <property name="eachLine" value="true"/>
255
- </module>
256
-
257
- <!-- TreeWalkerによるAST解析 -->
258
- <module name="TreeWalker">
259
- <!-- インデント -->
260
- <module name="Indentation">
261
- <property name="basicOffset" value="4"/>
262
- </module>
263
-
264
- <!-- 命名規則 -->
265
- <module name="TypeName"/>
266
- <module name="MethodName"/>
267
- <module name="VariableName"/>
268
- <module name="ConstantName"/>
269
-
270
- <!-- その他 -->
271
- <module name="EmptyStatement"/>
272
- <module name="EqualsHashCode"/>
273
- <module name="MagicNumber">
274
- <property name="ignoreHashCodeMethod" value="true"/>
275
- <property name="ignoreAnnotation" value="true"/>
276
- </module>
277
-
278
- <!-- 循環複雑度のチェック -->
279
- <module name="CyclomaticComplexity">
280
- <property name="max" value="7"/>
281
- <property name="switchBlockAsSingleDecisionPoint" value="false"/>
282
- </module>
283
- </module>
284
- </module>
285
- ```
286
-
287
- ### PMD の設定
288
-
289
- `config/pmd/ruleset.xml` を作成:
290
-
291
- ```bash
292
- mkdir -p config/pmd
293
- ```
294
-
295
- ```xml
296
- <?xml version="1.0"?>
297
- <ruleset name="Custom Rules"
298
- xmlns="http://pmd.sourceforge.net/ruleset/2.0.0"
299
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
300
- xsi:schemaLocation="http://pmd.sourceforge.net/ruleset/2.0.0
301
- https://pmd.sourceforge.io/ruleset_2_0_0.xsd">
302
-
303
- <description>カスタム PMD ルールセット</description>
304
-
305
- <!-- 基本ルールセット -->
306
- <rule ref="category/java/bestpractices.xml">
307
- <exclude name="JUnitTestContainsTooManyAsserts"/>
308
- </rule>
309
-
310
- <rule ref="category/java/codestyle.xml">
311
- <exclude name="AtLeastOneConstructor"/>
312
- <exclude name="CommentDefaultAccessModifier"/>
313
- </rule>
314
-
315
- <rule ref="category/java/design.xml">
316
- <!-- 循環複雑度を7に制限 -->
317
- <exclude name="CyclomaticComplexity"/>
318
- </rule>
319
-
320
- <!-- 循環複雑度のカスタム設定 -->
321
- <rule ref="category/java/design.xml/CyclomaticComplexity">
322
- <properties>
323
- <property name="classReportLevel" value="80"/>
324
- <property name="methodReportLevel" value="7"/>
325
- <property name="cycloOptions" value=""/>
326
- </properties>
327
- </rule>
328
-
329
- <!-- 認知複雑度の設定 -->
330
- <rule ref="category/java/design.xml/CognitiveComplexity">
331
- <properties>
332
- <property name="reportLevel" value="7"/>
333
- </properties>
334
- </rule>
335
-
336
- <rule ref="category/java/errorprone.xml">
337
- <exclude name="BeanMembersShouldSerialize"/>
338
- </rule>
339
-
340
- <rule ref="category/java/performance.xml"/>
341
-
342
- <rule ref="category/java/security.xml"/>
343
- </ruleset>
344
- ```
345
-
346
- build.gradle に PMD 設定を追加:
347
-
348
- ```groovy
349
- // PMD 設定
350
- pmd {
351
- consoleOutput = true
352
- toolVersion = "6.55.0"
353
- ruleSetFiles = files("config/pmd/ruleset.xml")
354
- ruleSets = []
355
- }
356
- ```
357
-
358
- PMD はカスタム設定で以下をチェック:
359
-
360
- - マジックナンバーの使用
361
- - 空の catch ブロック
362
- - 循環複雑度が 7 を超えるメソッド
363
- - 認知複雑度が 7 を超えるメソッド
364
- - 不要なコード
365
-
366
- ### SpotBugs の設定(デフォルト設定を使用)
367
-
368
- SpotBugs は以下のバグパターンを検出:
369
-
370
- - Null ポインタ参照
371
- - リソースリーク
372
- - セキュリティ脆弱性
373
- - パフォーマンス問題
374
-
375
- ## タスクランナーコマンド一覧
376
-
377
- ### 基本コマンド
378
-
379
- ```bash
380
- # 依存関係のインストール
381
- ./gradlew build
382
-
383
- # テストの実行
384
- ./gradlew test
385
-
386
- # TDDモードでテスト実行
387
- ./gradlew tdd
388
-
389
- # 継続的テスト実行
390
- ./gradlew test --continuous
391
- ```
392
-
393
- ### 品質チェックコマンド
394
-
395
- ```bash
396
- # Checkstyle実行
397
- ./gradlew checkstyleMain
398
- ./gradlew checkstyleTest
399
-
400
- # PMD実行
401
- ./gradlew pmdMain
402
- ./gradlew pmdTest
403
-
404
- # SpotBugs実行
405
- ./gradlew spotbugsMain
406
- ./gradlew spotbugsTest
407
-
408
- # すべての品質チェック実行
409
- ./gradlew qualityCheck
410
- ```
411
-
412
- ### カバレッジ測定
413
-
414
- ```bash
415
- # テスト実行とカバレッジレポート生成
416
- ./gradlew test jacocoTestReport
417
-
418
- # レポートは build/jacocoHtml/index.html で確認
419
- ```
420
-
421
- ### 統合コマンド
422
-
423
- ```bash
424
- # すべてのテストと品質チェックを実行
425
- ./gradlew fullCheck
426
-
427
- # タスク一覧の表示
428
- ./gradlew tasks --group verification
429
- ```
430
-
431
- ## 開発フロー
432
-
433
- ### 1. プロジェクトの初期化
434
-
435
- ```bash
436
- # プロジェクトディレクトリの作成
437
- mkdir my-java-project
438
- cd my-java-project
439
-
440
- # Git リポジトリの初期化
441
- git init
442
-
443
- # Gradle プロジェクトの初期化
444
- ./gradlew init --type java-application
445
-
446
- # 設定ファイルの配置(上記の build.gradle、checkstyle.xml、PMD ruleset.xml)
447
-
448
- # 依存関係のインストール
449
- ./gradlew build
450
-
451
- # 初期コミット
452
- git add .
453
- git commit -m 'chore: プロジェクトの初期化'
454
- ```
455
-
456
- ### 2. TDD サイクルの実践
457
-
458
- ```bash
459
- # 継続的テスト実行を開始
460
- ./gradlew test --continuous
461
-
462
- # 別ターミナルで開発を進める
463
- # 1. 失敗するテストを書く(Red)
464
- # 2. テストを通す最小限のコードを書く(Green)
465
- # 3. リファクタリング(Refactor)
466
-
467
- # 品質チェック
468
- ./gradlew qualityCheck
469
-
470
- # コミット
471
- git add .
472
- git commit -m 'feat: 新機能の実装'
473
- ```
474
-
475
- ### 3. カバレッジ確認
476
-
477
- ```bash
478
- # テストとカバレッジレポート生成
479
- ./gradlew test jacocoTestReport
480
-
481
- # ブラウザでレポートを確認
482
- open build/jacocoHtml/index.html # macOS
483
- start build/jacocoHtml/index.html # Windows
484
- ```
485
-
486
- ## IDE 統合
487
-
488
- ### IntelliJ IDEA
489
-
490
- 1. プロジェクトを開く
491
- 2. `File` → `Settings` → `Build, Execution, Deployment` → `Build Tools` → `Gradle`
492
- 3. `Build and run using` を `Gradle` に設定
493
- 4. `Run tests using` を `Gradle` に設定
494
-
495
- **自動テスト実行の設定:**
496
-
497
- - `Run` → `Edit Configurations`
498
- - `+` → `Gradle`
499
- - `Tasks` に `test --continuous` を設定
500
-
501
- ### VS Code
502
-
503
- 必要な拡張機能:
504
-
505
-
506
- - Extension Pack for Java
507
- - Gradle for Java
508
- - Test Runner for Java
509
-
510
- `settings.json` に追加:
511
- ```json
512
- {
513
- "java.test.runner": "junit",
514
- "java.test.config": {
515
- "workingDirectory": "${workspaceFolder}"
516
- }
517
- }
518
- ```
519
-
520
- ## トラブルシューティング
521
-
522
- ### Gradle Wrapper が動作しない場合
523
-
524
- ```bash
525
- # Gradle Wrapper の再生成
526
- gradle wrapper --gradle-version=8.5
527
-
528
- # 実行権限の付与(Unix系)
529
- chmod +x gradlew
530
- ```
531
-
532
- ### テストが見つからない場合
533
-
534
- - テストクラス名が `*Test.java` で終わっているか確認
535
- - テストメソッドに `@Test` アノテーションがあるか確認
536
- - `src/test/java` ディレクトリ配下にテストクラスがあるか確認
537
-
538
- ### 静的解析ツールのエラーを無視したい場合
539
-
540
- ```java
541
- // Checkstyle を無視
542
- // CHECKSTYLE:OFF
543
- 問題のあるコード
544
- // CHECKSTYLE:ON
545
-
546
- // PMD を無視
547
- @SuppressWarnings("PMD.MethodNamingConventions")
548
- public void my_method() { }
549
-
550
- // SpotBugs を無視
551
- @SuppressFBWarnings("NP_NULL_ON_SOME_PATH")
552
- public void method() { }
553
- ```
554
-
555
- ## ベストプラクティス
556
-
557
- 1. **コミットは小さく頻繁に**
558
-
559
- - 機能単位でコミット
560
- - テストが通る状態でコミット
561
-
562
- 2. **テストファースト**
563
-
564
- - 実装前にテストを書く
565
- - テストが失敗することを確認してから実装
566
-
567
- 3. **継続的な品質チェック**
568
-
569
- - コミット前に `./gradlew qualityCheck` を実行
570
- - カバレッジ 80% 以上を目標
571
- - 循環複雑度を 7 以下に維持
572
-
573
- 4. **自動化の活用**
574
-
575
- - `./gradlew test --continuous` を常に起動
576
- - IDE の自動テスト機能を活用
577
-
578
- 5. **リファクタリングの習慣**
579
-
580
- - テストが通ったらリファクタリング
581
- - 重複コードの排除
582
- - 意図が明確なコード
583
-
584
- 6. **複雑度の管理**
585
-
586
- - メソッドの循環複雑度は 7 以下を維持
587
- - 複雑なロジックは小さなメソッドに分割
588
- - 早期リターンやガード節を活用して複雑度を削減
589
-
590
- ## まとめ
591
-
592
- このガイドに従うことで、Java アプリケーション開発に必要な環境が整い、ソフトウェア開発の三種の神器を実践できます。継続的にテストを書き、品質をチェックし、自動化を活用することで、**動作するきれいなコード** を維持し続けることができます。
1
+ ---
2
+ type: Reference
3
+ title: "Java アプリケーション環境構築ガイド"
4
+ description: "本ガイドは、Java アプリケーション開発環境をゼロから構築し、ソフトウェア開発の三種の神器(バージョン管理、テスティング、自動化)を実践するための手順書です。"
5
+ tags: [reference]
6
+ status: stable
7
+ generated: { by: human:kakimomokuri, at: 2026-04-06T03:31:33Z }
8
+ stale_after: 2027-02-23T00:00:00Z
9
+ ---
10
+
11
+ # Java アプリケーション環境構築ガイド
12
+
13
+ ## 概要
14
+
15
+ 本ガイドは、Java アプリケーション開発環境をゼロから構築し、ソフトウェア開発の三種の神器(バージョン管理、テスティング、自動化)を実践するための手順書です。
16
+
17
+ ## 前提条件
18
+
19
+ - Java 17 以降がインストールされていること
20
+ - Git がインストールされていること
21
+ - IntelliJ IDEA または VS Code がインストールされていること(推奨)
22
+
23
+ ## ソフトウェア開発の三種の神器
24
+
25
+ ### 1. バージョン管理
26
+
27
+ #### Git の基本設定
28
+
29
+ ```bash
30
+ # ユーザー設定
31
+ git config --global user.name "Your Name"
32
+ git config --global user.email "your.email@example.com"
33
+
34
+ # リポジトリの初期化
35
+ git init
36
+
37
+ # .gitignore の作成
38
+ echo "build/" >> .gitignore
39
+ echo ".gradle/" >> .gitignore
40
+ echo "*.class" >> .gitignore
41
+ echo ".idea/" >> .gitignore
42
+ echo "*.iml" >> .gitignore
43
+ ```
44
+
45
+ #### コミットメッセージ規約(Angular ルール)
46
+
47
+ ```text
48
+ <タイプ>(<スコープ>): <タイトル>
49
+ <空行>
50
+ <ボディ>
51
+ <空行>
52
+ <フッタ>
53
+ ```
54
+
55
+ **タイプの種類:**
56
+
57
+ - `feat`: 新機能の追加
58
+ - `fix`: バグ修正
59
+ - `docs`: ドキュメント変更のみ
60
+ - `style`: コードに影響を与えない変更(フォーマット等)
61
+ - `refactor`: 機能追加でもバグ修正でもないコード変更
62
+ - `perf`: パフォーマンスを改善するコード変更
63
+ - `test`: テストの追加または修正
64
+ - `chore`: ビルドプロセスやツールの変更
65
+
66
+ **例:**
67
+ ```bash
68
+ git commit -m 'feat: FizzBuzz機能の実装'
69
+ git commit -m 'refactor: メソッドの抽出'
70
+ git commit -m 'chore: 静的コード解析セットアップ'
71
+ ```
72
+
73
+ ### 2. テスティング
74
+
75
+ #### JUnit 5 と AssertJ のセットアップ
76
+
77
+ Gradle プロジェクトの初期化:
78
+
79
+ ```bash
80
+ ./gradlew init --type java-application
81
+ ```
82
+
83
+ `build.gradle` の基本設定:
84
+
85
+ ```groovy
86
+ plugins {
87
+ id 'java'
88
+ id 'application'
89
+ }
90
+
91
+ repositories {
92
+ mavenCentral()
93
+ }
94
+
95
+ dependencies {
96
+ // JUnit 5
97
+ testImplementation 'org.junit.jupiter:junit-jupiter-api:5.10.1'
98
+ testImplementation 'org.junit.jupiter:junit-jupiter-params:5.10.1'
99
+ testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.10.1'
100
+
101
+ // AssertJ
102
+ testImplementation 'org.assertj:assertj-core:3.24.2'
103
+ }
104
+
105
+ test {
106
+ useJUnitPlatform()
107
+ }
108
+
109
+ application {
110
+ mainClass = 'App'
111
+ }
112
+ ```
113
+
114
+ #### テストの実行
115
+
116
+ ```bash
117
+ # テストの実行
118
+ ./gradlew test
119
+
120
+ # 継続的テスト実行(ファイル変更監視)
121
+ ./gradlew test --continuous
122
+ ```
123
+
124
+ ### 3. 自動化
125
+
126
+ #### 完全な Gradle セットアップ
127
+
128
+ `build.gradle` の完全版:
129
+
130
+ ```groovy
131
+ plugins {
132
+ id 'java'
133
+ id 'application'
134
+ id 'jacoco'
135
+ id 'checkstyle'
136
+ id 'pmd'
137
+ id 'com.github.spotbugs' version '6.0.7'
138
+ id 'org.gradle.test-retry' version '1.5.6'
139
+ }
140
+
141
+ repositories {
142
+ mavenCentral()
143
+ }
144
+
145
+ dependencies {
146
+ // テスト関連
147
+ testImplementation 'org.junit.jupiter:junit-jupiter-api:5.10.1'
148
+ testImplementation 'org.junit.jupiter:junit-jupiter-params:5.10.1'
149
+ testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.10.1'
150
+ testImplementation 'org.assertj:assertj-core:3.24.2'
151
+
152
+ // SpotBugs関連
153
+ spotbugsPlugins 'com.h3xstream.findsecbugs:findsecbugs-plugin:1.12.0'
154
+ }
155
+
156
+ application {
157
+ mainClass = 'App'
158
+ }
159
+
160
+ test {
161
+ useJUnitPlatform()
162
+
163
+ // テスト失敗時のリトライ設定
164
+ retry {
165
+ maxRetries = 3
166
+ maxFailures = 20
167
+ failOnPassedAfterRetry = false
168
+ }
169
+
170
+ // テストログ設定
171
+ testLogging {
172
+ events "passed", "skipped", "failed"
173
+ exceptionFormat "full"
174
+ }
175
+ }
176
+
177
+ // JaCoCo(コードカバレッジ)設定
178
+ jacoco {
179
+ toolVersion = "0.8.11"
180
+ }
181
+
182
+ jacocoTestReport {
183
+ dependsOn test
184
+ reports {
185
+ xml.required = false
186
+ csv.required = false
187
+ html.outputLocation = layout.buildDirectory.dir('jacocoHtml')
188
+ }
189
+ }
190
+
191
+ // PMD 設定
192
+ pmd {
193
+ consoleOutput = true
194
+ toolVersion = "6.55.0"
195
+ ruleSetFiles = files("config/pmd/ruleset.xml")
196
+ ruleSets = []
197
+ }
198
+
199
+ // カスタムタスク:TDD用の継続的テスト実行
200
+ task tdd(type: Test) {
201
+ useJUnitPlatform()
202
+ testLogging {
203
+ events "passed", "skipped", "failed"
204
+ exceptionFormat "full"
205
+ }
206
+ outputs.upToDateWhen { false }
207
+ }
208
+
209
+ // カスタムタスク:品質チェック全実行
210
+ task qualityCheck {
211
+ dependsOn 'checkstyleMain', 'checkstyleTest', 'pmdMain', 'pmdTest', 'spotbugsMain', 'spotbugsTest'
212
+ description 'Run all quality checks'
213
+ group 'verification'
214
+ }
215
+
216
+ // カスタムタスク:すべてのチェックとテストを実行
217
+ task fullCheck {
218
+ dependsOn 'test', 'qualityCheck', 'jacocoTestReport'
219
+ description 'Run all tests and quality checks'
220
+ group 'verification'
221
+ }
222
+
223
+ // ファイル変更監視タスク
224
+ task watchTest {
225
+ doLast {
226
+ println "Watching for file changes..."
227
+ println "Run: ./gradlew test --continuous"
228
+ println "Or use your IDE's auto-test feature"
229
+ }
230
+ }
231
+ ```
232
+
233
+ ## 静的コード解析ツール
234
+
235
+ ### Checkstyle の設定
236
+
237
+ `config/checkstyle/checkstyle.xml` を作成:
238
+
239
+ ```bash
240
+ mkdir -p config/checkstyle
241
+ ```
242
+
243
+ ```xml
244
+ <?xml version="1.0"?>
245
+ <!DOCTYPE module PUBLIC
246
+ "-//Checkstyle//DTD Checkstyle Configuration 1.3//EN"
247
+ "https://checkstyle.org/dtds/configuration_1_3.dtd">
248
+
249
+ <module name="Checker">
250
+ <property name="charset" value="UTF-8"/>
251
+
252
+ <!-- ファイルレベルのチェック -->
253
+ <module name="FileTabCharacter">
254
+ <property name="eachLine" value="true"/>
255
+ </module>
256
+
257
+ <!-- TreeWalkerによるAST解析 -->
258
+ <module name="TreeWalker">
259
+ <!-- インデント -->
260
+ <module name="Indentation">
261
+ <property name="basicOffset" value="4"/>
262
+ </module>
263
+
264
+ <!-- 命名規則 -->
265
+ <module name="TypeName"/>
266
+ <module name="MethodName"/>
267
+ <module name="VariableName"/>
268
+ <module name="ConstantName"/>
269
+
270
+ <!-- その他 -->
271
+ <module name="EmptyStatement"/>
272
+ <module name="EqualsHashCode"/>
273
+ <module name="MagicNumber">
274
+ <property name="ignoreHashCodeMethod" value="true"/>
275
+ <property name="ignoreAnnotation" value="true"/>
276
+ </module>
277
+
278
+ <!-- 循環複雑度のチェック -->
279
+ <module name="CyclomaticComplexity">
280
+ <property name="max" value="7"/>
281
+ <property name="switchBlockAsSingleDecisionPoint" value="false"/>
282
+ </module>
283
+ </module>
284
+ </module>
285
+ ```
286
+
287
+ ### PMD の設定
288
+
289
+ `config/pmd/ruleset.xml` を作成:
290
+
291
+ ```bash
292
+ mkdir -p config/pmd
293
+ ```
294
+
295
+ ```xml
296
+ <?xml version="1.0"?>
297
+ <ruleset name="Custom Rules"
298
+ xmlns="http://pmd.sourceforge.net/ruleset/2.0.0"
299
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
300
+ xsi:schemaLocation="http://pmd.sourceforge.net/ruleset/2.0.0
301
+ https://pmd.sourceforge.io/ruleset_2_0_0.xsd">
302
+
303
+ <description>カスタム PMD ルールセット</description>
304
+
305
+ <!-- 基本ルールセット -->
306
+ <rule ref="category/java/bestpractices.xml">
307
+ <exclude name="JUnitTestContainsTooManyAsserts"/>
308
+ </rule>
309
+
310
+ <rule ref="category/java/codestyle.xml">
311
+ <exclude name="AtLeastOneConstructor"/>
312
+ <exclude name="CommentDefaultAccessModifier"/>
313
+ </rule>
314
+
315
+ <rule ref="category/java/design.xml">
316
+ <!-- 循環複雑度を7に制限 -->
317
+ <exclude name="CyclomaticComplexity"/>
318
+ </rule>
319
+
320
+ <!-- 循環複雑度のカスタム設定 -->
321
+ <rule ref="category/java/design.xml/CyclomaticComplexity">
322
+ <properties>
323
+ <property name="classReportLevel" value="80"/>
324
+ <property name="methodReportLevel" value="7"/>
325
+ <property name="cycloOptions" value=""/>
326
+ </properties>
327
+ </rule>
328
+
329
+ <!-- 認知複雑度の設定 -->
330
+ <rule ref="category/java/design.xml/CognitiveComplexity">
331
+ <properties>
332
+ <property name="reportLevel" value="7"/>
333
+ </properties>
334
+ </rule>
335
+
336
+ <rule ref="category/java/errorprone.xml">
337
+ <exclude name="BeanMembersShouldSerialize"/>
338
+ </rule>
339
+
340
+ <rule ref="category/java/performance.xml"/>
341
+
342
+ <rule ref="category/java/security.xml"/>
343
+ </ruleset>
344
+ ```
345
+
346
+ build.gradle に PMD 設定を追加:
347
+
348
+ ```groovy
349
+ // PMD 設定
350
+ pmd {
351
+ consoleOutput = true
352
+ toolVersion = "6.55.0"
353
+ ruleSetFiles = files("config/pmd/ruleset.xml")
354
+ ruleSets = []
355
+ }
356
+ ```
357
+
358
+ PMD はカスタム設定で以下をチェック:
359
+
360
+ - マジックナンバーの使用
361
+ - 空の catch ブロック
362
+ - 循環複雑度が 7 を超えるメソッド
363
+ - 認知複雑度が 7 を超えるメソッド
364
+ - 不要なコード
365
+
366
+ ### SpotBugs の設定(デフォルト設定を使用)
367
+
368
+ SpotBugs は以下のバグパターンを検出:
369
+
370
+ - Null ポインタ参照
371
+ - リソースリーク
372
+ - セキュリティ脆弱性
373
+ - パフォーマンス問題
374
+
375
+ ## タスクランナーコマンド一覧
376
+
377
+ ### 基本コマンド
378
+
379
+ ```bash
380
+ # 依存関係のインストール
381
+ ./gradlew build
382
+
383
+ # テストの実行
384
+ ./gradlew test
385
+
386
+ # TDDモードでテスト実行
387
+ ./gradlew tdd
388
+
389
+ # 継続的テスト実行
390
+ ./gradlew test --continuous
391
+ ```
392
+
393
+ ### 品質チェックコマンド
394
+
395
+ ```bash
396
+ # Checkstyle実行
397
+ ./gradlew checkstyleMain
398
+ ./gradlew checkstyleTest
399
+
400
+ # PMD実行
401
+ ./gradlew pmdMain
402
+ ./gradlew pmdTest
403
+
404
+ # SpotBugs実行
405
+ ./gradlew spotbugsMain
406
+ ./gradlew spotbugsTest
407
+
408
+ # すべての品質チェック実行
409
+ ./gradlew qualityCheck
410
+ ```
411
+
412
+ ### カバレッジ測定
413
+
414
+ ```bash
415
+ # テスト実行とカバレッジレポート生成
416
+ ./gradlew test jacocoTestReport
417
+
418
+ # レポートは build/jacocoHtml/index.html で確認
419
+ ```
420
+
421
+ ### 統合コマンド
422
+
423
+ ```bash
424
+ # すべてのテストと品質チェックを実行
425
+ ./gradlew fullCheck
426
+
427
+ # タスク一覧の表示
428
+ ./gradlew tasks --group verification
429
+ ```
430
+
431
+ ## 開発フロー
432
+
433
+ ### 1. プロジェクトの初期化
434
+
435
+ ```bash
436
+ # プロジェクトディレクトリの作成
437
+ mkdir my-java-project
438
+ cd my-java-project
439
+
440
+ # Git リポジトリの初期化
441
+ git init
442
+
443
+ # Gradle プロジェクトの初期化
444
+ ./gradlew init --type java-application
445
+
446
+ # 設定ファイルの配置(上記の build.gradle、checkstyle.xml、PMD ruleset.xml)
447
+
448
+ # 依存関係のインストール
449
+ ./gradlew build
450
+
451
+ # 初期コミット
452
+ git add .
453
+ git commit -m 'chore: プロジェクトの初期化'
454
+ ```
455
+
456
+ ### 2. TDD サイクルの実践
457
+
458
+ ```bash
459
+ # 継続的テスト実行を開始
460
+ ./gradlew test --continuous
461
+
462
+ # 別ターミナルで開発を進める
463
+ # 1. 失敗するテストを書く(Red)
464
+ # 2. テストを通す最小限のコードを書く(Green)
465
+ # 3. リファクタリング(Refactor)
466
+
467
+ # 品質チェック
468
+ ./gradlew qualityCheck
469
+
470
+ # コミット
471
+ git add .
472
+ git commit -m 'feat: 新機能の実装'
473
+ ```
474
+
475
+ ### 3. カバレッジ確認
476
+
477
+ ```bash
478
+ # テストとカバレッジレポート生成
479
+ ./gradlew test jacocoTestReport
480
+
481
+ # ブラウザでレポートを確認
482
+ open build/jacocoHtml/index.html # macOS
483
+ start build/jacocoHtml/index.html # Windows
484
+ ```
485
+
486
+ ## IDE 統合
487
+
488
+ ### IntelliJ IDEA
489
+
490
+ 1. プロジェクトを開く
491
+ 2. `File` → `Settings` → `Build, Execution, Deployment` → `Build Tools` → `Gradle`
492
+ 3. `Build and run using` を `Gradle` に設定
493
+ 4. `Run tests using` を `Gradle` に設定
494
+
495
+ **自動テスト実行の設定:**
496
+
497
+ - `Run` → `Edit Configurations`
498
+ - `+` → `Gradle`
499
+ - `Tasks` に `test --continuous` を設定
500
+
501
+ ### VS Code
502
+
503
+ 必要な拡張機能:
504
+
505
+
506
+ - Extension Pack for Java
507
+ - Gradle for Java
508
+ - Test Runner for Java
509
+
510
+ `settings.json` に追加:
511
+ ```json
512
+ {
513
+ "java.test.runner": "junit",
514
+ "java.test.config": {
515
+ "workingDirectory": "${workspaceFolder}"
516
+ }
517
+ }
518
+ ```
519
+
520
+ ## トラブルシューティング
521
+
522
+ ### Gradle Wrapper が動作しない場合
523
+
524
+ ```bash
525
+ # Gradle Wrapper の再生成
526
+ gradle wrapper --gradle-version=8.5
527
+
528
+ # 実行権限の付与(Unix系)
529
+ chmod +x gradlew
530
+ ```
531
+
532
+ ### テストが見つからない場合
533
+
534
+ - テストクラス名が `*Test.java` で終わっているか確認
535
+ - テストメソッドに `@Test` アノテーションがあるか確認
536
+ - `src/test/java` ディレクトリ配下にテストクラスがあるか確認
537
+
538
+ ### 静的解析ツールのエラーを無視したい場合
539
+
540
+ ```java
541
+ // Checkstyle を無視
542
+ // CHECKSTYLE:OFF
543
+ 問題のあるコード
544
+ // CHECKSTYLE:ON
545
+
546
+ // PMD を無視
547
+ @SuppressWarnings("PMD.MethodNamingConventions")
548
+ public void my_method() { }
549
+
550
+ // SpotBugs を無視
551
+ @SuppressFBWarnings("NP_NULL_ON_SOME_PATH")
552
+ public void method() { }
553
+ ```
554
+
555
+ ## ベストプラクティス
556
+
557
+ 1. **コミットは小さく頻繁に**
558
+
559
+ - 機能単位でコミット
560
+ - テストが通る状態でコミット
561
+
562
+ 2. **テストファースト**
563
+
564
+ - 実装前にテストを書く
565
+ - テストが失敗することを確認してから実装
566
+
567
+ 3. **継続的な品質チェック**
568
+
569
+ - コミット前に `./gradlew qualityCheck` を実行
570
+ - カバレッジ 80% 以上を目標
571
+ - 循環複雑度を 7 以下に維持
572
+
573
+ 4. **自動化の活用**
574
+
575
+ - `./gradlew test --continuous` を常に起動
576
+ - IDE の自動テスト機能を活用
577
+
578
+ 5. **リファクタリングの習慣**
579
+
580
+ - テストが通ったらリファクタリング
581
+ - 重複コードの排除
582
+ - 意図が明確なコード
583
+
584
+ 6. **複雑度の管理**
585
+
586
+ - メソッドの循環複雑度は 7 以下を維持
587
+ - 複雑なロジックは小さなメソッドに分割
588
+ - 早期リターンやガード節を活用して複雑度を削減
589
+
590
+ ## まとめ
591
+
592
+ このガイドに従うことで、Java アプリケーション開発に必要な環境が整い、ソフトウェア開発の三種の神器を実践できます。継続的にテストを書き、品質をチェックし、自動化を活用することで、**動作するきれいなコード** を維持し続けることができます。