@k2works/claude-code-booster 6.4.0 → 6.6.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 (297) 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/apply-okf-workspace/iteration-1/benchmark.json +20 -0
  33. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/benchmark.md +13 -0
  34. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/eval_metadata.json +14 -0
  35. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/with_skill/grading.json +39 -0
  36. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/with_skill/outputs/docs_after/adr/001-db.md +12 -0
  37. 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 +20 -0
  38. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/with_skill/outputs/docs_after/adr/index.md +4 -0
  39. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/with_skill/outputs/docs_after/design/data-model.md +12 -0
  40. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/with_skill/outputs/docs_after/design/index.md +3 -0
  41. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/with_skill/outputs/docs_after/index.md +10 -0
  42. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/with_skill/outputs/docs_after/log.md +7 -0
  43. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/with_skill/outputs/docs_after/operation/deploy-old.md +12 -0
  44. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/with_skill/outputs/docs_after/operation/deploy.md +12 -0
  45. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/with_skill/outputs/docs_after/operation/index.md +4 -0
  46. 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 +965 -0
  47. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/with_skill/outputs/report.md +76 -0
  48. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/without_skill/grading.json +39 -0
  49. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/without_skill/outputs/docs_after/adr/001-db.md +12 -0
  50. 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 +20 -0
  51. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/without_skill/outputs/docs_after/adr/index.md +4 -0
  52. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/without_skill/outputs/docs_after/design/data-model.md +12 -0
  53. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/without_skill/outputs/docs_after/design/index.md +3 -0
  54. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/without_skill/outputs/docs_after/index.md +10 -0
  55. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/without_skill/outputs/docs_after/log.md +7 -0
  56. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/without_skill/outputs/docs_after/operation/deploy-old.md +12 -0
  57. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/without_skill/outputs/docs_after/operation/deploy.md +12 -0
  58. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/without_skill/outputs/docs_after/operation/index.md +4 -0
  59. 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 +965 -0
  60. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/without_skill/outputs/report.md +22 -0
  61. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/eval_metadata.json +13 -0
  62. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/with_skill/grading.json +34 -0
  63. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/with_skill/outputs/docs_after/adr/001-db.md +12 -0
  64. 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 +11 -0
  65. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/with_skill/outputs/docs_after/adr/index.md +3 -0
  66. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/with_skill/outputs/docs_after/design/data-model.md +14 -0
  67. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/with_skill/outputs/docs_after/design/index.md +3 -0
  68. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/with_skill/outputs/docs_after/index.md +10 -0
  69. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/with_skill/outputs/docs_after/log.md +7 -0
  70. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/with_skill/outputs/docs_after/operation/deploy-old.md +12 -0
  71. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/with_skill/outputs/docs_after/operation/deploy.md +12 -0
  72. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/with_skill/outputs/docs_after/operation/index.md +4 -0
  73. 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 +965 -0
  74. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/with_skill/outputs/report.md +61 -0
  75. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/without_skill/grading.json +34 -0
  76. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/without_skill/outputs/docs_after/adr/001-db.md +12 -0
  77. 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 +11 -0
  78. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/without_skill/outputs/docs_after/adr/index.md +3 -0
  79. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/without_skill/outputs/docs_after/design/data-model.md +13 -0
  80. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/without_skill/outputs/docs_after/design/index.md +3 -0
  81. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/without_skill/outputs/docs_after/index.md +10 -0
  82. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/without_skill/outputs/docs_after/log.md +7 -0
  83. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/without_skill/outputs/docs_after/operation/deploy-old.md +12 -0
  84. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/without_skill/outputs/docs_after/operation/deploy.md +12 -0
  85. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/without_skill/outputs/docs_after/operation/index.md +4 -0
  86. 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 +965 -0
  87. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/without_skill/outputs/report.md +18 -0
  88. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/eval_metadata.json +13 -0
  89. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/with_skill/grading.json +34 -0
  90. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/with_skill/outputs/docs_after/adr/001-db.md +12 -0
  91. 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 +11 -0
  92. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/with_skill/outputs/docs_after/adr/index.md +3 -0
  93. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/with_skill/outputs/docs_after/design/data-model.md +12 -0
  94. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/with_skill/outputs/docs_after/design/index.md +3 -0
  95. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/with_skill/outputs/docs_after/index.md +10 -0
  96. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/with_skill/outputs/docs_after/log.md +7 -0
  97. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/with_skill/outputs/docs_after/operation/deploy-old.md +13 -0
  98. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/with_skill/outputs/docs_after/operation/deploy.md +12 -0
  99. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/with_skill/outputs/docs_after/operation/index.md +7 -0
  100. 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 +965 -0
  101. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/with_skill/outputs/report.md +83 -0
  102. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/without_skill/grading.json +34 -0
  103. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/without_skill/outputs/docs_after/adr/001-db.md +12 -0
  104. 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 +11 -0
  105. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/without_skill/outputs/docs_after/adr/index.md +3 -0
  106. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/without_skill/outputs/docs_after/design/data-model.md +12 -0
  107. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/without_skill/outputs/docs_after/design/index.md +3 -0
  108. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/without_skill/outputs/docs_after/index.md +10 -0
  109. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/without_skill/outputs/docs_after/log.md +7 -0
  110. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/without_skill/outputs/docs_after/operation/deploy-old.md +14 -0
  111. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/without_skill/outputs/docs_after/operation/deploy.md +12 -0
  112. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/without_skill/outputs/docs_after/operation/index.md +4 -0
  113. 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 +965 -0
  114. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/without_skill/outputs/report.md +15 -0
  115. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/review.html +1325 -0
  116. package/lib/assets/.claude/skills/closing-iteration/SKILL.md +176 -176
  117. package/lib/assets/.claude/skills/creating-adr/SKILL.md +117 -117
  118. package/lib/assets/.claude/skills/creating-development-strategy/SKILL.md +187 -151
  119. package/lib/assets/.claude/skills/creating-iteration-report/SKILL.md +210 -210
  120. package/lib/assets/.claude/skills/creating-journal/SKILL.md +140 -140
  121. package/lib/assets/.claude/skills/creating-manual/SKILL.md +199 -199
  122. package/lib/assets/.claude/skills/creating-release-report/SKILL.md +161 -161
  123. package/lib/assets/.claude/skills/creating-slides/SKILL.md +86 -86
  124. package/lib/assets/.claude/skills/creating-slides/agents/openai.yaml +4 -4
  125. package/lib/assets/.claude/skills/creating-slides/references/manga-css.md +45 -45
  126. package/lib/assets/.claude/skills/creating-slides/scripts/slide_tools.py +239 -239
  127. package/lib/assets/.claude/skills/developing-backend/SKILL.md +138 -100
  128. package/lib/assets/.claude/skills/developing-frontend/SKILL.md +131 -93
  129. package/lib/assets/.claude/skills/developing-release/SKILL.md +120 -120
  130. package/lib/assets/.claude/skills/developing-review/SKILL.md +175 -175
  131. package/lib/assets/.claude/skills/developing-uiux-review/SKILL.md +207 -207
  132. package/lib/assets/.claude/skills/generating-bmc/SKILL.md +123 -123
  133. package/lib/assets/.claude/skills/generating-slides/SKILL.md +94 -94
  134. package/lib/assets/.claude/skills/git-commit/SKILL.md +81 -81
  135. package/lib/assets/.claude/skills/killing-processes/SKILL.md +44 -44
  136. package/lib/assets/.claude/skills/migrating-ai-dlc/evals/evals.json +59 -59
  137. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/benchmark.json +20 -0
  138. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/benchmark.md +13 -0
  139. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-1-migrate-docs/eval_metadata.json +15 -0
  140. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-1-migrate-docs/with_skill/grading.json +44 -0
  141. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-1-migrate-docs/with_skill/outputs/docs_after/adr/index.md +10 -0
  142. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-1-migrate-docs/with_skill/outputs/docs_after/index.md +15 -0
  143. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-1-migrate-docs/with_skill/outputs/docs_after/log.md +5 -0
  144. 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 +966 -0
  145. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-1-migrate-docs/with_skill/outputs/docs_after/reference/index.md +6 -0
  146. 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 +261 -0
  147. 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 +480 -0
  148. 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 +681 -0
  149. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-1-migrate-docs/with_skill/outputs/report.md +85 -0
  150. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-1-migrate-docs/without_skill/grading.json +44 -0
  151. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-1-migrate-docs/without_skill/outputs/docs_after/adr/index.md +8 -0
  152. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-1-migrate-docs/without_skill/outputs/docs_after/index.md +11 -0
  153. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-1-migrate-docs/without_skill/outputs/docs_after/log.md +7 -0
  154. 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 +964 -0
  155. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-1-migrate-docs/without_skill/outputs/docs_after/reference/index.md +9 -0
  156. 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 +250 -0
  157. 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 +469 -0
  158. 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 +677 -0
  159. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-1-migrate-docs/without_skill/outputs/report.md +49 -0
  160. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-2-upgrade-v01-to-v02/eval_metadata.json +13 -0
  161. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-2-upgrade-v01-to-v02/with_skill/grading.json +34 -0
  162. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-2-upgrade-v01-to-v02/with_skill/outputs/knowledge_after/index.md +7 -0
  163. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-2-upgrade-v01-to-v02/with_skill/outputs/knowledge_after/log.md +7 -0
  164. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-2-upgrade-v01-to-v02/with_skill/outputs/knowledge_after/metrics/churn.md +9 -0
  165. 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 +15 -0
  166. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-2-upgrade-v01-to-v02/with_skill/outputs/report.md +147 -0
  167. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/review.html +1325 -0
  168. package/lib/assets/.claude/skills/opening-iteration/SKILL.md +124 -124
  169. package/lib/assets/.claude/skills/operating-backup/SKILL.md +59 -59
  170. package/lib/assets/.claude/skills/operating-cicd/SKILL.md +54 -54
  171. package/lib/assets/.claude/skills/operating-deploy/SKILL.md +67 -67
  172. package/lib/assets/.claude/skills/operating-docs/SKILL.md +219 -219
  173. package/lib/assets/.claude/skills/operating-provision/SKILL.md +77 -77
  174. package/lib/assets/.claude/skills/operating-qt/SKILL.md +147 -147
  175. package/lib/assets/.claude/skills/operating-review/SKILL.md +171 -171
  176. package/lib/assets/.claude/skills/operating-script/SKILL.md +145 -145
  177. package/lib/assets/.claude/skills/operating-setup/SKILL.md +63 -63
  178. package/lib/assets/.claude/skills/orchestrating-analysis/SKILL.md +110 -110
  179. package/lib/assets/.claude/skills/orchestrating-development/SKILL.md +208 -172
  180. package/lib/assets/.claude/skills/orchestrating-operation/SKILL.md +161 -161
  181. package/lib/assets/.claude/skills/orchestrating-project/SKILL.md +149 -149
  182. package/lib/assets/.claude/skills/planning-releases/SKILL.md +121 -121
  183. package/lib/assets/.claude/skills/practicing-getting-start-tdd/SKILL.md +262 -262
  184. package/lib/assets/.claude/skills/syncing-github-project/SKILL.md +151 -151
  185. package/lib/assets/.claude/skills/tracking-progress/SKILL.md +91 -91
  186. package/lib/assets/.claude/skills/validating-design/SKILL.md +130 -130
  187. package/lib/assets/.claude/skills/validating-iteration-plan/SKILL.md +238 -238
  188. package/lib/assets/.claude/skills/validating-operating-setup/SKILL.md +118 -118
  189. package/lib/assets/.devcontainer/devcontainer.json +37 -37
  190. package/lib/assets/.env.example +32 -32
  191. package/lib/assets/.gitattributes +4 -4
  192. package/lib/assets/.github/workflows/docker-publish.yml +77 -77
  193. package/lib/assets/.github/workflows/mkdocs.yml +39 -39
  194. package/lib/assets/AGENTS.md +102 -102
  195. package/lib/assets/README.md +304 -304
  196. package/lib/assets/docker-compose.yml +33 -33
  197. package/lib/assets/docs/adr/index.md +10 -10
  198. package/lib/assets/docs/article/index.md +8 -6
  199. package/lib/assets/docs/assets/css/extra.css +29 -29
  200. package/lib/assets/docs/assets/js/extra.js +48 -48
  201. package/lib/assets/docs/assets/js/mathjax.js +27 -27
  202. package/lib/assets/docs/design/index.md +44 -44
  203. package/lib/assets/docs/development/index.md +39 -39
  204. package/lib/assets/docs/index.md +37 -37
  205. package/lib/assets/docs/log.md +28 -28
  206. package/lib/assets/docs/operation/index.md +41 -41
  207. package/lib/assets/docs/reference/BDD/345/260/216/345/205/245/343/202/254/343/202/244/343/203/211.md +766 -766
  208. 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
  209. 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
  210. 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
  211. package/lib/assets/docs/reference/LivingDocumentation/345/260/216/345/205/245/343/202/254/343/202/244/343/203/211.md +400 -0
  212. 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
  213. 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
  214. 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
  215. package/lib/assets/docs/reference/UI/350/250/255/350/250/210/343/202/254/343/202/244/343/203/211.md +460 -460
  216. 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
  217. package/lib/assets/docs/reference/images/Ansoff.drawio.svg +3 -3
  218. package/lib/assets/docs/reference/images/BMC.drawio.svg +3 -3
  219. package/lib/assets/docs/reference/images/BrandBasicStrategy.drawio.svg +3 -3
  220. package/lib/assets/docs/reference/images/BrandCategorization.drawio.svg +3 -3
  221. package/lib/assets/docs/reference/images/BrandRecurutementStrategy.drawio.svg +3 -3
  222. package/lib/assets/docs/reference/images/BrandValue.drawio.svg +3 -3
  223. package/lib/assets/docs/reference/images/BusinessActivitiy.svg +3 -3
  224. package/lib/assets/docs/reference/images/HRM.drawio.svg +3 -3
  225. package/lib/assets/docs/reference/images/MarketingStructure.drawio.svg +3 -3
  226. package/lib/assets/docs/reference/images/OrganizationElemnts.svg +3 -3
  227. package/lib/assets/docs/reference/images/PPM.drawio.svg +3 -3
  228. package/lib/assets/docs/reference/images/PositioningMap.drawio.svg +3 -3
  229. package/lib/assets/docs/reference/images/ProductLayer.drawio.svg +3 -3
  230. package/lib/assets/docs/reference/images/ProductMix.drawio.svg +3 -3
  231. package/lib/assets/docs/reference/images/SWOT.drawio.svg +3 -3
  232. package/lib/assets/docs/reference/images/TargetMarket.drawio.svg +3 -3
  233. package/lib/assets/docs/reference/images/ThreeGenericStrategies.drawio.svg +3 -3
  234. package/lib/assets/docs/reference/images/VRIO.drawio.svg +3 -3
  235. package/lib/assets/docs/reference/images/ValueChain.drawio.svg +3 -3
  236. package/lib/assets/docs/reference/index.md +66 -62
  237. 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
  238. package/lib/assets/docs/reference//343/202/242/343/203/216/343/203/206/343/203/274/343/202/267/343/203/247/343/203/263/345/260/216/345/205/245/343/202/254/343/202/244/343/203/211.md +268 -0
  239. 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
  240. 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
  241. 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
  242. package/lib/assets/docs/reference//343/202/254/343/202/244/343/203/211/343/203/204/343/202/242/343/203/274/343/203/273/343/202/265/343/202/244/343/203/210/343/202/267/343/203/274/343/202/244/343/203/263/343/202/260/345/260/216/345/205/245/343/202/254/343/202/244/343/203/211.md +192 -0
  243. 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
  244. package/lib/assets/docs/reference//343/203/200/343/202/244/343/203/212/343/203/237/343/203/203/343/202/257/343/202/255/343/203/245/343/203/254/343/203/274/343/202/267/343/203/247/343/203/263/345/260/216/345/205/245/343/202/254/343/202/244/343/203/211.md +191 -0
  245. 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
  246. 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
  247. 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
  248. 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
  249. 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
  250. 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
  251. 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
  252. 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
  253. package/lib/assets/docs/reference//344/274/201/346/245/255/347/265/214/345/226/266/350/253/226.md +2647 -2647
  254. 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
  255. 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
  256. 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
  257. 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
  258. package/lib/assets/docs/reference//351/201/213/345/226/266/347/256/241/347/220/206.md +1492 -1492
  259. 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
  260. 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
  261. package/lib/assets/docs/reference//351/226/213/347/231/272/343/202/254/343/202/244/343/203/211.md +314 -314
  262. 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
  263. package/lib/assets/docs/requirements/index.md +17 -17
  264. package/lib/assets/docs/review/index.md +5 -5
  265. package/lib/assets/docs/strategy/index.md +17 -17
  266. package/lib/assets/docs/template/ADR.md +39 -39
  267. 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
  268. 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
  269. package/lib/assets/docs/template/README.md +59 -59
  270. package/lib/assets/docs/template/index.md +24 -24
  271. 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
  272. 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
  273. 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
  274. 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
  275. 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
  276. 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
  277. 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
  278. 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
  279. package/lib/assets/docs/template//344/272/213/344/276/213/345/210/206/346/236/220.md +522 -522
  280. package/lib/assets/docs/template//344/274/201/346/245/255/345/210/206/346/236/220.md +582 -582
  281. 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
  282. package/lib/assets/docs/template//350/246/201/344/273/266/345/256/232/347/276/251.md +669 -669
  283. package/lib/assets/docs/template//350/250/255/350/250/210.md +183 -183
  284. 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
  285. package/lib/assets/gulpfile.js +29 -29
  286. package/lib/assets/mkdocs.yml +151 -147
  287. package/lib/assets/ops/docker/sonarqube-local/docker-compose.yml +57 -57
  288. package/lib/assets/ops/scripts/journal.js +180 -180
  289. package/lib/assets/ops/scripts/mkdocs.js +82 -82
  290. package/lib/assets/ops/scripts/release.js +431 -431
  291. package/lib/assets/ops/scripts/sonar_local.js +726 -726
  292. package/lib/assets/ops/scripts/ssh.js +190 -190
  293. package/lib/assets/ops/scripts/vault.js +299 -299
  294. package/lib/assets/package-lock.json +1673 -1673
  295. package/lib/assets/package.json +45 -45
  296. package/lib/gulpfile.js +37 -37
  297. package/package.json +41 -41
@@ -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 アプリケーション開発に必要な環境が整い、ソフトウェア開発の三種の神器を実践できます。継続的にテストを書き、品質をチェックし、自動化を活用することで、**動作するきれいなコード** を維持し続けることができます。