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.
- package/README.ja.md +74 -42
- package/README.md +69 -9
- package/docs/ADR/ADR-013-story-reflection-gate.md +100 -0
- package/docs/guide/configuration.md +244 -7
- package/package.json +7 -5
- package/scripts/harness/adr-foundation/domain/ports/adr-document-parser-port.ts +1 -0
- package/scripts/harness/adr-foundation/domain/ports/adr-frontmatter-parser-port.ts +1 -0
- package/scripts/harness/adr-foundation/domain/ports/adr-repository-port.ts +1 -0
- package/scripts/harness/adr-foundation/domain/value-objects/adr-status.ts +6 -6
- package/scripts/harness/agent-integration/application/dto/handle-pre-tool-use-dto.ts +3 -1
- package/scripts/harness/agent-integration/application/usecases/handle-pre-tool-use-usecase.ts +108 -2
- package/scripts/harness/agent-integration/domain/ports/config-query-port.ts +2 -0
- package/scripts/harness/agent-integration/domain/ports/phase-gate-query-port.ts +1 -1
- package/scripts/harness/agent-integration/domain/ports/story-reflection-query-port.ts +8 -0
- package/scripts/harness/agent-integration/domain/services/bash-write-target-extractor.ts +258 -0
- package/scripts/harness/agent-integration/domain/services/hook-to-cli-translator.ts +21 -4
- package/scripts/harness/agent-integration/domain/value-objects/protected-file-list.ts +20 -0
- package/scripts/harness/agent-integration/domain/value-objects/story-reflection-query-result.ts +63 -0
- package/scripts/harness/agent-integration/infrastructure/adapters/file-system-story-reflection-query-adapter.ts +122 -0
- package/scripts/harness/agent-integration/infrastructure/adapters/harness-config-config-query-adapter.ts +20 -0
- package/scripts/harness/agent-integration/infrastructure/adapters/phase-gate-query-adapter.ts +17 -3
- package/scripts/harness/agent-integration/presentation/pre-tool-use-hook.ts +29 -2
- package/scripts/harness/biome-ast-engine/domain/services/lint-runner.ts +24 -0
- package/scripts/harness/biome-ast-engine/domain/services/rule-definition-registry.ts +1 -1
- package/scripts/harness/biome-ast-engine/domain/value-objects/source-module-snapshot.ts +5 -2
- package/scripts/harness/biome-ast-engine/infrastructure/adapters/node-workspace-file-adapter.ts +1 -1
- package/scripts/harness/biome-ast-engine/infrastructure/adapters/typescript-source-module-analyzer-adapter.ts +1 -1
- package/scripts/harness/biome-ast-engine/infrastructure/parsers/unit-comment-parser.ts +12 -7
- package/scripts/harness/ci-governance/composition-root.ts +1 -0
- package/scripts/harness/config-foundation/application/mappers/phase-config-section-mapper.ts +44 -0
- package/scripts/harness/config-foundation/application/usecases/load-resolved-config-use-case.ts +20 -1
- package/scripts/harness/config-foundation/domain/harness-config.ts +2 -1
- package/scripts/harness/config-foundation/domain/value-objects/phase-dependencies-config.ts +18 -4
- package/scripts/harness/config-foundation/infrastructure/schemas/harness-config-v2.schema.json +185 -10
- package/scripts/harness/config-foundation/infrastructure/validators/ajv-config-schema-validator.ts +2 -1
- package/scripts/harness/harness-api/application/dto/command-dispatch-input.ts +1 -0
- package/scripts/harness/harness-api/application/dto/command-dispatch-output.ts +1 -0
- package/scripts/harness/harness-api/application/dto/exit-code-decision-input.ts +1 -0
- package/scripts/harness/harness-api/application/dto/exit-code-decision-output.ts +1 -0
- package/scripts/harness/harness-api/application/dto/harness-api-response-contract.ts +1 -0
- package/scripts/harness/harness-api/application/dto/initialize-registry-input.ts +1 -0
- package/scripts/harness/harness-api/application/dto/registry-summary-output.ts +1 -0
- package/scripts/harness/harness-api/application/dto/status-derivation-input.ts +1 -0
- package/scripts/harness/harness-api/application/mappers/harness-api-response-mapper.ts +1 -0
- package/scripts/harness/harness-api/application/usecases/decide-exit-code-usecase.ts +1 -0
- package/scripts/harness/harness-api/application/usecases/derive-harness-status-usecase.ts +1 -0
- package/scripts/harness/harness-api/application/usecases/dispatch-command-usecase.ts +1 -0
- package/scripts/harness/harness-api/application/usecases/initialize-command-registry-usecase.ts +1 -0
- package/scripts/harness/harness-api/composition-root.ts +1 -0
- package/scripts/harness/harness-api/domain/ports/artifact-scanner-port.ts +1 -0
- package/scripts/harness/harness-api/domain/ports/biome-lint-port.ts +1 -0
- package/scripts/harness/harness-api/domain/ports/config-query-port.ts +1 -0
- package/scripts/harness/harness-api/domain/ports/impact-analysis-port.ts +1 -0
- package/scripts/harness/harness-api/domain/ports/phase-gate-query-port.ts +1 -0
- package/scripts/harness/harness-api/domain/ports/validator-execution-port.ts +1 -0
- package/scripts/harness/harness-api/domain/services/command-dispatch-service.ts +1 -0
- package/scripts/harness/harness-api/domain/services/command-registry.ts +1 -0
- package/scripts/harness/harness-api/domain/services/status-derivation-service.ts +1 -0
- package/scripts/harness/harness-api/domain/value-objects/artifact-scan-result.ts +1 -0
- package/scripts/harness/harness-api/domain/value-objects/check-ready-result.ts +1 -0
- package/scripts/harness/harness-api/domain/value-objects/ci-check-result.ts +1 -0
- package/scripts/harness/harness-api/domain/value-objects/cli-command-definition.ts +1 -0
- package/scripts/harness/harness-api/domain/value-objects/command-input-spec.ts +1 -0
- package/scripts/harness/harness-api/domain/value-objects/drift-report-summary.ts +1 -0
- package/scripts/harness/harness-api/domain/value-objects/exit-code-spec.ts +1 -0
- package/scripts/harness/harness-api/domain/value-objects/harness-api-response.ts +1 -0
- package/scripts/harness/harness-api/domain/value-objects/harness-status-summary.ts +1 -0
- package/scripts/harness/harness-api/domain/value-objects/layer-health.ts +1 -0
- package/scripts/harness/harness-api/domain/value-objects/phase-info.ts +1 -0
- package/scripts/harness/harness-api/index.ts +1 -0
- package/scripts/harness/harness-api/infrastructure/adapters/biome-ast-engine-lint-adapter.ts +1 -0
- package/scripts/harness/harness-api/infrastructure/adapters/file-system-artifact-scanner-adapter.ts +1 -0
- package/scripts/harness/harness-api/infrastructure/adapters/harness-config-query-adapter.ts +1 -0
- package/scripts/harness/harness-api/infrastructure/adapters/nyquist-validation-impact-analysis-adapter.ts +1 -0
- package/scripts/harness/harness-api/infrastructure/adapters/phase-dependency-model-query-adapter.ts +1 -0
- package/scripts/harness/harness-api/infrastructure/adapters/validator-system-execution-adapter.ts +1 -0
- package/scripts/harness/harness-api/presentation/dto/cli-output-options.ts +1 -0
- package/scripts/harness/harness-api/presentation/formatters/harness-api-json-formatter.ts +1 -0
- package/scripts/harness/harness-api/presentation/handlers/check-phase-handler.ts +1 -0
- package/scripts/harness/harness-api/presentation/handlers/check-ready-handler.ts +1 -0
- package/scripts/harness/harness-api/presentation/handlers/ci-check-handler.ts +1 -0
- package/scripts/harness/harness-api/presentation/handlers/complete-check-handler.ts +1 -0
- package/scripts/harness/harness-api/presentation/handlers/detect-drift-handler.ts +1 -0
- package/scripts/harness/harness-api/presentation/handlers/impact-analysis-handler.ts +1 -0
- package/scripts/harness/harness-api/presentation/handlers/lint-handler.ts +1 -0
- package/scripts/harness/harness-api/presentation/handlers/status-handler.ts +1 -0
- package/scripts/harness/harness-error/infrastructure/adapters/legacy-error-reporter-adapter.ts +7 -1
- package/scripts/harness/integrations/pre-commit.ts +1 -0
- package/scripts/harness/main.ts +154 -34
- package/scripts/harness/phase-dependency-model/application/dto/resolve-gate-result-dto.ts +14 -0
- package/scripts/harness/phase-dependency-model/application/services/phase-gate-result-mapper.ts +20 -0
- package/scripts/harness/phase-dependency-model/application/usecases/check-story-reflection-usecase.ts +42 -0
- package/scripts/harness/phase-dependency-model/application/usecases/resolve-gate-usecase.ts +161 -0
- package/scripts/harness/phase-dependency-model/composition-root.ts +57 -1
- package/scripts/harness/phase-dependency-model/domain/definitions/{default-phase-dependencies.ts → full-phase-dependencies.ts} +3 -3
- package/scripts/harness/phase-dependency-model/domain/definitions/{default-phase-nodes.ts → full-phase-nodes.ts} +1 -1
- package/scripts/harness/phase-dependency-model/domain/definitions/full-story-reflection-defaults.ts +28 -0
- package/scripts/harness/phase-dependency-model/domain/definitions/minimal-phase-dependencies.ts +32 -0
- package/scripts/harness/phase-dependency-model/domain/definitions/minimal-phase-nodes.ts +50 -0
- package/scripts/harness/phase-dependency-model/domain/definitions/minimal-story-reflection-defaults.ts +8 -0
- package/scripts/harness/phase-dependency-model/domain/definitions/standard-phase-dependencies.ts +39 -0
- package/scripts/harness/phase-dependency-model/domain/definitions/standard-phase-nodes.ts +118 -0
- package/scripts/harness/phase-dependency-model/domain/definitions/standard-story-reflection-defaults.ts +23 -0
- package/scripts/harness/phase-dependency-model/domain/models/phase-structure.ts +95 -23
- package/scripts/harness/phase-dependency-model/domain/ports/glob-matcher-port.ts +8 -0
- package/scripts/harness/phase-dependency-model/domain/ports/phase-config-provider-port.ts +2 -0
- package/scripts/harness/phase-dependency-model/domain/ports/story-annotation-verifier-port.ts +14 -0
- package/scripts/harness/phase-dependency-model/domain/ports/story-reflection-file-system-port.ts +16 -0
- package/scripts/harness/phase-dependency-model/domain/services/gate-graph.ts +223 -0
- package/scripts/harness/phase-dependency-model/domain/services/story-reflection-checker.ts +66 -0
- package/scripts/harness/phase-dependency-model/domain/values/gate-definition.ts +127 -0
- package/scripts/harness/phase-dependency-model/domain/values/gate-name.ts +40 -0
- package/scripts/harness/phase-dependency-model/domain/values/gate-story-annotation.ts +39 -0
- package/scripts/harness/phase-dependency-model/domain/values/phase-customization-policy.ts +16 -4
- package/scripts/harness/phase-dependency-model/domain/values/story-reflection-config.ts +44 -0
- package/scripts/harness/phase-dependency-model/domain/values/story-reflection-mapping.ts +91 -0
- package/scripts/harness/phase-dependency-model/domain/values/story-reflection-result.ts +55 -0
- package/scripts/harness/phase-dependency-model/infrastructure/adapters/picomatch-glob-matcher.ts +17 -0
- package/scripts/harness/phase-dependency-model/infrastructure/adapters/story-annotation-verifier-adapter.ts +46 -0
- package/scripts/harness/phase-dependency-model/infrastructure/config/custom-gates-config-parser.ts +22 -0
- package/scripts/harness/phase-dependency-model/infrastructure/config/harness-config-phase-config-provider.ts +78 -2
- package/scripts/harness/phase-dependency-model/infrastructure/filesystem/file-system-story-reflection-adapter.ts +94 -0
- package/scripts/harness/phase-dependency-model/presentation/cli/check-phase-gate-command-handler.ts +12 -4
- package/scripts/harness/phase-dependency-model/presentation/cli/story-reflection-status-presenter.ts +87 -0
- package/scripts/harness/regression-suite/application/dto/analyze-migration-input.ts +1 -0
- package/scripts/harness/regression-suite/application/dto/analyze-migration-output.ts +1 -0
- package/scripts/harness/regression-suite/application/dto/configure-ci-gate-input.ts +1 -0
- package/scripts/harness/regression-suite/application/dto/configure-ci-gate-output.ts +1 -0
- package/scripts/harness/regression-suite/application/dto/migrate-v0-tests-input.ts +1 -0
- package/scripts/harness/regression-suite/application/dto/migrate-v0-tests-output.ts +1 -0
- package/scripts/harness/regression-suite/application/dto/run-regression-suite-input.ts +1 -0
- package/scripts/harness/regression-suite/application/dto/run-regression-suite-output.ts +1 -0
- package/scripts/harness/regression-suite/application/mappers/migration-mapping-mapper.ts +1 -0
- package/scripts/harness/regression-suite/application/mappers/test-execution-summary-mapper.ts +1 -0
- package/scripts/harness/regression-suite/application/usecases/analyze-v0-migration-usecase.ts +1 -0
- package/scripts/harness/regression-suite/application/usecases/configure-ci-gate-usecase.ts +1 -0
- package/scripts/harness/regression-suite/application/usecases/migrate-v0-tests-usecase.ts +1 -0
- package/scripts/harness/regression-suite/application/usecases/run-agent-independence-guard-usecase.ts +1 -0
- package/scripts/harness/regression-suite/application/usecases/run-gng-gate-regression-usecase.ts +1 -0
- package/scripts/harness/regression-suite/application/usecases/run-k-requirements-regression-usecase.ts +1 -0
- package/scripts/harness/regression-suite/application/usecases/run-k14-k15-regression-usecase.ts +1 -0
- package/scripts/harness/regression-suite/composition-root.ts +1 -0
- package/scripts/harness/regression-suite/domain/aggregates/v0-test-migration.ts +1 -0
- package/scripts/harness/regression-suite/domain/ports/ci-gate-result-writer-port.ts +1 -0
- package/scripts/harness/regression-suite/domain/ports/config-query-port.ts +1 -0
- package/scripts/harness/regression-suite/domain/ports/import-analyzer-port.ts +1 -0
- package/scripts/harness/regression-suite/domain/ports/migration-mapping-repository-port.ts +1 -0
- package/scripts/harness/regression-suite/domain/ports/suite-registry-port.ts +1 -0
- package/scripts/harness/regression-suite/domain/ports/test-runner-port.ts +1 -0
- package/scripts/harness/regression-suite/domain/ports/v0-spec-reader-port.ts +1 -0
- package/scripts/harness/regression-suite/domain/services/import-guard-service.ts +1 -0
- package/scripts/harness/regression-suite/domain/services/migration-analyzer.ts +1 -0
- package/scripts/harness/regression-suite/domain/services/regression-runner.ts +1 -0
- package/scripts/harness/regression-suite/domain/value-objects/agent-independence-test.ts +1 -0
- package/scripts/harness/regression-suite/domain/value-objects/biome-modification-spec.ts +1 -0
- package/scripts/harness/regression-suite/domain/value-objects/ci-gate-config.ts +1 -0
- package/scripts/harness/regression-suite/domain/value-objects/coverage-rate.ts +1 -0
- package/scripts/harness/regression-suite/domain/value-objects/gng-condition-test.ts +1 -0
- package/scripts/harness/regression-suite/domain/value-objects/import-violation.ts +1 -0
- package/scripts/harness/regression-suite/domain/value-objects/k-requirement-test.ts +1 -0
- package/scripts/harness/regression-suite/domain/value-objects/migration-mapping.ts +1 -0
- package/scripts/harness/regression-suite/domain/value-objects/regression-suite-definition.ts +1 -0
- package/scripts/harness/regression-suite/domain/value-objects/suite-id.ts +1 -0
- package/scripts/harness/regression-suite/domain/value-objects/test-execution-summary.ts +1 -0
- package/scripts/harness/regression-suite/domain/value-objects/test-failure-detail.ts +1 -0
- package/scripts/harness/regression-suite/domain/value-objects/v0-test-id.ts +1 -0
- package/scripts/harness/regression-suite/domain/value-objects/v1-test-path.ts +1 -0
- package/scripts/harness/regression-suite/infrastructure/adapters/biome-ast-import-analyzer-adapter.ts +1 -0
- package/scripts/harness/regression-suite/infrastructure/adapters/file-system-v0-spec-reader-adapter.ts +1 -0
- package/scripts/harness/regression-suite/infrastructure/adapters/harness-config-query-adapter.ts +1 -0
- package/scripts/harness/regression-suite/infrastructure/adapters/json-ci-gate-result-writer-adapter.ts +1 -0
- package/scripts/harness/regression-suite/infrastructure/adapters/markdown-migration-mapping-repository-adapter.ts +1 -0
- package/scripts/harness/regression-suite/infrastructure/adapters/static-suite-registry-adapter.ts +1 -0
- package/scripts/harness/regression-suite/infrastructure/adapters/vitest-test-runner-adapter.ts +1 -0
- package/scripts/harness/regression-suite/infrastructure/registry/agent-independence-suite-definition.ts +1 -0
- package/scripts/harness/regression-suite/infrastructure/registry/gng-gate-suite-definition.ts +1 -0
- package/scripts/harness/regression-suite/infrastructure/registry/k-requirements-suite-definition.ts +1 -0
- package/scripts/harness/regression-suite/infrastructure/registry/v0-migration-suite-definition.ts +1 -0
- package/scripts/harness/setup/skill-deployer.ts +82 -5
- package/scripts/harness/shared-kernel/harness-api.ts +1 -0
- package/scripts/harness/skill-quality/composition-root.ts +1 -0
- package/scripts/harness/skill-quality/infrastructure/adapters/ajv-lesson-artifact-schema-adapter.ts +5 -4
- package/scripts/harness/traceability-model/domain/services/metadata-validator.ts +12 -10
- package/scripts/harness/traceability-model/infrastructure/parsers/source-metadata-parser.ts +16 -2
- package/skills/cascade-updater/SKILL.md +16 -3
- package/skills/codebase-mapper/SKILL.md +9 -9
- package/skills/codex-delegator/SKILL.md +5 -56
- package/skills/consistency-checker/SKILL.md +5 -9
- 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
- package/skills/doc-freshness-checker/SKILL.md +6 -6
- package/skills/engineering-perspective/SKILL.md +2 -58
- package/skills/engineering-perspective/references/domain-model.md +4 -135
- package/skills/implementation-readiness-checker/SKILL.md +18 -72
- package/skills/it-test-designer/SKILL.md +25 -161
- package/skills/it-test-designer/references/it-test-design-template.md +131 -0
- package/skills/it-test-logic-designer/SKILL.md +13 -388
- package/skills/it-test-logic-designer/references/controller-test-patterns.md +100 -0
- package/skills/it-test-logic-designer/references/repository-test-patterns.md +206 -0
- package/skills/it-test-logic-designer/references/usecase-test-patterns.md +87 -0
- package/skills/pointer-validator/SKILL.md +4 -4
- package/skills/scenario-test-designer/SKILL.md +4 -68
- package/skills/scenario-test-designer/references/scenario-test-design-template.md +41 -0
- package/skills/scenario-test-designer/references/scenario-test-plan-template.md +35 -0
- package/skills/scenario-test-logic-designer/SKILL.md +21 -304
- package/skills/scenario-test-logic-designer/references/msw-patterns.md +36 -0
- package/skills/scenario-test-logic-designer/references/playwright-patterns.md +237 -0
- package/skills/test-coverage-checker/SKILL.md +39 -121
- package/skills/test-coverage-checker/references/coverage-report-template.md +99 -0
- package/skills/uiux-designer/SKILL.md +27 -92
- package/skills/uiux-designer/references/data-testid-convention.md +38 -0
- package/skills/uiux-designer/references/uiux-design-template.md +105 -0
- package/skills/unit-test-designer/SKILL.md +5 -106
- package/skills/unit-test-designer/references/unit-test-design-template.md +127 -0
- package/skills/unit-test-logic-designer/SKILL.md +28 -250
- package/skills/unit-test-logic-designer/references/test-patterns.md +207 -0
|
@@ -29,17 +29,19 @@ TDD実装フェーズ
|
|
|
29
29
|
|
|
30
30
|
## 前提条件チェック
|
|
31
31
|
|
|
32
|
+
> **パス設定:** 以下のファイルパスはプレースホルダで記述。`{constructionDir}` / `{inceptionDir}` / `{unitsDir}` は `phasegate.config.json` のプロジェクト設定から解決される。
|
|
33
|
+
|
|
32
34
|
### 必須インプット(存在しなければ`[Question]`で提供を要求)
|
|
33
|
-
- **ユーザーストーリー** — `
|
|
35
|
+
- **ユーザーストーリー** — `{unitsDir}/{unit}.md` 内の受け入れ基準
|
|
34
36
|
- **少なくとも1つのテスト設計文書** — 以下のいずれか
|
|
35
|
-
- `
|
|
36
|
-
- `
|
|
37
|
-
- `
|
|
37
|
+
- `{constructionDir}/{unit}/unit_test_design.md`
|
|
38
|
+
- `{constructionDir}/{unit}/it_test_design.md`
|
|
39
|
+
- `{inceptionDir}/{unit}/{story_id}/scenario_test_design.md`
|
|
38
40
|
|
|
39
41
|
### 推奨インプット(あれば参照)
|
|
40
|
-
- **ドメインモデル** — `
|
|
41
|
-
- **論理設計** — `
|
|
42
|
-
- **ストーリー固有論理設計** — `
|
|
42
|
+
- **ドメインモデル** — `{constructionDir}/{unit}/domain_model.md`
|
|
43
|
+
- **論理設計** — `{constructionDir}/{unit}/logical_design.md`
|
|
44
|
+
- **ストーリー固有論理設計** — `{inceptionDir}/{unit}/{story_id}/logical_design.md`
|
|
43
45
|
- **全テスト設計文書** — 網羅性検証の精度向上
|
|
44
46
|
|
|
45
47
|
---
|
|
@@ -90,7 +92,7 @@ UIUX設計で定義された全画面がシナリオテストでカバーされ
|
|
|
90
92
|
| {画面名} | `/path` | SC-001 | ✅ カバー |
|
|
91
93
|
|
|
92
94
|
**チェック対象:**
|
|
93
|
-
- `
|
|
95
|
+
- `{constructionDir}/{unit}/uiux_design.md` が存在する場合のみ実行
|
|
94
96
|
- 画面一覧の全画面にシナリオテストが対応しているか
|
|
95
97
|
- data-testid一覧がシナリオテストロジックで使用されているか
|
|
96
98
|
|
|
@@ -100,10 +102,10 @@ UIUX設計で定義された全画面がシナリオテストでカバーされ
|
|
|
100
102
|
|
|
101
103
|
**このスキルは3フェーズで実行する。**
|
|
102
104
|
- **Phase 1(計画)**: Opus がスコープ・方針・不明点を整理し、人間の承認を得る
|
|
103
|
-
- **Phase 2(実行)**:
|
|
105
|
+
- **Phase 2(実行)**: プロジェクトのモデルルーティング設定に従い、実行モデルに委譲して成果物を生成する
|
|
104
106
|
- **Phase 3(レビュー)**: Opus が成果物を検証し、問題があれば直接修正する
|
|
105
107
|
|
|
106
|
-
**Phase 1/2/3
|
|
108
|
+
**Phase 1/2/3を同時に実行してはならない。**
|
|
107
109
|
|
|
108
110
|
---
|
|
109
111
|
|
|
@@ -113,7 +115,7 @@ UIUX設計で定義された全画面がシナリオテストでカバーされ
|
|
|
113
115
|
検証対象のスコープ・検証観点を整理し、人間の承認を得る。
|
|
114
116
|
|
|
115
117
|
### 出力ファイル
|
|
116
|
-
`
|
|
118
|
+
`{inceptionDir}/{unit}/test_coverage_plan.md`
|
|
117
119
|
|
|
118
120
|
### 計画ファイルの構成
|
|
119
121
|
|
|
@@ -197,105 +199,21 @@ UIUX設計で定義された全画面がシナリオテストでカバーされ
|
|
|
197
199
|
|
|
198
200
|
| 種別 | 配置先 |
|
|
199
201
|
|------|--------|
|
|
200
|
-
| 成果物 | `
|
|
202
|
+
| 成果物 | `{constructionDir}/{unit}/coverage_report.md` |
|
|
201
203
|
|
|
202
204
|
### coverage_report.md の構成
|
|
203
205
|
|
|
204
|
-
|
|
205
|
-
# テストカバレッジレポート: {Unit名}
|
|
206
|
-
|
|
207
|
-
## 1. サマリー
|
|
208
|
-
|
|
209
|
-
| 観点 | カバー項目数 | 未カバー項目数 | カバレッジ率 |
|
|
210
|
-
|------|------------|--------------|------------|
|
|
211
|
-
| 受け入れ基準 | X | Y | Z% |
|
|
212
|
-
| ドメインロジック | X | Y | Z% |
|
|
213
|
-
| UseCase | X | Y | Z% |
|
|
214
|
-
| API | X | Y | Z% |
|
|
215
|
-
| **総合** | X | Y | Z% |
|
|
216
|
-
|
|
217
|
-
### 判定結果
|
|
218
|
-
- ✅ 90%以上: テストロジック設計に進んで問題なし
|
|
219
|
-
- ⚠️ 70-90%: 未カバー項目の確認を推奨
|
|
220
|
-
- ❌ 70%未満: テストケース設計の追加が必要
|
|
221
|
-
|
|
222
|
-
## 2. 受け入れ基準カバレッジ詳細
|
|
223
|
-
|
|
224
|
-
| AC ID | 基準内容 | 対応テストケース | カバー状態 |
|
|
225
|
-
|-------|---------|----------------|----------|
|
|
226
|
-
| AC-1 | ... | SC-001, IT-UC-001 | ✅ |
|
|
227
|
-
| AC-2 | ... | なし | ❌ |
|
|
228
|
-
|
|
229
|
-
## 3. ドメインロジックカバレッジ詳細
|
|
230
|
-
|
|
231
|
-
### 集約
|
|
232
|
-
| 集約名 | 不変条件 | 対応テストケース | カバー状態 |
|
|
233
|
-
|-------|---------|----------------|----------|
|
|
234
|
-
|
|
235
|
-
### エンティティ
|
|
236
|
-
| エンティティ名 | ビジネスルール | 対応テストケース | カバー状態 |
|
|
237
|
-
|--------------|--------------|----------------|----------|
|
|
238
|
-
|
|
239
|
-
### 値オブジェクト
|
|
240
|
-
| 値オブジェクト名 | 制約 | 対応テストケース | カバー状態 |
|
|
241
|
-
|----------------|-----|----------------|----------|
|
|
242
|
-
|
|
243
|
-
## 4. UseCaseカバレッジ詳細
|
|
244
|
-
|
|
245
|
-
| UseCase名 | 正常系 | 異常系 | カバー状態 |
|
|
246
|
-
|----------|-------|-------|----------|
|
|
247
|
-
| CreateXxxUseCase | IT-UC-001 | IT-UC-002, IT-UC-003 | ✅ |
|
|
248
|
-
| UpdateXxxUseCase | なし | なし | ❌ |
|
|
249
|
-
|
|
250
|
-
## 5. APIカバレッジ詳細
|
|
251
|
-
|
|
252
|
-
| エンドポイント | 認証 | 認可 | バリデーション | カバー状態 |
|
|
253
|
-
|--------------|-----|-----|--------------|----------|
|
|
254
|
-
| POST /api/xxx | ✅ | ✅ | ✅ | ✅ |
|
|
255
|
-
| PUT /api/xxx | ❌ | ❌ | ❌ | ❌ |
|
|
206
|
+
詳細なテンプレートは [references/coverage-report-template.md](references/coverage-report-template.md) を参照。
|
|
256
207
|
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|------|------|----------------|
|
|
267
|
-
| Invoice.changeAmount() | 状態遷移テストなし | ユニットテスト |
|
|
268
|
-
|
|
269
|
-
### 優先度: 低(網羅性向上)
|
|
270
|
-
| 項目 | 理由 | 推奨テストレベル |
|
|
271
|
-
|------|------|----------------|
|
|
272
|
-
|
|
273
|
-
## 7. 推奨追加ケース
|
|
274
|
-
|
|
275
|
-
以下のテストケースを追加することを推奨します:
|
|
276
|
-
|
|
277
|
-
### ユニットテスト追加
|
|
278
|
-
- UT-XXX-001: {ケース説明}
|
|
279
|
-
|
|
280
|
-
### ITテスト追加
|
|
281
|
-
- IT-XXX-001: {ケース説明}
|
|
282
|
-
|
|
283
|
-
### シナリオテスト追加
|
|
284
|
-
- SC-XXX: {ケース説明}
|
|
285
|
-
|
|
286
|
-
## 8. 次のアクション
|
|
287
|
-
|
|
288
|
-
カバレッジ率に応じた推奨アクション:
|
|
289
|
-
|
|
290
|
-
- **90%以上の場合**: テストロジック設計フェーズに進んでください
|
|
291
|
-
- `unit-test-logic-designer` → `it-test-logic-designer` → `scenario-test-logic-designer`
|
|
292
|
-
|
|
293
|
-
- **70-90%の場合**: 未カバー項目を確認し、必要に応じてテストケースを追加してください
|
|
294
|
-
- 追加後、再度 `test-coverage-checker` を実行
|
|
295
|
-
|
|
296
|
-
- **70%未満の場合**: テストケース設計フェーズに戻り、漏れを補完してください
|
|
297
|
-
- `unit-test-designer` / `it-test-designer` / `scenario-test-designer` で追加設計
|
|
298
|
-
```
|
|
208
|
+
主要セクション:
|
|
209
|
+
1. **サマリー** — 観点別カバレッジ率と判定結果(90%以上=合格/70-90%=要確認/70%未満=不合格)
|
|
210
|
+
2. **受け入れ基準カバレッジ詳細** — 各ACとテストケースのマッピング
|
|
211
|
+
3. **ドメインロジックカバレッジ詳細** — 集約/エンティティ/値オブジェクトの不変条件カバー状況
|
|
212
|
+
4. **UseCaseカバレッジ詳細** — 正常系/異常系のカバー状況
|
|
213
|
+
5. **APIカバレッジ詳細** — 認証/認可/バリデーションのカバー状況
|
|
214
|
+
6. **未カバー項目一覧** — 優先度付き(高:AC関連 > 中:ドメイン > 低:網羅性)
|
|
215
|
+
7. **推奨追加ケース** — テストレベル別の追加提案
|
|
216
|
+
8. **次のアクション** — カバレッジ率に応じた推奨フロー
|
|
299
217
|
|
|
300
218
|
---
|
|
301
219
|
|
|
@@ -318,7 +236,7 @@ UIUX設計で定義された全画面がシナリオテストでカバーされ
|
|
|
318
236
|
|
|
319
237
|
### レビュー手順
|
|
320
238
|
1. Sonnetが出力したファイルを読み込む
|
|
321
|
-
2.
|
|
239
|
+
2. プロジェクトのレビュー基準に沿って検証する
|
|
322
240
|
3. **スキル固有レビュー観点**を検証する
|
|
323
241
|
4. 判定結果を出力する
|
|
324
242
|
|
|
@@ -372,12 +290,12 @@ UIUX設計で定義された全画面がシナリオテストでカバーされ
|
|
|
372
290
|
**以下のディレクトリを調査し、実装済みコンポーネントを特定する:**
|
|
373
291
|
|
|
374
292
|
```
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
293
|
+
{sourceDir}/{context}/domain/aggregates/ → Entity/集約
|
|
294
|
+
{sourceDir}/{context}/domain/value-objects/ → ValueObject
|
|
295
|
+
{sourceDir}/{context}/domain/policies/ → Policy
|
|
296
|
+
{sourceDir}/{context}/application/usecases/ → UseCase
|
|
297
|
+
{sourceDir}/{context}/infrastructure/repositories/ → Repository
|
|
298
|
+
{sourceDir}/{context}/interfaces/controllers/ → Controller
|
|
381
299
|
```
|
|
382
300
|
|
|
383
301
|
#### Step 2: 既存テストの確認
|
|
@@ -385,9 +303,9 @@ backend/src/{context}/interfaces/controllers/ → Controller
|
|
|
385
303
|
**以下のディレクトリを調査し、既存テストを特定する:**
|
|
386
304
|
|
|
387
305
|
```
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
306
|
+
{testDir}/unit/{context}/ → ユニットテスト
|
|
307
|
+
{testDir}/integration/{context}/ → ITテスト
|
|
308
|
+
{e2eDir}/{context}/ → E2Eテスト
|
|
391
309
|
```
|
|
392
310
|
|
|
393
311
|
#### Step 3: ギャップ分析
|
|
@@ -403,11 +321,11 @@ e2e/tests/{context}/ → E2Eテスト
|
|
|
403
321
|
|
|
404
322
|
| コンポーネント | 種類 | ファイルパス |
|
|
405
323
|
|--------------|------|------------|
|
|
406
|
-
| {Name} | Entity |
|
|
407
|
-
| {Name} | ValueObject |
|
|
408
|
-
| {Name} | UseCase |
|
|
409
|
-
| {Name} | Repository |
|
|
410
|
-
| {Name} | Controller |
|
|
324
|
+
| {Name} | Entity | {sourceDir}/{context}/domain/aggregates/{name}.ts |
|
|
325
|
+
| {Name} | ValueObject | {sourceDir}/{context}/domain/value-objects/{name}.ts |
|
|
326
|
+
| {Name} | UseCase | {sourceDir}/{context}/application/usecases/{name}.ts |
|
|
327
|
+
| {Name} | Repository | {sourceDir}/{context}/infrastructure/repositories/{name}.ts |
|
|
328
|
+
| {Name} | Controller | {sourceDir}/{context}/interfaces/controllers/{name}.ts |
|
|
411
329
|
|
|
412
330
|
### テスト状況マトリクス
|
|
413
331
|
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
# coverage_report.md テンプレート
|
|
2
|
+
|
|
3
|
+
出力先: `{constructionDir}/{unit}/coverage_report.md`
|
|
4
|
+
|
|
5
|
+
```markdown
|
|
6
|
+
# テストカバレッジレポート: {Unit名}
|
|
7
|
+
|
|
8
|
+
## 1. サマリー
|
|
9
|
+
|
|
10
|
+
| 観点 | カバー項目数 | 未カバー項目数 | カバレッジ率 |
|
|
11
|
+
|------|------------|--------------|------------|
|
|
12
|
+
| 受け入れ基準 | X | Y | Z% |
|
|
13
|
+
| ドメインロジック | X | Y | Z% |
|
|
14
|
+
| UseCase | X | Y | Z% |
|
|
15
|
+
| API | X | Y | Z% |
|
|
16
|
+
| **総合** | X | Y | Z% |
|
|
17
|
+
|
|
18
|
+
### 判定結果
|
|
19
|
+
- ✅ 90%以上: テストロジック設計に進んで問題なし
|
|
20
|
+
- ⚠️ 70-90%: 未カバー項目の確認を推奨
|
|
21
|
+
- ❌ 70%未満: テストケース設計の追加が必要
|
|
22
|
+
|
|
23
|
+
## 2. 受け入れ基準カバレッジ詳細
|
|
24
|
+
|
|
25
|
+
| AC ID | 基準内容 | 対応テストケース | カバー状態 |
|
|
26
|
+
|-------|---------|----------------|----------|
|
|
27
|
+
| AC-1 | ... | SC-001, IT-UC-001 | ✅ |
|
|
28
|
+
| AC-2 | ... | なし | ❌ |
|
|
29
|
+
|
|
30
|
+
## 3. ドメインロジックカバレッジ詳細
|
|
31
|
+
|
|
32
|
+
### 集約
|
|
33
|
+
| 集約名 | 不変条件 | 対応テストケース | カバー状態 |
|
|
34
|
+
|-------|---------|----------------|----------|
|
|
35
|
+
|
|
36
|
+
### エンティティ
|
|
37
|
+
| エンティティ名 | ビジネスルール | 対応テストケース | カバー状態 |
|
|
38
|
+
|--------------|--------------|----------------|----------|
|
|
39
|
+
|
|
40
|
+
### 値オブジェクト
|
|
41
|
+
| 値オブジェクト名 | 制約 | 対応テストケース | カバー状態 |
|
|
42
|
+
|----------------|-----|----------------|----------|
|
|
43
|
+
|
|
44
|
+
## 4. UseCaseカバレッジ詳細
|
|
45
|
+
|
|
46
|
+
| UseCase名 | 正常系 | 異常系 | カバー状態 |
|
|
47
|
+
|----------|-------|-------|----------|
|
|
48
|
+
| CreateXxxUseCase | IT-UC-001 | IT-UC-002, IT-UC-003 | ✅ |
|
|
49
|
+
| UpdateXxxUseCase | なし | なし | ❌ |
|
|
50
|
+
|
|
51
|
+
## 5. APIカバレッジ詳細
|
|
52
|
+
|
|
53
|
+
| エンドポイント | 認証 | 認可 | バリデーション | カバー状態 |
|
|
54
|
+
|--------------|-----|-----|--------------|----------|
|
|
55
|
+
| POST /api/xxx | ✅ | ✅ | ✅ | ✅ |
|
|
56
|
+
| PUT /api/xxx | ❌ | ❌ | ❌ | ❌ |
|
|
57
|
+
|
|
58
|
+
## 6. 未カバー項目一覧
|
|
59
|
+
|
|
60
|
+
### 優先度: 高(受け入れ基準に関連)
|
|
61
|
+
| 項目 | 理由 | 推奨テストレベル |
|
|
62
|
+
|------|------|----------------|
|
|
63
|
+
| AC-2 | テストケースなし | シナリオテスト |
|
|
64
|
+
|
|
65
|
+
### 優先度: 中(ドメインロジック)
|
|
66
|
+
| 項目 | 理由 | 推奨テストレベル |
|
|
67
|
+
|------|------|----------------|
|
|
68
|
+
| Invoice.changeAmount() | 状態遷移テストなし | ユニットテスト |
|
|
69
|
+
|
|
70
|
+
### 優先度: 低(網羅性向上)
|
|
71
|
+
| 項目 | 理由 | 推奨テストレベル |
|
|
72
|
+
|------|------|----------------|
|
|
73
|
+
|
|
74
|
+
## 7. 推奨追加ケース
|
|
75
|
+
|
|
76
|
+
以下のテストケースを追加することを推奨します:
|
|
77
|
+
|
|
78
|
+
### ユニットテスト追加
|
|
79
|
+
- UT-XXX-001: {ケース説明}
|
|
80
|
+
|
|
81
|
+
### ITテスト追加
|
|
82
|
+
- IT-XXX-001: {ケース説明}
|
|
83
|
+
|
|
84
|
+
### シナリオテスト追加
|
|
85
|
+
- SC-XXX: {ケース説明}
|
|
86
|
+
|
|
87
|
+
## 8. 次のアクション
|
|
88
|
+
|
|
89
|
+
カバレッジ率に応じた推奨アクション:
|
|
90
|
+
|
|
91
|
+
- **90%以上の場合**: テストロジック設計フェーズに進んでください
|
|
92
|
+
- `unit-test-logic-designer` → `it-test-logic-designer` → `scenario-test-logic-designer`
|
|
93
|
+
|
|
94
|
+
- **70-90%の場合**: 未カバー項目を確認し、必要に応じてテストケースを追加してください
|
|
95
|
+
- 追加後、再度 `test-coverage-checker` を実行
|
|
96
|
+
|
|
97
|
+
- **70%未満の場合**: テストケース設計フェーズに戻り、漏れを補完してください
|
|
98
|
+
- `unit-test-designer` / `it-test-designer` / `scenario-test-designer` で追加設計
|
|
99
|
+
```
|
|
@@ -177,107 +177,42 @@ UIUX設計のスコープ・画面構成方針・不明点を整理し、人間
|
|
|
177
177
|
|
|
178
178
|
### uiux_design.md の構成
|
|
179
179
|
|
|
180
|
-
|
|
181
|
-
# UIUX設計: {Unit名}
|
|
182
|
-
|
|
183
|
-
## 概要
|
|
184
|
-
このドキュメントは {Unit名} UnitのUIUX設計を定義する。
|
|
185
|
-
仕様変更のたびに更新される永続的な設計文書。
|
|
186
|
-
|
|
187
|
-
## 1. 画面一覧
|
|
188
|
-
|
|
189
|
-
| 画面名 | パス | 対象ストーリー | 状態 |
|
|
190
|
-
|--------|------|---------------|------|
|
|
191
|
-
| {画面名} | `/path/to/screen` | US-XXX | 実装済/設計中 |
|
|
192
|
-
|
|
193
|
-
---
|
|
194
|
-
|
|
195
|
-
## 2. 画面設計
|
|
196
|
-
|
|
197
|
-
### 2.1 {画面名}
|
|
198
|
-
|
|
199
|
-
#### 対象ストーリー
|
|
200
|
-
- US-XXX: {ストーリー概要}
|
|
201
|
-
|
|
202
|
-
#### レイアウト
|
|
203
|
-
```
|
|
204
|
-
┌────────────────────────┐
|
|
205
|
-
│ Header │
|
|
206
|
-
├────────────────────────┤
|
|
207
|
-
│ Main Content │
|
|
208
|
-
│ ┌───────┐ ┌───────┐ │
|
|
209
|
-
│ │ Card │ │ Card │ │
|
|
210
|
-
│ └───────┘ └───────┘ │
|
|
211
|
-
└────────────────────────┘
|
|
212
|
-
```
|
|
213
|
-
|
|
214
|
-
#### コンポーネント
|
|
215
|
-
| コンポーネント | Props | 状態 | イベント |
|
|
216
|
-
|-------------|-------|------|---------|
|
|
217
|
-
|
|
218
|
-
#### データバインディング
|
|
219
|
-
| 表示項目 | データソース | 形式 |
|
|
220
|
-
|---------|------------|------|
|
|
221
|
-
|
|
222
|
-
### 2.2 ...
|
|
223
|
-
|
|
224
|
-
---
|
|
225
|
-
|
|
226
|
-
## 3. 共通コンポーネント仕様
|
|
180
|
+
> テンプレート全文: [`references/uiux-design-template.md`](references/uiux-design-template.md)
|
|
227
181
|
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
-
|
|
236
|
-
|
|
237
|
-
#### イベント
|
|
238
|
-
| イベント | トリガー | 処理内容 |
|
|
239
|
-
|---------|---------|---------|
|
|
240
|
-
|
|
241
|
-
---
|
|
242
|
-
|
|
243
|
-
## 4. 画面遷移
|
|
244
|
-
|
|
245
|
-
```mermaid
|
|
246
|
-
graph LR
|
|
247
|
-
A[画面A] --> B[画面B]
|
|
248
|
-
```
|
|
182
|
+
主要セクション:
|
|
183
|
+
1. 画面一覧
|
|
184
|
+
2. 画面設計(レイアウト・コンポーネント・データバインディング)
|
|
185
|
+
3. 共通コンポーネント仕様
|
|
186
|
+
4. 画面遷移
|
|
187
|
+
5. エラーハンドリング
|
|
188
|
+
6. アクセシビリティ
|
|
189
|
+
7. data-testid一覧(命名規約は下記参照)
|
|
190
|
+
8. 変更履歴
|
|
249
191
|
|
|
250
192
|
---
|
|
251
193
|
|
|
252
|
-
##
|
|
194
|
+
## data-testid 命名規約(正規リファレンス)
|
|
253
195
|
|
|
254
|
-
|
|
255
|
-
|
|
196
|
+
> **このスキルが data-testid 命名規約の Single Source of Truth です。**
|
|
197
|
+
> 詳細: [`references/data-testid-convention.md`](references/data-testid-convention.md)
|
|
256
198
|
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
## 6. アクセシビリティ
|
|
260
|
-
|
|
261
|
-
- キーボードナビゲーション
|
|
262
|
-
- スクリーンリーダー対応
|
|
263
|
-
- 色のコントラスト比
|
|
264
|
-
|
|
265
|
-
---
|
|
199
|
+
### 命名パターン(概要)
|
|
266
200
|
|
|
267
|
-
|
|
201
|
+
| 要素タイプ | 命名パターン | 例 |
|
|
202
|
+
|----------|------------|---|
|
|
203
|
+
| ページコンテナ | `{page}-container` | `client-list-container` |
|
|
204
|
+
| テーブル行 | `{entity}-row-{id}` | `client-row-001` |
|
|
205
|
+
| ボタン | `{action}-{target}-button` | `submit-create-process-button` |
|
|
206
|
+
| 入力フィールド | `{field}-input` | `process-label-input` |
|
|
207
|
+
| ステータス表示 | `{entity}-{property}` | `process-status` |
|
|
208
|
+
| エラーメッセージ | `{field}-error` | `amount-error` |
|
|
268
209
|
|
|
269
|
-
|
|
270
|
-
|------|-------------|
|
|
210
|
+
### ロケーター優先順位
|
|
271
211
|
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
| 日付 | ストーリー | 変更内容 |
|
|
277
|
-
|------|-----------|---------|
|
|
278
|
-
| YYYY-MM-DD | US-XXX | 初版作成 |
|
|
279
|
-
| YYYY-MM-DD | US-YYY | {画面名}を追加 |
|
|
280
|
-
```
|
|
212
|
+
1. `data-testid` — 最優先(テスト専用属性)
|
|
213
|
+
2. `role` — セマンティックなロケーター
|
|
214
|
+
3. `text` — 表示テキスト
|
|
215
|
+
4. `css/xpath` — 最終手段(避ける)
|
|
281
216
|
|
|
282
217
|
---
|
|
283
218
|
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# data-testid 命名規約(正規リファレンス)
|
|
2
|
+
|
|
3
|
+
> **このファイルが data-testid 命名規約の Single Source of Truth です。**
|
|
4
|
+
> 他スキル(scenario-test-logic-designer 等)からはこのファイルを参照してください。
|
|
5
|
+
|
|
6
|
+
## 命名パターン
|
|
7
|
+
|
|
8
|
+
| 要素タイプ | 命名パターン | 例 |
|
|
9
|
+
|----------|------------|---|
|
|
10
|
+
| ページコンテナ | `{page}-container` | `client-list-container` |
|
|
11
|
+
| テーブル行 | `{entity}-row-{id}` | `client-row-001` |
|
|
12
|
+
| ボタン | `{action}-{target}-button` | `submit-create-process-button` |
|
|
13
|
+
| 入力フィールド | `{field}-input` | `process-label-input` |
|
|
14
|
+
| ステータス表示 | `{entity}-{property}` | `process-status` |
|
|
15
|
+
| エラーメッセージ | `{field}-error` | `amount-error` |
|
|
16
|
+
|
|
17
|
+
## ロケーター優先順位
|
|
18
|
+
|
|
19
|
+
1. `data-testid` — 最優先(テスト専用属性)
|
|
20
|
+
2. `role` — セマンティックなロケーター
|
|
21
|
+
3. `text` — 表示テキスト
|
|
22
|
+
4. `css/xpath` — 最終手段(避ける)
|
|
23
|
+
|
|
24
|
+
```typescript
|
|
25
|
+
// 推奨
|
|
26
|
+
await page.getByTestId('submit-button').click();
|
|
27
|
+
await page.getByRole('button', { name: '保存' }).click();
|
|
28
|
+
|
|
29
|
+
// 非推奨
|
|
30
|
+
await page.click('button.primary'); // CSSセレクタ
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## 命名の原則
|
|
34
|
+
|
|
35
|
+
- **kebab-case** を使用する(camelCase や snake_case は不可)
|
|
36
|
+
- **具体的で一意** — ページ内で重複しない名前をつける
|
|
37
|
+
- **実装詳細を含めない** — CSS クラス名やコンポーネント内部名を避ける
|
|
38
|
+
- **ユーザー視点** — 機能・役割ベースで命名する
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
# uiux_design.md テンプレート
|
|
2
|
+
|
|
3
|
+
```markdown
|
|
4
|
+
# UIUX設計: {Unit名}
|
|
5
|
+
|
|
6
|
+
## 概要
|
|
7
|
+
このドキュメントは {Unit名} UnitのUIUX設計を定義する。
|
|
8
|
+
仕様変更のたびに更新される永続的な設計文書。
|
|
9
|
+
|
|
10
|
+
## 1. 画面一覧
|
|
11
|
+
|
|
12
|
+
| 画面名 | パス | 対象ストーリー | 状態 |
|
|
13
|
+
|--------|------|---------------|------|
|
|
14
|
+
| {画面名} | `/path/to/screen` | US-XXX | 実装済/設計中 |
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## 2. 画面設計
|
|
19
|
+
|
|
20
|
+
### 2.1 {画面名}
|
|
21
|
+
|
|
22
|
+
#### 対象ストーリー
|
|
23
|
+
- US-XXX: {ストーリー概要}
|
|
24
|
+
|
|
25
|
+
#### レイアウト
|
|
26
|
+
```
|
|
27
|
+
┌────────────────────────┐
|
|
28
|
+
│ Header │
|
|
29
|
+
├────────────────────────┤
|
|
30
|
+
│ Main Content │
|
|
31
|
+
│ ┌───────┐ ┌───────┐ │
|
|
32
|
+
│ │ Card │ │ Card │ │
|
|
33
|
+
│ └───────┘ └───────┘ │
|
|
34
|
+
└────────────────────────┘
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
#### コンポーネント
|
|
38
|
+
| コンポーネント | Props | 状態 | イベント |
|
|
39
|
+
|-------------|-------|------|---------|
|
|
40
|
+
|
|
41
|
+
#### データバインディング
|
|
42
|
+
| 表示項目 | データソース | 形式 |
|
|
43
|
+
|---------|------------|------|
|
|
44
|
+
|
|
45
|
+
### 2.2 ...
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## 3. 共通コンポーネント仕様
|
|
50
|
+
|
|
51
|
+
### {コンポーネント名}
|
|
52
|
+
|
|
53
|
+
#### Props
|
|
54
|
+
| Prop名 | 型 | 必須 | 説明 |
|
|
55
|
+
|--------|-----|------|------|
|
|
56
|
+
|
|
57
|
+
#### 状態管理
|
|
58
|
+
- ...
|
|
59
|
+
|
|
60
|
+
#### イベント
|
|
61
|
+
| イベント | トリガー | 処理内容 |
|
|
62
|
+
|---------|---------|---------|
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
## 4. 画面遷移
|
|
67
|
+
|
|
68
|
+
```mermaid
|
|
69
|
+
graph LR
|
|
70
|
+
A[画面A] --> B[画面B]
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
## 5. エラーハンドリング
|
|
76
|
+
|
|
77
|
+
| エラー種別 | 表示内容 | UX |
|
|
78
|
+
|-----------|---------|-----|
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
## 6. アクセシビリティ
|
|
83
|
+
|
|
84
|
+
- キーボードナビゲーション
|
|
85
|
+
- スクリーンリーダー対応
|
|
86
|
+
- 色のコントラスト比
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
## 7. data-testid一覧
|
|
91
|
+
|
|
92
|
+
| 要素 | data-testid |
|
|
93
|
+
|------|-------------|
|
|
94
|
+
|
|
95
|
+
※ 命名規約は `skills/uiux-designer/references/data-testid-convention.md` を参照
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
## 変更履歴
|
|
100
|
+
|
|
101
|
+
| 日付 | ストーリー | 変更内容 |
|
|
102
|
+
|------|-----------|---------|
|
|
103
|
+
| YYYY-MM-DD | US-XXX | 初版作成 |
|
|
104
|
+
| YYYY-MM-DD | US-YYY | {画面名}を追加 |
|
|
105
|
+
```
|