@k2works/claude-code-booster 6.3.0 → 6.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (293) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +61 -61
  3. package/bin/claude-code-booster +113 -113
  4. package/lib/assets/.claude/README.md +287 -287
  5. package/lib/assets/.claude/agents/xp-architect.md +250 -250
  6. package/lib/assets/.claude/agents/xp-executive.md +207 -207
  7. package/lib/assets/.claude/agents/xp-interaction-designer.md +239 -239
  8. package/lib/assets/.claude/agents/xp-product-manager.md +245 -245
  9. package/lib/assets/.claude/agents/xp-programmer.md +268 -268
  10. package/lib/assets/.claude/agents/xp-project-manager.md +229 -229
  11. package/lib/assets/.claude/agents/xp-technical-writer.md +224 -224
  12. package/lib/assets/.claude/agents/xp-tester.md +265 -265
  13. package/lib/assets/.claude/agents/xp-user-representative.md +204 -204
  14. package/lib/assets/.claude/scripts/generate-inception-deck.mjs +911 -911
  15. package/lib/assets/.claude/settings.json +11 -11
  16. package/lib/assets/.claude/skills/ai-agent-guidelines/SKILL.md +111 -111
  17. package/lib/assets/.claude/skills/analyzing-architecture/SKILL.md +83 -83
  18. package/lib/assets/.claude/skills/analyzing-business-architecture/SKILL.md +122 -122
  19. package/lib/assets/.claude/skills/analyzing-business-case/SKILL.md +148 -148
  20. package/lib/assets/.claude/skills/analyzing-business-strategy/SKILL.md +277 -277
  21. package/lib/assets/.claude/skills/analyzing-data-model/SKILL.md +77 -77
  22. package/lib/assets/.claude/skills/analyzing-domain-model/SKILL.md +117 -117
  23. package/lib/assets/.claude/skills/analyzing-inception-deck/SKILL.md +84 -84
  24. package/lib/assets/.claude/skills/analyzing-non-functional/SKILL.md +95 -95
  25. package/lib/assets/.claude/skills/analyzing-operation/SKILL.md +95 -95
  26. package/lib/assets/.claude/skills/analyzing-requirements/SKILL.md +91 -91
  27. package/lib/assets/.claude/skills/analyzing-review/SKILL.md +174 -174
  28. package/lib/assets/.claude/skills/analyzing-tech-stack/SKILL.md +101 -101
  29. package/lib/assets/.claude/skills/analyzing-test-strategy/SKILL.md +89 -89
  30. package/lib/assets/.claude/skills/analyzing-ui-design/SKILL.md +80 -80
  31. package/lib/assets/.claude/skills/analyzing-usecases/SKILL.md +72 -72
  32. package/lib/assets/.claude/skills/closing-iteration/SKILL.md +176 -176
  33. package/lib/assets/.claude/skills/creating-adr/SKILL.md +117 -117
  34. package/lib/assets/.claude/skills/creating-development-strategy/SKILL.md +151 -127
  35. package/lib/assets/.claude/skills/creating-iteration-report/SKILL.md +210 -210
  36. package/lib/assets/.claude/skills/creating-journal/SKILL.md +140 -140
  37. package/lib/assets/.claude/skills/creating-manual/SKILL.md +199 -199
  38. package/lib/assets/.claude/skills/creating-release-report/SKILL.md +161 -161
  39. package/lib/assets/.claude/skills/creating-slides/SKILL.md +86 -86
  40. package/lib/assets/.claude/skills/creating-slides/agents/openai.yaml +4 -4
  41. package/lib/assets/.claude/skills/creating-slides/references/manga-css.md +45 -45
  42. package/lib/assets/.claude/skills/creating-slides/scripts/slide_tools.py +239 -239
  43. package/lib/assets/.claude/skills/developing-backend/SKILL.md +100 -100
  44. package/lib/assets/.claude/skills/developing-frontend/SKILL.md +93 -93
  45. package/lib/assets/.claude/skills/developing-release/SKILL.md +120 -120
  46. package/lib/assets/.claude/skills/developing-review/SKILL.md +175 -175
  47. package/lib/assets/.claude/skills/developing-uiux-review/SKILL.md +207 -207
  48. package/lib/assets/.claude/skills/generating-bmc/SKILL.md +123 -123
  49. package/lib/assets/.claude/skills/generating-slides/SKILL.md +94 -94
  50. package/lib/assets/.claude/skills/git-commit/SKILL.md +81 -81
  51. package/lib/assets/.claude/skills/killing-processes/SKILL.md +44 -44
  52. package/lib/assets/.claude/skills/migrating-ai-dlc/evals/evals.json +59 -59
  53. package/lib/assets/.claude/skills/opening-iteration/SKILL.md +124 -124
  54. package/lib/assets/.claude/skills/operating-backup/SKILL.md +59 -59
  55. package/lib/assets/.claude/skills/operating-cicd/SKILL.md +54 -54
  56. package/lib/assets/.claude/skills/operating-deploy/SKILL.md +67 -67
  57. package/lib/assets/.claude/skills/operating-docs/SKILL.md +219 -219
  58. package/lib/assets/.claude/skills/operating-provision/SKILL.md +77 -77
  59. package/lib/assets/.claude/skills/operating-qt/SKILL.md +147 -147
  60. package/lib/assets/.claude/skills/operating-review/SKILL.md +171 -171
  61. package/lib/assets/.claude/skills/operating-script/SKILL.md +145 -145
  62. package/lib/assets/.claude/skills/operating-setup/SKILL.md +63 -63
  63. package/lib/assets/.claude/skills/orchestrating-analysis/SKILL.md +110 -110
  64. package/lib/assets/.claude/skills/orchestrating-development/SKILL.md +172 -172
  65. package/lib/assets/.claude/skills/orchestrating-operation/SKILL.md +161 -161
  66. package/lib/assets/.claude/skills/orchestrating-project/SKILL.md +149 -149
  67. package/lib/assets/.claude/skills/planning-releases/SKILL.md +121 -121
  68. package/lib/assets/.claude/skills/practicing-getting-start-tdd/SKILL.md +262 -262
  69. package/lib/assets/.claude/skills/syncing-github-project/SKILL.md +151 -151
  70. package/lib/assets/.claude/skills/tracking-progress/SKILL.md +91 -91
  71. package/lib/assets/.claude/skills/validating-design/SKILL.md +130 -130
  72. package/lib/assets/.claude/skills/validating-iteration-plan/SKILL.md +238 -238
  73. package/lib/assets/.claude/skills/validating-operating-setup/SKILL.md +118 -118
  74. package/lib/assets/.devcontainer/devcontainer.json +37 -37
  75. package/lib/assets/.env.example +32 -32
  76. package/lib/assets/.gitattributes +4 -4
  77. package/lib/assets/.github/workflows/docker-publish.yml +77 -77
  78. package/lib/assets/.github/workflows/mkdocs.yml +39 -39
  79. package/lib/assets/AGENTS.md +102 -102
  80. package/lib/assets/README.md +304 -304
  81. package/lib/assets/docker-compose.yml +33 -33
  82. package/lib/assets/docs/adr/index.md +10 -10
  83. package/lib/assets/docs/article/index.md +2 -1
  84. package/lib/assets/docs/assets/css/extra.css +29 -29
  85. package/lib/assets/docs/assets/js/extra.js +48 -48
  86. package/lib/assets/docs/assets/js/mathjax.js +27 -27
  87. package/lib/assets/docs/design/index.md +44 -44
  88. package/lib/assets/docs/development/index.md +39 -39
  89. package/lib/assets/docs/index.md +1 -1
  90. package/lib/assets/docs/log.md +3 -0
  91. package/lib/assets/docs/operation/index.md +41 -41
  92. package/lib/assets/docs/reference/BDD/345/260/216/345/205/245/343/202/254/343/202/244/343/203/211.md +766 -0
  93. 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
  94. 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
  95. 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
  96. 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
  97. 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
  98. 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
  99. package/lib/assets/docs/reference/UI/350/250/255/350/250/210/343/202/254/343/202/244/343/203/211.md +460 -460
  100. 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
  101. package/lib/assets/docs/reference/images/Ansoff.drawio.svg +3 -3
  102. package/lib/assets/docs/reference/images/BMC.drawio.svg +3 -3
  103. package/lib/assets/docs/reference/images/BrandBasicStrategy.drawio.svg +3 -3
  104. package/lib/assets/docs/reference/images/BrandCategorization.drawio.svg +3 -3
  105. package/lib/assets/docs/reference/images/BrandRecurutementStrategy.drawio.svg +3 -3
  106. package/lib/assets/docs/reference/images/BrandValue.drawio.svg +3 -3
  107. package/lib/assets/docs/reference/images/BusinessActivitiy.svg +3 -3
  108. package/lib/assets/docs/reference/images/HRM.drawio.svg +3 -3
  109. package/lib/assets/docs/reference/images/MarketingStructure.drawio.svg +3 -3
  110. package/lib/assets/docs/reference/images/OrganizationElemnts.svg +3 -3
  111. package/lib/assets/docs/reference/images/PPM.drawio.svg +3 -3
  112. package/lib/assets/docs/reference/images/PositioningMap.drawio.svg +3 -3
  113. package/lib/assets/docs/reference/images/ProductLayer.drawio.svg +3 -3
  114. package/lib/assets/docs/reference/images/ProductMix.drawio.svg +3 -3
  115. package/lib/assets/docs/reference/images/SWOT.drawio.svg +3 -3
  116. package/lib/assets/docs/reference/images/TargetMarket.drawio.svg +3 -3
  117. package/lib/assets/docs/reference/images/ThreeGenericStrategies.drawio.svg +3 -3
  118. package/lib/assets/docs/reference/images/VRIO.drawio.svg +3 -3
  119. package/lib/assets/docs/reference/images/ValueChain.drawio.svg +3 -3
  120. package/lib/assets/docs/reference/index.md +1 -0
  121. 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
  122. 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
  123. 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
  124. 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
  125. 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
  126. 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
  127. 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
  128. 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
  129. 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
  130. 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
  131. 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
  132. 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
  133. 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
  134. package/lib/assets/docs/reference//344/274/201/346/245/255/347/265/214/345/226/266/350/253/226.md +2647 -2647
  135. 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
  136. 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
  137. 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
  138. 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
  139. package/lib/assets/docs/reference//351/201/213/345/226/266/347/256/241/347/220/206.md +1492 -1492
  140. 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
  141. 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
  142. package/lib/assets/docs/reference//351/226/213/347/231/272/343/202/254/343/202/244/343/203/211.md +314 -314
  143. 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
  144. package/lib/assets/docs/requirements/index.md +17 -17
  145. package/lib/assets/docs/review/index.md +5 -5
  146. package/lib/assets/docs/strategy/index.md +17 -17
  147. package/lib/assets/docs/template/ADR.md +39 -39
  148. 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
  149. 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
  150. package/lib/assets/docs/template/README.md +59 -59
  151. package/lib/assets/docs/template/index.md +24 -24
  152. 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
  153. 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
  154. package/lib/assets/docs/template//343/202/244/343/203/206/343/203/254/343/203/274/343/202/267/343/203/247/343/203/263/345/256/214/344/272/206/345/240/261/345/221/212/346/233/270.md +68 -68
  155. 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
  156. 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
  157. 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
  158. 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
  159. 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
  160. package/lib/assets/docs/template//344/272/213/344/276/213/345/210/206/346/236/220.md +522 -522
  161. package/lib/assets/docs/template//344/274/201/346/245/255/345/210/206/346/236/220.md +582 -582
  162. 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
  163. package/lib/assets/docs/template//350/246/201/344/273/266/345/256/232/347/276/251.md +669 -669
  164. package/lib/assets/docs/template//350/250/255/350/250/210.md +183 -183
  165. 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
  166. package/lib/assets/gulpfile.js +29 -29
  167. package/lib/assets/mkdocs.yml +147 -138
  168. package/lib/assets/ops/docker/sonarqube-local/docker-compose.yml +57 -57
  169. package/lib/assets/ops/scripts/journal.js +180 -180
  170. package/lib/assets/ops/scripts/mkdocs.js +82 -82
  171. package/lib/assets/ops/scripts/release.js +431 -431
  172. package/lib/assets/ops/scripts/sonar_local.js +726 -726
  173. package/lib/assets/ops/scripts/ssh.js +190 -190
  174. package/lib/assets/ops/scripts/vault.js +299 -299
  175. package/lib/assets/package-lock.json +1673 -1673
  176. package/lib/assets/package.json +45 -45
  177. package/lib/gulpfile.js +37 -37
  178. package/package.json +41 -41
  179. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/benchmark.json +0 -20
  180. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/benchmark.md +0 -13
  181. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/eval_metadata.json +0 -14
  182. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/with_skill/grading.json +0 -39
  183. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/with_skill/outputs/docs_after/adr/001-db.md +0 -12
  184. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/with_skill/outputs/docs_after/adr/002-cache-strategy.md +0 -20
  185. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/with_skill/outputs/docs_after/adr/index.md +0 -4
  186. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/with_skill/outputs/docs_after/design/data-model.md +0 -12
  187. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/with_skill/outputs/docs_after/design/index.md +0 -3
  188. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/with_skill/outputs/docs_after/index.md +0 -10
  189. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/with_skill/outputs/docs_after/log.md +0 -7
  190. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/with_skill/outputs/docs_after/operation/deploy-old.md +0 -12
  191. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/with_skill/outputs/docs_after/operation/deploy.md +0 -12
  192. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/with_skill/outputs/docs_after/operation/index.md +0 -4
  193. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/with_skill/outputs/docs_after/reference/OKF/345/260/216/345/205/245/343/202/254/343/202/244/343/203/211_V0.2.md +0 -965
  194. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/with_skill/outputs/report.md +0 -76
  195. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/without_skill/grading.json +0 -39
  196. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/without_skill/outputs/docs_after/adr/001-db.md +0 -12
  197. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/without_skill/outputs/docs_after/adr/002-cache-strategy.md +0 -20
  198. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/without_skill/outputs/docs_after/adr/index.md +0 -4
  199. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/without_skill/outputs/docs_after/design/data-model.md +0 -12
  200. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/without_skill/outputs/docs_after/design/index.md +0 -3
  201. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/without_skill/outputs/docs_after/index.md +0 -10
  202. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/without_skill/outputs/docs_after/log.md +0 -7
  203. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/without_skill/outputs/docs_after/operation/deploy-old.md +0 -12
  204. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/without_skill/outputs/docs_after/operation/deploy.md +0 -12
  205. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/without_skill/outputs/docs_after/operation/index.md +0 -4
  206. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/without_skill/outputs/docs_after/reference/OKF/345/260/216/345/205/245/343/202/254/343/202/244/343/203/211_V0.2.md +0 -965
  207. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/without_skill/outputs/report.md +0 -22
  208. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/eval_metadata.json +0 -13
  209. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/with_skill/grading.json +0 -34
  210. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/with_skill/outputs/docs_after/adr/001-db.md +0 -12
  211. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/with_skill/outputs/docs_after/adr/002-cache-strategy.md +0 -11
  212. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/with_skill/outputs/docs_after/adr/index.md +0 -3
  213. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/with_skill/outputs/docs_after/design/data-model.md +0 -14
  214. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/with_skill/outputs/docs_after/design/index.md +0 -3
  215. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/with_skill/outputs/docs_after/index.md +0 -10
  216. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/with_skill/outputs/docs_after/log.md +0 -7
  217. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/with_skill/outputs/docs_after/operation/deploy-old.md +0 -12
  218. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/with_skill/outputs/docs_after/operation/deploy.md +0 -12
  219. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/with_skill/outputs/docs_after/operation/index.md +0 -4
  220. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/with_skill/outputs/docs_after/reference/OKF/345/260/216/345/205/245/343/202/254/343/202/244/343/203/211_V0.2.md +0 -965
  221. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/with_skill/outputs/report.md +0 -61
  222. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/without_skill/grading.json +0 -34
  223. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/without_skill/outputs/docs_after/adr/001-db.md +0 -12
  224. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/without_skill/outputs/docs_after/adr/002-cache-strategy.md +0 -11
  225. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/without_skill/outputs/docs_after/adr/index.md +0 -3
  226. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/without_skill/outputs/docs_after/design/data-model.md +0 -13
  227. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/without_skill/outputs/docs_after/design/index.md +0 -3
  228. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/without_skill/outputs/docs_after/index.md +0 -10
  229. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/without_skill/outputs/docs_after/log.md +0 -7
  230. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/without_skill/outputs/docs_after/operation/deploy-old.md +0 -12
  231. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/without_skill/outputs/docs_after/operation/deploy.md +0 -12
  232. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/without_skill/outputs/docs_after/operation/index.md +0 -4
  233. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/without_skill/outputs/docs_after/reference/OKF/345/260/216/345/205/245/343/202/254/343/202/244/343/203/211_V0.2.md +0 -965
  234. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/without_skill/outputs/report.md +0 -18
  235. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/eval_metadata.json +0 -13
  236. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/with_skill/grading.json +0 -34
  237. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/with_skill/outputs/docs_after/adr/001-db.md +0 -12
  238. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/with_skill/outputs/docs_after/adr/002-cache-strategy.md +0 -11
  239. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/with_skill/outputs/docs_after/adr/index.md +0 -3
  240. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/with_skill/outputs/docs_after/design/data-model.md +0 -12
  241. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/with_skill/outputs/docs_after/design/index.md +0 -3
  242. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/with_skill/outputs/docs_after/index.md +0 -10
  243. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/with_skill/outputs/docs_after/log.md +0 -7
  244. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/with_skill/outputs/docs_after/operation/deploy-old.md +0 -13
  245. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/with_skill/outputs/docs_after/operation/deploy.md +0 -12
  246. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/with_skill/outputs/docs_after/operation/index.md +0 -7
  247. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/with_skill/outputs/docs_after/reference/OKF/345/260/216/345/205/245/343/202/254/343/202/244/343/203/211_V0.2.md +0 -965
  248. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/with_skill/outputs/report.md +0 -83
  249. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/without_skill/grading.json +0 -34
  250. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/without_skill/outputs/docs_after/adr/001-db.md +0 -12
  251. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/without_skill/outputs/docs_after/adr/002-cache-strategy.md +0 -11
  252. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/without_skill/outputs/docs_after/adr/index.md +0 -3
  253. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/without_skill/outputs/docs_after/design/data-model.md +0 -12
  254. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/without_skill/outputs/docs_after/design/index.md +0 -3
  255. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/without_skill/outputs/docs_after/index.md +0 -10
  256. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/without_skill/outputs/docs_after/log.md +0 -7
  257. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/without_skill/outputs/docs_after/operation/deploy-old.md +0 -14
  258. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/without_skill/outputs/docs_after/operation/deploy.md +0 -12
  259. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/without_skill/outputs/docs_after/operation/index.md +0 -4
  260. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/without_skill/outputs/docs_after/reference/OKF/345/260/216/345/205/245/343/202/254/343/202/244/343/203/211_V0.2.md +0 -965
  261. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/without_skill/outputs/report.md +0 -15
  262. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/review.html +0 -1325
  263. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/benchmark.json +0 -20
  264. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/benchmark.md +0 -13
  265. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-1-migrate-docs/eval_metadata.json +0 -15
  266. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-1-migrate-docs/with_skill/grading.json +0 -44
  267. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-1-migrate-docs/with_skill/outputs/docs_after/adr/index.md +0 -10
  268. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-1-migrate-docs/with_skill/outputs/docs_after/index.md +0 -15
  269. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-1-migrate-docs/with_skill/outputs/docs_after/log.md +0 -5
  270. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-1-migrate-docs/with_skill/outputs/docs_after/reference/OKF/345/260/216/345/205/245/343/202/254/343/202/244/343/203/211_V0.2.md +0 -966
  271. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-1-migrate-docs/with_skill/outputs/docs_after/reference/index.md +0 -6
  272. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-1-migrate-docs/with_skill/outputs/docs_after/reference//343/202/210/343/201/204/343/202/275/343/203/225/343/203/210/343/202/246/343/202/247/343/202/242/343/201/250/343/201/257.md +0 -261
  273. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-1-migrate-docs/with_skill/outputs/docs_after/reference//343/203/252/343/203/252/343/203/274/343/202/271/343/202/254/343/202/244/343/203/211.md +0 -480
  274. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-1-migrate-docs/with_skill/outputs/docs_after/reference//347/222/260/345/242/203/345/244/211/346/225/260/347/256/241/347/220/206/343/202/254/343/202/244/343/203/211.md +0 -681
  275. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-1-migrate-docs/with_skill/outputs/report.md +0 -85
  276. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-1-migrate-docs/without_skill/grading.json +0 -44
  277. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-1-migrate-docs/without_skill/outputs/docs_after/adr/index.md +0 -8
  278. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-1-migrate-docs/without_skill/outputs/docs_after/index.md +0 -11
  279. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-1-migrate-docs/without_skill/outputs/docs_after/log.md +0 -7
  280. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-1-migrate-docs/without_skill/outputs/docs_after/reference/OKF/345/260/216/345/205/245/343/202/254/343/202/244/343/203/211_V0.2.md +0 -964
  281. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-1-migrate-docs/without_skill/outputs/docs_after/reference/index.md +0 -9
  282. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-1-migrate-docs/without_skill/outputs/docs_after/reference//343/202/210/343/201/204/343/202/275/343/203/225/343/203/210/343/202/246/343/202/247/343/202/242/343/201/250/343/201/257.md +0 -250
  283. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-1-migrate-docs/without_skill/outputs/docs_after/reference//343/203/252/343/203/252/343/203/274/343/202/271/343/202/254/343/202/244/343/203/211.md +0 -469
  284. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-1-migrate-docs/without_skill/outputs/docs_after/reference//347/222/260/345/242/203/345/244/211/346/225/260/347/256/241/347/220/206/343/202/254/343/202/244/343/203/211.md +0 -677
  285. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-1-migrate-docs/without_skill/outputs/report.md +0 -49
  286. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-2-upgrade-v01-to-v02/eval_metadata.json +0 -13
  287. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-2-upgrade-v01-to-v02/with_skill/grading.json +0 -34
  288. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-2-upgrade-v01-to-v02/with_skill/outputs/knowledge_after/index.md +0 -7
  289. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-2-upgrade-v01-to-v02/with_skill/outputs/knowledge_after/log.md +0 -7
  290. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-2-upgrade-v01-to-v02/with_skill/outputs/knowledge_after/metrics/churn.md +0 -9
  291. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-2-upgrade-v01-to-v02/with_skill/outputs/knowledge_after/metrics/income-statement.md +0 -15
  292. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-2-upgrade-v01-to-v02/with_skill/outputs/report.md +0 -147
  293. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/review.html +0 -1325
@@ -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. **ドキュメント**: コマンドリファレンスを作成・更新