ガイド

コンテキストレイヤーを作り、適合性を確認する。

AI エージェントの支援による翻訳です。内容に相違がある場合は、英語版ページが優先されます。文章に問題を見つけた際は、Issueまたはプルリクエストをお願いします。

インストールから適合性の判定まで、必要なコマンドは 5 つです。leji のすべての機能はパッケージに同梱され、オフラインで動作します。ネットワークへアクセスする処理は、利用者が明示的に呼び出します。leji initleji adoptの依存関係に関する処理では、同意した場合に限り、手元のパッケージマネージャーが実行されます。フェデレーションでネットワークに触れるのは、明示的に指定したリポジトリへ接続する次の 3 つだけです。 leji mounts hydrate --fetchleji mounts update-pin --fetch、そして leji conformance --federation=verify です。

対応ランタイムNode.js Node.js 22+Python Python 3.10+Go Go 1.26.6+

01ツールをインストールする

3 つとも同じフィクスチャ一式でテストされているため、CI にどれをインストールしても、フラグ、JSON 出力、終了コードは同一です。

CI も、pre-commit フックも、すべての貢献者も、ピン留めした同じバージョンを実行できるようにするには、開発用依存として宣言します。コマンドを自分で調べる必要はありません。leji initleji adoptは、リポジトリで実際に使われているパッケージマネージャーを検出し、明示的に同意した場合に限り、そのパッケージマネージャーの追加コマンドを実行するか確認します。対象はnpmpnpmyarnbunuvpoetrypdmpipenv、そしてgo get -tool(これには Go 1.24 以降が必要で、Go の CLI 自体のビルドには Go 1.26.6 以降が必要です)。pip の場合、leji はコマンドを実行せず、追加すべき行を表示します。グローバルインストールが干渉することはありません。特定のバージョンをピン留めしているリポジトリ内では、Node と Python の CLI は毎回そのバージョンを実行します(リポジトリがピン留めする CLI)。

npm install -g @leji-org/leji

02新しいコンテキストレイヤーを作る、または既存のリポジトリに導入する

作成されるのは、リポジトリルートの leji.jsonマニフェスト、ブートプロファイル、ひな型となるカテゴリ文書、最初の決定記録、オンボーディングブリーフです。さらに、コンテキストルート外に置かれるファイルが 2 つあります。リポジトリにまだない場合に作られる、ポインタだけの AGENTS.md--no-agents で省略できます)と、ブリーフを置く作業場所 .leji/ のために、ルートの .gitignore に追加される 1 行です。いずれの作成にも、エージェントは必要ありません。

スキャフォールドの初期状態はプレースホルダーです。提案を受け入れると、エージェントがリポジトリを読み、承認用のマッピングを提案した後、ブリーフを削除します。断った場合は、後から実行するためのコマンドが表示されます。--yes を付けるとこの確認が省略されるため、CI を無人で実行できます。

一人で作業していますか。--mode solo では、identity と writing-style の出発点が用意され、ブリーフは所有者へのインタビュー形式になります。回答は入力、添付、フォルダへの配置のいずれでも構いません。コンテキストになるのは、承認した統合結果だけであり、元の素材はリポジトリルートの.leji/ にある gitignore された作業場所にとどまります。initadopt はその 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.mdAGENTS.md の上に素の adopt を実行した後は、--wire-adapters を実行するまで、そのそれぞれについて vendor-adapter-redirect の失敗が報告されます。

leji validate           # スキーマとリントルール
leji validate --content # プレースホルダーと内容の薄いドキュメントの警告も追加
leji index              # インデックスを生成する

04レベルを宣言し、検証する

段階的に導入できるよう設計されています。coreから始め、各レベルは前のレベルを含みます。宣言はマニフェストが行い、 leji conformance がそれに照らしてコンテキストレイヤーを判定します。

coreindexedgovernedfederated

各レベルが求めること

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

initadopt は、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('.');

次は、既存のリポジトリなら導入ガイド、複数のチームがそれぞれコンテキストレイヤーを所有しているなら フェデレーションです。