@k2works/claude-code-booster 6.4.0 → 6.5.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 +1 -0
  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,430 +1,430 @@
1
- ---
2
- type: Reference
3
- title: "運用スクリプト作成ガイド"
4
- description: "本ガイドは ops/scripts/ 配下に配置する運用スクリプトのネーミングルール、ディレクトリ構成、実装スタイルを定義します。"
5
- tags: [reference]
6
- status: stable
7
- generated: { by: human:kakimomokuri, at: 2026-03-16T06:35:16Z }
8
- ---
9
-
10
- # 運用スクリプト作成ガイド
11
-
12
- ## 概要
13
-
14
- 本ガイドは `ops/scripts/` 配下に配置する運用スクリプトのネーミングルール、ディレクトリ構成、実装スタイルを定義します。Gulp タスクランナーと連携し、環境構築・デプロイ・プロビジョニング・運用タスクを自動化します。
15
-
16
- ## ディレクトリ構成
17
-
18
- ```text
19
- ops/
20
- ├── scripts/
21
- │ ├── shared.js # 共通ユーティリティ
22
- │ ├── ssh.js # SSH/SCP ヘルパー
23
- │ ├── deploy_dev.js # 開発環境デプロイ
24
- │ ├── deploy_stg.js # ステージング環境デプロイ
25
- │ ├── deploy_prd.js # 本番環境デプロイ
26
- │ ├── provision_stg.js # ステージング環境プロビジョニング
27
- │ ├── provision_prd.js # 本番環境プロビジョニング
28
- │ ├── develop.js # アプリケーション開発タスク
29
- │ ├── release.js # リリースワークフロー
30
- │ ├── journal.js # 開発ジャーナル生成
31
- │ ├── mkdocs.js # ドキュメントビルド
32
- │ ├── vault.js # シークレット管理
33
- │ ├── ssh_stg.js # ステージング SSH・踏み台
34
- │ ├── ssh_prd.js # 本番 SSH・踏み台
35
- │ ├── sonar_local.js # SonarQube ローカル環境
36
- │ └── sonar_aws.js # SonarQube AWS 環境
37
- ├── terraform/ # IaC(Terraform)
38
- ├── docker/ # Docker 関連設定
39
- └── nix/ # Nix 開発環境(任意)
40
- ```
41
-
42
- ## ネーミングルール
43
-
44
- ### ファイル名
45
-
46
- `{カテゴリ}_{環境}.js` の形式で命名する。
47
-
48
- | カテゴリ | 説明 | 例 |
49
- |---------|------|-----|
50
- | `deploy` | デプロイスクリプト | `deploy_dev.js`, `deploy_stg.js`, `deploy_prd.js` |
51
- | `provision` | IaC プロビジョニング | `provision_stg.js`, `provision_prd.js` |
52
- | `ssh` | SSH・踏み台操作 | `ssh.js`(共通), `ssh_stg.js`, `ssh_prd.js` |
53
- | `develop` | アプリケーション開発タスク | `develop.js` |
54
- | `release` | リリースワークフロー | `release.js` |
55
- | `journal` | 開発ジャーナル | `journal.js` |
56
- | `mkdocs` | ドキュメント | `mkdocs.js` |
57
- | `sonar` | コード品質分析 | `sonar_local.js`, `sonar_aws.js` |
58
- | `shared` | 共通ユーティリティ | `shared.js` |
59
- | `vault` | シークレット管理 | `vault.js` |
60
-
61
- **環境サフィックス**:
62
-
63
- | サフィックス | 環境 | 例 |
64
- |-------------|------|-----|
65
- | `_dev` | 開発環境 | `deploy_dev.js` |
66
- | `_stg` | ステージング環境 | `deploy_stg.js`, `provision_stg.js` |
67
- | `_prd` | 本番環境 | `deploy_prd.js`, `provision_prd.js` |
68
- | `_local` | ローカル環境 | `sonar_local.js` |
69
- | `_aws` | AWS 環境 | `sonar_aws.js` |
70
- | なし | 環境非依存 / 共通 | `shared.js`, `ssh.js`, `release.js` |
71
-
72
- ### Gulp タスク名
73
-
74
- `{カテゴリ}:{環境}:{アクション}` の形式で命名する。
75
-
76
- ```
77
- deploy:dev:build # 開発環境: ビルド
78
- deploy:dev:push # 開発環境: Registry プッシュ
79
- deploy:dev # 開発環境: デプロイ実行
80
- deploy:dev:status # 開発環境: ステータス確認
81
- deploy:dev:logs # 開発環境: ログ取得
82
- deploy:dev:clean # 開発環境: クリーンアップ
83
- deploy:dev:setup # 開発環境: 初回セットアップ
84
- deploy:dev:help # 開発環境: ヘルプ
85
-
86
- provision:stg:plan # ステージング: Terraform plan
87
- provision:stg:vpc # ステージング: VPC プロビジョニング
88
- provision:stg:rds # ステージング: RDS プロビジョニング
89
- provision:stg:ecs # ステージング: ECS プロビジョニング
90
- provision:stg # ステージング: 全リソース一括
91
- provision:stg:destroy # ステージング: 全リソース廃棄
92
- provision:stg:help # ステージング: ヘルプ
93
-
94
- ssh:stg:login # ステージング: 踏み台ログイン
95
- ssh:stg:tunnel # ステージング: SSH トンネル
96
- ssh:stg:backup # ステージング: DB バックアップ
97
- ssh:stg:restore # ステージング: DB リストア
98
-
99
- dev:sms # SMS 開発サーバー起動
100
- dev:sms:product # SMS product プロファイル起動
101
- tdd:sms # SMS TDD モード
102
- ```
103
-
104
- ## 実装スタイル
105
-
106
- ### 基本構造
107
-
108
- すべてのスクリプトは以下の構造に従う。
109
-
110
- ```javascript
111
- 'use strict';
112
-
113
- import path from 'path';
114
- import { execSync } from 'child_process';
115
- import { cleanDockerEnv } from './shared.js';
116
-
117
- // ============================================
118
- // 設定
119
- // ============================================
120
-
121
- const PREFIX = 'DEV'; // 環境変数プレフィックス
122
-
123
- /** サービス定義 */
124
- const SERVICES = [
125
- { name: 'backend', port: 8080, container: 'app-backend', label: 'Backend' },
126
- { name: 'frontend', port: 3000, container: 'app-frontend', label: 'Frontend' },
127
- ];
128
-
129
- // ============================================
130
- // ヘルパー関数
131
- // ============================================
132
-
133
- /**
134
- * JSDoc コメントで関数の目的・引数・戻り値を記述
135
- * @param {string} param - パラメータの説明
136
- * @returns {string}
137
- */
138
- function helperFunction(param) {
139
- // 実装
140
- }
141
-
142
- // ============================================
143
- // Gulp タスク
144
- // ============================================
145
-
146
- export default function(gulp) {
147
- // タスク登録
148
- gulp.task('deploy:dev:build', (done) => {
149
- // タスク実装
150
- done();
151
- });
152
- }
153
- ```
154
-
155
- ### コーディング規約
156
-
157
- #### 1. strict mode
158
-
159
- すべてのファイルの先頭に `'use strict';` を記述する。
160
-
161
- #### 2. ESM(ES Modules)
162
-
163
- `import` / `export` 構文を使用する。`require` は使用しない。
164
-
165
- ```javascript
166
- // Good
167
- import path from 'path';
168
- import { execSync } from 'child_process';
169
- import { cleanDockerEnv } from './shared.js';
170
-
171
- // Bad
172
- const path = require('path');
173
- ```
174
-
175
- #### 3. セクション区切り
176
-
177
- コード内のセクションは以下のコメントで区切る。
178
-
179
- ```javascript
180
- // ============================================
181
- // 設定
182
- // ============================================
183
-
184
- // ============================================
185
- // ヘルパー関数
186
- // ============================================
187
-
188
- // ============================================
189
- // Gulp タスク
190
- // ============================================
191
- ```
192
-
193
- #### 4. JSDoc コメント
194
-
195
- すべての関数に JSDoc コメントを記述する。
196
-
197
- ```javascript
198
- /**
199
- * docker build に渡すオプションを組み立てる
200
- * @returns {string} ビルドオプション文字列
201
- */
202
- function dockerBuildOptions() {
203
- // ...
204
- }
205
- ```
206
-
207
- #### 5. 環境変数の管理
208
-
209
- 環境変数は `.env` ファイルで管理し、環境プレフィックス(`DEV_`, `STG_`, `PRD_`)で名前空間を分離する。
210
-
211
- ```javascript
212
- // 環境変数プレフィックスで名前空間を分離
213
- const PREFIX = 'STG';
214
- const awsProfile = () => process.env.STG_AWS_PROFILE || '';
215
- const sshHost = () => process.env[`${PREFIX}_SSH_HOST`];
216
- ```
217
-
218
- **環境変数の命名規則**:
219
-
220
- | プレフィックス | 環境 | 例 |
221
- |-------------|------|-----|
222
- | `DEV_` | 開発環境 | `DEV_SSH_HOST`, `DEV_SSH_USER` |
223
- | `STG_` | ステージング環境 | `STG_AWS_PROFILE`, `STG_DB_USERNAME` |
224
- | `PRD_` | 本番環境 | `PRD_AWS_PROFILE`, `PRD_DB_USERNAME` |
225
- | `GHCR_` | GitHub Container Registry | `GHCR_USER`, `GHCR_TOKEN` |
226
- | `DOCKER_` | Docker 関連 | `DOCKER_BUILD_NETWORK`, `DOCKER_BUILD_DNS` |
227
-
228
- #### 6. サービス定義
229
-
230
- 複数サービスを扱うスクリプトでは、サービスを配列で定義する。
231
-
232
- ```javascript
233
- const SERVICES = [
234
- { name: 'sms', port: 8080, container: 'app-sms', label: 'SMS(販売管理)' },
235
- { name: 'fas', port: 8081, container: 'app-fas', label: 'FAS(財務会計)' },
236
- ];
237
- ```
238
-
239
- サービス定義を基に、個別タスクと一括タスクを動的に生成する。
240
-
241
- ```javascript
242
- // 個別タスク: deploy:dev:build:sms, deploy:dev:build:fas
243
- SERVICES.forEach((svc) => {
244
- gulp.task(`deploy:dev:build:${svc.name}`, (done) => {
245
- buildImage(svc);
246
- done();
247
- });
248
- });
249
-
250
- // 一括タスク: deploy:dev:build(全サービス)
251
- gulp.task('deploy:dev:build', gulp.series(
252
- ...SERVICES.map((svc) => `deploy:dev:build:${svc.name}`)
253
- ));
254
- ```
255
-
256
- #### 7. エラーハンドリング
257
-
258
- `execSync` のエラーは適切にキャッチし、ユーザーにわかりやすいメッセージを表示する。
259
-
260
- ```javascript
261
- try {
262
- execSync(command, { stdio: 'inherit', env: cleanDockerEnv() });
263
- } catch (err) {
264
- console.error(`エラー: ${err.message}`);
265
- process.exit(1);
266
- }
267
- ```
268
-
269
- #### 8. ヘルプタスク
270
-
271
- 各カテゴリにヘルプタスクを提供する。
272
-
273
- ```javascript
274
- gulp.task('deploy:dev:help', (done) => {
275
- console.log(`
276
- === 開発環境デプロイコマンド ===
277
-
278
- deploy:dev:build 全サービスをローカルビルド
279
- deploy:dev:push 全イメージを Registry にプッシュ
280
- deploy:dev 全サービスをデプロイ
281
- deploy:dev:status コンテナ状態を確認
282
- deploy:dev:logs コンテナログを表示
283
- deploy:dev:clean 開発環境を完全削除
284
- deploy:dev:setup 初回セットアップ
285
- deploy:dev:help このヘルプを表示
286
- `);
287
- done();
288
- });
289
- ```
290
-
291
- ## 共通ユーティリティ(shared.js)
292
-
293
- 環境をまたいで共通的に使用するユーティリティ関数を `shared.js` に集約する。
294
-
295
- ```javascript
296
- 'use strict';
297
-
298
- /**
299
- * DOCKER_HOST を除外した環境変数を返す
300
- * Docker Desktop 使用時に DOCKER_HOST が設定されていると接続エラーが発生するため除外する
301
- * @returns {Object} DOCKER_HOST を除外した環境変数
302
- */
303
- export function cleanDockerEnv() {
304
- const env = { ...process.env };
305
- delete env.DOCKER_HOST;
306
- return env;
307
- }
308
- ```
309
-
310
- ## SSH ヘルパー(ssh.js)
311
-
312
- SSH/SCP 操作を共通化する。環境プレフィックスで接続先を切り替える。
313
-
314
- ```javascript
315
- /**
316
- * SSH 接続パラメータを取得
317
- * @param {string} [prefix='DEV'] 環境変数プレフィックス
318
- * @returns {{ host: string, user: string, port: string, keyFile: string | undefined }}
319
- */
320
- export function getSSHConfig(prefix = 'DEV') {
321
- const host = process.env[`${prefix}_SSH_HOST`];
322
- const user = process.env[`${prefix}_SSH_USER`];
323
- const port = process.env[`${prefix}_SSH_PORT`] || '22';
324
- const keyFile = process.env[`${prefix}_SSH_KEY`];
325
-
326
- if (!host || !user) {
327
- throw new Error(`${prefix}_SSH_HOST と ${prefix}_SSH_USER を .env に設定してください`);
328
- }
329
-
330
- return { host, user, port, keyFile };
331
- }
332
-
333
- /**
334
- * SSH でリモートコマンドを実行
335
- * @param {string} command 実行するコマンド
336
- * @param {object} [options] オプション
337
- * @param {boolean} [options.ignoreError] エラーを無視するか
338
- * @param {boolean} [options.capture] 出力を文字列で返すか
339
- * @param {string} [options.prefix] 環境変数プレフィックス
340
- * @returns {string} 標準出力
341
- */
342
- export function sshExec(command, options = {}) {
343
- // 実装
344
- }
345
-
346
- /**
347
- * SCP でローカルファイル/ディレクトリをリモートに転送
348
- * @param {string} localPath ローカルパス
349
- * @param {string} remotePath リモートパス
350
- * @param {object} [options] オプション
351
- * @param {boolean} [options.recursive] ディレクトリを再帰的に転送
352
- * @param {string} [options.prefix] 環境変数プレフィックス
353
- */
354
- export function scpUpload(localPath, remotePath, options = {}) {
355
- // 実装
356
- }
357
- ```
358
-
359
- ## AWS 連携パターン
360
-
361
- ### aws-vault ラッパー
362
-
363
- AWS 操作では `aws-vault exec` 経由で認証情報を自動取得する。
364
-
365
- ```javascript
366
- /**
367
- * aws-vault ラッパーを組み立てる
368
- * @returns {string} コマンドプレフィックス
369
- */
370
- function awsExecPrefix() {
371
- const profile = process.env.STG_AWS_PROFILE || '';
372
- if (!profile) return '';
373
- return `aws-vault exec ${profile} -- `;
374
- }
375
- ```
376
-
377
- ### Terraform 操作
378
-
379
- ```javascript
380
- /**
381
- * Terraform コマンドを実行
382
- * @param {string} subcommand - Terraform サブコマンド
383
- * @param {object} options - オプション
384
- */
385
- function terraform(subcommand, options = {}) {
386
- const prefix = awsExecPrefix();
387
- const cmd = `${prefix}terraform ${subcommand}`;
388
- execSync(cmd, { cwd: options.cwd, stdio: 'inherit' });
389
- }
390
- ```
391
-
392
- ## Gulp タスク登録パターン
393
-
394
- ### gulpfile.js
395
-
396
- ```javascript
397
- import gulp from 'gulp';
398
- import deployDev from './ops/scripts/deploy_dev.js';
399
- import deployStg from './ops/scripts/deploy_stg.js';
400
- import provisionStg from './ops/scripts/provision_stg.js';
401
-
402
- // 各モジュールのタスクを登録
403
- deployDev(gulp);
404
- deployStg(gulp);
405
- provisionStg(gulp);
406
- ```
407
-
408
- ### package.json のスクリプト
409
-
410
- ```json
411
- {
412
- "scripts": {
413
- "deploy:dev": "npx gulp deploy:dev",
414
- "deploy:stg": "npx gulp deploy:stg",
415
- "provision:stg": "npx gulp provision:stg"
416
- }
417
- }
418
- ```
419
-
420
- ## スクリプト作成の手順
421
-
422
- 新しい運用スクリプトを作成する際は以下の手順に従う。
423
-
424
- 1. **ネーミング**: `{カテゴリ}_{環境}.js` でファイル名を決定
425
- 2. **テンプレート**: 基本構造(設定→ヘルパー関数→Gulp タスク)に従って実装
426
- 3. **共通関数**: `shared.js` と `ssh.js` の既存関数を活用
427
- 4. **環境変数**: `.env.example` に必要な環境変数を追記
428
- 5. **ヘルプ**: `{カテゴリ}:{環境}:help` タスクを作成
429
- 6. **gulpfile.js**: タスクを登録
430
- 7. **ドキュメント**: コマンドリファレンスを作成・更新
1
+ ---
2
+ type: Reference
3
+ title: "運用スクリプト作成ガイド"
4
+ description: "本ガイドは ops/scripts/ 配下に配置する運用スクリプトのネーミングルール、ディレクトリ構成、実装スタイルを定義します。"
5
+ tags: [reference]
6
+ status: stable
7
+ generated: { by: human:kakimomokuri, at: 2026-03-16T06:35:16Z }
8
+ ---
9
+
10
+ # 運用スクリプト作成ガイド
11
+
12
+ ## 概要
13
+
14
+ 本ガイドは `ops/scripts/` 配下に配置する運用スクリプトのネーミングルール、ディレクトリ構成、実装スタイルを定義します。Gulp タスクランナーと連携し、環境構築・デプロイ・プロビジョニング・運用タスクを自動化します。
15
+
16
+ ## ディレクトリ構成
17
+
18
+ ```text
19
+ ops/
20
+ ├── scripts/
21
+ │ ├── shared.js # 共通ユーティリティ
22
+ │ ├── ssh.js # SSH/SCP ヘルパー
23
+ │ ├── deploy_dev.js # 開発環境デプロイ
24
+ │ ├── deploy_stg.js # ステージング環境デプロイ
25
+ │ ├── deploy_prd.js # 本番環境デプロイ
26
+ │ ├── provision_stg.js # ステージング環境プロビジョニング
27
+ │ ├── provision_prd.js # 本番環境プロビジョニング
28
+ │ ├── develop.js # アプリケーション開発タスク
29
+ │ ├── release.js # リリースワークフロー
30
+ │ ├── journal.js # 開発ジャーナル生成
31
+ │ ├── mkdocs.js # ドキュメントビルド
32
+ │ ├── vault.js # シークレット管理
33
+ │ ├── ssh_stg.js # ステージング SSH・踏み台
34
+ │ ├── ssh_prd.js # 本番 SSH・踏み台
35
+ │ ├── sonar_local.js # SonarQube ローカル環境
36
+ │ └── sonar_aws.js # SonarQube AWS 環境
37
+ ├── terraform/ # IaC(Terraform)
38
+ ├── docker/ # Docker 関連設定
39
+ └── nix/ # Nix 開発環境(任意)
40
+ ```
41
+
42
+ ## ネーミングルール
43
+
44
+ ### ファイル名
45
+
46
+ `{カテゴリ}_{環境}.js` の形式で命名する。
47
+
48
+ | カテゴリ | 説明 | 例 |
49
+ |---------|------|-----|
50
+ | `deploy` | デプロイスクリプト | `deploy_dev.js`, `deploy_stg.js`, `deploy_prd.js` |
51
+ | `provision` | IaC プロビジョニング | `provision_stg.js`, `provision_prd.js` |
52
+ | `ssh` | SSH・踏み台操作 | `ssh.js`(共通), `ssh_stg.js`, `ssh_prd.js` |
53
+ | `develop` | アプリケーション開発タスク | `develop.js` |
54
+ | `release` | リリースワークフロー | `release.js` |
55
+ | `journal` | 開発ジャーナル | `journal.js` |
56
+ | `mkdocs` | ドキュメント | `mkdocs.js` |
57
+ | `sonar` | コード品質分析 | `sonar_local.js`, `sonar_aws.js` |
58
+ | `shared` | 共通ユーティリティ | `shared.js` |
59
+ | `vault` | シークレット管理 | `vault.js` |
60
+
61
+ **環境サフィックス**:
62
+
63
+ | サフィックス | 環境 | 例 |
64
+ |-------------|------|-----|
65
+ | `_dev` | 開発環境 | `deploy_dev.js` |
66
+ | `_stg` | ステージング環境 | `deploy_stg.js`, `provision_stg.js` |
67
+ | `_prd` | 本番環境 | `deploy_prd.js`, `provision_prd.js` |
68
+ | `_local` | ローカル環境 | `sonar_local.js` |
69
+ | `_aws` | AWS 環境 | `sonar_aws.js` |
70
+ | なし | 環境非依存 / 共通 | `shared.js`, `ssh.js`, `release.js` |
71
+
72
+ ### Gulp タスク名
73
+
74
+ `{カテゴリ}:{環境}:{アクション}` の形式で命名する。
75
+
76
+ ```
77
+ deploy:dev:build # 開発環境: ビルド
78
+ deploy:dev:push # 開発環境: Registry プッシュ
79
+ deploy:dev # 開発環境: デプロイ実行
80
+ deploy:dev:status # 開発環境: ステータス確認
81
+ deploy:dev:logs # 開発環境: ログ取得
82
+ deploy:dev:clean # 開発環境: クリーンアップ
83
+ deploy:dev:setup # 開発環境: 初回セットアップ
84
+ deploy:dev:help # 開発環境: ヘルプ
85
+
86
+ provision:stg:plan # ステージング: Terraform plan
87
+ provision:stg:vpc # ステージング: VPC プロビジョニング
88
+ provision:stg:rds # ステージング: RDS プロビジョニング
89
+ provision:stg:ecs # ステージング: ECS プロビジョニング
90
+ provision:stg # ステージング: 全リソース一括
91
+ provision:stg:destroy # ステージング: 全リソース廃棄
92
+ provision:stg:help # ステージング: ヘルプ
93
+
94
+ ssh:stg:login # ステージング: 踏み台ログイン
95
+ ssh:stg:tunnel # ステージング: SSH トンネル
96
+ ssh:stg:backup # ステージング: DB バックアップ
97
+ ssh:stg:restore # ステージング: DB リストア
98
+
99
+ dev:sms # SMS 開発サーバー起動
100
+ dev:sms:product # SMS product プロファイル起動
101
+ tdd:sms # SMS TDD モード
102
+ ```
103
+
104
+ ## 実装スタイル
105
+
106
+ ### 基本構造
107
+
108
+ すべてのスクリプトは以下の構造に従う。
109
+
110
+ ```javascript
111
+ 'use strict';
112
+
113
+ import path from 'path';
114
+ import { execSync } from 'child_process';
115
+ import { cleanDockerEnv } from './shared.js';
116
+
117
+ // ============================================
118
+ // 設定
119
+ // ============================================
120
+
121
+ const PREFIX = 'DEV'; // 環境変数プレフィックス
122
+
123
+ /** サービス定義 */
124
+ const SERVICES = [
125
+ { name: 'backend', port: 8080, container: 'app-backend', label: 'Backend' },
126
+ { name: 'frontend', port: 3000, container: 'app-frontend', label: 'Frontend' },
127
+ ];
128
+
129
+ // ============================================
130
+ // ヘルパー関数
131
+ // ============================================
132
+
133
+ /**
134
+ * JSDoc コメントで関数の目的・引数・戻り値を記述
135
+ * @param {string} param - パラメータの説明
136
+ * @returns {string}
137
+ */
138
+ function helperFunction(param) {
139
+ // 実装
140
+ }
141
+
142
+ // ============================================
143
+ // Gulp タスク
144
+ // ============================================
145
+
146
+ export default function(gulp) {
147
+ // タスク登録
148
+ gulp.task('deploy:dev:build', (done) => {
149
+ // タスク実装
150
+ done();
151
+ });
152
+ }
153
+ ```
154
+
155
+ ### コーディング規約
156
+
157
+ #### 1. strict mode
158
+
159
+ すべてのファイルの先頭に `'use strict';` を記述する。
160
+
161
+ #### 2. ESM(ES Modules)
162
+
163
+ `import` / `export` 構文を使用する。`require` は使用しない。
164
+
165
+ ```javascript
166
+ // Good
167
+ import path from 'path';
168
+ import { execSync } from 'child_process';
169
+ import { cleanDockerEnv } from './shared.js';
170
+
171
+ // Bad
172
+ const path = require('path');
173
+ ```
174
+
175
+ #### 3. セクション区切り
176
+
177
+ コード内のセクションは以下のコメントで区切る。
178
+
179
+ ```javascript
180
+ // ============================================
181
+ // 設定
182
+ // ============================================
183
+
184
+ // ============================================
185
+ // ヘルパー関数
186
+ // ============================================
187
+
188
+ // ============================================
189
+ // Gulp タスク
190
+ // ============================================
191
+ ```
192
+
193
+ #### 4. JSDoc コメント
194
+
195
+ すべての関数に JSDoc コメントを記述する。
196
+
197
+ ```javascript
198
+ /**
199
+ * docker build に渡すオプションを組み立てる
200
+ * @returns {string} ビルドオプション文字列
201
+ */
202
+ function dockerBuildOptions() {
203
+ // ...
204
+ }
205
+ ```
206
+
207
+ #### 5. 環境変数の管理
208
+
209
+ 環境変数は `.env` ファイルで管理し、環境プレフィックス(`DEV_`, `STG_`, `PRD_`)で名前空間を分離する。
210
+
211
+ ```javascript
212
+ // 環境変数プレフィックスで名前空間を分離
213
+ const PREFIX = 'STG';
214
+ const awsProfile = () => process.env.STG_AWS_PROFILE || '';
215
+ const sshHost = () => process.env[`${PREFIX}_SSH_HOST`];
216
+ ```
217
+
218
+ **環境変数の命名規則**:
219
+
220
+ | プレフィックス | 環境 | 例 |
221
+ |-------------|------|-----|
222
+ | `DEV_` | 開発環境 | `DEV_SSH_HOST`, `DEV_SSH_USER` |
223
+ | `STG_` | ステージング環境 | `STG_AWS_PROFILE`, `STG_DB_USERNAME` |
224
+ | `PRD_` | 本番環境 | `PRD_AWS_PROFILE`, `PRD_DB_USERNAME` |
225
+ | `GHCR_` | GitHub Container Registry | `GHCR_USER`, `GHCR_TOKEN` |
226
+ | `DOCKER_` | Docker 関連 | `DOCKER_BUILD_NETWORK`, `DOCKER_BUILD_DNS` |
227
+
228
+ #### 6. サービス定義
229
+
230
+ 複数サービスを扱うスクリプトでは、サービスを配列で定義する。
231
+
232
+ ```javascript
233
+ const SERVICES = [
234
+ { name: 'sms', port: 8080, container: 'app-sms', label: 'SMS(販売管理)' },
235
+ { name: 'fas', port: 8081, container: 'app-fas', label: 'FAS(財務会計)' },
236
+ ];
237
+ ```
238
+
239
+ サービス定義を基に、個別タスクと一括タスクを動的に生成する。
240
+
241
+ ```javascript
242
+ // 個別タスク: deploy:dev:build:sms, deploy:dev:build:fas
243
+ SERVICES.forEach((svc) => {
244
+ gulp.task(`deploy:dev:build:${svc.name}`, (done) => {
245
+ buildImage(svc);
246
+ done();
247
+ });
248
+ });
249
+
250
+ // 一括タスク: deploy:dev:build(全サービス)
251
+ gulp.task('deploy:dev:build', gulp.series(
252
+ ...SERVICES.map((svc) => `deploy:dev:build:${svc.name}`)
253
+ ));
254
+ ```
255
+
256
+ #### 7. エラーハンドリング
257
+
258
+ `execSync` のエラーは適切にキャッチし、ユーザーにわかりやすいメッセージを表示する。
259
+
260
+ ```javascript
261
+ try {
262
+ execSync(command, { stdio: 'inherit', env: cleanDockerEnv() });
263
+ } catch (err) {
264
+ console.error(`エラー: ${err.message}`);
265
+ process.exit(1);
266
+ }
267
+ ```
268
+
269
+ #### 8. ヘルプタスク
270
+
271
+ 各カテゴリにヘルプタスクを提供する。
272
+
273
+ ```javascript
274
+ gulp.task('deploy:dev:help', (done) => {
275
+ console.log(`
276
+ === 開発環境デプロイコマンド ===
277
+
278
+ deploy:dev:build 全サービスをローカルビルド
279
+ deploy:dev:push 全イメージを Registry にプッシュ
280
+ deploy:dev 全サービスをデプロイ
281
+ deploy:dev:status コンテナ状態を確認
282
+ deploy:dev:logs コンテナログを表示
283
+ deploy:dev:clean 開発環境を完全削除
284
+ deploy:dev:setup 初回セットアップ
285
+ deploy:dev:help このヘルプを表示
286
+ `);
287
+ done();
288
+ });
289
+ ```
290
+
291
+ ## 共通ユーティリティ(shared.js)
292
+
293
+ 環境をまたいで共通的に使用するユーティリティ関数を `shared.js` に集約する。
294
+
295
+ ```javascript
296
+ 'use strict';
297
+
298
+ /**
299
+ * DOCKER_HOST を除外した環境変数を返す
300
+ * Docker Desktop 使用時に DOCKER_HOST が設定されていると接続エラーが発生するため除外する
301
+ * @returns {Object} DOCKER_HOST を除外した環境変数
302
+ */
303
+ export function cleanDockerEnv() {
304
+ const env = { ...process.env };
305
+ delete env.DOCKER_HOST;
306
+ return env;
307
+ }
308
+ ```
309
+
310
+ ## SSH ヘルパー(ssh.js)
311
+
312
+ SSH/SCP 操作を共通化する。環境プレフィックスで接続先を切り替える。
313
+
314
+ ```javascript
315
+ /**
316
+ * SSH 接続パラメータを取得
317
+ * @param {string} [prefix='DEV'] 環境変数プレフィックス
318
+ * @returns {{ host: string, user: string, port: string, keyFile: string | undefined }}
319
+ */
320
+ export function getSSHConfig(prefix = 'DEV') {
321
+ const host = process.env[`${prefix}_SSH_HOST`];
322
+ const user = process.env[`${prefix}_SSH_USER`];
323
+ const port = process.env[`${prefix}_SSH_PORT`] || '22';
324
+ const keyFile = process.env[`${prefix}_SSH_KEY`];
325
+
326
+ if (!host || !user) {
327
+ throw new Error(`${prefix}_SSH_HOST と ${prefix}_SSH_USER を .env に設定してください`);
328
+ }
329
+
330
+ return { host, user, port, keyFile };
331
+ }
332
+
333
+ /**
334
+ * SSH でリモートコマンドを実行
335
+ * @param {string} command 実行するコマンド
336
+ * @param {object} [options] オプション
337
+ * @param {boolean} [options.ignoreError] エラーを無視するか
338
+ * @param {boolean} [options.capture] 出力を文字列で返すか
339
+ * @param {string} [options.prefix] 環境変数プレフィックス
340
+ * @returns {string} 標準出力
341
+ */
342
+ export function sshExec(command, options = {}) {
343
+ // 実装
344
+ }
345
+
346
+ /**
347
+ * SCP でローカルファイル/ディレクトリをリモートに転送
348
+ * @param {string} localPath ローカルパス
349
+ * @param {string} remotePath リモートパス
350
+ * @param {object} [options] オプション
351
+ * @param {boolean} [options.recursive] ディレクトリを再帰的に転送
352
+ * @param {string} [options.prefix] 環境変数プレフィックス
353
+ */
354
+ export function scpUpload(localPath, remotePath, options = {}) {
355
+ // 実装
356
+ }
357
+ ```
358
+
359
+ ## AWS 連携パターン
360
+
361
+ ### aws-vault ラッパー
362
+
363
+ AWS 操作では `aws-vault exec` 経由で認証情報を自動取得する。
364
+
365
+ ```javascript
366
+ /**
367
+ * aws-vault ラッパーを組み立てる
368
+ * @returns {string} コマンドプレフィックス
369
+ */
370
+ function awsExecPrefix() {
371
+ const profile = process.env.STG_AWS_PROFILE || '';
372
+ if (!profile) return '';
373
+ return `aws-vault exec ${profile} -- `;
374
+ }
375
+ ```
376
+
377
+ ### Terraform 操作
378
+
379
+ ```javascript
380
+ /**
381
+ * Terraform コマンドを実行
382
+ * @param {string} subcommand - Terraform サブコマンド
383
+ * @param {object} options - オプション
384
+ */
385
+ function terraform(subcommand, options = {}) {
386
+ const prefix = awsExecPrefix();
387
+ const cmd = `${prefix}terraform ${subcommand}`;
388
+ execSync(cmd, { cwd: options.cwd, stdio: 'inherit' });
389
+ }
390
+ ```
391
+
392
+ ## Gulp タスク登録パターン
393
+
394
+ ### gulpfile.js
395
+
396
+ ```javascript
397
+ import gulp from 'gulp';
398
+ import deployDev from './ops/scripts/deploy_dev.js';
399
+ import deployStg from './ops/scripts/deploy_stg.js';
400
+ import provisionStg from './ops/scripts/provision_stg.js';
401
+
402
+ // 各モジュールのタスクを登録
403
+ deployDev(gulp);
404
+ deployStg(gulp);
405
+ provisionStg(gulp);
406
+ ```
407
+
408
+ ### package.json のスクリプト
409
+
410
+ ```json
411
+ {
412
+ "scripts": {
413
+ "deploy:dev": "npx gulp deploy:dev",
414
+ "deploy:stg": "npx gulp deploy:stg",
415
+ "provision:stg": "npx gulp provision:stg"
416
+ }
417
+ }
418
+ ```
419
+
420
+ ## スクリプト作成の手順
421
+
422
+ 新しい運用スクリプトを作成する際は以下の手順に従う。
423
+
424
+ 1. **ネーミング**: `{カテゴリ}_{環境}.js` でファイル名を決定
425
+ 2. **テンプレート**: 基本構造(設定→ヘルパー関数→Gulp タスク)に従って実装
426
+ 3. **共通関数**: `shared.js` と `ssh.js` の既存関数を活用
427
+ 4. **環境変数**: `.env.example` に必要な環境変数を追記
428
+ 5. **ヘルプ**: `{カテゴリ}:{環境}:help` タスクを作成
429
+ 6. **gulpfile.js**: タスクを登録
430
+ 7. **ドキュメント**: コマンドリファレンスを作成・更新