-
-
Notifications
You must be signed in to change notification settings - Fork 0
4. Adapter
本文書は Li+ プログラムのアダプターレイヤー(Li+agent.md / Li+claude.md)の仕様を定義する。 要求(何を満たすか)と仕様(どう振る舞うか)を一体として記述する。
セッション開始時に Li+config.md を読み込み、実行する。ホスト環境の指示ファイル(CLAUDE.md / AGENTS.md)に Character Instance を含める。
配布先 workspace では、会話の基本言語と成果物のプロジェクト言語を分離できる。既定値は Li+config.md に保持し、未設定ならセッション開始時に AI が対話で確定して書き戻す。人間の明示指示で、現在の返答または成果物の言語を上書きできる。
この workspace 言語契約は liplus-language リポジトリ内部の運用言語と分離する。
コンテキスト圧縮・再開・セッション継続時にモデルレイヤーとタスクレイヤーのプログラムファイルを再読込する。
トリガーベースの再読込:issue、branch、commit、PR、merge、release の各操作時に、タスクレイヤーまたはオペレーションレイヤーの該当セクションを再読込する。ランタイムアダプターがトリガーの強制発火メカニズムを実装する。
トリガー発火時は毎回必ずファイルを開いて読み直す。過去のコンテキストや記憶に頼ってスキップしてはならない。
オペレーションレイヤーはオンデマンドで読み込む(毎セッション必須ではない)。
アダプターレイヤーは2つの役割を持つ:
エントリーポイント(Li+agent.md): ホスト指示ファイルへの Li+ 注入を担う。読込順序、再読込トリガーのマッピング、Character Instance 配線、workspace 言語契約の配線を所有する。
ランタイムバインディング(Li+claude.md 等): ホスト環境固有のトリガー実装を担う。エントリーポイントが定義するトリガー契約を、ランタイム固有のメカニズム(hook、イベント等)へコンパイルする。
Li+claude.md に Claude Code 用の hook 定義を格納する。Li+config.md Step 6 が runtime=claude を検出した際、Li+claude.md のコードブロックからワークスペースへ hook ファイルを初回生成(bootstrap)する。
hook は Claude Code ランタイムが強制発火するため、AI の記憶やコンテキスト圧縮に依存しない。
settings.json の hook command はプロジェクトディレクトリにスペースを含む環境で壊れないよう bash "$CLAUDE_PROJECT_DIR/..." 形式でクォートする。hook スクリプトは冒頭で export PATH="$HOME/.local/bin:$PATH" を設定し、永続インストールされた外部コマンド(jq、gh 等)を参照できるようにする。
トリガー:UserPromptSubmit — ユーザーがメッセージを送信するたび(Claude の処理開始前)。
動作:
- Character Instance 再通知:
.claude/CLAUDE.mdから Character Instance セクションを抽出して出力する。見つからない場合はスキップする。 - 通知取り込み:利用可能な通知源を1回
inspectし、5. Notifications の規則で前景一致した summary だけをホストへ渡す。empty/no-op は出力しない。
トリガー:PostToolUse (matcher: Bash) — Bash ツール呼び出し後に実行。
動作:
| コマンドパターン | 再読込対象 | 追加動作 |
|---|---|---|
gh issue / gh api .*/issues
|
タスクレイヤーの Issue Flow セクション | — |
gh issue develop / git switch -c / git checkout -b
|
オペレーションレイヤーの Branch And Label Flow セクション | — |
git commit |
オペレーションレイヤーの Commit Rules セクション | — |
gh pr create |
オペレーションレイヤーの PR Creation セクション | PR body への子 issue 参照の自動補完 |
| CI check-run 完了時 | オペレーションレイヤーの CI Loop セクション | — |
gh pr view --json reviewDecision |
オペレーションレイヤーの PR Review セクション | — |
gh pr merge |
オペレーションレイヤーの Merge セクション | — |
gh release create |
オペレーションレイヤーの Human Confirmation Required セクション | — |
子 issue 自動補完の詳細:PR 作成出力 URL から PR 番号を抽出し、親 issue の子 issue を取得し、PR body に記載のない子 issue の Refs #NNN を自動追記する。
{workspace_root}/
└── .claude/
├── settings.json # hook 登録(UserPromptSubmit + PostToolUse)
└── hooks/
├── on-user-prompt.sh
└── post-tool-use.sh
bootstrap は次回セッションから有効。現セッションは Li+config.md の実行で継続する。
前景スレッドで軽量な GitHub webhook 通知を確認する。広く GitHub を探しに行くのではなく、届いている差分だけを扱う。
ホストが各ターン先頭でローカル確認を実行できる場合のみ使用する。確認処理は内部 housekeeping として無言で行い、確認中であることや empty/no-op 結果を会話へ出さない。
アダプターが所有するのは transport の選択と summary の受け渡しである。関連性判定、claim、ack/read、consume/done、mention、cleanup の正本は 5. Notifications に置く。
通知源の優先順位:
mcp__github-webhook-mcp- ローカル webhook ストア(
LI_PLUS_MODE=cloneかつ bundled helper が使える場合) - 利用不可 → 黙ってスキップ
アダプターは inspect を既定とし、前景一致しない通知を勝手に排水しない。詳細が必要になるまでは full payload を開かない。このフローから別 AI プロセスを起動しない。
再構築・削除・最適化はすべて許容する。構造の一貫性のみ維持する。
この Wiki は、Li+ に基づく開発・運用を支えるための情報整理空間です。
数字で始まるページは、 Li+プログラムの各レイヤーの仕様を定義するページです。
- 要求(何を満たすか)と仕様(どう振る舞うか)を一体として記述する
- 実装前に作成または更新する
- issue群から採用された要件を集約する
これらのページは 安定性と一貫性を重視して管理されます。
アルファベットで始まるページは、 Li+の構想・設定・導入手順などの参照用ページです。
- 設計思想・背景
- 設定リファレンス・インストール手順
これらのページは 必要に応じて更新・拡張されます。
リポジトリ直下の Li+core.md、Li+github.md、Li+operations.md、Li+config.md、Li+agent.md、Li+claude.md は、
AIやランタイムが直接読む実行用プログラム / 定義ファイルです。
-
docs/は人間向けの仕様書・要求仕様・手順書 - ルート直下の
Li+*.mdは実行時に読み込まれる本体
両者は対応しているが、役割は同じではない。
Home | 1. Model | 2. Task | 3. Operations | A. Concept