@k2works/claude-code-booster 4.15.0 → 5.0.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 (758) hide show
  1. package/README.md +19 -0
  2. package/lib/assets/.claude/skills/apply-okf/SKILL.md +88 -0
  3. package/lib/assets/.claude/skills/apply-okf/evals/evals.json +8 -0
  4. package/lib/assets/.claude/skills/apply-okf/scripts/__pycache__/okf_apply.cpython-314.pyc +0 -0
  5. package/lib/assets/.claude/skills/apply-okf/scripts/okf_apply.py +397 -0
  6. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/benchmark.json +20 -0
  7. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/benchmark.md +13 -0
  8. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/eval_metadata.json +14 -0
  9. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/with_skill/grading.json +39 -0
  10. 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
  11. 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
  12. 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
  13. 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
  14. 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
  15. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/with_skill/outputs/docs_after/index.md +10 -0
  16. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/with_skill/outputs/docs_after/log.md +7 -0
  17. 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
  18. 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
  19. 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
  20. 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
  21. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/with_skill/outputs/report.md +76 -0
  22. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/without_skill/grading.json +39 -0
  23. 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
  24. 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
  25. 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
  26. 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
  27. 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
  28. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/without_skill/outputs/docs_after/index.md +10 -0
  29. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/without_skill/outputs/docs_after/log.md +7 -0
  30. 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
  31. 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
  32. 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
  33. 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
  34. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-1-register-new-adr/without_skill/outputs/report.md +22 -0
  35. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/eval_metadata.json +13 -0
  36. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/with_skill/grading.json +34 -0
  37. 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
  38. 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
  39. 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
  40. 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
  41. 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
  42. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/with_skill/outputs/docs_after/index.md +10 -0
  43. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/with_skill/outputs/docs_after/log.md +7 -0
  44. 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
  45. 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
  46. 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
  47. 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
  48. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/with_skill/outputs/report.md +61 -0
  49. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/without_skill/grading.json +34 -0
  50. 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
  51. 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
  52. 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
  53. 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
  54. 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
  55. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/without_skill/outputs/docs_after/index.md +10 -0
  56. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/without_skill/outputs/docs_after/log.md +7 -0
  57. 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
  58. 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
  59. 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
  60. 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
  61. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-2-verify-reviewed-doc/without_skill/outputs/report.md +18 -0
  62. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/eval_metadata.json +13 -0
  63. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/with_skill/grading.json +34 -0
  64. 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
  65. 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
  66. 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
  67. 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
  68. 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
  69. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/with_skill/outputs/docs_after/index.md +10 -0
  70. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/with_skill/outputs/docs_after/log.md +7 -0
  71. 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
  72. 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
  73. 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
  74. 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
  75. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/with_skill/outputs/report.md +83 -0
  76. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/without_skill/grading.json +34 -0
  77. 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
  78. 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
  79. 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
  80. 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
  81. 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
  82. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/without_skill/outputs/docs_after/index.md +10 -0
  83. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/without_skill/outputs/docs_after/log.md +7 -0
  84. 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
  85. 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
  86. 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
  87. 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
  88. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/eval-3-deprecate-replaced-doc/without_skill/outputs/report.md +15 -0
  89. package/lib/assets/.claude/skills/apply-okf-workspace/iteration-1/review.html +1325 -0
  90. package/lib/assets/.claude/skills/closing-iteration/SKILL.md +16 -0
  91. package/lib/assets/.claude/skills/creating-adr/SKILL.md +4 -0
  92. package/lib/assets/.claude/skills/creating-journal/SKILL.md +12 -1
  93. package/lib/assets/.claude/skills/creating-manual/SKILL.md +199 -199
  94. package/lib/assets/.claude/skills/migrating-okf/SKILL.md +149 -0
  95. package/lib/assets/.claude/skills/migrating-okf/evals/evals.json +23 -0
  96. package/lib/assets/.claude/skills/migrating-okf/scripts/__pycache__/okf_check.cpython-314.pyc +0 -0
  97. package/lib/assets/.claude/skills/migrating-okf/scripts/okf_check.py +468 -0
  98. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/benchmark.json +20 -0
  99. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/benchmark.md +13 -0
  100. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-1-migrate-docs/eval_metadata.json +15 -0
  101. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-1-migrate-docs/with_skill/grading.json +44 -0
  102. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-1-migrate-docs/with_skill/outputs/docs_after/adr/index.md +10 -0
  103. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-1-migrate-docs/with_skill/outputs/docs_after/index.md +15 -0
  104. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-1-migrate-docs/with_skill/outputs/docs_after/log.md +5 -0
  105. 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
  106. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-1-migrate-docs/with_skill/outputs/docs_after/reference/index.md +6 -0
  107. 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
  108. 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
  109. 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
  110. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-1-migrate-docs/with_skill/outputs/report.md +85 -0
  111. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-1-migrate-docs/without_skill/grading.json +44 -0
  112. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-1-migrate-docs/without_skill/outputs/docs_after/adr/index.md +8 -0
  113. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-1-migrate-docs/without_skill/outputs/docs_after/index.md +11 -0
  114. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-1-migrate-docs/without_skill/outputs/docs_after/log.md +7 -0
  115. 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
  116. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-1-migrate-docs/without_skill/outputs/docs_after/reference/index.md +9 -0
  117. 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
  118. 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
  119. 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
  120. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-1-migrate-docs/without_skill/outputs/report.md +49 -0
  121. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-2-upgrade-v01-to-v02/eval_metadata.json +13 -0
  122. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-2-upgrade-v01-to-v02/with_skill/grading.json +34 -0
  123. 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
  124. 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
  125. 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
  126. 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
  127. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/eval-2-upgrade-v01-to-v02/with_skill/outputs/report.md +147 -0
  128. package/lib/assets/.claude/skills/migrating-okf-workspace/iteration-1/review.html +1325 -0
  129. package/lib/assets/.claude/skills/opening-iteration/SKILL.md +15 -0
  130. package/lib/assets/.claude/skills/orchestrating-analysis/SKILL.md +4 -1
  131. package/lib/assets/.claude/skills/orchestrating-development/SKILL.md +2 -0
  132. package/lib/assets/.claude/skills/orchestrating-operation/SKILL.md +3 -1
  133. package/lib/assets/.claude/skills/orchestrating-project/SKILL.md +4 -1
  134. package/lib/assets/.claude/skills/planning-releases/SKILL.md +2 -0
  135. package/lib/assets/.env.example +9 -0
  136. package/lib/assets/AGENTS.md +8 -0
  137. package/lib/assets/CLAUDE.md +218 -201
  138. package/lib/assets/docs/article/functional-desgin-ppp/all/01-immutability-and-data-transformation.md +9 -0
  139. package/lib/assets/docs/article/functional-desgin-ppp/all/02-function-composition.md +9 -0
  140. package/lib/assets/docs/article/functional-desgin-ppp/all/03-polymorphism.md +9 -0
  141. package/lib/assets/docs/article/functional-desgin-ppp/all/04-data-validation.md +9 -0
  142. package/lib/assets/docs/article/functional-desgin-ppp/all/05-property-based-testing.md +9 -0
  143. package/lib/assets/docs/article/functional-desgin-ppp/all/06-tdd-and-functional.md +9 -0
  144. package/lib/assets/docs/article/functional-desgin-ppp/all/07-composite-pattern.md +9 -0
  145. package/lib/assets/docs/article/functional-desgin-ppp/all/08-decorator-pattern.md +10 -1
  146. package/lib/assets/docs/article/functional-desgin-ppp/all/09-adapter-pattern.md +9 -0
  147. package/lib/assets/docs/article/functional-desgin-ppp/all/10-strategy-pattern.md +9 -0
  148. package/lib/assets/docs/article/functional-desgin-ppp/all/11-command-pattern.md +9 -0
  149. package/lib/assets/docs/article/functional-desgin-ppp/all/12-visitor-pattern.md +9 -0
  150. package/lib/assets/docs/article/functional-desgin-ppp/all/13-abstract-factory-pattern.md +9 -0
  151. package/lib/assets/docs/article/functional-desgin-ppp/all/14-abstract-server-pattern.md +9 -0
  152. package/lib/assets/docs/article/functional-desgin-ppp/all/15-gossiping-bus-drivers.md +9 -0
  153. package/lib/assets/docs/article/functional-desgin-ppp/all/16-payroll-system.md +9 -0
  154. package/lib/assets/docs/article/functional-desgin-ppp/all/17-video-rental-system.md +9 -0
  155. package/lib/assets/docs/article/functional-desgin-ppp/all/18-concurrency-system.md +9 -0
  156. package/lib/assets/docs/article/functional-desgin-ppp/all/19-wa-tor-simulation.md +10 -1
  157. package/lib/assets/docs/article/functional-desgin-ppp/all/20-pattern-interactions.md +9 -0
  158. package/lib/assets/docs/article/functional-desgin-ppp/all/21-best-practices.md +9 -0
  159. package/lib/assets/docs/article/functional-desgin-ppp/all/22-oo-to-fp-migration.md +9 -0
  160. package/lib/assets/docs/article/functional-desgin-ppp/clojure/01-immutability-and-data-transformation.md +9 -0
  161. package/lib/assets/docs/article/functional-desgin-ppp/clojure/02-function-composition.md +9 -0
  162. package/lib/assets/docs/article/functional-desgin-ppp/clojure/03-polymorphism.md +9 -0
  163. package/lib/assets/docs/article/functional-desgin-ppp/clojure/04-clojure-spec.md +9 -0
  164. package/lib/assets/docs/article/functional-desgin-ppp/clojure/05-property-based-testing.md +9 -0
  165. package/lib/assets/docs/article/functional-desgin-ppp/clojure/06-tdd-in-functional.md +9 -0
  166. package/lib/assets/docs/article/functional-desgin-ppp/clojure/07-composite-pattern.md +9 -0
  167. package/lib/assets/docs/article/functional-desgin-ppp/clojure/08-decorator-pattern.md +9 -0
  168. package/lib/assets/docs/article/functional-desgin-ppp/clojure/09-adapter-pattern.md +9 -0
  169. package/lib/assets/docs/article/functional-desgin-ppp/clojure/10-strategy-pattern.md +9 -0
  170. package/lib/assets/docs/article/functional-desgin-ppp/clojure/11-command-pattern.md +9 -0
  171. package/lib/assets/docs/article/functional-desgin-ppp/clojure/12-visitor-pattern.md +9 -0
  172. package/lib/assets/docs/article/functional-desgin-ppp/clojure/13-abstract-factory-pattern.md +9 -0
  173. package/lib/assets/docs/article/functional-desgin-ppp/clojure/14-abstract-server-pattern.md +9 -0
  174. package/lib/assets/docs/article/functional-desgin-ppp/clojure/15-gossiping-bus-drivers.md +9 -0
  175. package/lib/assets/docs/article/functional-desgin-ppp/clojure/16-payroll-system.md +9 -0
  176. package/lib/assets/docs/article/functional-desgin-ppp/clojure/17-video-rental-system.md +9 -0
  177. package/lib/assets/docs/article/functional-desgin-ppp/clojure/18-concurrency-system.md +9 -0
  178. package/lib/assets/docs/article/functional-desgin-ppp/clojure/19-wator-simulation.md +9 -0
  179. package/lib/assets/docs/article/functional-desgin-ppp/clojure/20-pattern-interactions.md +9 -0
  180. package/lib/assets/docs/article/functional-desgin-ppp/clojure/21-best-practices.md +9 -0
  181. package/lib/assets/docs/article/functional-desgin-ppp/clojure/22-oo-to-fp-migration.md +9 -0
  182. package/lib/assets/docs/article/functional-desgin-ppp/clojure/index.md +3 -3
  183. package/lib/assets/docs/article/functional-desgin-ppp/elixir/01-immutability-and-data-transformation.md +9 -0
  184. package/lib/assets/docs/article/functional-desgin-ppp/elixir/02-function-composition.md +9 -0
  185. package/lib/assets/docs/article/functional-desgin-ppp/elixir/03-polymorphism.md +9 -0
  186. package/lib/assets/docs/article/functional-desgin-ppp/elixir/04-data-validation.md +9 -0
  187. package/lib/assets/docs/article/functional-desgin-ppp/elixir/05-property-based-testing.md +9 -0
  188. package/lib/assets/docs/article/functional-desgin-ppp/elixir/06-tdd-and-fp.md +9 -0
  189. package/lib/assets/docs/article/functional-desgin-ppp/elixir/07-effects-and-pure-functions.md +9 -0
  190. package/lib/assets/docs/article/functional-desgin-ppp/elixir/08-error-handling-strategies.md +9 -0
  191. package/lib/assets/docs/article/functional-desgin-ppp/elixir/09-io-and-external-systems.md +9 -0
  192. package/lib/assets/docs/article/functional-desgin-ppp/elixir/10-concurrency-patterns.md +9 -0
  193. package/lib/assets/docs/article/functional-desgin-ppp/elixir/11-command-pattern.md +9 -0
  194. package/lib/assets/docs/article/functional-desgin-ppp/elixir/12-visitor-pattern.md +9 -0
  195. package/lib/assets/docs/article/functional-desgin-ppp/elixir/13-abstract-factory-pattern.md +9 -0
  196. package/lib/assets/docs/article/functional-desgin-ppp/elixir/14-abstract-server-pattern.md +9 -0
  197. package/lib/assets/docs/article/functional-desgin-ppp/elixir/15-gossiping-bus-drivers.md +9 -0
  198. package/lib/assets/docs/article/functional-desgin-ppp/elixir/16-payroll-system.md +9 -0
  199. package/lib/assets/docs/article/functional-desgin-ppp/elixir/17-video-rental-system.md +9 -0
  200. package/lib/assets/docs/article/functional-desgin-ppp/elixir/18-concurrency-system.md +9 -0
  201. package/lib/assets/docs/article/functional-desgin-ppp/elixir/19-wator-simulation.md +9 -0
  202. package/lib/assets/docs/article/functional-desgin-ppp/elixir/20-pattern-interactions.md +9 -0
  203. package/lib/assets/docs/article/functional-desgin-ppp/elixir/21-best-practices.md +9 -0
  204. package/lib/assets/docs/article/functional-desgin-ppp/elixir/22-oo-to-fp-migration.md +9 -0
  205. package/lib/assets/docs/article/functional-desgin-ppp/elixir/index.md +22 -22
  206. package/lib/assets/docs/article/functional-desgin-ppp/fsharp/01-immutability-and-data-transformation.md +9 -0
  207. package/lib/assets/docs/article/functional-desgin-ppp/fsharp/02-function-composition.md +9 -0
  208. package/lib/assets/docs/article/functional-desgin-ppp/fsharp/03-polymorphism.md +9 -0
  209. package/lib/assets/docs/article/functional-desgin-ppp/fsharp/04-data-validation.md +9 -0
  210. package/lib/assets/docs/article/functional-desgin-ppp/fsharp/05-property-based-testing.md +9 -0
  211. package/lib/assets/docs/article/functional-desgin-ppp/fsharp/06-tdd-functional.md +9 -0
  212. package/lib/assets/docs/article/functional-desgin-ppp/fsharp/07-composite-pattern.md +9 -0
  213. package/lib/assets/docs/article/functional-desgin-ppp/fsharp/08-decorator-pattern.md +9 -0
  214. package/lib/assets/docs/article/functional-desgin-ppp/fsharp/09-adapter-pattern.md +9 -0
  215. package/lib/assets/docs/article/functional-desgin-ppp/fsharp/10-strategy-pattern.md +9 -0
  216. package/lib/assets/docs/article/functional-desgin-ppp/fsharp/11-command-pattern.md +9 -0
  217. package/lib/assets/docs/article/functional-desgin-ppp/fsharp/12-visitor-pattern.md +9 -0
  218. package/lib/assets/docs/article/functional-desgin-ppp/fsharp/13-abstract-factory-pattern.md +9 -0
  219. package/lib/assets/docs/article/functional-desgin-ppp/fsharp/14-abstract-server-pattern.md +9 -0
  220. package/lib/assets/docs/article/functional-desgin-ppp/fsharp/15-gossiping-bus-drivers.md +9 -0
  221. package/lib/assets/docs/article/functional-desgin-ppp/fsharp/16-payroll-system.md +9 -0
  222. package/lib/assets/docs/article/functional-desgin-ppp/fsharp/17-video-rental-system.md +9 -0
  223. package/lib/assets/docs/article/functional-desgin-ppp/fsharp/18-concurrency-system.md +9 -0
  224. package/lib/assets/docs/article/functional-desgin-ppp/fsharp/19-wator-simulation.md +9 -0
  225. package/lib/assets/docs/article/functional-desgin-ppp/fsharp/20-pattern-interactions.md +9 -0
  226. package/lib/assets/docs/article/functional-desgin-ppp/fsharp/21-best-practices.md +9 -0
  227. package/lib/assets/docs/article/functional-desgin-ppp/fsharp/22-oo-to-fp-migration.md +9 -0
  228. package/lib/assets/docs/article/functional-desgin-ppp/haskell/01-immutability-and-data-transformation.md +9 -0
  229. package/lib/assets/docs/article/functional-desgin-ppp/haskell/02-function-composition.md +9 -0
  230. package/lib/assets/docs/article/functional-desgin-ppp/haskell/03-polymorphism.md +9 -0
  231. package/lib/assets/docs/article/functional-desgin-ppp/haskell/04-data-validation.md +9 -0
  232. package/lib/assets/docs/article/functional-desgin-ppp/haskell/05-property-based-testing.md +9 -0
  233. package/lib/assets/docs/article/functional-desgin-ppp/haskell/06-tdd-functional.md +9 -0
  234. package/lib/assets/docs/article/functional-desgin-ppp/haskell/07-composite-pattern.md +9 -0
  235. package/lib/assets/docs/article/functional-desgin-ppp/haskell/08-decorator-pattern.md +9 -0
  236. package/lib/assets/docs/article/functional-desgin-ppp/haskell/09-adapter-pattern.md +9 -0
  237. package/lib/assets/docs/article/functional-desgin-ppp/haskell/10-strategy-pattern.md +9 -0
  238. package/lib/assets/docs/article/functional-desgin-ppp/haskell/11-command-pattern.md +9 -0
  239. package/lib/assets/docs/article/functional-desgin-ppp/haskell/12-visitor-pattern.md +9 -0
  240. package/lib/assets/docs/article/functional-desgin-ppp/haskell/13-abstract-factory-pattern.md +9 -0
  241. package/lib/assets/docs/article/functional-desgin-ppp/haskell/14-abstract-server-pattern.md +9 -0
  242. package/lib/assets/docs/article/functional-desgin-ppp/haskell/15-gossiping-bus-drivers.md +9 -0
  243. package/lib/assets/docs/article/functional-desgin-ppp/haskell/16-payroll-system.md +9 -0
  244. package/lib/assets/docs/article/functional-desgin-ppp/haskell/17-video-rental-system.md +9 -0
  245. package/lib/assets/docs/article/functional-desgin-ppp/haskell/18-concurrency-system.md +9 -0
  246. package/lib/assets/docs/article/functional-desgin-ppp/haskell/19-wator-simulation.md +9 -0
  247. package/lib/assets/docs/article/functional-desgin-ppp/haskell/20-pattern-interactions.md +9 -0
  248. package/lib/assets/docs/article/functional-desgin-ppp/haskell/21-best-practices.md +9 -0
  249. package/lib/assets/docs/article/functional-desgin-ppp/haskell/22-oo-to-fp-migration.md +9 -0
  250. package/lib/assets/docs/article/functional-desgin-ppp/rust/01-immutability-and-data-transformation.md +9 -0
  251. package/lib/assets/docs/article/functional-desgin-ppp/rust/02-function-composition.md +9 -0
  252. package/lib/assets/docs/article/functional-desgin-ppp/rust/03-polymorphism.md +9 -0
  253. package/lib/assets/docs/article/functional-desgin-ppp/rust/04-data-validation.md +9 -0
  254. package/lib/assets/docs/article/functional-desgin-ppp/rust/05-property-based-testing.md +9 -0
  255. package/lib/assets/docs/article/functional-desgin-ppp/rust/06-tdd-and-functional.md +9 -0
  256. package/lib/assets/docs/article/functional-desgin-ppp/rust/07-composite-pattern.md +9 -0
  257. package/lib/assets/docs/article/functional-desgin-ppp/rust/08-decorator-pattern.md +9 -0
  258. package/lib/assets/docs/article/functional-desgin-ppp/rust/09-adapter-pattern.md +9 -0
  259. package/lib/assets/docs/article/functional-desgin-ppp/rust/10-strategy-pattern.md +9 -0
  260. package/lib/assets/docs/article/functional-desgin-ppp/rust/11-command-pattern.md +9 -0
  261. package/lib/assets/docs/article/functional-desgin-ppp/rust/12-visitor-pattern.md +9 -0
  262. package/lib/assets/docs/article/functional-desgin-ppp/rust/13-abstract-factory-pattern.md +9 -0
  263. package/lib/assets/docs/article/functional-desgin-ppp/rust/14-abstract-server-pattern.md +9 -0
  264. package/lib/assets/docs/article/functional-desgin-ppp/rust/15-gossiping-bus-drivers.md +9 -0
  265. package/lib/assets/docs/article/functional-desgin-ppp/rust/16-payroll-system.md +9 -0
  266. package/lib/assets/docs/article/functional-desgin-ppp/rust/17-video-rental-system.md +9 -0
  267. package/lib/assets/docs/article/functional-desgin-ppp/rust/18-concurrency-system.md +9 -0
  268. package/lib/assets/docs/article/functional-desgin-ppp/rust/19-wator-simulation.md +9 -0
  269. package/lib/assets/docs/article/functional-desgin-ppp/rust/20-pattern-interactions.md +9 -0
  270. package/lib/assets/docs/article/functional-desgin-ppp/rust/21-best-practices.md +9 -0
  271. package/lib/assets/docs/article/functional-desgin-ppp/rust/22-oo-to-fp-migration.md +9 -0
  272. package/lib/assets/docs/article/functional-desgin-ppp/scala/01-immutability-and-data-transformation.md +9 -0
  273. package/lib/assets/docs/article/functional-desgin-ppp/scala/02-function-composition.md +9 -0
  274. package/lib/assets/docs/article/functional-desgin-ppp/scala/03-polymorphism.md +9 -0
  275. package/lib/assets/docs/article/functional-desgin-ppp/scala/04-data-validation.md +9 -0
  276. package/lib/assets/docs/article/functional-desgin-ppp/scala/05-property-based-testing.md +9 -0
  277. package/lib/assets/docs/article/functional-desgin-ppp/scala/06-tdd-functional.md +9 -0
  278. package/lib/assets/docs/article/functional-desgin-ppp/scala/07-composite-pattern.md +9 -0
  279. package/lib/assets/docs/article/functional-desgin-ppp/scala/08-decorator-pattern.md +9 -0
  280. package/lib/assets/docs/article/functional-desgin-ppp/scala/09-adapter-pattern.md +9 -0
  281. package/lib/assets/docs/article/functional-desgin-ppp/scala/10-strategy-pattern.md +9 -0
  282. package/lib/assets/docs/article/functional-desgin-ppp/scala/11-command-pattern.md +9 -0
  283. package/lib/assets/docs/article/functional-desgin-ppp/scala/12-visitor-pattern.md +9 -0
  284. package/lib/assets/docs/article/functional-desgin-ppp/scala/13-abstract-factory-pattern.md +9 -0
  285. package/lib/assets/docs/article/functional-desgin-ppp/scala/14-abstract-server-pattern.md +9 -0
  286. package/lib/assets/docs/article/functional-desgin-ppp/scala/15-gossiping-bus-drivers.md +9 -0
  287. package/lib/assets/docs/article/functional-desgin-ppp/scala/16-payroll-system.md +9 -0
  288. package/lib/assets/docs/article/functional-desgin-ppp/scala/17-video-rental-system.md +9 -0
  289. package/lib/assets/docs/article/functional-desgin-ppp/scala/18-concurrency-system.md +9 -0
  290. package/lib/assets/docs/article/functional-desgin-ppp/scala/19-wator-simulation.md +9 -0
  291. package/lib/assets/docs/article/functional-desgin-ppp/scala/20-pattern-interactions.md +9 -0
  292. package/lib/assets/docs/article/functional-desgin-ppp/scala/21-best-practices.md +9 -0
  293. package/lib/assets/docs/article/functional-desgin-ppp/scala/22-oo-to-fp-migration.md +9 -0
  294. package/lib/assets/docs/article/getting-start-docker-kubernetes/01-container-and-docker-basics.md +341 -332
  295. package/lib/assets/docs/article/getting-start-docker-kubernetes/02-container-deployment.md +785 -776
  296. package/lib/assets/docs/article/getting-start-docker-kubernetes/03-practical-container-build-deploy.md +466 -457
  297. package/lib/assets/docs/article/getting-start-docker-kubernetes/04-multi-container-application.md +878 -869
  298. package/lib/assets/docs/article/getting-start-docker-kubernetes/05-kubernetes-introduction.md +585 -576
  299. package/lib/assets/docs/article/getting-start-docker-kubernetes/06-kubernetes-deploy-cluster.md +620 -611
  300. package/lib/assets/docs/article/getting-start-docker-kubernetes/07-kubernetes-advanced.md +621 -612
  301. package/lib/assets/docs/article/getting-start-docker-kubernetes/08-kubernetes-packaging.md +518 -509
  302. package/lib/assets/docs/article/getting-start-docker-kubernetes/09-container-operations.md +546 -537
  303. package/lib/assets/docs/article/getting-start-docker-kubernetes/10-optimal-container-image.md +640 -631
  304. package/lib/assets/docs/article/getting-start-docker-kubernetes/11-continuous-delivery.md +607 -598
  305. package/lib/assets/docs/article/getting-start-docker-kubernetes/12-container-use-cases.md +463 -454
  306. package/lib/assets/docs/article/getting-start-docker-kubernetes/13-case-monolith-compose-vs-kustomize.md +346 -337
  307. package/lib/assets/docs/article/getting-start-docker-kubernetes/14-case-event-driven-kustomize-vs-helm.md +324 -315
  308. package/lib/assets/docs/article/getting-start-docker-kubernetes/15-case-escqrs-axon-kustomize-vs-helm.md +297 -288
  309. package/lib/assets/docs/article/getting-start-docker-kubernetes/16-case-escqrs-kafka-kustomize-vs-helm.md +256 -247
  310. package/lib/assets/docs/article/getting-start-docker-kubernetes/17-case-comparison-summary.md +141 -132
  311. package/lib/assets/docs/article/getting-start-docker-kubernetes/18-case-load-testing.md +303 -294
  312. package/lib/assets/docs/article/getting-start-docker-kubernetes/appendix-a-dev-tools-setup.md +274 -265
  313. package/lib/assets/docs/article/getting-start-docker-kubernetes/appendix-b-orchestration-environments.md +530 -521
  314. package/lib/assets/docs/article/getting-start-docker-kubernetes/appendix-c-tips.md +519 -510
  315. package/lib/assets/docs/article/getting-start-docker-kubernetes/outline.md +220 -211
  316. package/lib/assets/docs/article/getting-start-tdd/clojure/01-todo-list-and-first-test.md +9 -0
  317. package/lib/assets/docs/article/getting-start-tdd/clojure/02-fake-it-and-triangulation.md +9 -0
  318. package/lib/assets/docs/article/getting-start-tdd/clojure/03-obvious-implementation-and-refactoring.md +9 -0
  319. package/lib/assets/docs/article/getting-start-tdd/clojure/04-version-control-and-conventional-commits.md +9 -0
  320. package/lib/assets/docs/article/getting-start-tdd/clojure/05-package-management-and-static-analysis.md +9 -0
  321. package/lib/assets/docs/article/getting-start-tdd/clojure/06-task-runner-and-ci-cd.md +9 -0
  322. package/lib/assets/docs/article/getting-start-tdd/clojure/07-protocols-and-records.md +9 -0
  323. package/lib/assets/docs/article/getting-start-tdd/clojure/08-multimethods-and-design-patterns.md +9 -0
  324. package/lib/assets/docs/article/getting-start-tdd/clojure/09-namespaces-and-module-design.md +9 -0
  325. package/lib/assets/docs/article/getting-start-tdd/clojure/10-higher-order-functions-and-composition.md +9 -0
  326. package/lib/assets/docs/article/getting-start-tdd/clojure/11-persistent-data-and-pipeline.md +9 -0
  327. package/lib/assets/docs/article/getting-start-tdd/clojure/12-error-handling-and-spec.md +9 -0
  328. package/lib/assets/docs/article/getting-start-tdd/csharp/chapter01.md +9 -0
  329. package/lib/assets/docs/article/getting-start-tdd/csharp/chapter02.md +9 -0
  330. package/lib/assets/docs/article/getting-start-tdd/csharp/chapter03.md +9 -0
  331. package/lib/assets/docs/article/getting-start-tdd/csharp/chapter04.md +9 -0
  332. package/lib/assets/docs/article/getting-start-tdd/csharp/chapter05.md +9 -0
  333. package/lib/assets/docs/article/getting-start-tdd/csharp/chapter06.md +9 -0
  334. package/lib/assets/docs/article/getting-start-tdd/csharp/chapter07.md +9 -0
  335. package/lib/assets/docs/article/getting-start-tdd/csharp/chapter08.md +9 -0
  336. package/lib/assets/docs/article/getting-start-tdd/csharp/chapter09.md +9 -0
  337. package/lib/assets/docs/article/getting-start-tdd/csharp/chapter10.md +9 -0
  338. package/lib/assets/docs/article/getting-start-tdd/csharp/chapter11.md +9 -0
  339. package/lib/assets/docs/article/getting-start-tdd/csharp/chapter12.md +9 -0
  340. package/lib/assets/docs/article/getting-start-tdd/elixir/01-todo-list-and-first-test.md +9 -0
  341. package/lib/assets/docs/article/getting-start-tdd/elixir/02-fake-it-and-triangulation.md +9 -0
  342. package/lib/assets/docs/article/getting-start-tdd/elixir/03-obvious-implementation-and-refactoring.md +9 -0
  343. package/lib/assets/docs/article/getting-start-tdd/elixir/04-version-control-and-conventional-commits.md +9 -0
  344. package/lib/assets/docs/article/getting-start-tdd/elixir/05-package-management-and-static-analysis.md +9 -0
  345. package/lib/assets/docs/article/getting-start-tdd/elixir/06-task-runner-and-ci-cd.md +9 -0
  346. package/lib/assets/docs/article/getting-start-tdd/elixir/07-structs-and-protocols.md +9 -0
  347. package/lib/assets/docs/article/getting-start-tdd/elixir/08-pattern-matching-and-guards.md +9 -0
  348. package/lib/assets/docs/article/getting-start-tdd/elixir/09-module-design-and-behaviours.md +9 -0
  349. package/lib/assets/docs/article/getting-start-tdd/elixir/10-higher-order-functions-and-pipeline.md +9 -0
  350. package/lib/assets/docs/article/getting-start-tdd/elixir/11-stream-and-lazy-evaluation.md +9 -0
  351. package/lib/assets/docs/article/getting-start-tdd/elixir/12-error-handling-and-with.md +9 -0
  352. package/lib/assets/docs/article/getting-start-tdd/elixir/index.md +2 -2
  353. package/lib/assets/docs/article/getting-start-tdd/fsharp/chapter01.md +9 -0
  354. package/lib/assets/docs/article/getting-start-tdd/fsharp/chapter02.md +9 -0
  355. package/lib/assets/docs/article/getting-start-tdd/fsharp/chapter03.md +9 -0
  356. package/lib/assets/docs/article/getting-start-tdd/fsharp/chapter04.md +9 -0
  357. package/lib/assets/docs/article/getting-start-tdd/fsharp/chapter05.md +9 -0
  358. package/lib/assets/docs/article/getting-start-tdd/fsharp/chapter06.md +9 -0
  359. package/lib/assets/docs/article/getting-start-tdd/fsharp/chapter07.md +9 -0
  360. package/lib/assets/docs/article/getting-start-tdd/fsharp/chapter08.md +9 -0
  361. package/lib/assets/docs/article/getting-start-tdd/fsharp/chapter09.md +9 -0
  362. package/lib/assets/docs/article/getting-start-tdd/fsharp/chapter10.md +9 -0
  363. package/lib/assets/docs/article/getting-start-tdd/fsharp/chapter11.md +9 -0
  364. package/lib/assets/docs/article/getting-start-tdd/fsharp/chapter12.md +9 -0
  365. package/lib/assets/docs/article/getting-start-tdd/go/01-todo-list-and-first-test.md +9 -0
  366. package/lib/assets/docs/article/getting-start-tdd/go/02-fake-it-and-triangulation.md +9 -0
  367. package/lib/assets/docs/article/getting-start-tdd/go/03-obvious-implementation-and-refactoring.md +9 -0
  368. package/lib/assets/docs/article/getting-start-tdd/go/04-version-control-and-conventional-commits.md +9 -0
  369. package/lib/assets/docs/article/getting-start-tdd/go/05-package-management-and-static-analysis.md +9 -0
  370. package/lib/assets/docs/article/getting-start-tdd/go/06-task-runner-and-ci-cd.md +9 -0
  371. package/lib/assets/docs/article/getting-start-tdd/go/07-encapsulation-and-polymorphism.md +8 -0
  372. package/lib/assets/docs/article/getting-start-tdd/go/08-design-patterns.md +8 -0
  373. package/lib/assets/docs/article/getting-start-tdd/go/09-solid-principles-and-module-design.md +8 -0
  374. package/lib/assets/docs/article/getting-start-tdd/go/10-higher-order-functions-and-composition.md +8 -0
  375. package/lib/assets/docs/article/getting-start-tdd/go/11-immutable-data-and-pipeline.md +8 -0
  376. package/lib/assets/docs/article/getting-start-tdd/go/12-error-handling-and-type-safety.md +8 -0
  377. package/lib/assets/docs/article/getting-start-tdd/haskell/01-todo-list-and-first-test.md +9 -0
  378. package/lib/assets/docs/article/getting-start-tdd/haskell/02-fake-it-and-triangulation.md +9 -0
  379. package/lib/assets/docs/article/getting-start-tdd/haskell/03-obvious-implementation-and-refactoring.md +9 -0
  380. package/lib/assets/docs/article/getting-start-tdd/haskell/04-version-control-and-conventional-commits.md +9 -0
  381. package/lib/assets/docs/article/getting-start-tdd/haskell/05-package-management-and-static-analysis.md +9 -0
  382. package/lib/assets/docs/article/getting-start-tdd/haskell/06-task-runner-and-ci-cd.md +9 -0
  383. package/lib/assets/docs/article/getting-start-tdd/haskell/07-algebraic-data-types-and-type-classes.md +9 -0
  384. package/lib/assets/docs/article/getting-start-tdd/haskell/08-pattern-matching-and-guards.md +9 -0
  385. package/lib/assets/docs/article/getting-start-tdd/haskell/09-module-design-and-smart-constructors.md +9 -0
  386. package/lib/assets/docs/article/getting-start-tdd/haskell/10-higher-order-functions-and-currying.md +9 -0
  387. package/lib/assets/docs/article/getting-start-tdd/haskell/11-function-composition-and-point-free.md +9 -0
  388. package/lib/assets/docs/article/getting-start-tdd/haskell/12-monad-and-error-handling.md +9 -0
  389. package/lib/assets/docs/article/getting-start-tdd/integration/01-language-overview.md +9 -0
  390. package/lib/assets/docs/article/getting-start-tdd/integration/02-test-framework-comparison.md +9 -0
  391. package/lib/assets/docs/article/getting-start-tdd/integration/03-tdd-pattern-comparison.md +9 -0
  392. package/lib/assets/docs/article/getting-start-tdd/integration/04-type-system-comparison.md +9 -0
  393. package/lib/assets/docs/article/getting-start-tdd/integration/05-dev-environment-comparison.md +9 -0
  394. package/lib/assets/docs/article/getting-start-tdd/integration/06-learning-roadmap.md +9 -0
  395. package/lib/assets/docs/article/getting-start-tdd/java/01-todo-list-and-first-test.md +9 -0
  396. package/lib/assets/docs/article/getting-start-tdd/java/02-fake-it-and-triangulation.md +9 -0
  397. package/lib/assets/docs/article/getting-start-tdd/java/03-obvious-implementation-and-refactoring.md +9 -0
  398. package/lib/assets/docs/article/getting-start-tdd/java/04-version-control-and-conventional-commits.md +9 -0
  399. package/lib/assets/docs/article/getting-start-tdd/java/05-package-management-and-static-analysis.md +9 -0
  400. package/lib/assets/docs/article/getting-start-tdd/java/06-task-runner-and-ci-cd.md +9 -0
  401. package/lib/assets/docs/article/getting-start-tdd/java/07-encapsulation-and-polymorphism.md +9 -0
  402. package/lib/assets/docs/article/getting-start-tdd/java/08-design-patterns.md +9 -0
  403. package/lib/assets/docs/article/getting-start-tdd/java/09-solid-principles-and-module-design.md +9 -0
  404. package/lib/assets/docs/article/getting-start-tdd/java/10-higher-order-functions-and-composition.md +9 -0
  405. package/lib/assets/docs/article/getting-start-tdd/java/11-immutable-data-and-pipeline.md +9 -0
  406. package/lib/assets/docs/article/getting-start-tdd/java/12-error-handling-and-type-safety.md +9 -0
  407. package/lib/assets/docs/article/getting-start-tdd/node/01-todo-list-and-first-test.md +9 -0
  408. package/lib/assets/docs/article/getting-start-tdd/node/02-fake-it-and-triangulation.md +9 -0
  409. package/lib/assets/docs/article/getting-start-tdd/node/03-obvious-implementation-and-refactoring.md +9 -0
  410. package/lib/assets/docs/article/getting-start-tdd/node/04-version-control-and-conventional-commits.md +9 -0
  411. package/lib/assets/docs/article/getting-start-tdd/node/05-package-management-and-static-analysis.md +9 -0
  412. package/lib/assets/docs/article/getting-start-tdd/node/06-task-runner-and-ci-cd.md +9 -0
  413. package/lib/assets/docs/article/getting-start-tdd/node/07-encapsulation-and-polymorphism.md +9 -0
  414. package/lib/assets/docs/article/getting-start-tdd/node/08-design-patterns.md +9 -0
  415. package/lib/assets/docs/article/getting-start-tdd/node/09-solid-principles-and-module-design.md +9 -0
  416. package/lib/assets/docs/article/getting-start-tdd/node/10-higher-order-functions-and-composition.md +9 -0
  417. package/lib/assets/docs/article/getting-start-tdd/node/11-immutable-data-and-pipeline.md +9 -0
  418. package/lib/assets/docs/article/getting-start-tdd/node/12-error-handling-and-type-safety.md +9 -0
  419. package/lib/assets/docs/article/getting-start-tdd/php/01-todo-list-and-first-test.md +9 -0
  420. package/lib/assets/docs/article/getting-start-tdd/php/02-fake-it-and-triangulation.md +9 -0
  421. package/lib/assets/docs/article/getting-start-tdd/php/03-obvious-implementation-and-refactoring.md +9 -0
  422. package/lib/assets/docs/article/getting-start-tdd/php/04-version-control-and-conventional-commits.md +9 -0
  423. package/lib/assets/docs/article/getting-start-tdd/php/05-package-management-and-static-analysis.md +9 -0
  424. package/lib/assets/docs/article/getting-start-tdd/php/06-task-runner-and-ci-cd.md +9 -0
  425. package/lib/assets/docs/article/getting-start-tdd/php/07-encapsulation-and-polymorphism.md +8 -0
  426. package/lib/assets/docs/article/getting-start-tdd/php/08-design-patterns.md +8 -0
  427. package/lib/assets/docs/article/getting-start-tdd/php/09-solid-principles-and-module-design.md +8 -0
  428. package/lib/assets/docs/article/getting-start-tdd/php/10-higher-order-functions-and-composition.md +8 -0
  429. package/lib/assets/docs/article/getting-start-tdd/php/11-immutable-data-and-pipeline.md +8 -0
  430. package/lib/assets/docs/article/getting-start-tdd/php/12-error-handling-and-type-safety.md +8 -0
  431. package/lib/assets/docs/article/getting-start-tdd/python/01-todo-list-and-first-test.md +9 -0
  432. package/lib/assets/docs/article/getting-start-tdd/python/02-fake-it-and-triangulation.md +9 -0
  433. package/lib/assets/docs/article/getting-start-tdd/python/03-obvious-implementation-and-refactoring.md +9 -0
  434. package/lib/assets/docs/article/getting-start-tdd/python/04-version-control-and-conventional-commits.md +9 -0
  435. package/lib/assets/docs/article/getting-start-tdd/python/05-package-management-and-static-analysis.md +9 -0
  436. package/lib/assets/docs/article/getting-start-tdd/python/06-task-runner-and-ci-cd.md +9 -0
  437. package/lib/assets/docs/article/getting-start-tdd/python/07-encapsulation-and-polymorphism.md +9 -0
  438. package/lib/assets/docs/article/getting-start-tdd/python/08-design-patterns.md +9 -0
  439. package/lib/assets/docs/article/getting-start-tdd/python/09-solid-principles-and-module-design.md +9 -0
  440. package/lib/assets/docs/article/getting-start-tdd/python/10-higher-order-functions-and-composition.md +9 -0
  441. package/lib/assets/docs/article/getting-start-tdd/python/11-immutable-data-and-pipeline.md +9 -0
  442. package/lib/assets/docs/article/getting-start-tdd/python/12-error-handling-and-type-safety.md +9 -0
  443. package/lib/assets/docs/article/getting-start-tdd/ruby/01-todo-list-and-first-test.md +9 -0
  444. package/lib/assets/docs/article/getting-start-tdd/ruby/02-fake-it-and-triangulation.md +9 -0
  445. package/lib/assets/docs/article/getting-start-tdd/ruby/03-obvious-implementation-and-refactoring.md +9 -0
  446. package/lib/assets/docs/article/getting-start-tdd/ruby/04-version-control-and-conventional-commits.md +9 -0
  447. package/lib/assets/docs/article/getting-start-tdd/ruby/05-package-management-and-static-analysis.md +9 -0
  448. package/lib/assets/docs/article/getting-start-tdd/ruby/06-task-runner-and-ci-cd.md +9 -0
  449. package/lib/assets/docs/article/getting-start-tdd/ruby/07-encapsulation-and-polymorphism.md +9 -0
  450. package/lib/assets/docs/article/getting-start-tdd/ruby/08-design-patterns.md +9 -0
  451. package/lib/assets/docs/article/getting-start-tdd/ruby/09-solid-principles-and-module-design.md +9 -0
  452. package/lib/assets/docs/article/getting-start-tdd/ruby/10-higher-order-functions-and-composition.md +9 -0
  453. package/lib/assets/docs/article/getting-start-tdd/ruby/11-immutable-data-and-pipeline.md +9 -0
  454. package/lib/assets/docs/article/getting-start-tdd/ruby/12-error-handling-and-type-safety.md +9 -0
  455. package/lib/assets/docs/article/getting-start-tdd/rust/01-todo-list-and-first-test.md +9 -0
  456. package/lib/assets/docs/article/getting-start-tdd/rust/02-fake-it-and-triangulation.md +9 -0
  457. package/lib/assets/docs/article/getting-start-tdd/rust/03-obvious-implementation-and-refactoring.md +9 -0
  458. package/lib/assets/docs/article/getting-start-tdd/rust/04-version-control-and-conventional-commits.md +9 -0
  459. package/lib/assets/docs/article/getting-start-tdd/rust/05-package-management-and-static-analysis.md +9 -0
  460. package/lib/assets/docs/article/getting-start-tdd/rust/06-task-runner-and-ci-cd.md +9 -0
  461. package/lib/assets/docs/article/getting-start-tdd/rust/07-encapsulation-and-polymorphism.md +9 -0
  462. package/lib/assets/docs/article/getting-start-tdd/rust/08-design-patterns.md +9 -0
  463. package/lib/assets/docs/article/getting-start-tdd/rust/09-solid-principles-and-module-design.md +9 -0
  464. package/lib/assets/docs/article/getting-start-tdd/rust/10-higher-order-functions-and-composition.md +9 -0
  465. package/lib/assets/docs/article/getting-start-tdd/rust/11-immutable-data-and-pipeline.md +9 -0
  466. package/lib/assets/docs/article/getting-start-tdd/rust/12-error-handling-and-type-safety.md +9 -0
  467. package/lib/assets/docs/article/getting-start-tdd/scala/01-todo-list-and-first-test.md +9 -0
  468. package/lib/assets/docs/article/getting-start-tdd/scala/02-fake-it-and-triangulation.md +9 -0
  469. package/lib/assets/docs/article/getting-start-tdd/scala/03-obvious-implementation-and-refactoring.md +9 -0
  470. package/lib/assets/docs/article/getting-start-tdd/scala/04-version-control-and-conventional-commits.md +9 -0
  471. package/lib/assets/docs/article/getting-start-tdd/scala/05-package-management-and-static-analysis.md +9 -0
  472. package/lib/assets/docs/article/getting-start-tdd/scala/06-task-runner-and-ci-cd.md +9 -0
  473. package/lib/assets/docs/article/getting-start-tdd/scala/07-case-classes-and-traits.md +9 -0
  474. package/lib/assets/docs/article/getting-start-tdd/scala/08-pattern-matching-and-sealed-traits.md +9 -0
  475. package/lib/assets/docs/article/getting-start-tdd/scala/09-packages-and-module-design.md +9 -0
  476. package/lib/assets/docs/article/getting-start-tdd/scala/10-higher-order-functions-and-composition.md +9 -0
  477. package/lib/assets/docs/article/getting-start-tdd/scala/11-collections-and-lazy-evaluation.md +9 -0
  478. package/lib/assets/docs/article/getting-start-tdd/scala/12-error-handling-and-type-safety.md +9 -0
  479. package/lib/assets/docs/article/grokking-concurrency/all/index.md +0 -1
  480. package/lib/assets/docs/article/grokking-concurrency/all/part-1-ch02-sequential.md +9 -0
  481. package/lib/assets/docs/article/grokking-concurrency/all/part-2-ch04-05-threads.md +9 -0
  482. package/lib/assets/docs/article/grokking-concurrency/all/part-3-ch06-multitasking.md +9 -0
  483. package/lib/assets/docs/article/grokking-concurrency/all/part-4-ch07-parallel-patterns.md +9 -0
  484. package/lib/assets/docs/article/grokking-concurrency/all/part-5-ch08-09-synchronization.md +9 -0
  485. package/lib/assets/docs/article/grokking-concurrency/all/part-6-ch10-11-nonblocking-io.md +9 -0
  486. package/lib/assets/docs/article/grokking-concurrency/all/part-7-ch12-async.md +9 -0
  487. package/lib/assets/docs/article/grokking-concurrency/all/part-8-ch13-mapreduce.md +9 -0
  488. package/lib/assets/docs/article/grokking-concurrency/clojure/index.md +0 -10
  489. package/lib/assets/docs/article/grokking-concurrency/clojure/part-1.md +6 -7
  490. package/lib/assets/docs/article/grokking-concurrency/clojure/part-2.md +6 -7
  491. package/lib/assets/docs/article/grokking-concurrency/clojure/part-3.md +6 -7
  492. package/lib/assets/docs/article/grokking-concurrency/clojure/part-4.md +6 -7
  493. package/lib/assets/docs/article/grokking-concurrency/clojure/part-5.md +6 -7
  494. package/lib/assets/docs/article/grokking-concurrency/clojure/part-6.md +6 -7
  495. package/lib/assets/docs/article/grokking-concurrency/clojure/part-7.md +6 -7
  496. package/lib/assets/docs/article/grokking-concurrency/clojure/part-8.md +6 -7
  497. package/lib/assets/docs/article/grokking-concurrency/csharp/index.md +0 -10
  498. package/lib/assets/docs/article/grokking-concurrency/csharp/part-1.md +6 -7
  499. package/lib/assets/docs/article/grokking-concurrency/csharp/part-2.md +6 -7
  500. package/lib/assets/docs/article/grokking-concurrency/csharp/part-3.md +6 -7
  501. package/lib/assets/docs/article/grokking-concurrency/csharp/part-4.md +6 -7
  502. package/lib/assets/docs/article/grokking-concurrency/csharp/part-5.md +6 -7
  503. package/lib/assets/docs/article/grokking-concurrency/csharp/part-6.md +6 -7
  504. package/lib/assets/docs/article/grokking-concurrency/csharp/part-7.md +6 -7
  505. package/lib/assets/docs/article/grokking-concurrency/csharp/part-8.md +6 -7
  506. package/lib/assets/docs/article/grokking-concurrency/fsharp/index.md +0 -10
  507. package/lib/assets/docs/article/grokking-concurrency/fsharp/part-1.md +6 -7
  508. package/lib/assets/docs/article/grokking-concurrency/fsharp/part-2.md +6 -7
  509. package/lib/assets/docs/article/grokking-concurrency/fsharp/part-3.md +6 -7
  510. package/lib/assets/docs/article/grokking-concurrency/fsharp/part-4.md +6 -7
  511. package/lib/assets/docs/article/grokking-concurrency/fsharp/part-5.md +6 -7
  512. package/lib/assets/docs/article/grokking-concurrency/fsharp/part-6.md +6 -7
  513. package/lib/assets/docs/article/grokking-concurrency/fsharp/part-7.md +6 -7
  514. package/lib/assets/docs/article/grokking-concurrency/fsharp/part-8.md +6 -7
  515. package/lib/assets/docs/article/grokking-concurrency/haskell/index.md +0 -10
  516. package/lib/assets/docs/article/grokking-concurrency/haskell/part-1.md +6 -7
  517. package/lib/assets/docs/article/grokking-concurrency/haskell/part-2.md +6 -7
  518. package/lib/assets/docs/article/grokking-concurrency/haskell/part-3.md +6 -7
  519. package/lib/assets/docs/article/grokking-concurrency/haskell/part-4.md +6 -7
  520. package/lib/assets/docs/article/grokking-concurrency/haskell/part-5.md +6 -7
  521. package/lib/assets/docs/article/grokking-concurrency/haskell/part-6.md +6 -7
  522. package/lib/assets/docs/article/grokking-concurrency/haskell/part-7.md +6 -7
  523. package/lib/assets/docs/article/grokking-concurrency/haskell/part-8.md +6 -7
  524. package/lib/assets/docs/article/grokking-concurrency/java/index.md +0 -10
  525. package/lib/assets/docs/article/grokking-concurrency/java/part-1.md +8 -9
  526. package/lib/assets/docs/article/grokking-concurrency/java/part-2.md +8 -9
  527. package/lib/assets/docs/article/grokking-concurrency/java/part-3.md +7 -8
  528. package/lib/assets/docs/article/grokking-concurrency/java/part-4.md +8 -9
  529. package/lib/assets/docs/article/grokking-concurrency/java/part-5.md +7 -8
  530. package/lib/assets/docs/article/grokking-concurrency/java/part-6.md +6 -7
  531. package/lib/assets/docs/article/grokking-concurrency/java/part-7.md +6 -7
  532. package/lib/assets/docs/article/grokking-concurrency/java/part-8.md +6 -7
  533. package/lib/assets/docs/article/grokking-concurrency/python/index.md +0 -10
  534. package/lib/assets/docs/article/grokking-concurrency/python/part-1.md +7 -8
  535. package/lib/assets/docs/article/grokking-concurrency/python/part-2.md +10 -11
  536. package/lib/assets/docs/article/grokking-concurrency/python/part-3.md +8 -9
  537. package/lib/assets/docs/article/grokking-concurrency/python/part-4.md +8 -9
  538. package/lib/assets/docs/article/grokking-concurrency/python/part-5.md +9 -10
  539. package/lib/assets/docs/article/grokking-concurrency/python/part-6.md +9 -10
  540. package/lib/assets/docs/article/grokking-concurrency/python/part-7.md +9 -10
  541. package/lib/assets/docs/article/grokking-concurrency/python/part-8.md +8 -9
  542. package/lib/assets/docs/article/grokking-concurrency/rust/index.md +0 -10
  543. package/lib/assets/docs/article/grokking-concurrency/rust/part-1.md +6 -7
  544. package/lib/assets/docs/article/grokking-concurrency/rust/part-2.md +6 -7
  545. package/lib/assets/docs/article/grokking-concurrency/rust/part-3.md +6 -7
  546. package/lib/assets/docs/article/grokking-concurrency/rust/part-4.md +6 -7
  547. package/lib/assets/docs/article/grokking-concurrency/rust/part-5.md +6 -7
  548. package/lib/assets/docs/article/grokking-concurrency/rust/part-6.md +6 -7
  549. package/lib/assets/docs/article/grokking-concurrency/rust/part-7.md +6 -7
  550. package/lib/assets/docs/article/grokking-concurrency/rust/part-8.md +6 -7
  551. package/lib/assets/docs/article/grokking-concurrency/scala/index.md +0 -10
  552. package/lib/assets/docs/article/grokking-concurrency/scala/part-1.md +6 -7
  553. package/lib/assets/docs/article/grokking-concurrency/scala/part-2.md +6 -7
  554. package/lib/assets/docs/article/grokking-concurrency/scala/part-3.md +6 -7
  555. package/lib/assets/docs/article/grokking-concurrency/scala/part-4.md +6 -7
  556. package/lib/assets/docs/article/grokking-concurrency/scala/part-5.md +6 -7
  557. package/lib/assets/docs/article/grokking-concurrency/scala/part-6.md +6 -7
  558. package/lib/assets/docs/article/grokking-concurrency/scala/part-7.md +6 -7
  559. package/lib/assets/docs/article/grokking-concurrency/scala/part-8.md +6 -7
  560. package/lib/assets/docs/article/grokkingfp/all/part-1-ch01-fp-introduction.md +9 -0
  561. package/lib/assets/docs/article/grokkingfp/all/part-1-ch02-pure-functions.md +9 -0
  562. package/lib/assets/docs/article/grokkingfp/all/part-2-ch03-immutable-data.md +9 -0
  563. package/lib/assets/docs/article/grokkingfp/all/part-2-ch04-higher-order-functions.md +9 -0
  564. package/lib/assets/docs/article/grokkingfp/all/part-2-ch05-flatmap.md +9 -0
  565. package/lib/assets/docs/article/grokkingfp/all/part-3-ch06-option.md +9 -0
  566. package/lib/assets/docs/article/grokkingfp/all/part-3-ch07-either-adt.md +9 -0
  567. package/lib/assets/docs/article/grokkingfp/all/part-4-ch08-io-monad.md +9 -0
  568. package/lib/assets/docs/article/grokkingfp/all/part-4-ch09-streams.md +9 -0
  569. package/lib/assets/docs/article/grokkingfp/all/part-5-ch10-concurrency.md +9 -0
  570. package/lib/assets/docs/article/grokkingfp/all/part-6-ch11-application.md +9 -0
  571. package/lib/assets/docs/article/grokkingfp/all/part-6-ch12-testing.md +9 -0
  572. package/lib/assets/docs/article/grokkingfp/all/writing-plan.md +9 -0
  573. package/lib/assets/docs/article/grokkingfp/clojure/part-1.md +9 -0
  574. package/lib/assets/docs/article/grokkingfp/clojure/part-2.md +9 -0
  575. package/lib/assets/docs/article/grokkingfp/clojure/part-3.md +9 -0
  576. package/lib/assets/docs/article/grokkingfp/clojure/part-4.md +9 -0
  577. package/lib/assets/docs/article/grokkingfp/clojure/part-5.md +9 -0
  578. package/lib/assets/docs/article/grokkingfp/clojure/part-6.md +9 -0
  579. package/lib/assets/docs/article/grokkingfp/csharp/part-1.md +9 -0
  580. package/lib/assets/docs/article/grokkingfp/csharp/part-2.md +9 -0
  581. package/lib/assets/docs/article/grokkingfp/csharp/part-3.md +9 -0
  582. package/lib/assets/docs/article/grokkingfp/csharp/part-4.md +9 -0
  583. package/lib/assets/docs/article/grokkingfp/csharp/part-5.md +9 -0
  584. package/lib/assets/docs/article/grokkingfp/csharp/part-6.md +9 -0
  585. package/lib/assets/docs/article/grokkingfp/elixir/part-1.md +9 -0
  586. package/lib/assets/docs/article/grokkingfp/elixir/part-2.md +9 -0
  587. package/lib/assets/docs/article/grokkingfp/elixir/part-3.md +9 -0
  588. package/lib/assets/docs/article/grokkingfp/elixir/part-4.md +9 -0
  589. package/lib/assets/docs/article/grokkingfp/elixir/part-5.md +9 -0
  590. package/lib/assets/docs/article/grokkingfp/elixir/part-6.md +9 -0
  591. package/lib/assets/docs/article/grokkingfp/fsharp/part-1.md +9 -0
  592. package/lib/assets/docs/article/grokkingfp/fsharp/part-2.md +9 -0
  593. package/lib/assets/docs/article/grokkingfp/fsharp/part-3.md +9 -0
  594. package/lib/assets/docs/article/grokkingfp/fsharp/part-4.md +9 -0
  595. package/lib/assets/docs/article/grokkingfp/fsharp/part-5.md +9 -0
  596. package/lib/assets/docs/article/grokkingfp/fsharp/part-6.md +9 -0
  597. package/lib/assets/docs/article/grokkingfp/haskell/part-1.md +9 -0
  598. package/lib/assets/docs/article/grokkingfp/haskell/part-2.md +9 -0
  599. package/lib/assets/docs/article/grokkingfp/haskell/part-3.md +9 -0
  600. package/lib/assets/docs/article/grokkingfp/haskell/part-4.md +9 -0
  601. package/lib/assets/docs/article/grokkingfp/haskell/part-5.md +9 -0
  602. package/lib/assets/docs/article/grokkingfp/haskell/part-6.md +9 -0
  603. package/lib/assets/docs/article/grokkingfp/java/part-1.md +9 -0
  604. package/lib/assets/docs/article/grokkingfp/java/part-2.md +9 -0
  605. package/lib/assets/docs/article/grokkingfp/java/part-3.md +9 -0
  606. package/lib/assets/docs/article/grokkingfp/java/part-4.md +9 -0
  607. package/lib/assets/docs/article/grokkingfp/java/part-5.md +9 -0
  608. package/lib/assets/docs/article/grokkingfp/java/part-6.md +9 -0
  609. package/lib/assets/docs/article/grokkingfp/python/part-1.md +9 -0
  610. package/lib/assets/docs/article/grokkingfp/python/part-2.md +9 -0
  611. package/lib/assets/docs/article/grokkingfp/python/part-3.md +9 -0
  612. package/lib/assets/docs/article/grokkingfp/python/part-4.md +9 -0
  613. package/lib/assets/docs/article/grokkingfp/python/part-5.md +9 -0
  614. package/lib/assets/docs/article/grokkingfp/python/part-6.md +9 -0
  615. package/lib/assets/docs/article/grokkingfp/ruby/part-1.md +9 -0
  616. package/lib/assets/docs/article/grokkingfp/ruby/part-2.md +9 -0
  617. package/lib/assets/docs/article/grokkingfp/ruby/part-3.md +9 -0
  618. package/lib/assets/docs/article/grokkingfp/ruby/part-4.md +9 -0
  619. package/lib/assets/docs/article/grokkingfp/ruby/part-5.md +9 -0
  620. package/lib/assets/docs/article/grokkingfp/ruby/part-6.md +9 -0
  621. package/lib/assets/docs/article/grokkingfp/rust/part-1.md +9 -0
  622. package/lib/assets/docs/article/grokkingfp/rust/part-2.md +9 -0
  623. package/lib/assets/docs/article/grokkingfp/rust/part-3.md +9 -0
  624. package/lib/assets/docs/article/grokkingfp/rust/part-4.md +9 -0
  625. package/lib/assets/docs/article/grokkingfp/rust/part-5.md +9 -0
  626. package/lib/assets/docs/article/grokkingfp/rust/part-6.md +9 -0
  627. package/lib/assets/docs/article/grokkingfp/scala/part-1.md +9 -0
  628. package/lib/assets/docs/article/grokkingfp/scala/part-2.md +9 -0
  629. package/lib/assets/docs/article/grokkingfp/scala/part-3.md +9 -0
  630. package/lib/assets/docs/article/grokkingfp/scala/part-4.md +9 -0
  631. package/lib/assets/docs/article/grokkingfp/scala/part-5.md +9 -0
  632. package/lib/assets/docs/article/grokkingfp/scala/part-6.md +9 -0
  633. package/lib/assets/docs/article/grokkingfp/typescript/part-1.md +9 -0
  634. package/lib/assets/docs/article/grokkingfp/typescript/part-2.md +9 -0
  635. package/lib/assets/docs/article/grokkingfp/typescript/part-3.md +9 -0
  636. package/lib/assets/docs/article/grokkingfp/typescript/part-4.md +9 -0
  637. package/lib/assets/docs/article/grokkingfp/typescript/part-5.md +9 -0
  638. package/lib/assets/docs/article/grokkingfp/typescript/part-6.md +9 -0
  639. package/lib/assets/docs/article/practical-database-design/part1/chapter01.md +9 -0
  640. package/lib/assets/docs/article/practical-database-design/part1/chapter02.md +9 -0
  641. package/lib/assets/docs/article/practical-database-design/part1/chapter03.md +9 -0
  642. package/lib/assets/docs/article/practical-database-design/part2/chapter04.md +9 -0
  643. package/lib/assets/docs/article/practical-database-design/part2/chapter05.md +9 -0
  644. package/lib/assets/docs/article/practical-database-design/part2/chapter06.md +9 -0
  645. package/lib/assets/docs/article/practical-database-design/part2/chapter07.md +9 -0
  646. package/lib/assets/docs/article/practical-database-design/part2/chapter08.md +9 -0
  647. package/lib/assets/docs/article/practical-database-design/part2/chapter09.md +9 -0
  648. package/lib/assets/docs/article/practical-database-design/part2/chapter10.md +9 -0
  649. package/lib/assets/docs/article/practical-database-design/part2/chapter11.md +9 -0
  650. package/lib/assets/docs/article/practical-database-design/part2/chapter12.md +9 -0
  651. package/lib/assets/docs/article/practical-database-design/part2/chapter13.md +9 -0
  652. package/lib/assets/docs/article/practical-database-design/part3/chapter14.md +9 -0
  653. package/lib/assets/docs/article/practical-database-design/part3/chapter15.md +9 -0
  654. package/lib/assets/docs/article/practical-database-design/part3/chapter16.md +9 -0
  655. package/lib/assets/docs/article/practical-database-design/part3/chapter17.md +9 -0
  656. package/lib/assets/docs/article/practical-database-design/part3/chapter18.md +9 -0
  657. package/lib/assets/docs/article/practical-database-design/part3/chapter19.md +9 -0
  658. package/lib/assets/docs/article/practical-database-design/part3/chapter20.md +9 -0
  659. package/lib/assets/docs/article/practical-database-design/part3/chapter21.md +9 -0
  660. package/lib/assets/docs/article/practical-database-design/part3-orm/chapter14-orm.md +9 -0
  661. package/lib/assets/docs/article/practical-database-design/part3-orm/chapter15-orm.md +9 -0
  662. package/lib/assets/docs/article/practical-database-design/part3-orm/chapter16-orm.md +9 -0
  663. package/lib/assets/docs/article/practical-database-design/part3-orm/chapter17-orm.md +9 -0
  664. package/lib/assets/docs/article/practical-database-design/part3-orm/chapter18-orm.md +9 -0
  665. package/lib/assets/docs/article/practical-database-design/part3-orm/chapter19-orm.md +9 -0
  666. package/lib/assets/docs/article/practical-database-design/part3-orm/chapter20-orm.md +9 -0
  667. package/lib/assets/docs/article/practical-database-design/part3-orm/chapter21-orm.md +9 -0
  668. package/lib/assets/docs/article/practical-database-design/part3-orm/chapter22-orm.md +9 -0
  669. package/lib/assets/docs/article/practical-database-design/part4/chapter22.md +9 -0
  670. package/lib/assets/docs/article/practical-database-design/part4/chapter23.md +9 -0
  671. package/lib/assets/docs/article/practical-database-design/part4/chapter24.md +9 -0
  672. package/lib/assets/docs/article/practical-database-design/part4/chapter25.md +9 -0
  673. package/lib/assets/docs/article/practical-database-design/part4/chapter26.md +9 -0
  674. package/lib/assets/docs/article/practical-database-design/part4/chapter27.md +9 -0
  675. package/lib/assets/docs/article/practical-database-design/part4/chapter28.md +9 -0
  676. package/lib/assets/docs/article/practical-database-design/part4/chapter29.md +8 -0
  677. package/lib/assets/docs/article/practical-database-design/part4/chapter30.md +8 -0
  678. package/lib/assets/docs/article/practical-database-design/part4/chapter31.md +8 -0
  679. package/lib/assets/docs/article/practical-database-design/part4/chapter32.md +8 -0
  680. package/lib/assets/docs/article/practical-database-design/part5/chapter33.md +9 -0
  681. package/lib/assets/docs/article/practical-database-design/part5/chapter34.md +9 -0
  682. package/lib/assets/docs/article/practical-database-design/part5/chapter35.md +9 -0
  683. package/lib/assets/docs/article/practical-database-design/part5/chapter36.md +9 -0
  684. package/lib/assets/docs/article/practical-database-design/part5/chapter37.md +9 -0
  685. package/lib/assets/docs/article/practical-database-design/part5/chapter38.md +9 -0
  686. package/lib/assets/docs/article/practical-database-design/part5/chapter39.md +9 -0
  687. package/lib/assets/docs/article/practical-database-design/study/study2-1.md +9 -0
  688. package/lib/assets/docs/article/practical-database-design/study/study2-2.md +9 -0
  689. package/lib/assets/docs/article/practical-database-design/study/study2-3.md +9 -0
  690. package/lib/assets/docs/article/practical-database-design/study/study2-4.md +9 -0
  691. package/lib/assets/docs/article/practical-database-design/study/study2-5.md +9 -0
  692. package/lib/assets/docs/article/practical-database-design/study/study3-1.md +9 -0
  693. package/lib/assets/docs/article/practical-database-design/study/study3-2.md +9 -0
  694. package/lib/assets/docs/article/practical-database-design/study/study3-3.md +9 -0
  695. package/lib/assets/docs/article/practical-database-design/study/study3-4.md +9 -0
  696. package/lib/assets/docs/article/practical-database-design/study/study3-5.md +9 -0
  697. package/lib/assets/docs/article/practical-database-design/study/study4-1.md +9 -0
  698. package/lib/assets/docs/article/practical-database-design/study/study4-2.md +9 -0
  699. package/lib/assets/docs/article/practical-database-design/study/study4-3.md +9 -0
  700. package/lib/assets/docs/article/practical-database-design/study/study4-4.md +9 -0
  701. package/lib/assets/docs/article/practical-database-design/study/study4-5.md +9 -0
  702. package/lib/assets/docs/index.md +4 -0
  703. package/lib/assets/docs/log.md +5 -0
  704. package/lib/assets/docs/operation/index.md +15 -1
  705. 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 +13 -4
  706. 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 +10 -0
  707. 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 +11 -1
  708. 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 -0
  709. 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 +10 -0
  710. 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 +11 -1
  711. package/lib/assets/docs/reference/UI/350/250/255/350/250/210/343/202/254/343/202/244/343/203/211.md +10 -1
  712. 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 -168
  713. package/lib/assets/docs/reference/index.md +54 -53
  714. 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 +7 -8
  715. 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 +10 -1
  716. 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 +10 -1
  717. 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 +6 -7
  718. 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 +10 -1
  719. 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 +10 -1
  720. 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 +10 -1
  721. 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 +10 -1
  722. 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 +9 -0
  723. 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 +10 -1
  724. 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 +9 -0
  725. 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 +7 -8
  726. 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 +9 -0
  727. package/lib/assets/docs/reference//344/274/201/346/245/255/347/265/214/345/226/266/350/253/226.md +10 -1
  728. 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 +10 -0
  729. 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 +9 -0
  730. 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 +10 -1
  731. 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 +9 -0
  732. package/lib/assets/docs/reference//351/201/213/345/226/266/347/256/241/347/220/206.md +10 -1
  733. 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 +9 -0
  734. 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 +10 -1
  735. package/lib/assets/docs/reference//351/226/213/347/231/272/343/202/254/343/202/244/343/203/211.md +9 -0
  736. 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 +10 -1
  737. package/lib/assets/docs/template/ADR.md +9 -0
  738. 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 +9 -0
  739. 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 +9 -0
  740. package/lib/assets/docs/template/README.md +9 -0
  741. 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 +9 -0
  742. 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 +9 -0
  743. 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 +10 -1
  744. 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 +11 -2
  745. 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 +9 -0
  746. 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 +9 -0
  747. 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 +9 -0
  748. 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 -280
  749. package/lib/assets/docs/template//344/272/213/344/276/213/345/210/206/346/236/220.md +9 -0
  750. package/lib/assets/docs/template//344/274/201/346/245/255/345/210/206/346/236/220.md +9 -0
  751. 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 +7 -8
  752. package/lib/assets/docs/template//350/246/201/344/273/266/345/256/232/347/276/251.md +7 -8
  753. package/lib/assets/docs/template//350/250/255/350/250/210.md +10 -1
  754. 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 +9 -0
  755. package/lib/assets/gulpfile.js +4 -2
  756. package/lib/assets/ops/scripts/okf.js +272 -0
  757. package/lib/assets/package.json +2 -0
  758. package/package.json +1 -1
@@ -1,3 +1,12 @@
1
+ ---
2
+ type: Template
3
+ title: "開発環境セットアップ手順書"
4
+ description: "{開発環境サーバー}を開発環境として使用し、{プロジェクト名}を Docker ベースで運用するための環境構築手順を説明します。"
5
+ tags: [template]
6
+ status: stable
7
+ generated: { by: human:kakimomokuri, at: 2026-03-16T05:10:11Z }
8
+ ---
9
+
1
10
  # 開発環境セットアップ手順書
2
11
 
3
12
  ## 概要
@@ -11,7 +11,8 @@ import manualTasks from './ops/scripts/manual.js';
11
11
  import journalTasks from './ops/scripts/journal.js';
12
12
  import vaultTasks from './ops/scripts/vault.js';
13
13
  import sshTasks from './ops/scripts/ssh.js';
14
- import sonarLocalTasks from './ops/scripts/sonar_local.js';
14
+ import sonarLocalTasks from './ops/scripts/sonar_local.js';
15
+ import okfTasks from './ops/scripts/okf.js';
15
16
 
16
17
  // Load gulp tasks from script modules
17
18
  mkdocsTasks(gulp);
@@ -19,7 +20,8 @@ manualTasks(gulp);
19
20
  journalTasks(gulp);
20
21
  vaultTasks(gulp);
21
22
  sshTasks(gulp);
22
- sonarLocalTasks(gulp);
23
+ sonarLocalTasks(gulp);
24
+ okfTasks(gulp);
23
25
 
24
26
  export const spec = gulp.series('mkdocs:serve', 'mkdocs:open');
25
27
 
@@ -0,0 +1,272 @@
1
+ 'use strict';
2
+
3
+ import path from 'path';
4
+ import fs from 'fs';
5
+ import { execSync } from 'child_process';
6
+ import { openUrl } from './shared.js';
7
+
8
+ // ============================================
9
+ // 設定
10
+ // ============================================
11
+
12
+ /** 上流リポジトリ(reference_agent パッケージ: enrich / visualize) */
13
+ const OKF_REPO_URL = 'https://github.com/GoogleCloudPlatform/open-knowledge-format';
14
+
15
+ /** ローカルの検証・アップグレードスクリプト(migrating-okf スキルに同梱) */
16
+ const OKF_CHECK_SCRIPT = path.join('.claude', 'skills', 'migrating-okf', 'scripts', 'okf_check.py');
17
+
18
+ /** 既定の OKF 仕様バージョン */
19
+ const OKF_DEFAULT_VERSION = '0.2';
20
+
21
+ /**
22
+ * バンドルルート(既定 docs/)
23
+ * @returns {string}
24
+ */
25
+ function bundleDir() {
26
+ return process.env.OKF_BUNDLE || 'docs';
27
+ }
28
+
29
+ /**
30
+ * 上流ツールのクローン先(tmp/ は .gitignore 対象)
31
+ * @returns {string}
32
+ */
33
+ function toolDir() {
34
+ return process.env.OKF_TOOL_DIR || path.join('tmp', 'open-knowledge-format');
35
+ }
36
+
37
+ /**
38
+ * visualize の出力先(既定 tmp/okf/viz.html)
39
+ * @returns {string}
40
+ */
41
+ function vizOut() {
42
+ return process.env.OKF_VIZ_OUT || path.join('tmp', 'okf', 'viz.html');
43
+ }
44
+
45
+ /**
46
+ * システムの Python コマンド
47
+ * @returns {string}
48
+ */
49
+ function systemPython() {
50
+ return process.env.OKF_PYTHON || (process.platform === 'win32' ? 'python' : 'python3');
51
+ }
52
+
53
+ /**
54
+ * 上流ツール用 venv の Python 実行ファイル
55
+ * @returns {string}
56
+ */
57
+ function venvPython() {
58
+ const venv = path.join(toolDir(), '.venv');
59
+ return process.platform === 'win32'
60
+ ? path.join(venv, 'Scripts', 'python.exe')
61
+ : path.join(venv, 'bin', 'python');
62
+ }
63
+
64
+ // ============================================
65
+ // ヘルパー関数
66
+ // ============================================
67
+
68
+ /**
69
+ * コマンドを実行し標準出力をそのまま流す
70
+ * @param {string} command - 実行するコマンド
71
+ * @param {Object} [opts] - execSync オプション
72
+ */
73
+ function run(command, opts = {}) {
74
+ console.log(` $ ${command}`);
75
+ execSync(command, { stdio: 'inherit', env: { ...process.env, PYTHONUTF8: '1' }, ...opts });
76
+ }
77
+
78
+ /**
79
+ * 引数を安全にクォートする
80
+ * @param {string} s - 引数
81
+ * @returns {string}
82
+ */
83
+ function q(s) {
84
+ return `"${String(s).replace(/"/g, '\\"')}"`;
85
+ }
86
+
87
+ /**
88
+ * 上流ツールがセットアップ済みか確認し、未セットアップならエラーで終了する
89
+ */
90
+ function requireTool() {
91
+ if (!fs.existsSync(venvPython())) {
92
+ throw new Error(`上流ツールが未セットアップです。先に \`gulp okf:setup\` を実行してください(${toolDir()})`);
93
+ }
94
+ }
95
+
96
+ /**
97
+ * 生成された可視化 HTML の埋め込み JSON を安全化する
98
+ * 上流の generator は json.dumps の結果を <script> にそのまま埋め込むため、
99
+ * 本文に `</script>` を含むコンセプトがあるとスクリプトが途中で終了し、
100
+ * 残りの JSON が生表示(\uXXXX の文字化け)になる。JSON 内の `</` を `<\/` に置換して防ぐ
101
+ * @param {string} htmlPath - 可視化 HTML のパス
102
+ */
103
+ function hardenEmbeddedJson(htmlPath) {
104
+ const lines = fs.readFileSync(htmlPath, 'utf8').split('\n');
105
+ let fixed = 0;
106
+ const out = lines.map((line) => {
107
+ if (!line.startsWith('window.BUNDLE = ') && !line.startsWith('window.BUNDLE_NAME = ')) return line;
108
+ const safe = line.replace(/<\//g, '<\\/');
109
+ if (safe !== line) fixed += 1;
110
+ return safe;
111
+ });
112
+ if (fixed > 0) {
113
+ fs.writeFileSync(htmlPath, out.join('\n'), 'utf8');
114
+ console.log(` 埋め込み JSON の "</" をエスケープしました(${fixed} 行)`);
115
+ }
116
+ }
117
+
118
+ /**
119
+ * バンドルルートの存在を確認する
120
+ * @returns {string} バンドルルート
121
+ */
122
+ function requireBundle() {
123
+ const dir = bundleDir();
124
+ if (!fs.existsSync(dir)) {
125
+ throw new Error(`バンドルが見つかりません: ${dir}(OKF_BUNDLE で変更可)`);
126
+ }
127
+ return dir;
128
+ }
129
+
130
+ // ============================================
131
+ // Gulp タスク
132
+ // ============================================
133
+
134
+ export default function (gulp) {
135
+ /**
136
+ * バンドルの適合性検証(ガイド §11)
137
+ * ERROR があれば非ゼロ終了する
138
+ */
139
+ gulp.task('okf:check', (done) => {
140
+ const dir = requireBundle();
141
+ console.log(`=== OKF 適合性検証: ${dir} ===`);
142
+ run(`${systemPython()} ${q(OKF_CHECK_SCRIPT)} --check ${q(dir)}`);
143
+ done();
144
+ });
145
+
146
+ /**
147
+ * バンドルを指定バージョンの仕様に追従させる(既定 0.2)
148
+ * OKF_VERSION で対象バージョン、OKF_BY で generated.by の既定値、OKF_DRY_RUN=1 で試行のみ
149
+ */
150
+ gulp.task('okf:upgrade', (done) => {
151
+ const dir = requireBundle();
152
+ const version = process.env.OKF_VERSION || OKF_DEFAULT_VERSION;
153
+ const by = process.env.OKF_BY ? ` --by ${q(process.env.OKF_BY)}` : '';
154
+ const dry = process.env.OKF_DRY_RUN === '1' ? ' --dry-run' : '';
155
+ console.log(`=== OKF アップグレード: ${dir} → v${version}${dry ? '(dry-run)' : ''} ===`);
156
+ run(`${systemPython()} ${q(OKF_CHECK_SCRIPT)} --upgrade ${version} ${q(dir)}${by}${dry}`);
157
+ console.log('');
158
+ console.log('次のステップ: log.md に **Upgrade** エントリを追記し、`gulp okf:check` で確認してください。');
159
+ done();
160
+ });
161
+
162
+ /**
163
+ * 上流ツール(reference_agent)をクローンし venv にインストールする
164
+ * 2 回目以降は git pull と再インストールを行う
165
+ */
166
+ gulp.task('okf:setup', (done) => {
167
+ const dir = toolDir();
168
+ console.log('=== OKF 上流ツール セットアップ開始 ===');
169
+ if (fs.existsSync(path.join(dir, '.git'))) {
170
+ console.log('[1/3] 既存クローンを更新...');
171
+ run('git pull --ff-only', { cwd: dir });
172
+ } else {
173
+ console.log(`[1/3] ${OKF_REPO_URL} をクローン...`);
174
+ fs.mkdirSync(path.dirname(dir), { recursive: true });
175
+ run(`git clone --depth 1 ${OKF_REPO_URL} ${q(dir)}`);
176
+ }
177
+ console.log('[2/3] venv を作成...');
178
+ if (!fs.existsSync(venvPython())) {
179
+ run(`${systemPython()} -m venv .venv`, { cwd: dir });
180
+ }
181
+ console.log('[3/3] reference_agent をインストール...');
182
+ run(`${q(venvPython())} -m pip install --quiet --upgrade pip`);
183
+ run(`${q(venvPython())} -m pip install --quiet -e ${q(dir)}`);
184
+ console.log('');
185
+ console.log('=== OKF 上流ツール セットアップ完了 ===');
186
+ console.log(` ツール: ${dir}`);
187
+ console.log(' 次のステップ: gulp okf:viz でバンドルをグラフ表示');
188
+ done();
189
+ });
190
+
191
+ /**
192
+ * バンドルを自己完結 HTML(force-directed graph)に可視化する
193
+ * OKF_VIZ_OUT で出力先、OKF_VIZ_NAME でヘッダー表示名を指定
194
+ */
195
+ gulp.task('okf:viz', (done) => {
196
+ requireTool();
197
+ const dir = requireBundle();
198
+ const out = vizOut();
199
+ const name = process.env.OKF_VIZ_NAME ? ` --name ${q(process.env.OKF_VIZ_NAME)}` : '';
200
+ fs.mkdirSync(path.dirname(out), { recursive: true });
201
+ console.log(`=== OKF 可視化: ${dir} → ${out} ===`);
202
+ run(`${q(venvPython())} -m reference_agent visualize --bundle ${q(dir)} --out ${q(out)}${name}`);
203
+ hardenEmbeddedJson(out);
204
+ done();
205
+ });
206
+
207
+ /**
208
+ * 生成済みの可視化 HTML をブラウザで開く
209
+ */
210
+ gulp.task('okf:viz:open', (done) => {
211
+ const out = vizOut();
212
+ if (!fs.existsSync(out)) {
213
+ throw new Error(`可視化 HTML がありません: ${out}。先に \`gulp okf:viz\` を実行してください`);
214
+ }
215
+ openUrl(path.resolve(out));
216
+ done();
217
+ });
218
+
219
+ /**
220
+ * 参照エージェントで BigQuery データセットからバンドルを生成する
221
+ * 必須: OKF_DATASET(<project>.<dataset>)。任意: OKF_SEED_FILE、OKF_ENRICH_OUT、OKF_NO_WEB=1
222
+ * 認証: gcloud ADC と GEMINI_API_KEY(または Vertex AI 設定)が必要
223
+ */
224
+ gulp.task('okf:enrich', (done) => {
225
+ requireTool();
226
+ const dataset = process.env.OKF_DATASET;
227
+ if (!dataset) {
228
+ throw new Error('OKF_DATASET が未設定です(例: OKF_DATASET=my-project.sales)');
229
+ }
230
+ const out = process.env.OKF_ENRICH_OUT || path.join('tmp', 'okf', 'bundles', dataset.split('.').pop());
231
+ // シードファイルがあれば Web パスを実行、無ければ BigQuery メタデータのみ
232
+ const web = process.env.OKF_SEED_FILE ? ` --web-seed-file ${q(process.env.OKF_SEED_FILE)}` : ' --no-web';
233
+ fs.mkdirSync(out, { recursive: true });
234
+ console.log(`=== OKF バンドル生成: ${dataset} → ${out} ===`);
235
+ run(`${q(venvPython())} -m reference_agent enrich --source bq --dataset ${q(dataset)} --out ${q(out)}${web}`);
236
+ console.log('');
237
+ console.log(`次のステップ: OKF_BUNDLE=${out} gulp okf:check で検証`);
238
+ done();
239
+ });
240
+
241
+ /**
242
+ * ヘルプ
243
+ */
244
+ gulp.task('okf:help', (done) => {
245
+ console.log(`
246
+ OKF(Open Knowledge Format)タスク
247
+
248
+ gulp okf:check バンドルの適合性を検証(ERROR で非ゼロ終了)
249
+ gulp okf:upgrade 仕様バージョンへ追従(既定 v${OKF_DEFAULT_VERSION}。OKF_DRY_RUN=1 で試行)
250
+ gulp okf:setup 上流ツール reference_agent をクローン・インストール
251
+ gulp okf:viz バンドルをグラフ HTML に可視化
252
+ gulp okf:viz:open 可視化 HTML をブラウザで開く
253
+ gulp okf:enrich BigQuery データセットからバンドルを生成(要 GCP 認証)
254
+ gulp okf:help このヘルプ
255
+
256
+ 環境変数(.env)
257
+ OKF_BUNDLE バンドルルート(既定 docs)
258
+ OKF_VERSION okf:upgrade の対象バージョン(既定 ${OKF_DEFAULT_VERSION})
259
+ OKF_BY okf:upgrade で generated.by を推定できない場合の既定アクター
260
+ OKF_TOOL_DIR 上流ツールのクローン先(既定 tmp/open-knowledge-format)
261
+ OKF_PYTHON Python コマンド(既定 ${systemPython()})
262
+ OKF_VIZ_OUT 可視化 HTML の出力先(既定 tmp/okf/viz.html)
263
+ OKF_VIZ_NAME 可視化ヘッダーの表示名
264
+ OKF_DATASET okf:enrich の BigQuery データセット(<project>.<dataset>)
265
+ OKF_SEED_FILE okf:enrich の Web シード URL ファイル(未指定なら --no-web)
266
+ OKF_ENRICH_OUT okf:enrich の出力先(既定 tmp/okf/bundles/<dataset>)
267
+
268
+ 仕様: docs/reference/OKF導入ガイド_V0.2.md / 上流: ${OKF_REPO_URL}
269
+ `);
270
+ done();
271
+ });
272
+ }
@@ -13,6 +13,8 @@
13
13
  "vault:decrypt": "gulp vault:decrypt",
14
14
  "vault:view": "gulp vault:view",
15
15
  "vault:rekey": "gulp vault:rekey",
16
+ "okf:check": "gulp okf:check",
17
+ "okf:viz": "gulp okf:viz",
16
18
  "claude:yolo": "claude --dangerously-skip-permissions",
17
19
  "copilot:yolo": "copilot --allow-all-tools",
18
20
  "codex:yolo": "codex --yolo",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@k2works/claude-code-booster",
3
- "version": "4.15.0",
3
+ "version": "5.0.0",
4
4
  "description": "AI Agent Development Support Tool",
5
5
  "main": "main.js",
6
6
  "bin": {