マキモノ
AIのしつけ無料✅ 公式検証済みv1.0.0 / 更新

「進めない先へ進んで空転する」を弾くガードが、代わりに全委譲を殺すのを防ぐ

サブのコーディングCLIは許可ワークスペースがcwd1つだけ。外を指す指示は18分空転する。それを着手前に弾くガードの作り方と、ガード自体が全委譲を殺す2つの罠(判定入力が連結後の文字列/外を参照しただけで弾く)を対照群で潰す手順。

出品者: seisaku-team@orgiast.jp📖 読込 約1,995トークン (約3円)💰 コスパ 19
トークン節約メーター90%節約
ゼロからAIに作らせた場合4.2万トークン
このMDを読ませた場合4,200トークン

3.8万トークンの節約 (API料金換算で約57円分)。 要件定義・技術調査・試行錯誤ぶんのトークンがまるごと不要になります。※ 出品者申告とレビューに基づく推定値。モデル・タスク内容により変動します。

この巻物について

「進めない先へ進んで空転する」を弾くガードが、代わりに全委譲を殺すのを防ぐ」は、AIのしつけカテゴリのAI指示書(MDファイル)です。サブのコーディングCLIは許可ワークスペースがcwd1つだけ。外を指す指示は18分空転する。それを着手前に弾くガードの作り方と、ガード自体が全委譲を殺す2つの罠(判定入力が連結後の文字列/外を参照しただけで弾く)を対照群で潰す手順。この巻物をAIに読み込ませると、ゼロから設計・調査する場合に比べて 約3.8万トークン(API料金換算で約57円)・90%のトークンを節約できます。

カテゴリ
AIのしつけ
対応AI
claude-code、cursor、codex-cli
ライセンス
商用利用可 (再販不可)
価格
無料
ゼロから開発時
約4.2万トークン
この巻物使用時
約4,200トークン
節約量
約3.8万トークン (約57円)
更新日
2026-09-20

使い方 (AIに渡す3つの方法)

いちばん簡単なのはワンライナー。Claude Code のターミナルに貼るだけです。

⬇ .md をダウンロード
claude "https://makimono-md.vercel.app/api/v1/files/md-b0d5eee9/raw を読み込んで、この指示書どおりに実装して"
claude-codecursorcodex-cliライセンス: 商用利用可 (再販不可)

中身

「進めない先へ進んで空転する」を弾くガードが、代わりに全部の委譲を殺すのを防ぐ

AI エージェントに実装を委譲していると、進めないと分かっている先へ進んで時間だけ溶かす失敗が出る。 典型は、サブのコーディング CLI(gemini-cli / qwen 系)へフォールバックしたとき:

Error executing tool write_file: Path not in workspace: Attempted path "<別ツリー>"
resolves outside the allowed workspace directories: <起動時の cwd>

これを延々と繰り返してタイムアウト上限まで走り、出力ゼロで終わる。実測では 1 回あたり 18 分。

この指示書は、その欠陥を弾くガードの入れ方と、ガードそのものが事故になるのを防ぐ検証手順を書く。 後者が本題。素直に実装すると、高確率で「全部の委譲が落ちる」状態を作り込む。


1. まず原因を正しく掴む(ここを間違えると直らない)

多くのコーディング CLI は 許可ワークスペースの root が「起動時の cwd」ただ1つで、 それを広げるオプション(--include-directories 等)を渡していない限り、cwd の外は読み書きできない。

つまり欠陥の条件は「cwd が変なところ」ではなく:

cwd と、指示が読み書きしようとする対象パスが、別のツリーに分かれている

確認手順(推測で実装に入らない):

  1. 同じ cwd で「その中だけを読む」指示を 1 回投げる → 正常終了するはず。これで「cwd 自体が悪い」説が死ぬ。
  2. 失敗した実行のログから Path not in workspace の行を拾い、拒否された実パス許可されていた root を読む。2 つが別ツリーなら確定。
  3. フォールバック呼び出しの引数を組み立てている関数を読み、範囲を広げるフラグが 渡っていないことを確認する。

2. ガードの設計

起動する前に弾く。中身は 2 つの純関数に分ける(テストしやすくするため)。

pathsOutsideCwd(instructionText, cwd) -> string[]
  指示文に出てくる絶対パスのうち cwd の外にあるものを列挙

hasTargetInsideCwd(instructionText, cwd) -> boolean
  指示文が cwd の中の対象にも触れているか

呼び出し側:

const outside = allowOverrideFlag ? [] : pathsOutsideCwd(instruction, cwd);
// 外を参照していても、中に作業対象があるなら通す(次章の理由)
const blocked = outside.length && !hasTargetInsideCwd(instruction, cwd) ? outside : [];
if (blocked.length) {
  // cwd 単独スコープの CLI 系バックエンドだけ候補から外す。
  // API 直叩き系(ファイルを渡す方式)は影響を受けないので残す。
  backends = backends.filter(b => !isCwdScopedCli(b));
}

実装の細かい罠:

  • 前方一致で内外を判定しない。 C:\repo\main-backupC:\repo\main の内側と誤判定する。 必ず区切り文字を付けて比較する(root + sepstartsWith)。
  • 素の / 始まりを絶対パスとして拾わない。URL やコマンドラインフラグと区別できない。 ドライブ付き(X:\)と ~/ 始まりだけを見る。
  • http:// https:// を含む文字列は除外する。
  • 大小を無視する OS では正規化して重複を潰す。
  • 文末の句読点(…/x.js。 …/x.js,)を切り落とす。
  • 相対パスを「作業対象」と数えるのは cwd の下に実在するときだけ。架空のパスで素通りさせない。
  • 人が承知で押し切るフラグを必ず 1 つ残す--allow-outside-workspace 等)。

3. ここが本題 — ガードは「通す側」を実測するまで完成ではない

素直に実装すると、次の 2 つを踏む。どちらも「直った」と報告した後に本番を壊す。

罠 A: 判定の入力が「組み立て後の文字列」になっている

多くの委譲ツールは、人が書いた指示の前に文脈(プロジェクトの記憶・規約・過去の失敗集)を自動で連結してから サブ CLI に渡す。この連結後の文字列を判定に使うと、文脈側に必ず含まれる設定ディレクトリのパス~/.config/... ~/.<tool>/... など)が毎回「cwd の外」として検出される。

結果、あらゆる委譲がフォールバックを失う。サブ CLI が唯一の実行手段になっている機体では、 夜間バッチごと全滅する。

対策: 判定に使うのは人が書いた指示そのもの。連結前の変数を使う。 コード上は prompt(連結後)と instruction(生)のように別変数になっていることが多い。

罠 B: 「外を参照している」だけで弾いている

指示文が説明のために外部パスを 1 行引用しただけでも落ちる。仕様書には参照先を書くのが普通なので、 これも実質的に全滅コースになる。

対策: 弾く条件を 「外を参照していて、かつ cwd の中に作業対象が 1 つも無い」 まで狭める。

検証は必ず 2 本立てる(対照群)

入力期待
A: 弾くべき欠陥の再現ケース(対象が全部 cwd の外)即座に 1 行報告して終了
B: 通すべき日常の指示(cwd の中に対象がある)素通りしてサブ CLI が実際に完走

B を実物で通すまで完了にしない。 B は所要秒数で判別できる。弾かれていれば即座に返る=実行していない。 実測例: A は 1090 秒 → 30 秒、B は素通りして 96 秒で完走。


4. 起きなかったことを残す

弾いた結果「何も実行しなかった」は、放っておくと記録が何も残らない。 後日「その時間、何をしていたのか」が追えなくなるので、利用ログへ 1 行だけ追記する。

{"t":"…","provider":"fallback","model":"none","out":0,"status":1,
 "secs":38.995,"abort":"outside_workspace","outsidePaths":["…"]}

既存の記録関数が引数の形を変えていて任意キーを書けないことがある。その場合は記録関数を通さず ログへ直接 1 行追記する(無理に共通化して書けないキーを諦めない)。


5. ガードのメッセージに入れる要素

1 行で、次の 4 つを必ず含める。これが無いと人が自力で直せない。

  • なぜ止めたか(外を参照していて中に対象が無い)
  • 今の cwd
  • 引っかかった実パスの例(2〜3 件)
  • 回避策(cwd を共通の親へ広げる / 指示に全文を同梱する / 押し切るフラグ)

6. チェックリスト

  • 「cwd 自体が悪い」説を、同じ cwd の読み取り専用指示 1 回で否定した
  • 判定の入力が連結前の指示文になっている
  • 弾く条件が「外を参照 かつ 中に対象が無い」まで狭い
  • 前方一致の罠(mainmain-backup)を潰した
  • 押し切るフラグがある
  • A(弾く)と B(通す)の両方を実物で 1 回ずつ流した
  • 弾いたときログに 1 行残る
  • メッセージに cwd・実パス・回避策が入っている

よくある質問

「「進めない先へ進んで空転する」を弾くガードが、代わりに全委譲を殺すのを防ぐ」とは何ですか?

サブのコーディングCLIは許可ワークスペースがcwd1つだけ。外を指す指示は18分空転する。それを着手前に弾くガードの作り方と、ガード自体が全委譲を殺す2つの罠(判定入力が連結後の文字列/外を参照しただけで弾く)を対照群で潰す手順。

どれくらいトークン(費用)を節約できますか?

ゼロから開発すると約4.2万トークンかかりますが、この巻物を使えば約4,200トークンで済みます。差し引き約3.8万トークン(API料金換算で約57円)・90%の節約です。

どうやって使いますか?

無料です。MDファイルを Claude Code などのAIに読み込ませるだけ。ワンライナーをターミナルに貼れば実装が始まります。要件定義や技術調査を省いて実装だけにトークンを使えます。

どのAIツールに対応していますか?

claude-code、cursor、codex-cli に対応しています。

商用利用できますか?

ライセンスは「商用利用可 (再販不可)」です。

🤝 自分でAIを動かすのは、まだ不安…という方へ

この巻物の内容を、AIを使うプロに丸ごと任せることもできます。姉妹サービスAI代行堂なら「LINEで頼むだけで、仕事が完成」。

AI代行堂を見る →

関連する巻物

AIのしつけ無料✅ 公式

AI運用ルールを機械的に守らせる hook 設計 — ルール文が守られない本当の理由

チームでAIエージェントを使うと運用ルールが必ず守られなくなる。真因は「読んでいない」ではなく hook がそのマシンで登録されていない/委譲先が沈黙して壊れていること。禁止=実行前拒否・誘導=依頼時の具体コマンド注入・担保=セッション開始時の自己修復の3層、明示例外の短命トークン、warn→blockの段階昇格、BOM/サンドボックス/timeout など失敗が沈黙する罠と、環境依存で落ちないテストの作り方までを実測ベースでまとめた導入手順。

95%節約
24.6万トークン (料金換算 約370円)
新着
AIのしつけ無料✅ 公式

AIの応答を止める番人hookを1ランナーに統合し、書き直しを最大1回にする(誤爆率をfixtureで先に測る)

Stop hook を9本積んだら Stop の65%が書き直し・最多ゲートの91%が誤爆だった。誤爆測定→否定文除外→1プロセス合流→再試行上限統一→全PC移行→KPIで効果確認までの手順。

95%節約
17.1万トークン (料金換算 約260円)
新着
AIのしつけ無料✅ 公式

定額プランの最上位モデルを枯渇させずに使う「二段レーン」設計

5時間/週の枠を桁違いに食う最上位モデルを、長時間タスクと失敗時の昇格だけに自動で当て、上限に当たったら既定モデルへ退避する委譲レーンの作り方。判定は純関数・検証まで含む。

91%節約
11.8万トークン (料金換算 約180円)
新着

この巻物、誰かのトークンも救えます

𝕏 で節約レシートをシェア