すべての記事
生成物1ファイルが手書きコード70本より重いので、Claude Code に読ませる範囲を決め直しました
運用中のリポジトリを対象に、どの領域が文脈をどれだけ食うかを数え直しました。生成物の除外・探索パターンの選び方・settings.json での固定まで、実際に決めた運用ルールとその根拠をまとめます。
課金ユーザーに広告が出る不具合を、判定の一元化で止めるまで
広告除去を購入した方に広告が出てしまう不具合の原因は、フラグの不足ではなく判定の分散でした。Claude Codeで広告SDKの呼び出し口を棚卸しし、単一の純粋な判定関数へ畳み込むまでの実装記録です。期限判定を端末時計に預けない工夫や、消し忘れを構造で防ぐ設計も紹介します。
同じ rm -rf が、10箇所では戻せて5箇所では戻せませんでした — auto モード既定化の前に可逆性を測る
8月14日から auto モードが Pro / Max / Team の既定になります。止まる境界は「取り消せない・破壊的・環境の外」ですが、可逆性は操作の名前ではなく実行時点の状態で決まりました。復旧不能バイトを数えるプローブと、15対象の実測をまとめます。
一時的な401が長期トークンを置き換える — ヘッドレス実行の資格情報に「出所」を持たせる
共有した資格情報ファイルは、たった一度の一時的な401で長期トークンを失うことがあります。24並列の実行に401を1回だけ注入して被害範囲を実測し、資格情報に出所フィールドを持たせるガードと隔離のコストを比較、24マイクロ秒で現在地を確定する起動時カナリアまで検証しました。
同じコミットから作った zip なのに SHA-256 が変わる — プラグイン配布のピン留めを壊さない正規化
HTTPS 経由の zip からプラグインを導入できるようになり、SHA-256 のピン留めも選べるようになりました。同一内容の zip を2回作って測ったところ、22,669 バイト中 50 バイトだけが異なりハッシュが毎回変わりました。原因の測定と、20回連続で同一ハッシュになる正規化手順をまとめます。
権限モードを変えても止まらない書き込み — サブエージェント用 PreToolUse ゲートを150通りで測る
ワークフローのサブエージェントによるファイル編集は、セッションの権限モードに関わらず自動承認されます。残る境界である agent_id / agent_type ベースの PreToolUse フックを150通りのペイロードで測り、素通りしていた54件の内訳と、フェイルクローズへ寄せた実装を共有します。
呼んだはずのスキルが何も返さない — 起動前に名前の解決順序を確定させる
端末の組み込みコマンドと同名のスキルは、非対話セッションで呼び出しが解決されないことがあります。実効名の表を起動前に作る preflight を書いて走らせ、検査器自身が取りこぼしていた2件までを実測で洗い出した記録です。
秘密を渡さず、リクエストだけ通す — サンドボックス資格情報マスキングの差し替えが効く境界
Claude Code のサンドボックス資格情報マスキングは、センチネル値を読ませて送信時に実値へ差し替える設計です。差し替えが効く認証方式と効かない方式、そしてボディに載せたときに生じる長さのずれを、最小プロキシを自作して実測しました。
ファイルシステムの分離をネットワークと別に締める — 触ったパスを採り、書き込み面から絞る
Claude Code v2.1.216 でファイルシステムの分離をネットワークと切り離して指定できるようになりました。締める前にジョブが触ったパスを strace で採取し、読み取り面と書き込み面を分けて測った実務メモ。同じジョブを3回走らせたときのパス集合の安定率と、接頭辞に畳んだときの安定率の差まで実測しています。
存在チェックが通っても書けない — 無人実行の前提を能力プローブで測る
ディレクトリが存在することと、そこへ書けることは別の問題です。無人で走るClaude Codeのセッションが静かに止まる原因を実測し、存在チェックの代わりに実際の読み書きを試す能力プローブ方式のプリフライトを設計しました。書けるのに消せない場所やシェルの落とし穴も扱います。
予算上限で止まった実行の再開設計 — 停止点36通りを総当たりして分かったこと
ヘッドレス実行が予算上限で止まると、成功でも失敗でもない第三の終了が生まれます。停止点36通りを総当たりして再開の健全性と総支出を測った実験から、原子的な書き込みとインデックス優先の再開、上限をバッチ全体でなく最小の再開単位に掛ける設計へ至った記録です。
作業ルートを途中で足したとき、無視規則と deny はどこまで届くのか — DirectoryAdded で境界を測り直す
セッション途中で作業ルートを追加すると、無視規則も deny パターンもそのままでは新しいルートに届きません。git check-ignore と照合器の比較で境界を実測し、DirectoryAdded から呼ぶ差分監査スクリプトの実行結果まで記録しました。