YES.md
March 15, 2026 · View on GitHub
YES.md
PUAはNOと言う。YESはYESと言う。
AIを安全で、証拠に基づき、徹底的にするClaude Code Skill — プレッシャーではなく励ましで。
AIをPUAするな。YESしよう。
なぜあなたのCLAUDE.mdは機能しないのか
あなたのCLAUDE.mdは1層だけです。AIがそれを読んだ後、従うかどうかを選択します。
YES.mdは6層あります。AIが手を抜くには、全ての6つのハードルを越えなければなりません。
| 層 | 内容 | 方法 | 強制者 |
|---|---|---|---|
| 1 | フォーマット — AIがルールを本当に理解する | AI.MDが文章を構造化ラベル形式に変換 | フォーマット |
| 2 | トリガー — 正確なタイミングで起動 | SKILL.mdの説明に20以上の具体的なトリガー条件 | Skillエンジン |
| 3 | フック — 危険なコマンドをブロック、チェックを促す | AI動作の前後にスクリプトが自動実行 | 機械 |
| 4 | アンチ怠惰 — 7つの怠惰パターンを検出・修正 | 責任転嫁、推測、空転、表面修正、空の質問… | AI自己修正 |
| 5 | ゲート — バックアップなし=編集不可、テストなし=「完了」不可 | 要件が満たされるまで進行を停止するハードストップルール | AI自律 |
| 6 | メモリ — ミスが記録され、二度と繰り返されない | エラーログ+ナレッジベースがセッションをまたいで継続 | 外部ストレージ |
第3層が鍵です。 それ以外はAIの自律に依存します。フックは自動実行されるスクリプト — AIが望んでもバイパスできません。
ほとんどのツールは第4層か第5層だけを提供します。それが機能しない理由です。6層が揃って初めてYES.mdが機能します。
問題
AIコーディングアシスタントには7つの悪い習慣があります:
| 悪い習慣 | 実際の状況 |
|---|---|
| 🎲 推測 | 「おそらく権限の問題です」— 確認もせずに |
| 🙈 責任転嫁 | 「環境を手動で確認してください」 |
| 🩹 表面修正 | 1つのバグを直して、関連する3つを無視 |
| 🔄 盲目的リトライ | 同じコマンドを3回実行して諦める |
| 🤷 空の質問 | 「Xを確認できますか?」— Xを調査もせずに |
| 💬 アドバイスのみ | 実際のコードの代わりに「〜することをお勧めします」 |
| 🛠️ ツール無視 | WebSearchがあるのに推測。Bashがあるのに実行しない。 |
PUAスタイルのスキルは習慣#4のみ修正(盲目的リトライ/諦め)。
YES.mdは7つ全てを修正します。
仕組み
3つの柱
| 柱 | 機能 |
|---|---|
| セーフティゲート | 編集前にバックアップ。影響範囲を確認。変更後に検証。デプロイ前にプリフライト。 |
| エビデンスルール | 推測禁止。「おそらく」禁止。全ての主張にデータ、行番号、またはツール出力が必要。 |
| リップル認識 | 修正後:同じパターンが他にないか確認、上流/下流を確認、エッジケースを確認。 |
フック(機械による強制)
ルールはAIの自律に依存します。フックは依存しません。AIの動作の前後に自動実行されるスクリプトです。
| フック | タイミング | 機能 |
|---|---|---|
pre-bash-guard.sh | Bashコマンドの前 | rm -rf、git reset --hard、DROP TABLEなどの破壊的コマンドをブロック |
post-edit-check.sh | Write/Editの後 | 「完了」と言う前にリップルチェックを実行するようAIに促す |
post-deploy-health.sh | デプロイコマンドの後 | コンテナ、エンドポイント、ログの確認をAIに促す |
AIはこれらをスキップできません。それが要点です。
アンチ怠惰検出
YES.mdは7つの具体的なAI回避行動を特定し、ユーザーが気づくのを待たずに自己修正を強制します:
ユーザーへの責任転嫁 → まず自分でやる
未検証の責任追及 → コマンドを実行してから話す
堂々巡り → 完全停止、本質的に異なるアプローチ
表面だけの修正 → リップルチェック
空の質問 → 先に調査してから質問
アドバイスのみ → コードを出す、提案ではなく
ツール無視 → ツールを使う、記憶に頼らない
デバッグエスカレーション
| 失敗回数 | アクション |
|---|---|
| 2 | 切り替え:本質的に異なるアプローチ(パラメータ調整ではなく) |
| 3 | 5ステップ監査:エラーを一言一句読む → WebSearch → 50行のコンテキストを読む → 前提を検証 → 仮説を反転 |
| 4 | 隔離:最小再現 |
| 5+ | 構造化ハンドオフ:検証済み事実、排除された原因、絞り込まれたスコープ、次のステップ |
PUAとの重要な違い:レベル3は継続する前に方向確認を強制します。間違った方向への粘り強さは、止まることよりも悪いです。
結論の完全性
根本原因の主張をする前に、4つの必須質問:
- データソース? — ログ / DB / API / curl?
- 時間範囲? — 全データか最近のものだけか?
- サンプル vs 総量? — どれだけ見ましたか?
- 他の可能性は? — 他に何が説明できますか?
データ不完全 = 「⚠️ 部分的なデータに基づいています...」(「確実に」や「犯人は」は絶対に使わない)。
YES.md vs PUA
| 能力 | YES.md | PUA |
|---|---|---|
| デバッグの粘り強さ | ✅ | ✅ |
| デバッグの方向性(精度) | ✅ | ❌ |
| アンチ怠惰行動検出 | ✅ | ✅ |
| 修正後のリップルチェック | ✅ | ⭕️ |
| セーフティゲート(バックアップ、デプロイ) | ✅ | ❌ |
| 証拠に基づく診断 | ✅ | ❌ |
| 結論の完全性チェック | ✅ | ❌ |
| バグクローズプロトコル | ✅ | ❌ |
✅ = あり | ⭕️ = 部分的 | ❌ = なし
両者は補完し合います。 PUAはAIを前進させ続けます。YES.mdはAIを正確に保ちます。最大の効果を得るには両方を使いましょう。
インストール
Claude Code
# Marketplace
claude plugin marketplace add sstklen/yes.md
claude plugin install yes@sstklen
# 手動
git clone https://github.com/sstklen/yes.md.git ~/.claude/plugins/yes
OpenAI Codex CLI
mkdir -p ~/.codex/skills/yes
curl -o ~/.codex/skills/yes/SKILL.md \
https://raw.githubusercontent.com/sstklen/yes.md/main/skills/yes/SKILL.md
プロジェクトレベル(現在のプロジェクトのみ)
mkdir -p .agents/skills/yes
curl -o .agents/skills/yes/SKILL.md \
https://raw.githubusercontent.com/sstklen/yes.md/main/skills/yes/SKILL.md
言語を選択
| 言語 | Skillディレクトリ | コマンド |
|---|---|---|
| English | skills/yes/ | デフォルト |
| 中文 | skills/yes-zh/ | 上記コマンドの yes を yes-zh に変更 |
| 日本語 | skills/yes-ja/ | 上記コマンドの yes を yes-ja に変更 |
トリガー
自動
AIが以下を行うときに起動:
- 証拠なしに推測する(「おそらく」「かもしれない」「のはずです」)
- ユーザーに責任転嫁する(「確認してください...」「手動で...」)
- 同じタスクで2回以上失敗する
- 根本原因の主張をする
- 修正を完了する(リップルチェックを起動)
- config/env/デプロイファイルを変更する(セーフティゲートを起動)
手動
会話で /yes と入力します。
組み合わせ推奨
- PUA(
tanweai/pua)— PUAが粘り強さを、YES.mdが精度の構造を追加 - systematic-debugging — メソッドレベルのデバッグに、YES.mdがガバナンス層を追加
誕生の背景
数ヶ月間の実際の本番作業で実戦検証されました — 毎日のデプロイ、マルチサービスのデバッグ、そして失敗から学んだ厳しい教訓。YES.mdのすべてのルールは、それがなかったことで何かが壊れたから書かれました。
ライセンス
MIT
クレジット
sstklen 作 — PUAはNOと言う。YESはYESと言う。