phasegate 0.16.0 → 0.32.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 (215) hide show
  1. package/README.ja.md +74 -42
  2. package/README.md +69 -9
  3. package/docs/ADR/ADR-013-story-reflection-gate.md +100 -0
  4. package/docs/guide/configuration.md +244 -7
  5. package/package.json +7 -5
  6. package/scripts/harness/adr-foundation/domain/ports/adr-document-parser-port.ts +1 -0
  7. package/scripts/harness/adr-foundation/domain/ports/adr-frontmatter-parser-port.ts +1 -0
  8. package/scripts/harness/adr-foundation/domain/ports/adr-repository-port.ts +1 -0
  9. package/scripts/harness/adr-foundation/domain/value-objects/adr-status.ts +6 -6
  10. package/scripts/harness/agent-integration/application/dto/handle-pre-tool-use-dto.ts +3 -1
  11. package/scripts/harness/agent-integration/application/usecases/handle-pre-tool-use-usecase.ts +108 -2
  12. package/scripts/harness/agent-integration/domain/ports/config-query-port.ts +2 -0
  13. package/scripts/harness/agent-integration/domain/ports/phase-gate-query-port.ts +1 -1
  14. package/scripts/harness/agent-integration/domain/ports/story-reflection-query-port.ts +8 -0
  15. package/scripts/harness/agent-integration/domain/services/bash-write-target-extractor.ts +258 -0
  16. package/scripts/harness/agent-integration/domain/services/hook-to-cli-translator.ts +21 -4
  17. package/scripts/harness/agent-integration/domain/value-objects/protected-file-list.ts +20 -0
  18. package/scripts/harness/agent-integration/domain/value-objects/story-reflection-query-result.ts +63 -0
  19. package/scripts/harness/agent-integration/infrastructure/adapters/file-system-story-reflection-query-adapter.ts +122 -0
  20. package/scripts/harness/agent-integration/infrastructure/adapters/harness-config-config-query-adapter.ts +20 -0
  21. package/scripts/harness/agent-integration/infrastructure/adapters/phase-gate-query-adapter.ts +17 -3
  22. package/scripts/harness/agent-integration/presentation/pre-tool-use-hook.ts +29 -2
  23. package/scripts/harness/biome-ast-engine/domain/services/lint-runner.ts +24 -0
  24. package/scripts/harness/biome-ast-engine/domain/services/rule-definition-registry.ts +1 -1
  25. package/scripts/harness/biome-ast-engine/domain/value-objects/source-module-snapshot.ts +5 -2
  26. package/scripts/harness/biome-ast-engine/infrastructure/adapters/node-workspace-file-adapter.ts +1 -1
  27. package/scripts/harness/biome-ast-engine/infrastructure/adapters/typescript-source-module-analyzer-adapter.ts +1 -1
  28. package/scripts/harness/biome-ast-engine/infrastructure/parsers/unit-comment-parser.ts +12 -7
  29. package/scripts/harness/ci-governance/composition-root.ts +1 -0
  30. package/scripts/harness/config-foundation/application/mappers/phase-config-section-mapper.ts +44 -0
  31. package/scripts/harness/config-foundation/application/usecases/load-resolved-config-use-case.ts +20 -1
  32. package/scripts/harness/config-foundation/domain/harness-config.ts +2 -1
  33. package/scripts/harness/config-foundation/domain/value-objects/phase-dependencies-config.ts +18 -4
  34. package/scripts/harness/config-foundation/infrastructure/schemas/harness-config-v2.schema.json +185 -10
  35. package/scripts/harness/config-foundation/infrastructure/validators/ajv-config-schema-validator.ts +2 -1
  36. package/scripts/harness/harness-api/application/dto/command-dispatch-input.ts +1 -0
  37. package/scripts/harness/harness-api/application/dto/command-dispatch-output.ts +1 -0
  38. package/scripts/harness/harness-api/application/dto/exit-code-decision-input.ts +1 -0
  39. package/scripts/harness/harness-api/application/dto/exit-code-decision-output.ts +1 -0
  40. package/scripts/harness/harness-api/application/dto/harness-api-response-contract.ts +1 -0
  41. package/scripts/harness/harness-api/application/dto/initialize-registry-input.ts +1 -0
  42. package/scripts/harness/harness-api/application/dto/registry-summary-output.ts +1 -0
  43. package/scripts/harness/harness-api/application/dto/status-derivation-input.ts +1 -0
  44. package/scripts/harness/harness-api/application/mappers/harness-api-response-mapper.ts +1 -0
  45. package/scripts/harness/harness-api/application/usecases/decide-exit-code-usecase.ts +1 -0
  46. package/scripts/harness/harness-api/application/usecases/derive-harness-status-usecase.ts +1 -0
  47. package/scripts/harness/harness-api/application/usecases/dispatch-command-usecase.ts +1 -0
  48. package/scripts/harness/harness-api/application/usecases/initialize-command-registry-usecase.ts +1 -0
  49. package/scripts/harness/harness-api/composition-root.ts +1 -0
  50. package/scripts/harness/harness-api/domain/ports/artifact-scanner-port.ts +1 -0
  51. package/scripts/harness/harness-api/domain/ports/biome-lint-port.ts +1 -0
  52. package/scripts/harness/harness-api/domain/ports/config-query-port.ts +1 -0
  53. package/scripts/harness/harness-api/domain/ports/impact-analysis-port.ts +1 -0
  54. package/scripts/harness/harness-api/domain/ports/phase-gate-query-port.ts +1 -0
  55. package/scripts/harness/harness-api/domain/ports/validator-execution-port.ts +1 -0
  56. package/scripts/harness/harness-api/domain/services/command-dispatch-service.ts +1 -0
  57. package/scripts/harness/harness-api/domain/services/command-registry.ts +1 -0
  58. package/scripts/harness/harness-api/domain/services/status-derivation-service.ts +1 -0
  59. package/scripts/harness/harness-api/domain/value-objects/artifact-scan-result.ts +1 -0
  60. package/scripts/harness/harness-api/domain/value-objects/check-ready-result.ts +1 -0
  61. package/scripts/harness/harness-api/domain/value-objects/ci-check-result.ts +1 -0
  62. package/scripts/harness/harness-api/domain/value-objects/cli-command-definition.ts +1 -0
  63. package/scripts/harness/harness-api/domain/value-objects/command-input-spec.ts +1 -0
  64. package/scripts/harness/harness-api/domain/value-objects/drift-report-summary.ts +1 -0
  65. package/scripts/harness/harness-api/domain/value-objects/exit-code-spec.ts +1 -0
  66. package/scripts/harness/harness-api/domain/value-objects/harness-api-response.ts +1 -0
  67. package/scripts/harness/harness-api/domain/value-objects/harness-status-summary.ts +1 -0
  68. package/scripts/harness/harness-api/domain/value-objects/layer-health.ts +1 -0
  69. package/scripts/harness/harness-api/domain/value-objects/phase-info.ts +1 -0
  70. package/scripts/harness/harness-api/index.ts +1 -0
  71. package/scripts/harness/harness-api/infrastructure/adapters/biome-ast-engine-lint-adapter.ts +1 -0
  72. package/scripts/harness/harness-api/infrastructure/adapters/file-system-artifact-scanner-adapter.ts +1 -0
  73. package/scripts/harness/harness-api/infrastructure/adapters/harness-config-query-adapter.ts +1 -0
  74. package/scripts/harness/harness-api/infrastructure/adapters/nyquist-validation-impact-analysis-adapter.ts +1 -0
  75. package/scripts/harness/harness-api/infrastructure/adapters/phase-dependency-model-query-adapter.ts +1 -0
  76. package/scripts/harness/harness-api/infrastructure/adapters/validator-system-execution-adapter.ts +1 -0
  77. package/scripts/harness/harness-api/presentation/dto/cli-output-options.ts +1 -0
  78. package/scripts/harness/harness-api/presentation/formatters/harness-api-json-formatter.ts +1 -0
  79. package/scripts/harness/harness-api/presentation/handlers/check-phase-handler.ts +1 -0
  80. package/scripts/harness/harness-api/presentation/handlers/check-ready-handler.ts +1 -0
  81. package/scripts/harness/harness-api/presentation/handlers/ci-check-handler.ts +1 -0
  82. package/scripts/harness/harness-api/presentation/handlers/complete-check-handler.ts +1 -0
  83. package/scripts/harness/harness-api/presentation/handlers/detect-drift-handler.ts +1 -0
  84. package/scripts/harness/harness-api/presentation/handlers/impact-analysis-handler.ts +1 -0
  85. package/scripts/harness/harness-api/presentation/handlers/lint-handler.ts +1 -0
  86. package/scripts/harness/harness-api/presentation/handlers/status-handler.ts +1 -0
  87. package/scripts/harness/harness-error/infrastructure/adapters/legacy-error-reporter-adapter.ts +7 -1
  88. package/scripts/harness/integrations/pre-commit.ts +1 -0
  89. package/scripts/harness/main.ts +154 -34
  90. package/scripts/harness/phase-dependency-model/application/dto/resolve-gate-result-dto.ts +14 -0
  91. package/scripts/harness/phase-dependency-model/application/services/phase-gate-result-mapper.ts +20 -0
  92. package/scripts/harness/phase-dependency-model/application/usecases/check-story-reflection-usecase.ts +42 -0
  93. package/scripts/harness/phase-dependency-model/application/usecases/resolve-gate-usecase.ts +161 -0
  94. package/scripts/harness/phase-dependency-model/composition-root.ts +57 -1
  95. package/scripts/harness/phase-dependency-model/domain/definitions/{default-phase-dependencies.ts → full-phase-dependencies.ts} +3 -3
  96. package/scripts/harness/phase-dependency-model/domain/definitions/{default-phase-nodes.ts → full-phase-nodes.ts} +1 -1
  97. package/scripts/harness/phase-dependency-model/domain/definitions/full-story-reflection-defaults.ts +28 -0
  98. package/scripts/harness/phase-dependency-model/domain/definitions/minimal-phase-dependencies.ts +32 -0
  99. package/scripts/harness/phase-dependency-model/domain/definitions/minimal-phase-nodes.ts +50 -0
  100. package/scripts/harness/phase-dependency-model/domain/definitions/minimal-story-reflection-defaults.ts +8 -0
  101. package/scripts/harness/phase-dependency-model/domain/definitions/standard-phase-dependencies.ts +39 -0
  102. package/scripts/harness/phase-dependency-model/domain/definitions/standard-phase-nodes.ts +118 -0
  103. package/scripts/harness/phase-dependency-model/domain/definitions/standard-story-reflection-defaults.ts +23 -0
  104. package/scripts/harness/phase-dependency-model/domain/models/phase-structure.ts +95 -23
  105. package/scripts/harness/phase-dependency-model/domain/ports/glob-matcher-port.ts +8 -0
  106. package/scripts/harness/phase-dependency-model/domain/ports/phase-config-provider-port.ts +2 -0
  107. package/scripts/harness/phase-dependency-model/domain/ports/story-annotation-verifier-port.ts +14 -0
  108. package/scripts/harness/phase-dependency-model/domain/ports/story-reflection-file-system-port.ts +16 -0
  109. package/scripts/harness/phase-dependency-model/domain/services/gate-graph.ts +223 -0
  110. package/scripts/harness/phase-dependency-model/domain/services/story-reflection-checker.ts +66 -0
  111. package/scripts/harness/phase-dependency-model/domain/values/gate-definition.ts +127 -0
  112. package/scripts/harness/phase-dependency-model/domain/values/gate-name.ts +40 -0
  113. package/scripts/harness/phase-dependency-model/domain/values/gate-story-annotation.ts +39 -0
  114. package/scripts/harness/phase-dependency-model/domain/values/phase-customization-policy.ts +16 -4
  115. package/scripts/harness/phase-dependency-model/domain/values/story-reflection-config.ts +44 -0
  116. package/scripts/harness/phase-dependency-model/domain/values/story-reflection-mapping.ts +91 -0
  117. package/scripts/harness/phase-dependency-model/domain/values/story-reflection-result.ts +55 -0
  118. package/scripts/harness/phase-dependency-model/infrastructure/adapters/picomatch-glob-matcher.ts +17 -0
  119. package/scripts/harness/phase-dependency-model/infrastructure/adapters/story-annotation-verifier-adapter.ts +46 -0
  120. package/scripts/harness/phase-dependency-model/infrastructure/config/custom-gates-config-parser.ts +22 -0
  121. package/scripts/harness/phase-dependency-model/infrastructure/config/harness-config-phase-config-provider.ts +78 -2
  122. package/scripts/harness/phase-dependency-model/infrastructure/filesystem/file-system-story-reflection-adapter.ts +94 -0
  123. package/scripts/harness/phase-dependency-model/presentation/cli/check-phase-gate-command-handler.ts +12 -4
  124. package/scripts/harness/phase-dependency-model/presentation/cli/story-reflection-status-presenter.ts +87 -0
  125. package/scripts/harness/regression-suite/application/dto/analyze-migration-input.ts +1 -0
  126. package/scripts/harness/regression-suite/application/dto/analyze-migration-output.ts +1 -0
  127. package/scripts/harness/regression-suite/application/dto/configure-ci-gate-input.ts +1 -0
  128. package/scripts/harness/regression-suite/application/dto/configure-ci-gate-output.ts +1 -0
  129. package/scripts/harness/regression-suite/application/dto/migrate-v0-tests-input.ts +1 -0
  130. package/scripts/harness/regression-suite/application/dto/migrate-v0-tests-output.ts +1 -0
  131. package/scripts/harness/regression-suite/application/dto/run-regression-suite-input.ts +1 -0
  132. package/scripts/harness/regression-suite/application/dto/run-regression-suite-output.ts +1 -0
  133. package/scripts/harness/regression-suite/application/mappers/migration-mapping-mapper.ts +1 -0
  134. package/scripts/harness/regression-suite/application/mappers/test-execution-summary-mapper.ts +1 -0
  135. package/scripts/harness/regression-suite/application/usecases/analyze-v0-migration-usecase.ts +1 -0
  136. package/scripts/harness/regression-suite/application/usecases/configure-ci-gate-usecase.ts +1 -0
  137. package/scripts/harness/regression-suite/application/usecases/migrate-v0-tests-usecase.ts +1 -0
  138. package/scripts/harness/regression-suite/application/usecases/run-agent-independence-guard-usecase.ts +1 -0
  139. package/scripts/harness/regression-suite/application/usecases/run-gng-gate-regression-usecase.ts +1 -0
  140. package/scripts/harness/regression-suite/application/usecases/run-k-requirements-regression-usecase.ts +1 -0
  141. package/scripts/harness/regression-suite/application/usecases/run-k14-k15-regression-usecase.ts +1 -0
  142. package/scripts/harness/regression-suite/composition-root.ts +1 -0
  143. package/scripts/harness/regression-suite/domain/aggregates/v0-test-migration.ts +1 -0
  144. package/scripts/harness/regression-suite/domain/ports/ci-gate-result-writer-port.ts +1 -0
  145. package/scripts/harness/regression-suite/domain/ports/config-query-port.ts +1 -0
  146. package/scripts/harness/regression-suite/domain/ports/import-analyzer-port.ts +1 -0
  147. package/scripts/harness/regression-suite/domain/ports/migration-mapping-repository-port.ts +1 -0
  148. package/scripts/harness/regression-suite/domain/ports/suite-registry-port.ts +1 -0
  149. package/scripts/harness/regression-suite/domain/ports/test-runner-port.ts +1 -0
  150. package/scripts/harness/regression-suite/domain/ports/v0-spec-reader-port.ts +1 -0
  151. package/scripts/harness/regression-suite/domain/services/import-guard-service.ts +1 -0
  152. package/scripts/harness/regression-suite/domain/services/migration-analyzer.ts +1 -0
  153. package/scripts/harness/regression-suite/domain/services/regression-runner.ts +1 -0
  154. package/scripts/harness/regression-suite/domain/value-objects/agent-independence-test.ts +1 -0
  155. package/scripts/harness/regression-suite/domain/value-objects/biome-modification-spec.ts +1 -0
  156. package/scripts/harness/regression-suite/domain/value-objects/ci-gate-config.ts +1 -0
  157. package/scripts/harness/regression-suite/domain/value-objects/coverage-rate.ts +1 -0
  158. package/scripts/harness/regression-suite/domain/value-objects/gng-condition-test.ts +1 -0
  159. package/scripts/harness/regression-suite/domain/value-objects/import-violation.ts +1 -0
  160. package/scripts/harness/regression-suite/domain/value-objects/k-requirement-test.ts +1 -0
  161. package/scripts/harness/regression-suite/domain/value-objects/migration-mapping.ts +1 -0
  162. package/scripts/harness/regression-suite/domain/value-objects/regression-suite-definition.ts +1 -0
  163. package/scripts/harness/regression-suite/domain/value-objects/suite-id.ts +1 -0
  164. package/scripts/harness/regression-suite/domain/value-objects/test-execution-summary.ts +1 -0
  165. package/scripts/harness/regression-suite/domain/value-objects/test-failure-detail.ts +1 -0
  166. package/scripts/harness/regression-suite/domain/value-objects/v0-test-id.ts +1 -0
  167. package/scripts/harness/regression-suite/domain/value-objects/v1-test-path.ts +1 -0
  168. package/scripts/harness/regression-suite/infrastructure/adapters/biome-ast-import-analyzer-adapter.ts +1 -0
  169. package/scripts/harness/regression-suite/infrastructure/adapters/file-system-v0-spec-reader-adapter.ts +1 -0
  170. package/scripts/harness/regression-suite/infrastructure/adapters/harness-config-query-adapter.ts +1 -0
  171. package/scripts/harness/regression-suite/infrastructure/adapters/json-ci-gate-result-writer-adapter.ts +1 -0
  172. package/scripts/harness/regression-suite/infrastructure/adapters/markdown-migration-mapping-repository-adapter.ts +1 -0
  173. package/scripts/harness/regression-suite/infrastructure/adapters/static-suite-registry-adapter.ts +1 -0
  174. package/scripts/harness/regression-suite/infrastructure/adapters/vitest-test-runner-adapter.ts +1 -0
  175. package/scripts/harness/regression-suite/infrastructure/registry/agent-independence-suite-definition.ts +1 -0
  176. package/scripts/harness/regression-suite/infrastructure/registry/gng-gate-suite-definition.ts +1 -0
  177. package/scripts/harness/regression-suite/infrastructure/registry/k-requirements-suite-definition.ts +1 -0
  178. package/scripts/harness/regression-suite/infrastructure/registry/v0-migration-suite-definition.ts +1 -0
  179. package/scripts/harness/setup/skill-deployer.ts +82 -5
  180. package/scripts/harness/shared-kernel/harness-api.ts +1 -0
  181. package/scripts/harness/skill-quality/composition-root.ts +1 -0
  182. package/scripts/harness/skill-quality/infrastructure/adapters/ajv-lesson-artifact-schema-adapter.ts +5 -4
  183. package/scripts/harness/traceability-model/domain/services/metadata-validator.ts +12 -10
  184. package/scripts/harness/traceability-model/infrastructure/parsers/source-metadata-parser.ts +16 -2
  185. package/skills/cascade-updater/SKILL.md +16 -3
  186. package/skills/codebase-mapper/SKILL.md +9 -9
  187. package/skills/codex-delegator/SKILL.md +5 -56
  188. package/skills/consistency-checker/SKILL.md +5 -9
  189. package/skills/consistency-checker/references//343/203/201/343/202/247/343/203/203/343/202/257/343/203/252/343/202/271/343/203/210.md +6 -3
  190. package/skills/doc-freshness-checker/SKILL.md +6 -6
  191. package/skills/engineering-perspective/SKILL.md +2 -58
  192. package/skills/engineering-perspective/references/domain-model.md +4 -135
  193. package/skills/implementation-readiness-checker/SKILL.md +18 -72
  194. package/skills/it-test-designer/SKILL.md +25 -161
  195. package/skills/it-test-designer/references/it-test-design-template.md +131 -0
  196. package/skills/it-test-logic-designer/SKILL.md +13 -388
  197. package/skills/it-test-logic-designer/references/controller-test-patterns.md +100 -0
  198. package/skills/it-test-logic-designer/references/repository-test-patterns.md +206 -0
  199. package/skills/it-test-logic-designer/references/usecase-test-patterns.md +87 -0
  200. package/skills/pointer-validator/SKILL.md +4 -4
  201. package/skills/scenario-test-designer/SKILL.md +4 -68
  202. package/skills/scenario-test-designer/references/scenario-test-design-template.md +41 -0
  203. package/skills/scenario-test-designer/references/scenario-test-plan-template.md +35 -0
  204. package/skills/scenario-test-logic-designer/SKILL.md +21 -304
  205. package/skills/scenario-test-logic-designer/references/msw-patterns.md +36 -0
  206. package/skills/scenario-test-logic-designer/references/playwright-patterns.md +237 -0
  207. package/skills/test-coverage-checker/SKILL.md +39 -121
  208. package/skills/test-coverage-checker/references/coverage-report-template.md +99 -0
  209. package/skills/uiux-designer/SKILL.md +27 -92
  210. package/skills/uiux-designer/references/data-testid-convention.md +38 -0
  211. package/skills/uiux-designer/references/uiux-design-template.md +105 -0
  212. package/skills/unit-test-designer/SKILL.md +5 -106
  213. package/skills/unit-test-designer/references/unit-test-design-template.md +127 -0
  214. package/skills/unit-test-logic-designer/SKILL.md +28 -250
  215. package/skills/unit-test-logic-designer/references/test-patterns.md +207 -0
@@ -12,7 +12,7 @@ review: opus
12
12
 
13
13
  ## 出力物
14
14
 
15
- `docs/product/construction/codebase-map.md` — Unit・レイヤー分布・依存関係の可視化文書
15
+ `{constructionDir}/codebase-map.md` — Unit・レイヤー分布・依存関係の可視化文書(パスは `phasegate.config.json` で設定)
16
16
 
17
17
  ---
18
18
 
@@ -31,7 +31,7 @@ review: opus
31
31
  # Codebase Mapper 計画
32
32
 
33
33
  ## スキャン対象
34
- - ソースコード: scripts/harness/
34
+ - ソースコード: {phasegate.config.json の sourceDir}
35
35
  - 除外: __tests__/, node_modules/
36
36
 
37
37
  ## 出力粒度
@@ -41,7 +41,7 @@ review: opus
41
41
  - [ ] 循環依存検出
42
42
 
43
43
  ## 出力先
44
- docs/product/construction/codebase-map.md
44
+ {constructionDir}/codebase-map.md
45
45
 
46
46
  ## QA
47
47
  [Question] Q1: ...
@@ -58,7 +58,7 @@ docs/product/construction/codebase-map.md
58
58
 
59
59
  ### Step 1: @unit/@layer アノテーションの収集
60
60
 
61
- Glob + Read を使い、`scripts/harness/**/*.ts`(テスト・fixture除外)から:
61
+ Glob + Read を使い、`{sourceDir}/**/*.ts`(テスト・fixture除外)から:
62
62
 
63
63
  ```
64
64
  @unit {unit-name}
@@ -79,7 +79,7 @@ Unit間依存グラフを深さ優先探索でサイクル検出する。
79
79
 
80
80
  ### Step 4: マップ文書の生成
81
81
 
82
- `docs/product/construction/codebase-map.md` に出力。
82
+ `{constructionDir}/codebase-map.md` に出力。
83
83
 
84
84
  ---
85
85
 
@@ -89,7 +89,7 @@ Unit間依存グラフを深さ優先探索でサイクル検出する。
89
89
  # Codebase Map
90
90
 
91
91
  生成日時: {date}
92
- スキャン対象: scripts/harness/
92
+ スキャン対象: {sourceDir}
93
93
  総ファイル数: N(テスト除く)
94
94
 
95
95
  ---
@@ -137,8 +137,8 @@ validator-system
137
137
  ## アノテーション欠落の対処
138
138
 
139
139
  マップ生成後、`@unit`/`@layer` が欠落しているファイルが検出された場合:
140
- 1. `L1-001`(require-unit-comment)/ `L1-002`(require-layer-comment)の違反として報告
141
- 2. `quick-implementor` でアノテーションを追加
140
+ 1. Lintルール違反(require-unit-comment / require-layer-comment)として報告
141
+ 2. 欠落ファイル一覧を出力し、アノテーション追加を促す
142
142
 
143
143
  ---
144
144
 
@@ -146,6 +146,6 @@ validator-system
146
146
 
147
147
  | スキル/コマンド | 用途 |
148
148
  |--------------|------|
149
- | `pnpm run lint` | L1 archgateルールの全体スキャン |
149
+ | `npx phasegate lint` | L1 archgateルールの全体スキャン |
150
150
  | `consistency-checker` | マップ生成後の設計文書整合性確認 |
151
151
  | `doc-freshness-checker` | マップと設計文書の鮮度を合わせて確認 |
@@ -176,55 +176,18 @@ git diff HEAD~1
176
176
  git diff --name-only HEAD~1
177
177
  ```
178
178
 
179
- #### Step B.1: Tier 1 — 機械的チェック(スクリプト/grep)
179
+ #### Step B.1: Tier 1 — 機械的チェック
180
180
 
181
- Claude Codeがgrep・スクリプトで自動検証する。人間の判断不要な項目を高速に処理する。
182
-
183
- | ID | 次元 | 検証方法 | 重大度 |
184
- |----|------|---------|--------|
185
- | C1 | スコープ遵守 | `git diff --name-only` と指示ファイルリストの差分比較 | BLOCK |
186
- | C2 | 既存破壊なし | `pnpm test` 実行(既存テスト全パス確認) | BLOCK |
187
- | C3 | 命名一貫性 | grep: 日本語テスト名、`actual`変数、target/context構造 | BLOCK |
188
- | IM3 | レイヤー違反なし | grep: domain層ファイルからinfrastructure層へのimport検出 | BLOCK |
189
- | IM4 | 型安全性 | grep: 正当理由なき `any` / `as` の使用検出 | WARN |
190
- | TE1 | ケースID突合 | 設計文書のケースIDリスト vs テストファイル内のID(diff抽出) | BLOCK |
191
- | DP3 | 配置ルール準拠 | `git diff --name-only` とfolder_management_rules.mdのパス照合 | BLOCK |
192
-
193
- **Tier 1 判定**:
194
- ```
195
- BLOCK が1つでもFAIL → REJECT(Tier 2スキップ)→ Step Cへ
196
- 全PASS or WARNのみ → Tier 2へ進む
197
- ```
181
+ Claude Codeがgrep・スクリプトで自動検証する。共通次元(C1-C3: スコープ遵守・既存破壊なし・命名一貫性)+ タスクタイプ別次元(IM3/IM4, TE1/TE4, DP3)を適用。BLOCKが1つでもFAILならTier 2スキップで即REJECT。次元ID・検証方法の詳細は [references/review-dimensions.md](references/review-dimensions.md) の Tier 1 セクションを参照。
198
182
 
199
183
  #### Step B.2: Tier 2 — Sonnetによる設計突合チェック
200
184
 
201
- Agent tool(subagent_type未指定)でSonnetに以下の**最小限の入力**を渡してレビューさせる。
202
-
203
- **Tier 2への入力(これだけ)**:
185
+ Agent tool経由でSonnetに以下の**最小限の入力**を渡す:
204
186
  1. `git diff HEAD~1` の出力(変更差分のみ)
205
187
  2. Tier 1の結果サマリ(PASS/WARN一覧)
206
188
  3. 設計文書の**該当箇所の抜粋**(全文ではない)
207
189
 
208
- **Tier 2 レビュー次元**:
209
-
210
- | ID | 次元 | 検証内容 | 重大度 |
211
- |----|------|---------|--------|
212
- | C4 | 完了度 | 指示項目の欠落がないか | BLOCK |
213
- | DD1 | 計画との整合 | diffの内容が設計文書の方針と矛盾しないか | BLOCK |
214
- | DD2 | アーキテクチャ原則 | ヘキサゴナル・DDD原則に沿っているか | BLOCK |
215
- | DD4/IM-Y | YAGNI | 指示範囲外の「改善」「リファクタ」「将来への備え」がないか | BLOCK |
216
- | IM5 | DRY | 新規コードに既存コードとの重複がないか | WARN |
217
- | TE2 | 期待値突合 | Assertionの期待値が設計文書の期待結果と一致するか | BLOCK |
218
- | DD3 | トレーサビリティ | 各要素がストーリー/Unit要件に紐づいているか | WARN |
219
-
220
- 詳細は [references/review-dimensions.md](references/review-dimensions.md) を参照。
221
-
222
- **Tier 2 判定**:
223
- ```
224
- BLOCK が1つでもFAIL → REJECT → Step Cへ
225
- WARN のみ FAIL → CONDITIONAL_PASS(WARNをまとめて修正)
226
- 全PASS → PASS(完了)
227
- ```
190
+ 設計との整合(DD1/DD2)、YAGNI(DD4/IM-Y)、完了度(C4)、期待値突合(TE2)等を検証。BLOCKが1つでもFAILならREJECT、WARNのみならCONDITIONAL_PASS。次元ID・検証内容・判定ロジックの詳細は [references/review-dimensions.md](references/review-dimensions.md) の Tier 2 セクションを参照。
228
191
 
229
192
  ### Step C: 修正ループ(Fix Loop)
230
193
 
@@ -238,21 +201,7 @@ WARN のみ FAIL → CONDITIONAL_PASS(WARNをまとめて修正)
238
201
 
239
202
  #### 修正指示の構造(codex再委任時)
240
203
 
241
- ```
242
- ## 修正指示(Round N)
243
-
244
- ### 前回レビュー結果
245
- - FAIL次元: {ID}: {名前}
246
-
247
- ### 修正箇所
248
- #### [{次元ID}] {ファイルパス}:{行番号}
249
- - 現状: {問題の具体的記述}
250
- - 期待: {あるべき状態}
251
- - 修正方法: {具体的手順}
252
-
253
- ### 制約
254
- - 修正対象以外のコードに手を加えないこと
255
- ```
204
+ 修正指示テンプレート(Round N形式: FAIL次元・修正箇所・制約)は [references/prompt-patterns.md](references/prompt-patterns.md) の「修正指示テンプレート」セクションを参照。
256
205
 
257
206
  #### エスカレーション条件
258
207
 
@@ -20,10 +20,10 @@ AIDLCプロセスの全レイヤー設計文書を横断的に検証し、矛盾
20
20
 
21
21
  **このスキルは3フェーズで実行する。**
22
22
  - **Phase 1(計画)**: Opus がスコープ・方針・不明点を整理し、人間の承認を得る
23
- - **Phase 2(実行)**: Sonnet 4.6 に委任して成果物を生成する(`scripts/delegate-sonnet.sh` 経由)
23
+ - **Phase 2(実行)**: プロジェクトのモデルルーティング設定に従い、実行モデルに委譲して成果物を生成する
24
24
  - **Phase 3(レビュー)**: Opus が成果物を検証し、問題があれば直接修正する
25
25
 
26
- **Phase 1/2/3を同時に実行してはならない。モデルルーティングの詳細は `docs/principles/model-routing.md` を参照。**
26
+ **Phase 1/2/3を同時に実行してはならない。**
27
27
 
28
28
  ---
29
29
 
@@ -119,8 +119,6 @@ AIDLCプロセスの全レイヤー設計文書を横断的に検証し、矛盾
119
119
 
120
120
  ---
121
121
 
122
- ---
123
-
124
122
  ## Phase 3: レビュー(Opus review)
125
123
 
126
124
  ### 実行主体
@@ -128,7 +126,7 @@ AIDLCプロセスの全レイヤー設計文書を横断的に検証し、矛盾
128
126
 
129
127
  ### レビュー手順
130
128
  1. Sonnetが出力したファイルを読み込む
131
- 2. `docs/principles/model-routing.md` のレビュー観点 R1〜R7 に沿って検証する
129
+ 2. プロジェクトのレビュー基準に沿って検証する
132
130
  3. **スキル固有レビュー観点**を検証する
133
131
  4. 判定結果を出力する
134
132
 
@@ -139,10 +137,8 @@ AIDLCプロセスの全レイヤー設計文書を横断的に検証し、矛盾
139
137
  - [ ] 推奨アクションが実行可能か(対応スキル名が明記されているか)
140
138
  - [ ] 偽陰性がないか(明らかな不整合を見逃していないか)
141
139
 
142
- ### engineering-perspective レビュー観点(WARN基準)
143
- - [ ] ドメインスメル(責務混在・言語の乖離・境界不明確)がレイヤー横断で検出されているか
144
- - [ ] SOLID違反(SRP・DIP)が設計レイヤー間で見逃されていないか
145
- - [ ] コードスメル(Shotgun Surgery等)の兆候が設計変更の波及パターンから検出されているか
140
+ ### 品質観点のレビュー
141
+ 品質観点(SOLID、コードスメル、ドメインスメル)のレビューが必要な場合は `engineering-perspective` スキルを併用する。
146
142
 
147
143
  ### 判定と修正
148
144
  - **BLOCK項目にFAIL** → Opusが直接修正してから完了とする
@@ -50,11 +50,14 @@
50
50
 
51
51
  ```
52
52
  # ストーリーID抽出(マークダウンテーブルから)
53
- grep -oE 'US-[0-9]+|US-DEV-[0-9]+' docs/product/user_stories.md
53
+ # {storyIdPattern} はプロジェクトのストーリーID正規表現(例: US-[0-9]+)
54
+ grep -oE '{storyIdPattern}' {userStoriesPath}
54
55
 
55
56
  # Unit内のストーリー参照抽出
56
- grep -oE 'US-[0-9]+|US-DEV-[0-9]+' docs/product/units/*.md
57
+ grep -oE '{storyIdPattern}' {unitsDir}/*.md
57
58
 
58
59
  # ドメインモデルの集約名抽出
59
- grep -E '^### .+集約|Aggregate' docs/product/construction/*/domain_model.md
60
+ grep -E '^### .+集約|Aggregate' {constructionDir}/*/domain_model.md
60
61
  ```
62
+
63
+ パス変数は `phasegate.config.json` のプロジェクト設定から解決する。
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: doc-freshness-checker
3
- description: 設計文書の鮮度チェック(L4バリデータ拡張)。`p2:check-freshness` CLIを使い、設計文書の最終更新日が閾値を超えていないか、コード変更と設計文書の乖離がないかを検出する。使用タイミング: 「設計文書が古くなっていないか確認して」「ドキュメントの鮮度チェックを実行して」「L4 freshness チェック」「設計とコードの乖離を調べて」など。
3
+ description: 設計文書の鮮度チェック(L4バリデータ拡張)。`phasegate check-freshness` CLIを使い、設計文書の最終更新日が閾値を超えていないか、コード変更と設計文書の乖離がないかを検出する。使用タイミング: 「設計文書が古くなっていないか確認して」「ドキュメントの鮮度チェックを実行して」「L4 freshness チェック」「設計とコードの乖離を調べて」など。
4
4
  model: sonnet
5
5
  review: opus
6
6
  ---
@@ -8,7 +8,7 @@ review: opus
8
8
  # Doc Freshness Checker
9
9
 
10
10
  設計文書の鮮度(freshness)を検証し、古くなった文書や対応コードとの乖離を検出するスキル。
11
- `phase2-extensions` Unit の `p2:check-freshness` CLIをラップし、結果を解釈・対処する。
11
+ `phasegate check-freshness` CLIをラップし、結果を解釈・対処する。
12
12
 
13
13
  ## 前提条件
14
14
 
@@ -34,11 +34,11 @@ review: opus
34
34
  # Doc Freshness チェック計画
35
35
 
36
36
  ## チェック対象スコープ
37
- - ディレクトリ: {デフォルト: docs/product/construction/}
37
+ - ディレクトリ: {phasegate.config.json の constructionDir、デフォルト: docs/}
38
38
  - 閾値: {phasegate.config.json の値 or デフォルト 30日}
39
39
 
40
40
  ## 実行コマンド
41
- pnpm run p2:check-freshness [--dir {path}] [--threshold {days}]
41
+ npx phasegate check-freshness [--dir {path}] [--threshold {days}]
42
42
 
43
43
  ## QA
44
44
  [Question] Q1: ...
@@ -57,11 +57,11 @@ pnpm run p2:check-freshness [--dir {path}] [--threshold {days}]
57
57
  ### Step 1: CLIの実行
58
58
 
59
59
  ```bash
60
- pnpm run p2:check-freshness
60
+ npx phasegate check-freshness
61
61
  ```
62
62
 
63
63
  オプション:
64
- - `--dir <path>` — チェック対象ディレクトリ(デフォルト: `docs/product/construction/`)
64
+ - `--dir <path>` — チェック対象ディレクトリ(デフォルト: `phasegate.config.json` の `constructionDir`)
65
65
  - `--threshold <days>` — 警告閾値(日数)
66
66
 
67
67
  ### Step 2: 結果の解釈
@@ -53,33 +53,8 @@ description: |
53
53
 
54
54
  ## スメル検知
55
55
 
56
- ### コードスメル(ファウラー視点)
57
-
58
- | スメル | 兆候 | 対処 |
59
- |--------|------|------|
60
- | Long Method | メソッドが長い | Extract Method |
61
- | Feature Envy | 他クラスのデータ多用 | Move Method |
62
- | Primitive Obsession | 基本型の過剰使用 | Value Objectに置換 |
63
- | Shotgun Surgery | 変更が多クラスに波及 | Move Method/Field |
64
-
65
- ### SOLID違反(アンクル・ボブ視点)
66
-
67
- | 原則 | 違反の兆候 | 対処 |
68
- |------|------------|------|
69
- | SRP | 変更理由が複数 | クラス分割 |
70
- | OCP | 変更時に既存コード修正 | 抽象化 |
71
- | LSP | 派生型で例外発生 | 継承の見直し |
72
- | ISP | 使わないメソッドに依存 | IF分割 |
73
- | DIP | 具象に依存 | 抽象に依存 |
74
-
75
- ### ドメインスメル(エヴァンス + 統合視点)
76
-
77
- | スメル | 兆候 | 対処 |
78
- |--------|------|------|
79
- | 責務混在 | 集約に複数責務 | 概念を分離 |
80
- | 不適切なVO | nullable値オブジェクト | ドメイン的に分解 |
81
- | 言語の乖離 | コードと用語が不一致 | 命名統一 |
82
- | 境界不明確 | コンテキストが混在 | 境界を明確化 |
56
+ コードスメル(ファウラー視点)、SOLID違反(アンクル・ボブ視点)、ドメインスメル(エヴァンス視点)を並行検知する。
57
+ 各スメルの詳細テーブルは [references/glossary.md](references/glossary.md) を参照。
83
58
 
84
59
  ## 評価基準
85
60
 
@@ -99,37 +74,6 @@ description: |
99
74
  - [ ] SOLID違反・依存が外向き
100
75
  - [ ] モデル不一致・言語の乖離
101
76
 
102
- ## 表現パターン
103
-
104
- ### 質問
105
-
106
- | 視点 | パターン | 場面 |
107
- |------|----------|------|
108
- | 統合視点 | 「前提は?」 | 議論開始時 |
109
- | 統合視点 | 「具体例にすると?」 | 抽象的な話 |
110
- | ケント・ベック | 「テストは書いた?」 | 実装レビュー |
111
- | ファウラー | 「これ匂う?」 | コードレビュー |
112
- | アンクル・ボブ | 「依存の方向は?」 | 設計レビュー |
113
- | エヴァンス | 「ドメインエキスパートはこう呼ぶ?」 | 命名議論 |
114
-
115
- ### 指摘
116
-
117
- | 視点 | パターン | 場面 |
118
- |------|----------|------|
119
- | 統合視点 | 「それって違くない?」 | スメル検知 |
120
- | ケント・ベック | 「今必要ないなら作らない」 | 過剰設計 |
121
- | ファウラー | 「リファクタしてから機能追加」 | 変更前 |
122
- | アンクル・ボブ | 「責務が複数ある」 | SRP違反 |
123
- | エヴァンス | 「コンテキストが混ざってる」 | 境界不明確 |
124
-
125
- ### 開発アプローチ
126
-
127
- - 「バーティカルスライスでまず価値提供」(統合視点)
128
- - 「Make it work, make it right, make it fast」(ケント・ベック)
129
- - 「2回目で抽象化を検討」(ファウラー)
130
- - 「ボーイスカウトルール: 来た時より美しく」(アンクル・ボブ)
131
- - 「モデルとコードを一致させる」(エヴァンス)
132
-
133
77
  ## 参照ドキュメント
134
78
 
135
79
  - **統合モデル**: [references/domain-model.md](references/domain-model.md) - 完全なドメインモデル図
@@ -211,153 +211,22 @@ classDiagram
211
211
 
212
212
  素早いフィードバックとシンプルさを重視。
213
213
 
214
- **適用場面:**
215
- - テスト戦略の検討
216
- - 開発プロセスの改善
217
- - 過剰設計の防止
218
-
219
- **キーフレーズ:**
220
- - "Make it work, make it right, make it fast"
221
- - "YAGNI - 今必要ないなら作らない"
222
- - "小さなステップで進む"
214
+ **適用場面:** テスト戦略の検討、開発プロセスの改善、過剰設計の防止
223
215
 
224
216
  ### FowlerPatterns(リファクタリング視点)
225
217
 
226
218
  コードの匂いの検知と改善パターンの提案。
227
219
 
228
- **適用場面:**
229
- - コードレビュー
230
- - レガシーコードの改善
231
- - 設計パターンの適用
232
-
233
- **検知するコードスメル:**
234
- | スメル | 説明 | リファクタリング |
235
- |--------|------|------------------|
236
- | Long Method | 長すぎるメソッド | Extract Method |
237
- | Feature Envy | 他クラスのデータを多用 | Move Method |
238
- | Primitive Obsession | 基本型の過剰使用 | Replace with Value Object |
239
- | Shotgun Surgery | 変更が多クラスに影響 | Move Method/Field |
240
- | Divergent Change | 1クラスが複数理由で変更 | Extract Class |
220
+ **適用場面:** コードレビュー、レガシーコードの改善、設計パターンの適用
241
221
 
242
222
  ### UncleBobPrinciples(クリーン設計視点)
243
223
 
244
224
  SOLID原則とクリーンアーキテクチャの適用。
245
225
 
246
- **適用場面:**
247
- - アーキテクチャ設計
248
- - 依存関係の評価
249
- - インターフェース設計
250
-
251
- **SOLID原則チェック:**
252
- | 原則 | 違反の兆候 | 対処 |
253
- |------|------------|------|
254
- | SRP | 変更理由が複数 | クラス分割 |
255
- | OCP | 変更時に既存コード修正 | 抽象化・ポリモーフィズム |
256
- | LSP | 派生型で例外発生 | 継承の見直し |
257
- | ISP | 使わないメソッドへの依存 | インターフェース分割 |
258
- | DIP | 具象への依存 | 抽象への依存に変更 |
226
+ **適用場面:** アーキテクチャ設計、依存関係の評価、インターフェース設計
259
227
 
260
228
  ### EvansDDD(ドメイン駆動視点)
261
229
 
262
230
  ドメインモデルの品質とユビキタス言語の整合性。
263
231
 
264
- **適用場面:**
265
- - ドメインモデリング
266
- - コンテキスト境界の設計
267
- - 集約設計
268
-
269
- **チェックポイント:**
270
- | 観点 | 確認事項 | 問題時の対処 |
271
- |------|----------|--------------|
272
- | ユビキタス言語 | コードと用語が一致 | 命名の統一 |
273
- | 境界づけられたコンテキスト | 責務が明確 | コンテキスト分割 |
274
- | 集約 | 整合性境界が適切 | 集約の再設計 |
275
- | ドメインイベント | 重要な出来事を表現 | イベント追加 |
276
-
277
- ## 統合評価フロー
278
-
279
- ```
280
- 問題/コード
281
- ↓
282
- ┌─────────────────────────────────────────┐
283
- │ IntegratorCore: 前提確認 │
284
- │ - コンテキストは? │
285
- │ - 境界は? │
286
- │ - 目的は? │
287
- └─────────────────────────────────────────┘
288
- ↓
289
- ┌─────────────────────────────────────────┐
290
- │ 並行評価 │
291
- │ ├─ KentBeck: TDD/XP観点 │
292
- │ ├─ Fowler: コードスメル検知 │
293
- │ ├─ UncleBob: SOLID/アーキテクチャ │
294
- │ └─ Evans: ドメインモデル品質 │
295
- └─────────────────────────────────────────┘
296
- ↓
297
- ┌─────────────────────────────────────────┐
298
- │ IntegratorCore: 統合・判断 │
299
- │ - 各視点の結果を統合 │
300
- │ - 実用性を考慮してフィルタ │
301
- │ - シンプルな改善案を選択 │
302
- └─────────────────────────────────────────┘
303
- ↓
304
- EvaluationResult + Guidance
305
- ```
306
-
307
- ## ビジネスルール
308
-
309
- ### 統合Good判定ルール
310
-
311
- 以下をすべて満たす場合にGoodと判定:
312
-
313
- | 視点 | 基準 |
314
- |------|------|
315
- | 統合視点 | シンプル・説明可能・実用的 |
316
- | ケント・ベック | テストがある・YAGNIに従う |
317
- | ファウラー | コードスメルがない |
318
- | アンクル・ボブ | SOLID原則に従う・依存が内向き |
319
- | エヴァンス | ドメインを適切に表現・言語が一致 |
320
-
321
- ### 統合NG判定ルール
322
-
323
- 以下のいずれかに該当する場合にNGと判定:
324
-
325
- | 視点 | NG条件 |
326
- |------|--------|
327
- | 統合視点 | 複雑・目的不明・説明不能 |
328
- | ケント・ベック | テストなし・過剰設計 |
329
- | ファウラー | 重大なコードスメル |
330
- | アンクル・ボブ | SOLID違反・依存が外向き |
331
- | エヴァンス | モデル不一致・言語の乖離 |
332
-
333
- ### 優先順位ルール
334
-
335
- 改善提案の優先順位:
336
-
337
- 1. **実用性に影響するもの** (統合視点)
338
- 2. **テスト容易性に影響するもの** (ケント・ベック視点)
339
- 3. **保守性に影響するもの** (ファウラー・アンクル・ボブ視点)
340
- 4. **ドメイン表現に影響するもの** (エヴァンス視点)
341
-
342
- ## 表現パターン(統合版)
343
-
344
- ### 質問パターン
345
-
346
- | 視点 | パターン | 使用場面 |
347
- |------|----------|----------|
348
- | 統合視点 | 「前提は?」 | 議論開始時 |
349
- | 統合視点 | 「具体例にすると?」 | 抽象的な話のとき |
350
- | ケント・ベック | 「テストは書いた?」 | 実装レビュー時 |
351
- | ファウラー | 「これ匂う?」 | コードレビュー時 |
352
- | アンクル・ボブ | 「依存の方向は?」 | 設計レビュー時 |
353
- | エヴァンス | 「ドメインエキスパートはこう呼ぶ?」 | 命名議論時 |
354
-
355
- ### 指摘パターン
356
-
357
- | 視点 | パターン | 使用場面 |
358
- |------|----------|----------|
359
- | 統合視点 | 「それって違くない?」 | スメル検知時 |
360
- | ケント・ベック | 「今必要ないなら作らない」 | 過剰設計時 |
361
- | ファウラー | 「リファクタしてから機能追加」 | 変更前 |
362
- | アンクル・ボブ | 「責務が複数ある」 | SRP違反時 |
363
- | エヴァンス | 「コンテキストが混ざってる」 | 境界不明確時 |
232
+ **適用場面:** ドメインモデリング、コンテキスト境界の設計、集約設計
@@ -36,6 +36,8 @@ review: opus
36
36
 
37
37
  ## 検証ワークフロー
38
38
 
39
+ > **パス設定:** 以下のファイルパスはプレースホルダで記述。`{constructionDir}` / `{inceptionDir}` は `phasegate.config.json` のプロジェクト設定から解決される。
40
+
39
41
  ### Step 1: ファイル存在チェック(自動実行)
40
42
 
41
43
  **以下のファイルの存在を実際に確認する(Glob/Readツールを使用):**
@@ -44,27 +46,26 @@ review: opus
44
46
 
45
47
  | カテゴリ | ファイルパス | 作成スキル |
46
48
  |---------|------------|----------|
47
- | 論理設計 | `docs/product/construction/{unit}/logical_design.md` | `logical-designer` |
48
- | 論理設計 | `docs/inception/{unit}/{story_id}/logical_design.md` | `logical-designer` |
49
- | ユニットテスト設計 | `docs/product/construction/{unit}/unit_test_design.md` | `unit-test-designer` |
50
- | ITテスト設計 | `docs/product/construction/{unit}/it_test_design.md` | `it-test-designer` |
51
- | シナリオテスト設計 | `docs/inception/{unit}/{story_id}/scenario_test_design.md` | `scenario-test-designer` |
52
- | カバレッジレポート | `docs/product/construction/{unit}/coverage_report.md` | `test-coverage-checker` |
49
+ | 論理設計 | `{constructionDir}/{unit}/logical_design.md` | `logical-designer` |
50
+ | 論理設計 | `{inceptionDir}/{unit}/{story_id}/logical_design.md` | `logical-designer` |
51
+ | ユニットテスト設計 | `{constructionDir}/{unit}/unit_test_design.md` | `unit-test-designer` |
52
+ | ITテスト設計 | `{constructionDir}/{unit}/it_test_design.md` | `it-test-designer` |
53
+ | シナリオテスト設計 | `{inceptionDir}/{unit}/{story_id}/scenario_test_design.md` | `scenario-test-designer` |
54
+ | カバレッジレポート | `{constructionDir}/{unit}/coverage_report.md` | `test-coverage-checker` |
53
55
 
54
56
  #### 推奨ファイル(なくても実装可能だが、あればより安全)
55
57
 
56
58
  | カテゴリ | ファイルパス | 作成スキル |
57
59
  |---------|------------|----------|
58
- | ユニットテストロジック | `docs/product/construction/{unit}/unit_test_logic.md` | `unit-test-logic-designer` |
59
- | ITテストロジック | `docs/product/construction/{unit}/it_test_logic.md` | `it-test-logic-designer` |
60
- | シナリオテストロジック | `docs/inception/{unit}/{story_id}/scenario_test_logic.md` | `scenario-test-logic-designer` |
61
- | UIUX設計 | `docs/product/construction/{unit}/uiux_design.md` | `uiux-designer` |
60
+ | ユニットテストロジック | `{constructionDir}/{unit}/unit_test_logic.md` | `unit-test-logic-designer` |
61
+ | ITテストロジック | `{constructionDir}/{unit}/it_test_logic.md` | `it-test-logic-designer` |
62
+ | シナリオテストロジック | `{inceptionDir}/{unit}/{story_id}/scenario_test_logic.md` | `scenario-test-logic-designer` |
63
+ | UIUX設計 | `{constructionDir}/{unit}/uiux_design.md` | `uiux-designer` |
62
64
 
63
- ### Step 2: カバレッジレポートの内容確認
65
+ ### Step 2: カバレッジレポートの確認
64
66
 
65
- `coverage_report.md` が存在する場合、その内容を読み取り:
66
- - カバレッジ率が90%以上か確認
67
- - 未カバー項目がないか確認
67
+ `coverage_report.md` が存在する場合、`test-coverage-checker` の検証結果を参照する。
68
+ カバレッジの詳細分析は `test-coverage-checker` が担当するため、本スキルでは存在確認のみ行う。
68
69
 
69
70
  ### Step 3: 検証結果の報告
70
71
 
@@ -151,64 +152,9 @@ review: opus
151
152
 
152
153
  ---
153
154
 
154
- ## 既存実装に対するテスト追加モード
155
-
156
- 既に実装が完了しているが、テストが不足している場合に使用。
157
-
158
- ### 使用方法
159
-
160
- ```
161
- 「US-XXXは実装済みだが、ユニットテスト/ITテストが不足している。テスト追加の準備状況を確認してほしい」
162
- ```
163
-
164
- ### 検証内容
165
-
166
- 1. **実装済みコードの分析**
167
- - `backend/src/{context}/` の実装ファイルを確認
168
- - Entity/ValueObject/UseCase/Repository/Controllerを特定
169
-
170
- 2. **既存テストの確認**
171
- - `backend/test/unit/{context}/` のユニットテスト
172
- - `backend/test/integration/{context}/` のITテスト
173
- - `e2e/tests/{context}/` のE2Eテスト
174
-
175
- 3. **ギャップ分析**
176
- - 実装済みコンポーネントに対するテストの存在/不存在を一覧化
177
-
178
- ### 出力例
155
+ ## 既存実装に対するテスト追加
179
156
 
180
- ```markdown
181
- ## 🔍 既存実装のテスト状況分析: US-217
182
-
183
- ### 実装済みコンポーネント
184
-
185
- | コンポーネント | 種類 | ユニットテスト | ITテスト | E2Eテスト |
186
- |--------------|------|--------------|---------|----------|
187
- | WithholdingTaxProcess | Entity | ❌ なし | - | - |
188
- | CsvData | ValueObject | ❌ なし | - | - |
189
- | ParseCsvUseCase | UseCase | - | ❌ なし | - |
190
- | WithholdingTaxRepository | Repository | - | ❌ なし | - |
191
- | UploadCsvController | Controller | - | ❌ なし | - |
192
- | CSVアップロードフロー | E2E | - | - | ✅ あり |
193
-
194
- ### 不足テストの作成に必要なスキル
195
-
196
- | 不足テスト | 対応スキル | 優先度 |
197
- |----------|----------|-------|
198
- | Entity/VOのユニットテスト | `unit-test-designer` → `unit-test-logic-designer` | 高 |
199
- | UseCase/Repository/ControllerのITテスト | `it-test-designer` → `it-test-logic-designer` | 高 |
200
-
201
- ### 推奨フロー
202
-
203
- 1. **`unit-test-designer`** → 既存Entity/VOに対するテストケース設計
204
- 2. **`it-test-designer`** → 既存UseCase/Repository/Controllerに対するテストケース設計
205
- 3. **`test-coverage-checker`** → カバレッジ検証
206
- 4. **`unit-test-logic-designer`** → ユニットテストロジック設計
207
- 5. **`it-test-logic-designer`** → ITテストロジック設計
208
- 6. **`story-implementor`** → TDD実装(RED→GREEN)
209
- ```
210
-
211
- ---
157
+ 既に実装が完了しているがテストが不足している場合は、`test-coverage-checker` の「実装済みコードへのテスト追加モード」を使用すること。本スキルはファイル存在チェックに特化し、テストギャップ分析は `test-coverage-checker` が担当する。
212
158
 
213
159
  ---
214
160
 
@@ -219,7 +165,7 @@ review: opus
219
165
 
220
166
  ### レビュー手順
221
167
  1. Sonnetが出力したファイルを読み込む
222
- 2. `docs/principles/model-routing.md` のレビュー観点 R1〜R7 に沿って検証する
168
+ 2. プロジェクトのレビュー基準に沿って検証する
223
169
  3. 判定結果を出力する
224
170
 
225
171
  ### 判定と修正