リポジトリに「本番へデプロイしない」と書いても、本番用コマンドと認証情報が使えるままの場合がある。その文は意図を伝えるが、能力を取り除かない。Tesslの4層の枠組みが役立つのは、こうした助言と、読み込み方や強制方法の異なる手順・制御を分けるからだ。

対象は、チームが所有する常時コンテキスト、パス別ルール、再利用可能なスキル、ライフサイクルフックである。具体例はClaude Codeを使い、普遍的な設定形式を定めてはいない。常に渡す知識、必要な時だけ読み込む手順、モデルの判断の外で阻止すべき危険な操作を区別するのが本質だ。

4層は同じポリシーの複製ではなく、異なる契約

CLAUDE.mdは、ビルドコマンド、ディレクトリ慣行、設計上の境界、テスト方針など、複数の作業に必要なプロジェクト情報を渡す。サービスのパッケージ管理方法や、移行を追記のみとする規約も含められる。ルートファイルは全例外の大辞典より、概要や索引として機能する方がよい。

.claude/rules/の個別ルールは、パスパターンに応じた指示を読み込める。文書だけを直す時にAPI検証のルールまで注意を奪う必要はない。パッケージをまたぐハンドラーや移行処理には、同じ文を各ディレクトリへ複製せず横断的なルールを適用できる。

再利用する能力は、SKILL.md、メタデータ、指示、補助スクリプトや参照資料を持つフォルダーに長い手順をまとめる。概要からリリース手順へ案内し、リリーススキルが順序付きの確認を所有する形だ。Claude Codeは最初にスキル名と説明を読み、関連時や明示的な呼び出し時に全文をコンテキストへ入れる。

フックは設定などを通じてライフサイクルイベントへ処理を結び付ける。実行前に操作を検査し、編集後に整形・検証し、終了前に証拠を要求できる。モデルが覚えるべき指示をもう一つ増やすこととは役割が異なる。

Tesslが重視する所有とは、この知識を版管理されたリポジトリ資産にすることだ。差分確認、担当者の指定、レビュー、誤ったルールの取り消し、新規セッションへの共通情報の提供が可能になる。一方、ホストされたモデルやランタイムは提供元の管理下にある。ファイル所有と、全強制機構の所有は同じではない。

常時コンテキストをポリシーデータベースにすると高くつく

一つの指示ファイルは、コマンド選択や命名をすぐ改善するため導入しやすい。その後、セキュリティ、リリース、画面設計、個人の例外が積み重なり、全セッションへ流れ込む。常時情報は作業詳細、コード、ツール結果、会話履歴と競合する。文章が増えても遵守が強まるとは限らない。

引用されるAnthropicの指針は、CLAUDE.mdを200行未満に保ち、所有者を置き、コード同様にレビューすることを勧める。重要なのは注意資源と保守であり、行数に結び付く保証ではない。短い指示も誤解され得るし、重要な制約を先頭へ移すだけでは強制力は生まれない。

入れ子の指示ファイルは、エージェントが対応するツリーへアクセスした際に読み込まれる。パス別ルールは、一つの関心事が複数ディレクトリに及ぶ場合を扱う。どちらも無関係な情報を減らすが、実際のランタイムの読み込み、照合、優先順位を理解する必要がある。

分類は機能で考える。プロジェクトの事実や判断を要する慣行はコンテキスト、反復する複数段階の作業はスキル、禁止操作は権限・阻止チェック・より強い隔離へ置く。長いセッション、矛盾、敵対的な文章はいずれもモデルの遵守へ影響し得る。リポジトリの一文は方針の存在を示しても、その強制率は示さない。

フックの確実な発火と、決定の決定論性は別

常時指示、範囲付きルール、スキル手順を解釈するのはモデルだ。フックは設定済みイベントでランタイムが起動するため、チェックリストを思い出すのを待たない。PreToolUseは実行前のツール呼び出しを検査し、方針に反するコマンドに阻止結果を返せる。

ただし、判断方法はハンドラー次第だ。コマンドハンドラーはスクリプトを実行するが、プロンプトやエージェントのハンドラーはモデル判断を使い得る。確実に起動しても結論が確率的なことはある。ソフトウェアで直接判定できる条件は、別モデルの意見よりコマンドによる検査に向く。

生成ファイルでは、編集を避ける理由を指示で説明し、対象を認識する実行前検査で禁止書き込みを拒否できる。デプロイでは、スキルが承認経路を説明し、権限やフックが直接の近道を防ぐ。説明と障壁は別問題を解くため、互いを補強する。

権限はツールやコマンドの許可・拒否ルールを与える。引用されたClaude Codeの制御では、一致する拒否が許可に優先する。フックはより複雑な条件も見られるが、ツールの許可や検査通過をOSへの無制限アクセスと混同してはならない。重大操作には、制限付き認証情報、コンテナー、保護ブランチ、読み取り専用マウントも必要になる。

編集後の自動化にも釣り合いが要る。整形や対象限定の検証は毎回でも軽い一方、全テストを編集ごとに走らせると作業を妨げる。大きな検査はコミット時や終了時に置ける。停止フックが有益な進路もなく継続を要求し続ければ、ゲートが高価なループになる。

制御面も害を起こし得るコードとして扱う

フックは実行可能な基盤だ。不備のあるスクリプトはデータ漏えい、正当作業の阻止、全イベントへの遅延を招く。リポジトリ所有は保守責任を明確にするが、見知らぬ設定を信頼できるものにはしない。ワークスペースの信頼確認、レビュー、隔離実行が依然重要だ。

変更可能性も境界問題になる。エージェントが自分を制約するファイルを編集できれば、通常の変更で近くのルールを弱め、検査を無効にすることもある。重要設定には、自己制約を守る意思への依存ではなく、強い所有・レビュー、保護ブランチ、読み取り専用の実行環境が要る。

コマンド文字列の拒否は、同じ効果のパッケージタスク、間接スクリプト、別ツールを見逃し得る。試験では、想定した例の再生だけでなく代替経路から禁止操作を試す。正当な作業も検査すべきだ。広すぎる拒否は、例外、迂回、機構全体の無効化を促す。

信頼しない課題文、文書、依存関係、生成物にはプロンプトインジェクションが含まれ得る。モデルはそれらをリポジトリの指示と一緒に解釈する可能性がある。決定論的な権限と隔離は結果として使える能力を制限する。文章だけではその安全境界にならない。

スキルは保守され、起動されてこそ手順を残せる

スキルは、リリース、移行、依存更新、障害対応の知識を一人の会話から取り出し、検査可能にする。リポジトリ所有の検証器が決定論的な小作業を担当し、エージェントが判断を担う形もある。検索可能な技術知識ベースは根拠の決定や文書を残し、スキルは選んだ知識をどう手順化するかを定義する。

存在と起動は別だ。説明は適用場面を示し、評価は正しい手順が本当に読み込まれたかを検証する必要がある。重要作業では明示的な呼び出しが曖昧さを減らす。コマンドや設計も変わるため、担当者、事例、見直し周期は装飾ではなく保守要件になる。

同じルールをルート、複数の範囲付きファイル、複数スキルへ重複させると、権威の競合が生じる。各事実の主な置き場を一つにし、他はリンクや短い索引にすると更新を確認しやすい。個人設定や組織管理設定も競合し得るので、実際に読まれたファイルと、操作に影響したルール・権限が見える必要がある。

可搬性とガバナンスは動作で示す

他のコーディングエージェントにも指示、ワークフロー、イベント制御はあるが、ディレクトリと意味は異なる。Tesslが再利用コンテキストに製品上の関心を持っていても、Claude Codeの具体的パスが可搬標準になるわけではない。Markdownを共有しても、発火、範囲、優先順位、阻止動作まで保たれなければ実質的な可搬性はない。

再現可能な評価はクリーンな環境から始め、同じ作業を繰り返し、読み込んだ設定、ツール判断、結果を記録するべきだ。遵守、適切なスキル起動、禁止操作の阻止、通常作業の成功を確認する。一度の説得力ある実演より、独立した反復が重要になる。

枠組みを強めるのは、実用的な指示評価、ランタイムをまたぐ意味を正確に定めた能力形式、助言・保証された発火・実際の拒否を区別する画面の三つだ。ログは許可・拒否の理由を理解可能にすべきで、ファイル数や文書量は成果の代わりにならない。

成果物は説明可能な制御マップである。別の技術者が、判断を導く情報、必要時に現れる手順、重大な失敗を止める外部境界を特定できることが重要だ。チーム所有のファイルはそれをレビュー・復旧可能にする。安全な自律性は、なお試験された強制機構と周囲の基盤に依存する。

出典と関連資料

Tesslの4層の枠組み · Anthropicの操作指針 · プロジェクトメモリーと読み込み · フックハンドラー · ツール権限 · スキルの構成と起動 · 関連資料:検索可能な技術知識ベース

関連記事
参考資料

ツールディレクトリを見る →