takt 0.47.0 → 0.48.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.md +11 -0
- package/builtins/en/facets/instructions/fix-maintenance.md +1 -1
- package/builtins/en/facets/instructions/implement-maintenance.md +2 -2
- package/builtins/en/facets/instructions/plan-maintenance.md +3 -3
- package/builtins/en/facets/instructions/review-coding.md +6 -4
- package/builtins/en/facets/instructions/review-test.md +6 -1
- package/builtins/en/facets/knowledge/backend.md +2 -0
- package/builtins/en/facets/knowledge/cqrs-es.md +12 -0
- package/builtins/en/facets/knowledge/e2e-testing.md +13 -0
- package/builtins/en/facets/knowledge/existing-system.md +2 -2
- package/builtins/en/facets/knowledge/takt.md +11 -0
- package/builtins/en/facets/policies/existing-system-respect.md +17 -16
- package/builtins/en/facets/policies/testing.md +28 -0
- package/builtins/en/workflow-categories.yaml +1 -0
- package/builtins/en/workflows/backend-maintenance.yaml +540 -0
- package/builtins/en/workflows/draft.yaml +3 -1
- package/builtins/en/workflows/frontend-maintenance.yaml +1 -1
- package/builtins/en/workflows/frontend.yaml +1 -1
- package/builtins/ja/facets/instructions/fix-maintenance.md +1 -1
- package/builtins/ja/facets/instructions/implement-maintenance.md +2 -2
- package/builtins/ja/facets/instructions/plan-maintenance.md +3 -3
- package/builtins/ja/facets/instructions/review-coding.md +6 -4
- package/builtins/ja/facets/instructions/review-test.md +6 -1
- package/builtins/ja/facets/knowledge/backend.md +2 -0
- package/builtins/ja/facets/knowledge/cqrs-es.md +12 -0
- package/builtins/ja/facets/knowledge/e2e-testing.md +13 -0
- package/builtins/ja/facets/knowledge/existing-system.md +2 -2
- package/builtins/ja/facets/knowledge/takt.md +11 -0
- package/builtins/ja/facets/policies/existing-system-respect.md +17 -16
- package/builtins/ja/facets/policies/testing.md +28 -0
- package/builtins/ja/workflow-categories.yaml +1 -0
- package/builtins/ja/workflows/backend-maintenance.yaml +540 -0
- package/builtins/ja/workflows/draft.yaml +3 -1
- package/builtins/ja/workflows/frontend-maintenance.yaml +1 -1
- package/builtins/ja/workflows/frontend.yaml +1 -1
- package/dist/agents/decompose-task-usecase.d.ts +3 -1
- package/dist/agents/decompose-task-usecase.d.ts.map +1 -1
- package/dist/agents/decompose-task-usecase.js +2 -2
- package/dist/agents/decompose-task-usecase.js.map +1 -1
- package/dist/agents/runner.js +4 -4
- package/dist/agents/runner.js.map +1 -1
- package/dist/agents/structured-caller/capability-aware-structured-caller.d.ts +2 -2
- package/dist/agents/structured-caller/capability-aware-structured-caller.d.ts.map +1 -1
- package/dist/agents/structured-caller/capability-aware-structured-caller.js.map +1 -1
- package/dist/agents/structured-caller/contracts.d.ts +2 -2
- package/dist/agents/structured-caller/contracts.d.ts.map +1 -1
- package/dist/agents/structured-caller/default-structured-caller.d.ts +2 -2
- package/dist/agents/structured-caller/default-structured-caller.d.ts.map +1 -1
- package/dist/agents/structured-caller/default-structured-caller.js.map +1 -1
- package/dist/agents/structured-caller/prompt-based-structured-caller.d.ts +2 -2
- package/dist/agents/structured-caller/prompt-based-structured-caller.d.ts.map +1 -1
- package/dist/agents/structured-caller/prompt-based-structured-caller.js +2 -2
- package/dist/agents/structured-caller/prompt-based-structured-caller.js.map +1 -1
- package/dist/agents/team-leader-structured-output.d.ts +2 -2
- package/dist/agents/team-leader-structured-output.d.ts.map +1 -1
- package/dist/agents/team-leader-structured-output.js +42 -9
- package/dist/agents/team-leader-structured-output.js.map +1 -1
- package/dist/commands/repertoire/add.d.ts.map +1 -1
- package/dist/commands/repertoire/add.js +2 -3
- package/dist/commands/repertoire/add.js.map +1 -1
- package/dist/core/models/config-schemas.d.ts +26 -0
- package/dist/core/models/config-schemas.d.ts.map +1 -1
- package/dist/core/models/part.d.ts +7 -0
- package/dist/core/models/part.d.ts.map +1 -1
- package/dist/core/models/schema-base.d.ts +10 -0
- package/dist/core/models/schema-base.d.ts.map +1 -1
- package/dist/core/models/schema-base.js +2 -0
- package/dist/core/models/schema-base.js.map +1 -1
- package/dist/core/models/workflow-provider-options.d.ts +2 -0
- package/dist/core/models/workflow-provider-options.d.ts.map +1 -1
- package/dist/core/models/workflow-provider-options.js.map +1 -1
- package/dist/core/models/workflow-schemas.d.ts +66 -0
- package/dist/core/models/workflow-schemas.d.ts.map +1 -1
- package/dist/core/models/workflow-schemas.js +2 -0
- package/dist/core/models/workflow-schemas.js.map +1 -1
- package/dist/core/workflow/engine/TeamLeaderRunner.d.ts.map +1 -1
- package/dist/core/workflow/engine/TeamLeaderRunner.js +6 -6
- package/dist/core/workflow/engine/TeamLeaderRunner.js.map +1 -1
- package/dist/core/workflow/engine/engine-provider-options.d.ts +1 -0
- package/dist/core/workflow/engine/engine-provider-options.d.ts.map +1 -1
- package/dist/core/workflow/engine/engine-provider-options.js +27 -0
- package/dist/core/workflow/engine/engine-provider-options.js.map +1 -1
- package/dist/core/workflow/engine/team-leader-common.d.ts +1 -0
- package/dist/core/workflow/engine/team-leader-common.d.ts.map +1 -1
- package/dist/core/workflow/engine/team-leader-common.js +13 -1
- package/dist/core/workflow/engine/team-leader-common.js.map +1 -1
- package/dist/core/workflow/observability/workflowSpans.d.ts.map +1 -1
- package/dist/core/workflow/observability/workflowSpans.js +2 -1
- package/dist/core/workflow/observability/workflowSpans.js.map +1 -1
- package/dist/core/workflow/promotion/promotion-runtime.d.ts.map +1 -1
- package/dist/core/workflow/promotion/promotion-runtime.js +3 -2
- package/dist/core/workflow/promotion/promotion-runtime.js.map +1 -1
- package/dist/core/workflow/providerOptionsRedaction.d.ts +4 -0
- package/dist/core/workflow/providerOptionsRedaction.d.ts.map +1 -0
- package/dist/core/workflow/providerOptionsRedaction.js +18 -0
- package/dist/core/workflow/providerOptionsRedaction.js.map +1 -0
- package/dist/features/interactive/clipboardImage.js +2 -2
- package/dist/features/interactive/clipboardImage.js.map +1 -1
- package/dist/features/tasks/execute/sessionLoggerRecordFactory.d.ts.map +1 -1
- package/dist/features/tasks/execute/sessionLoggerRecordFactory.js +2 -1
- package/dist/features/tasks/execute/sessionLoggerRecordFactory.js.map +1 -1
- package/dist/features/tasks/execute/workflowExecutionBootstrap.d.ts.map +1 -1
- package/dist/features/tasks/execute/workflowExecutionBootstrap.js +4 -0
- package/dist/features/tasks/execute/workflowExecutionBootstrap.js.map +1 -1
- package/dist/features/tasks/execute/workflowExecutionEvents.d.ts.map +1 -1
- package/dist/features/tasks/execute/workflowExecutionEvents.js +9 -0
- package/dist/features/tasks/execute/workflowExecutionEvents.js.map +1 -1
- package/dist/infra/claude/client.d.ts.map +1 -1
- package/dist/infra/claude/client.js +1 -0
- package/dist/infra/claude/client.js.map +1 -1
- package/dist/infra/claude/mcp-config.d.ts.map +1 -1
- package/dist/infra/claude/mcp-config.js +2 -2
- package/dist/infra/claude/mcp-config.js.map +1 -1
- package/dist/infra/claude/options-builder.d.ts.map +1 -1
- package/dist/infra/claude/options-builder.js +3 -0
- package/dist/infra/claude/options-builder.js.map +1 -1
- package/dist/infra/claude/types.d.ts +4 -0
- package/dist/infra/claude/types.d.ts.map +1 -1
- package/dist/infra/claude-headless/headless-spawn.d.ts.map +1 -1
- package/dist/infra/claude-headless/headless-spawn.js +3 -0
- package/dist/infra/claude-headless/headless-spawn.js.map +1 -1
- package/dist/infra/claude-headless/types.d.ts +2 -0
- package/dist/infra/claude-headless/types.d.ts.map +1 -1
- package/dist/infra/codex/client.d.ts.map +1 -1
- package/dist/infra/codex/client.js +1 -0
- package/dist/infra/codex/client.js.map +1 -1
- package/dist/infra/codex/types.d.ts +2 -0
- package/dist/infra/codex/types.d.ts.map +1 -1
- package/dist/infra/config/configNormalizers.d.ts +3 -2
- package/dist/infra/config/configNormalizers.d.ts.map +1 -1
- package/dist/infra/config/configNormalizers.js +19 -9
- package/dist/infra/config/configNormalizers.js.map +1 -1
- package/dist/infra/config/global/globalConfigCore.d.ts.map +1 -1
- package/dist/infra/config/global/globalConfigCore.js +2 -1
- package/dist/infra/config/global/globalConfigCore.js.map +1 -1
- package/dist/infra/config/loaders/workflowPreview.d.ts.map +1 -1
- package/dist/infra/config/loaders/workflowPreview.js +21 -9
- package/dist/infra/config/loaders/workflowPreview.js.map +1 -1
- package/dist/infra/config/loaders/workflowProviderOptionsResolver.js +8 -2
- package/dist/infra/config/loaders/workflowProviderOptionsResolver.js.map +1 -1
- package/dist/infra/config/loaders/workflowStepFeaturesNormalizer.d.ts.map +1 -1
- package/dist/infra/config/loaders/workflowStepFeaturesNormalizer.js +32 -1
- package/dist/infra/config/loaders/workflowStepFeaturesNormalizer.js.map +1 -1
- package/dist/infra/config/project/projectConfig.d.ts.map +1 -1
- package/dist/infra/config/project/projectConfig.js +12 -4
- package/dist/infra/config/project/projectConfig.js.map +1 -1
- package/dist/infra/config/providerOptions.d.ts +12 -5
- package/dist/infra/config/providerOptions.d.ts.map +1 -1
- package/dist/infra/config/providerOptions.js +112 -10
- package/dist/infra/config/providerOptions.js.map +1 -1
- package/dist/infra/config/providerOptionsContract.d.ts +4 -3
- package/dist/infra/config/providerOptionsContract.d.ts.map +1 -1
- package/dist/infra/config/providerOptionsContract.js +11 -0
- package/dist/infra/config/providerOptionsContract.js.map +1 -1
- package/dist/infra/config/providerReference.d.ts +3 -2
- package/dist/infra/config/providerReference.d.ts.map +1 -1
- package/dist/infra/config/providerReference.js +6 -6
- package/dist/infra/config/providerReference.js.map +1 -1
- package/dist/infra/config/resolveConfigValue.d.ts.map +1 -1
- package/dist/infra/config/resolveConfigValue.js +95 -25
- package/dist/infra/config/resolveConfigValue.js.map +1 -1
- package/dist/infra/config/traced/tracedConfigLoader.d.ts +3 -2
- package/dist/infra/config/traced/tracedConfigLoader.d.ts.map +1 -1
- package/dist/infra/config/traced/tracedConfigLoader.js +28 -4
- package/dist/infra/config/traced/tracedConfigLoader.js.map +1 -1
- package/dist/infra/config/traced/tracedConfigRuntimeBridge.d.ts.map +1 -1
- package/dist/infra/config/traced/tracedConfigRuntimeBridge.js +2 -2
- package/dist/infra/config/traced/tracedConfigRuntimeBridge.js.map +1 -1
- package/dist/infra/copilot/client.d.ts.map +1 -1
- package/dist/infra/copilot/client.js +3 -3
- package/dist/infra/copilot/client.js.map +1 -1
- package/dist/infra/providers/claude-headless.d.ts +1 -1
- package/dist/infra/providers/claude-headless.d.ts.map +1 -1
- package/dist/infra/providers/claude-headless.js +2 -1
- package/dist/infra/providers/claude-headless.js.map +1 -1
- package/dist/infra/providers/claude-terminal.d.ts +1 -1
- package/dist/infra/providers/claude-terminal.d.ts.map +1 -1
- package/dist/infra/providers/claude-terminal.js +1 -1
- package/dist/infra/providers/claude-terminal.js.map +1 -1
- package/dist/infra/providers/claude.d.ts +1 -1
- package/dist/infra/providers/claude.d.ts.map +1 -1
- package/dist/infra/providers/claude.js +2 -1
- package/dist/infra/providers/claude.js.map +1 -1
- package/dist/infra/providers/codex.d.ts +1 -1
- package/dist/infra/providers/codex.d.ts.map +1 -1
- package/dist/infra/providers/codex.js +2 -1
- package/dist/infra/providers/codex.js.map +1 -1
- package/dist/infra/providers/copilot.d.ts +1 -1
- package/dist/infra/providers/copilot.d.ts.map +1 -1
- package/dist/infra/providers/copilot.js +1 -1
- package/dist/infra/providers/copilot.js.map +1 -1
- package/dist/infra/providers/cursor.d.ts +1 -1
- package/dist/infra/providers/cursor.d.ts.map +1 -1
- package/dist/infra/providers/cursor.js +1 -1
- package/dist/infra/providers/cursor.js.map +1 -1
- package/dist/infra/providers/kiro.d.ts +1 -1
- package/dist/infra/providers/kiro.d.ts.map +1 -1
- package/dist/infra/providers/kiro.js +1 -1
- package/dist/infra/providers/kiro.js.map +1 -1
- package/dist/infra/providers/mock.d.ts +1 -1
- package/dist/infra/providers/mock.d.ts.map +1 -1
- package/dist/infra/providers/mock.js +1 -1
- package/dist/infra/providers/mock.js.map +1 -1
- package/dist/infra/providers/opencode.d.ts +1 -1
- package/dist/infra/providers/opencode.d.ts.map +1 -1
- package/dist/infra/providers/opencode.js +4 -1
- package/dist/infra/providers/opencode.js.map +1 -1
- package/dist/infra/providers/types.d.ts +1 -1
- package/dist/infra/providers/types.d.ts.map +1 -1
- package/dist/infra/task/projectLocalTaktSync.d.ts +1 -0
- package/dist/infra/task/projectLocalTaktSync.d.ts.map +1 -1
- package/dist/infra/task/projectLocalTaktSync.js +40 -0
- package/dist/infra/task/projectLocalTaktSync.js.map +1 -1
- package/dist/shared/team-leader-inspect-tools.d.ts +5 -0
- package/dist/shared/team-leader-inspect-tools.d.ts.map +1 -0
- package/dist/shared/team-leader-inspect-tools.js +8 -0
- package/dist/shared/team-leader-inspect-tools.js.map +1 -0
- package/dist/shared/utils/index.d.ts +1 -0
- package/dist/shared/utils/index.d.ts.map +1 -1
- package/dist/shared/utils/index.js +1 -0
- package/dist/shared/utils/index.js.map +1 -1
- package/dist/shared/utils/tmpdir.d.ts +2 -0
- package/dist/shared/utils/tmpdir.d.ts.map +1 -0
- package/dist/shared/utils/tmpdir.js +8 -0
- package/dist/shared/utils/tmpdir.js.map +1 -0
- package/package.json +10 -5
|
@@ -28,6 +28,18 @@ E2Eテストはユーザーから見える振る舞いを観測する。設定
|
|
|
28
28
|
| 設定や内部状態だけを確認してユーザー-visible な結果を見ていない | REJECT |
|
|
29
29
|
| 実外部環境に依存する確認しかなく、主要境界の deterministic test がない | 警告またはREJECT |
|
|
30
30
|
|
|
31
|
+
## 否定契約の観測
|
|
32
|
+
|
|
33
|
+
E2E で権限、実行時に選択される能力・バックエンド・オプション、設定、拒否、隔離を確認する場合、出力全体への文字列否定は証拠として弱い。
|
|
34
|
+
対象の行、イベント、レコード、フィールド、呼び出し引数などを取り出し、禁止値ごとに検査することで、順序、大小文字、空白、区切り、部分漏れによる見逃しを防ぐ。
|
|
35
|
+
|
|
36
|
+
| 基準 | 判定 |
|
|
37
|
+
|------|------|
|
|
38
|
+
| 「特定の一文が出ていない」だけで拒否・非継承・隔離を検証した扱いにする | REJECT |
|
|
39
|
+
| 許可された値の表示だけを確認し、禁止値が末端処理へ渡っていないことを見ていない | REJECT |
|
|
40
|
+
| 観測単位を抽出して、禁止値・拒否値・非継承値が含まれないことを値単位で確認する | OK |
|
|
41
|
+
| 同じシナリオで許可側と拒否側、継承側と非継承側を比較できる | OK |
|
|
42
|
+
|
|
31
43
|
## UXルートの洗い出し
|
|
32
44
|
|
|
33
45
|
E2Eテストの網羅性はユーザー操作ルートの洗い出しに依存する。ドキュメントではなくコードから起点を特定する。
|
|
@@ -77,6 +89,7 @@ E2Eテストは非決定的な要因で失敗しやすい。
|
|
|
77
89
|
| プロセスリーク | タイムアウトと強制終了を設定する |
|
|
78
90
|
| 環境依存 | テスト実行に必要な前提条件を明示的にセットアップする |
|
|
79
91
|
| 実行順序依存 | 各テストが独立して実行できるよう、状態を初期化する |
|
|
92
|
+
| 既存規約から外れた timeout/cleanup | 同種 E2E の既存規約に合わせる |
|
|
80
93
|
|
|
81
94
|
```typescript
|
|
82
95
|
// NG - 固定 sleep でタイミングを合わせる
|
|
@@ -40,9 +40,9 @@
|
|
|
40
40
|
|
|
41
41
|
| 状況 | 判断 |
|
|
42
42
|
|------|------|
|
|
43
|
-
|
|
|
43
|
+
| コンポーネント分割した方がきれいだが、要求と因果関係がない | 変更しない |
|
|
44
44
|
| Props 型名や配置を一般作法へ寄せたいだけ | 変更しない |
|
|
45
|
-
| 既存構造のままだと要求を満たせない |
|
|
45
|
+
| 既存構造のままだと要求を満たせない | 因果関係のある範囲で変更する |
|
|
46
46
|
| 既存構造が不具合原因そのもの | 理由と影響範囲を明記して変更する |
|
|
47
47
|
|
|
48
48
|
## コメントとテストの意味
|
|
@@ -77,6 +77,17 @@ ProviderAgent.call(prompt, options) → AgentResponse
|
|
|
77
77
|
4. config.yaml(プロバイダー一致時)
|
|
78
78
|
5. プロバイダーデフォルト
|
|
79
79
|
|
|
80
|
+
## 補助入口の契約
|
|
81
|
+
|
|
82
|
+
TAKT では workflow 実行経路だけでなく、preview、doctor、workflow summary、validation、report も利用者に見える契約入口である。設定値、provider、model、tool、権限、出力契約を表示・検証する補助入口は、runtime と同じ正規化済み入力、resolver、override 順を使う。
|
|
83
|
+
|
|
84
|
+
| 基準 | 判定 |
|
|
85
|
+
|------|------|
|
|
86
|
+
| runtime と preview が別々の入力で provider、model、tool、権限を解決している | REJECT |
|
|
87
|
+
| preview に値が表示されるだけで、runtime と同じ override 条件を検証していない | REJECT |
|
|
88
|
+
| doctor や validation が正常とする設定が runtime では別条件により失敗する | 警告 |
|
|
89
|
+
| runtime と補助入口が同じ正規化済み入力または同じ resolver を共有している | OK |
|
|
90
|
+
|
|
80
91
|
## ファセット組み立て
|
|
81
92
|
|
|
82
93
|
faceted-prompting モジュールは TAKT 本体に依存しない独立モジュール。
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
# 既存システム尊重ポリシー
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
リリース済みまたは運用中の既存システムでは、要求と因果関係のある変更を行い、因果関係のない既存契約を変えない。
|
|
4
4
|
|
|
5
5
|
## 原則
|
|
6
6
|
|
|
7
7
|
| 原則 | 基準 |
|
|
8
8
|
|------|------|
|
|
9
9
|
| 既存契約優先 | 既存利用者、テスト、運用が依存する契約を保持する |
|
|
10
|
-
|
|
|
10
|
+
| 因果差分 | 要求と因果関係のある変更を行い、因果関係のない変更を排除する |
|
|
11
11
|
| 近接性より必要性 | 変更箇所に近いことを変更理由にしない |
|
|
12
|
-
| 既存構造尊重 | ファイル配置、型名、公開API
|
|
12
|
+
| 既存構造尊重 | ファイル配置、型名、公開API、責務境界を要求と因果関係なく変えない |
|
|
13
13
|
| コメント保全 | 意図、制約、算出根拠を示すコメントを削除しない |
|
|
14
14
|
| テストの契約性 | 既存テストが検証する挙動を軽微扱いしない |
|
|
15
|
-
|
|
|
16
|
-
|
|
|
15
|
+
| 改善の因果判定 | 作法改善・リファクタは要求と因果関係がある場合に実施する。因果関係のない改善は混ぜない |
|
|
16
|
+
| 無関係保護優先 | 要求と因果関係のない既存挙動・構造の保持を優先する |
|
|
17
17
|
|
|
18
18
|
## 変更境界
|
|
19
19
|
|
|
@@ -22,21 +22,22 @@
|
|
|
22
22
|
| 要求を満たすために不可欠な変更 | OK |
|
|
23
23
|
| 不可欠な変更を接続するための呼び出し元更新 | OK |
|
|
24
24
|
| 不可欠な変更の副作用を止めるための局所修正 | OK |
|
|
25
|
+
| 要求と因果関係のある構造変更・リファクタ | OK |
|
|
25
26
|
| 変更ファイル内という理由だけの整理 | REJECT |
|
|
26
|
-
|
|
|
27
|
-
|
|
|
28
|
-
|
|
|
27
|
+
| 要求と因果関係のないファイル移動、型名変更、公開API変更 | REJECT |
|
|
28
|
+
| フレームワーク作法の改善を混ぜる(要求と因果関係がない場合) | REJECT |
|
|
29
|
+
| 要求と因果関係のない改善を同時に入れる | REJECT |
|
|
29
30
|
|
|
30
31
|
## 他ポリシーとの優先順位
|
|
31
32
|
|
|
32
|
-
既存システムの保守では、coding、frontend、design-fidelity、testing
|
|
33
|
+
既存システムの保守では、coding、frontend、design-fidelity、testing などの一般的な品質基準を、要求と因果関係のある範囲で適用する。
|
|
33
34
|
|
|
34
35
|
| 衝突 | 判定 |
|
|
35
36
|
|------|------|
|
|
36
|
-
|
|
|
37
|
-
|
|
|
37
|
+
| 一般品質基準は改善を推奨するが、要求と因果関係がない | 変更しない |
|
|
38
|
+
| 既存構造は理想的でないが、要求と因果関係がない | 既存構造を維持する |
|
|
38
39
|
| 品質基準を満たすには既存契約変更が必要 | ユーザーの明示要求または計画上の根拠が必要 |
|
|
39
|
-
|
|
|
40
|
+
| 要求と因果関係のある構造変更 | 理由と影響範囲を明記して実施する |
|
|
40
41
|
|
|
41
42
|
## 観測可能契約
|
|
42
43
|
|
|
@@ -44,11 +45,11 @@ UI、アクセシビリティ、テスト、ログ、API、型、ファイル配
|
|
|
44
45
|
|
|
45
46
|
| 契約 | 変更条件 |
|
|
46
47
|
|------|----------|
|
|
47
|
-
| UI文言、アクセシビリティ名、role/state |
|
|
48
|
-
| hook の戻り値、Props 型名、公開関数名 |
|
|
48
|
+
| UI文言、アクセシビリティ名、role/state | 要求と因果関係がある場合のみ変更する |
|
|
49
|
+
| hook の戻り値、Props 型名、公開関数名 | 要求と因果関係のある呼び出し元更新に不可欠な場合のみ変更する |
|
|
49
50
|
| テスト期待値 | 仕様変更が要求されている場合のみ変更する |
|
|
50
51
|
| コメント | 誤りを直す場合、またはコードで完全に不要になった場合のみ変更する |
|
|
51
|
-
| ファイル配置 |
|
|
52
|
+
| ファイル配置 | 要求と因果関係がある場合のみ変更する |
|
|
52
53
|
|
|
53
54
|
## テスト変更
|
|
54
55
|
|
|
@@ -70,4 +71,4 @@ UI、アクセシビリティ、テスト、ログ、API、型、ファイル配
|
|
|
70
71
|
|------|------|
|
|
71
72
|
| 必須変更 | これがないと要求を満たせない |
|
|
72
73
|
| 関連変更 | 必須変更を接続、検証、整合させるために必要 |
|
|
73
|
-
| 不要変更 |
|
|
74
|
+
| 不要変更 | 要求との因果関係がなく、読みやすさ、作法、ついで整理、将来拡張だけが理由 |
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
| 独立性 | 他のテストや実行順序に依存しない |
|
|
13
13
|
| 再現性 | 時間やランダム性に依存せず、毎回同じ結果 |
|
|
14
14
|
| 非実行資産を固定しない | 実行時の振る舞いを定義しない本文や章構成を CI の失敗条件にしない |
|
|
15
|
+
| 否定契約を観測単位で検証 | 禁止・拒否・非継承・非対応は、完全一致文字列の不在だけで合格にしない |
|
|
15
16
|
|
|
16
17
|
## カバレッジ基準
|
|
17
18
|
|
|
@@ -113,6 +114,33 @@ test('ユーザーが存在しない場合、NotFoundエラーを返す', async
|
|
|
113
114
|
| 変更対象関数の return / throw / catch / early return を列挙せず、代表的な失敗経路を取りこぼしている | REJECT |
|
|
114
115
|
| 同じ責務の既存分岐にも、戻り値・副作用・イベント・エラー分類の契約を検証するテストがある | OK |
|
|
115
116
|
|
|
117
|
+
## 契約テストの十分性
|
|
118
|
+
|
|
119
|
+
新しい設定値、実行時に選択される能力・バックエンド・オプション、権限、出力契約を追加・変更した場合、テストは値の存在ではなく、契約を変える分岐条件を踏んでいることを確認する。
|
|
120
|
+
|
|
121
|
+
| 基準 | 判定 |
|
|
122
|
+
|------|------|
|
|
123
|
+
| 新しいオプションの正常系だけを確認している | 警告 |
|
|
124
|
+
| 未設定、設定、不正値、継承、非継承、override、非対応対象のうち、要件に関係する分岐を検証していない | REJECT |
|
|
125
|
+
| 利用者向けの表示・検証用入口で、主実行経路と同じ契約になることを確認していない | REJECT |
|
|
126
|
+
| 値の表示だけを確認し、実行時に使われる解決入力と一致するか検証していない | REJECT |
|
|
127
|
+
| 漏れ検証を完全一致文字列だけで行い、順序、大小文字、空白、部分漏れの違いを見逃す | REJECT |
|
|
128
|
+
| 空文字列、空白だけの文字列、空配列、大小文字違いなど、設定境界で正規化対象になり得る値を検証していない | 警告。契約の主要分岐なら REJECT |
|
|
129
|
+
| 入口から末端呼び出しまで、正常系、拒否系、非継承系を確認している | OK |
|
|
130
|
+
|
|
131
|
+
## 否定・非継承・拒否のテスト
|
|
132
|
+
|
|
133
|
+
禁止、拒否、非継承、非対応、隔離を検証するテストは、出力全体に特定の文字列が存在しないことだけを根拠にしない。
|
|
134
|
+
観測対象の行、レコード、フィールド、呼び出し引数などを抽出し、禁止値が順序、大小文字、空白、区切り、部分一致の形でも漏れていないことを検証する。
|
|
135
|
+
|
|
136
|
+
| 基準 | 判定 |
|
|
137
|
+
|------|------|
|
|
138
|
+
| 完全一致文字列の不在だけで、禁止値や非継承値が使われていないと判断している | REJECT |
|
|
139
|
+
| 許可値の存在確認だけで、拒否値・禁止値・非継承値が末端に渡らないことを検証していない | REJECT |
|
|
140
|
+
| 出力行、イベント、レコード、フィールド、呼び出し引数などの観測単位を抽出し、禁止値ごとに検証している | OK |
|
|
141
|
+
| 許可側と拒否側、継承側と非継承側を対にして検証している | OK |
|
|
142
|
+
| 新しい E2E の timeout、cleanup、強制終了の扱いが既存の同種テスト規約と一致していない | 警告。プロセスリークやフレークの原因になる場合は REJECT |
|
|
143
|
+
|
|
116
144
|
## パーサー・設定境界のテスト
|
|
117
145
|
|
|
118
146
|
外部ファイル、設定、YAML/JSON、CLI入力などを読む境界では、型定義どおりの入力だけを検証しても十分ではない。
|