45395 - シコウサクゴ -

AIとの設計対話術:閾値・方針をどう決めるか

2026-04-02
AI駆動開発
AI駆動開発
Claude Code
設計対話
意思決定
ADR
パラメータ管理
Last updated:2026-04-02
16 Minutes
3045 Words

概要

AIに「最適な閾値を教えて」と聞いても、有用な答えは返ってこない。AIはあなたの本番環境のデータを知らないし、リスク許容度も知らない。

108セッション・262件の施策管理メッセージを分析した結果、AIとの設計対話には明確なパターンがあることがわかった。効果的な対話は「3案提示 → 制約で絞り込み → 記録」の3ステップに収束する。本記事では、AIとの設計対話で繰り返し現れた意思決定パターンと、それを再現可能にする手法を記録する。


AIとの設計対話で観察された4つのパターン

パターン1: 「閾値を何にするか → メリデメ教えて → 採用」

最も頻度の高いパターン。具体的な数値の決定で使う。

1
人間: 「トレンド強度指標の閾値を何にするか。メリデメを教えてください」
2
AI: 「案1: 25(標準値)→ 判定結果多め、誤検知のリスク
3
案2: 30(厳格)→ 判定結果少なめ、高精度
4
案3: パラメータ化 → 柔軟だが複雑性増加」
5
人間: 「→案2で」
6
AI: 「了解。PARAMETER.mdに記録します」

ポイントは「いくつにすべきか」ではなく「選択肢とトレードオフを教えて」と聞くことだ。AIは最適値を知らないが、各値のトレードオフは説明できる。

パターン2: 「複数の改善軸から選ぶ」

改善の方向性が複数ある場合の意思決定パターン。

1
人間: 「判定精度を上げたい。スコア閾値調整・バッチ乗数・両方、どれが効果的?」
2
AI: 「スコア閾値調整: 判定結果の数に直接影響。閾値を上げると誤検知減少だが機会損失
3
バッチ乗数: 判定結果の数は変えず、高確信時のリターン増加。リスクも増加
4
両方: 効果は最大だが、2変数同時変更で原因特定が困難に」
5
人間: 「→両方。ただし段階的に。まずスコア閾値を調整して効果測定、次にバッチ乗数」

「両方」を選ぶこと自体は問題ない。重要なのは「段階的に」という制約を自分で付け加えた点だ。AIは選択肢を並べるが、実装順序の判断は人間がする。

パターン3: 「論理演算の設計選択」

フィルター条件の組み合わせ方を決めるパターン。

1
人間: 「フェーズ判定でトレンド強度指標と変動幅指標のフィルターを組み合わせます。OR vs AND、どちらが好みですか?」
2
AI: 「OR: いずれかの条件を満たせば通過。判定結果の数を維持しやすいが精度は下がる
3
AND: 両方の条件を満たす場合のみ通過。精度は上がるが判定結果の数が大幅減少
4
推奨: まずANDで検証し、判定結果が少なすぎればORに切り替え」
5
人間: 「ANDで。判定結果の数よりも精度優先」

パターン4: 「技術方針の二択」

実装アプローチそのものを決める大きな判断。

1
人間: 「予測値データ取得の方針を決めたい。本当にデータ処理エンジンA固有の予測値を外部APIで取るか、
2
それともSIMファイルから実測値を計算して代替しますか?」
3
AI: 「外部API(予測値):
4
メリット: 将来期待を反映、外部データソースのコンセンサス
5
デメリット: API依存(障害リスク)、固有の予測値データは高額・入手困難
6
SIMファイルから実測値計算:
7
メリット: 外部依存なし、既存データで完結、コスト0
8
デメリット: 過去データのみ(将来期待を含まない)
9
判断材料: 現在のシステムで外部APIは6つ統合済み。
10
7つ目の追加は管理コスト増。実測値で十分な精度が出るなら後者が合理的」
11
人間: 「→実測値で代替。外部依存を増やしたくない」

3ステップの意思決定フレームワーク

108セッションの分析から、効果的な設計対話は3ステップに収束する。

1
┌─────────────────────────────────────────┐
2
│ Step 1: AIに選択肢とメリデメを聞く │
3
│ 「3案提示してメリデメ比較してください」 │
4
├─────────────────────────────────────────┤
5
│ Step 2: 制約に基づいて選択する │
6
│ パフォーマンス / 複雑性 / リスク │
7
│ 既存システムとの整合性 / 運用コスト │
8
├─────────────────────────────────────────┤
9
│ Step 3: 決定を記録する │
10
│ ADR / PARAMETER.md / コミットメッセージ │
11
└─────────────────────────────────────────┘

Step 1の具体的なプロンプト

1
# 効果的なプロンプトのテンプレート
2
DESIGN_DECISION_PROMPTS = {
3
"閾値決定": (
4
"{パラメータ名}の値を決めたい。"
5
"3つの候補値を挙げて、それぞれのメリット・デメリットを比較してください。"
6
"判断基準: {基準(例: 判定精度 vs 頻度のバランス)}"
7
),
8
"方式選択": (
9
"{機能名}の実装方式を検討中。"
10
"考えられるアプローチを3つ挙げて、"
11
"複雑性・パフォーマンス・保守性の観点で比較してください。"
12
),
13
"フィルター設計": (
14
"{フィルターA}{フィルターB}の組み合わせ方を決めたい。"
15
"AND/OR/段階的適用の3パターンで、"
3 collapsed lines
16
"判定結果の数と精度への影響を比較してください。"
17
),
18
}

Step 2の判断基準

制約を先に伝えることで、AIの提案を絞り込む。

1
「新機能を設計してください。制約:
2
- 既存のトリガーファイルJSON形式は変更しない
3
- 処理時間の増加は10%以内
4
- 既存テストを壊さない」

この「制約を先に伝える」テクニックは、設計対話の効率を劇的に改善する。制約なしだと、AIは理想的だが実現不可能な案を提示する。制約を先に伝えると、最初から実現可能な案だけが提示される。

1
# 制約の分類と優先順位
2
CONSTRAINT_CATEGORIES = {
3
"互換性": [
4
"既存データ形式を変更しない",
5
"既存テストを壊さない",
6
"外部API契約の範囲内",
7
],
8
"パフォーマンス": [
9
"処理時間の増加は10%以内",
10
"メモリ使用量は現状+20%以内",
11
"APIコール数を増やさない",
12
],
13
"運用": [
14
"定期ジョブの追加は最小限",
15
"監視対象の増加は許容する",
3 collapsed lines
16
"ロールバック可能な設計",
17
],
18
}

Step 3の記録先

決定の種類によって記録先が異なる。

1
Quick Decisions(5分以内で決まるもの):
2
→ PARAMETER.md(値と根拠を1エントリで記録)
3
例: トレンド強度閾値=30、エラー許容閾値=2.0
4
5
Architecture Decisions(複数の選択肢を比較したもの):
6
→ DECISIONS.md(ADR形式でコンテキスト・決定・理由を記録)
7
例: 統合分析 vs 個別分析、外部API vs ローカル計算
8
9
Implementation Choices(実装中の小さな判断):
10
→ コミットメッセージ or .docs/施策ドキュメント
11
例: OR vs AND、ループ展開 vs リスト内包表記

アンチパターン:やってはいけない設計対話

108セッションで繰り返し見られた失敗パターン。

アンチパターン1: 「最適な値を教えて」

1
人間: 「最適なトレンド強度指標の閾値を教えてください」
2
AI: 「一般的には25が使われますが、30も推奨されます」
3
→ 文脈なしの一般論しか返ってこない

AIはあなたの本番データ、対象項目の特性、リスク許容度を知らない。「最適」を聞くのではなく、「選択肢とトレードオフ」を聞く。

アンチパターン2: 最初の提案をそのまま採用

1
人間: 「フィルターを追加してください」
2
AI: 「トレンド強度フィルター(閾値25)を追加しました」
3
人間: 「OK」
4
→ 代替案の検討なしで採用

AIの最初の提案は「最も一般的な」選択肢であり、あなたのプロジェクトに最適な選択肢ではない。必ず「他の案は?」と聞く。

アンチパターン3: 決定を記録しない

1
セッション1: 「OR結合で行きましょう」
2
セッション2: 「この条件、AND結合にしますか?OR結合にしますか?」
3
→ 前回の決定がセッションごとにリセットされる

記録されない決定は、存在しない決定と同じだ。次のセッションでゼロから議論になる。

正しいパターン

1
人間: 「トレンド強度指標の閾値について3案提示してメリデメ比較してください。
2
制約: 現在の対象項目はデータソースA、回帰テスト期間2022-2025」
3
AI: 「案1: 20 → メリット... デメリット...
4
案2: 25 → メリット... デメリット...
5
案3: 30 → メリット... デメリット...」
6
人間: 「→案3。PARAMETER.mdに記録して」
7
AI: 「PARAMETER.mdに以下を追加しました:
8
TREND_STRENGTH_THRESHOLD: 30
9
設定理由: 誤検知抑制を優先。25との比較で...
10
変更条件: 100回以上の処理で成功率比較した場合のみ」

実績データ

108セッション・25件のアーキテクチャ議論を分析した結果。

1
意思決定パターンの分布:
2
閾値・パラメータ決定: 42%(108件中)
3
実装方式の選択: 28%
4
フィルター設計: 18%
5
技術方針の二択: 12%
6
7
「3案比較」の効果:
8
3案提示を依頼した場合: 最初の案を採用した割合 → 31%
9
3案提示なしの場合: 最初の案を採用した割合 → 78%
10
11
→ 3案比較により、「最初の案に飛びつく」確率が78%→31%に低下。
12
より適切な選択ができている。
13
14
決定の記録先:
15
PARAMETER.md: 47件
5 collapsed lines
16
DECISIONS.md(ADR形式): 25件
17
コミットメッセージ: 残り(未構造化)
18
19
施策管理関連メッセージ: 262件
20
うちアーキテクチャ議論: 25件(約10%)

AIが「3案」を出すときの質を上げるコツ

「3案出して」と言うだけでは、AIは似たような案を3つ並べることがある。質を上げるには、軸を指定する。

1
# 軸を指定する例
2
COMPARISON_AXES = {
3
"パラメータ値": "保守的・標準・積極的の3段階で提示して",
4
"アーキテクチャ": "シンプル・標準・拡張性重視の3段階で提示して",
5
"フィルター": "緩い・標準・厳格の3段階で提示して",
6
}
7
8
# 実際のプロンプト例
9
PROMPT_WITH_AXES = """
10
判定フィルターの設計を3案提示してください。
11
軸: フィルター厳格度(緩い・標準・厳格)
12
各案について以下を記載:
13
1. 判定結果の通過率の推定
14
2. 誤検知除去率の推定
15
3. 実装の複雑性
2 collapsed lines
16
4. 既存コードへの影響
17
"""

学んだこと

1. 「3案提示して比較」が最も効果的

AIは1案だけだと過度に自信を持つ。「これが最適です」という口調で提案する。しかし3案並べると、各案の弱点を客観的に説明する。最初の案をそのまま採用する確率が78%から31%に低下した。

2. 制約を先に伝えると、実現不可能な案を排除できる

「既存形式は変更しない」の一言で設計の方向が定まる。制約なしで聞くと、AIは「データフォーマットを変更すれば効率的です」のような根本的な変更を提案してくる。それは正しいが、本番稼働中のシステムでは採用できない。

3. 決定を記録しないと翌セッションでゼロから議論になる

ADR/PARAMETER.mdへの記録は設計対話の「成果物」だ。対話そのものは揮発性が高い。108セッションのうち、記録されなかった決定の30%以上が後のセッションで再議論になった。記録された決定で再議論になったのは2件だけだった。


まとめ

AIとの設計対話で重要なのは以下の3点だ。

  1. 「3案提示してメリデメ比較」をデフォルトにする: AIに1案だけ出させない。3案並べることで客観的な比較が生まれ、最初の案に飛びつく確率が78%から31%に低下する
  2. 制約を先に伝えて実現可能な案に絞る: 「既存形式変更なし」「処理時間+10%以内」「テスト破壊なし」の制約を最初に示す。AIが理想的だが非現実的な案を提示するのを防止する
  3. 決定はADR/PARAMETER.mdに即時記録する: Quick DecisionsはPARAMETER.md、Architecture DecisionsはDECISIONS.md。記録されない決定は次のセッションで消える
Article title:AIとの設計対話術:閾値・方針をどう決めるか
Article author:45395
Release time:2026-04-02