ガイド
コンテキストレイヤーを作り、適合性を確認する。
AI エージェントの支援による翻訳です。内容に相違がある場合は、英語版ページが優先されます。文章に問題を見つけた際は、Issueまたはプルリクエストをお願いします。
インストールから適合性の判定まで、必要なコマンドは 5 つです。leji のすべての機能はパッケージに同梱され、オフラインで動作します。ネットワークへアクセスする処理は、利用者が明示的に呼び出します。leji init と leji adoptの依存関係に関する処理では、同意した場合に限り、手元のパッケージマネージャーが実行されます。フェデレーションでネットワークに触れるのは、明示的に指定したリポジトリへ接続する次の 3 つだけです。 leji mounts hydrate --fetch、leji mounts update-pin --fetch、そして leji conformance --federation=verify です。
対応ランタイム
Node.js 22+
Python 3.10+
Go 1.26.6+ 01ツールをインストールする
3 つとも同じフィクスチャ一式でテストされているため、CI にどれをインストールしても、フラグ、JSON 出力、終了コードは同一です。
CI も、pre-commit フックも、すべての貢献者も、ピン留めした同じバージョンを実行できるようにするには、開発用依存として宣言します。コマンドを自分で調べる必要はありません。leji init と leji adoptは、リポジトリで実際に使われているパッケージマネージャーを検出し、明示的に同意した場合に限り、そのパッケージマネージャーの追加コマンドを実行するか確認します。対象はnpm、pnpm、yarn、bun、uv、poetry、pdm、pipenv、そしてgo get -tool(これには Go 1.24 以降が必要で、Go の CLI 自体のビルドには Go 1.26.6 以降が必要です)。pip の場合、leji はコマンドを実行せず、追加すべき行を表示します。グローバルインストールが干渉することはありません。特定のバージョンをピン留めしているリポジトリ内では、Node と Python の CLI は毎回そのバージョンを実行します(リポジトリがピン留めする CLI)。
$ npm install -g @leji-org/leji02新しいコンテキストレイヤーを作る、または既存のリポジトリに導入する
作成されるのは、リポジトリルートの leji.jsonマニフェスト、ブートプロファイル、ひな型となるカテゴリ文書、最初の決定記録、オンボーディングブリーフです。さらに、コンテキストルート外に置かれるファイルが 2 つあります。リポジトリにまだない場合に作られる、ポインタだけの AGENTS.md(--no-agents で省略できます)と、ブリーフを置く作業場所 .leji/ のために、ルートの .gitignore に追加される 1 行です。いずれの作成にも、エージェントは必要ありません。
スキャフォールドの初期状態はプレースホルダーです。提案を受け入れると、エージェントがリポジトリを読み、承認用のマッピングを提案した後、ブリーフを削除します。断った場合は、後から実行するためのコマンドが表示されます。--yes を付けるとこの確認が省略されるため、CI を無人で実行できます。
一人で作業していますか。--mode solo では、identity と writing-style の出発点が用意され、ブリーフは所有者へのインタビュー形式になります。回答は入力、添付、フォルダへの配置のいずれでも構いません。コンテキストになるのは、承認した統合結果だけであり、元の素材はリポジトリルートの.leji/ にある gitignore された作業場所にとどまります。init と adopt はその ignore ルールを書き込み、その配下に git の追跡対象が 1 つでもあるかぎり、どちらも実行自体を拒否します。コンテキストレイヤーの内容が整うと、エージェントがその成果物を削除します。
leji adopt --dry-run # 正確な書き込み計画。実際には何も書き込まない
leji adopt # 既存リポジトリに導入する(新規なら leji init)
# 続いて Claude Code または Codex を開くか確認する
leji adopt --wire-adapters # 既存の CLAUDE.md / AGENTS.md をつないで導入する
npm create leji # または、事前インストールなしで以上を 1 ステップで行う:
# ディレクトリを読み、adopt か init を選ぶ
03検証する
- スキーマで確認されるもの:マニフェスト、インデックス、変更履歴、そしてエージェントプロファイルと決定記録のフロントマター。
- 構造とリント:ブートプロファイル、インデックスファイル、通常のドキュメントにはスキーマがありません。宣言されたファイルは実在しなければならず、変更履歴は
HEAD に対して追記のみです。indexed以上では、古いインデックスは失敗として扱われます。
既存の CLAUDE.md や AGENTS.md の上に素の adopt を実行した後は、--wire-adapters を実行するまで、そのそれぞれについて vendor-adapter-redirect の失敗が報告されます。
leji validate # スキーマとリントルール
leji validate --content # プレースホルダーと内容の薄いドキュメントの警告も追加
leji index # インデックスを生成する
04レベルを宣言し、検証する
段階的に導入できるよう設計されています。coreから始め、各レベルは前のレベルを含みます。宣言はマニフェストが行い、 leji conformance がそれに照らしてコンテキストレイヤーを判定します。
core → indexed → governed → federated
各レベルが求めること
leji conformance # 宣言を判定する
05コンテキストレイヤーを見る
エージェントが読むものと同じレイヤーを、人向けに可視化します。
leji view # 人が読めるビューアーをブラウザで開く
leji viewer build # 内部認証の背後でホストする静的フォルダをエクスポートする
CI で正直な状態を保つ
プロバイダーは origin リモートから推定され、判別できない場合は GitHub とみなされます。
leji ci # ワークフローを生成する
leji ci --hooks # ローカルの pre-commit に同じゲートを設ける
# 生成されたジョブが実行するもの:
leji validate # スキーマとリントルール
leji index --check # 古いインデックスなら失敗する
# indexed 以上で追加するもの:
leji changelog check # 追記のみ
終了コードは CI 向けです。0 は問題なし(警告は許容されます)、1 は通らなかったチェックがあること(指摘の有無は問いません)、2 は使い方の誤り、または上書きの拒否のような内部的な失敗です。
コンテキストレイヤーに入る
レイヤーがエージェントの最初のコンテキストになります。間にベンダーファイルを挟みません。
leji start # または --agent claude-code | codex でひとつに固定する
複数のホストが見つかった場合は、どれを使うか確認します。ひとつも見つからない場合や、スクリプトまたは CI から実行した場合は、推測せずに実行すべきコマンドを表示します。 導入ガイドでは、ホストへのパススルーフラグとベンダーファイルの対応表を説明しています。
エージェントにコンテキストだけでなくツールも渡す
コンテキストレイヤーに入ることは、エージェントにコンテキストを渡すことです。MCP サーバーはツールを提供します。ディスク上のコンテキストレイヤーを検証し、適合性を判定する、ローカルかつ読み取り専用のサーバーです。そのため、エージェントにシェルは必要ありません。読み取って報告するだけで、書き込むことはありません。
# Claude Code(このプロジェクト)
claude mcp add leji --scope project -- npx -y @leji-org/mcp
# Codex
codex mcp add leji -- npx -y @leji-org/mcp
init と adopt は、Claude Code にはプロジェクト単位、Codex にはユーザー単位で登録するか確認します。上のコマンドは、その確認をスキップした場合に使います。--scope project を --scope userに変えると、このリポジトリ単位ではなく、ユーザー単位で 1 回だけ登録されます。どの MCP クライアントでも利用できます。ツールの一覧はMCP サーバーのページにあります。
利用状況に合わせて導入する
| モノレポ | 1 つのリポジトリ、1 つのコンテキストレイヤー。リポジトリルートで一度だけ初期化します。 |
|---|
| 多数のリポジトリ、1 つのレイヤー | 専用のコンテキストリポジトリを、各利用側へドキュメント専用としてマウントし、リポジトリごとにピン留めします。 |
|---|
| 所有された複数のレイヤー | 各チームがすでにコンテキストレイヤーを所有している構成です。各レイヤーを兄弟としてマウントします。所有関係も仕事の進め方も変わりません。 |
|---|
スクリプトから
ほとんどのコマンドは、フック、ボット、ビルド手順からライブラリとしても呼び出せます。ソースは leji-org/leji、Apache-2.0 です。
import { validateLayer, writeIndex, conformanceReport } from '@leji-org/leji';
const { findings } = validateLayer('.');
次は、既存のリポジトリなら導入ガイド、複数のチームがそれぞれコンテキストレイヤーを所有しているなら フェデレーションです。