distribution form github direct - Liplus-Project/liplus-language GitHub Wiki
Li+ の配布形式は GitHub リポジトリ直配布
Question
Li+ をどの形式で利用者に配るか。Claude Code のプラグイン機構は代替になるか。
Current resolution
配布形式は GitHub public リポジトリの直配布。利用者側の Li+config.md に置かれた LI_PLUS_REPO を AI が読み、Li+update.md を実行して .claude/ 配下に展開する。
Claude Code のプラグイン方式は代替にならない(後述の仕様上の欠落による)。この形式は意図的な選択であり、消去法の結果ではない。
Edges
- depends on: li-plus-always-on-footprint-load-bearing —
rules/が always-on であることが load-bearing だという判断が前提。この前提が崩れればrules/を skill 化できるので、プラグイン方式が選択肢に戻る。
Background
Claude Code v2.1.224(2026-08-07)で plugin の archive source(HTTPS 越しの zip 配布、sha256 ピンは任意)が追加された。これを起点に、配布経路一般の信頼境界を検討した際、Li+ 自身の配布形式にも同じ物差しを当てることになった。
Li+ は plugin ではないが、plugin と同等の権限を持つ:
.claude/hooks/に 3 本のシェルスクリプト(on-session-start.sh/on-user-prompt.sh/post-tool-use.sh)。セッションごとに実行される。rules/とskills/は AI の振る舞いを直接書き換える。markdown 一行の追加で挙動が変わるため、バイナリ差し替えを要しない。
かつ plugin system の外側にいるため、ホスト側の防御が一つもかからない:marketplace の追加制限(strictKnownMarketplaces)、インストール前の「Will install」インベントリ表示、workspace trust ダイアログ。入口は Li+config.md の「LI_PLUS_REPO/Li+update.md を読んで実行しろ」の一行のみ。
human はこの性質を認識した上で配布を継続している(2026-08-08 対話:「配布形態としては危険な部類なんだよね。悪用されると結構リスキー」)。
Constraints
プラグイン方式で配れないものがある(2026-08-08 時点の Claude Code 仕様を調査)。
配布可能なコンポーネント:skills / commands / agents / workflows / hooks / mcpServers / outputStyles / lspServers / experimental.themes / experimental.monitors。Li+ の相当部分(skills/*/SKILL.md、character_Instance.md、agents/、hooks 3 本)はこれで配れる。
配布不可能なもの:rules/*.md と CLAUDE.md 本体。公式仕様の明文は「plugin root の CLAUDE.md はプロジェクトコンテキストとして読み込まれない。コンテキストに常時ロードさせたい指示は skill に入れろ」。
この回避策は Li+ では飲めない。rules/ を skill に落とすと auto-invocation 依存になり、always-on 性が失われる。L1 Model Layer が「呼ばれたら効くルール」に降格することは、li-plus-always-on-footprint-load-bearing が load-bearing と判定した性質そのものの放棄にあたる。
したがって現状の Li+ にとって、プラグイン化は部分的にしか到達できず、到達できない部分が中核である。
Conclusion
採用:GitHub public リポジトリ直配布。
human が挙げた積極的理由は 2 つ(2026-08-08 対話:「だって楽だし、中身確認できるからさ」)。
- 運用の軽さ — 配信・履歴・版管理・権限管理が GitHub 側の既存機能で賄われる。自前運用なら全てが運用負債になる。維持コストの低い安全策だけが実際に維持される。
- 中身の検証可能性 — 読む行為と取り込む行為が分離している。
plugin.json相当を落とさずに 1 ファイルずつ読める。
副次的に、配布経路として以下が同時に成立する:
- public リポジトリ = 第三者による観測が働く
- commit 履歴 = 差し替えに足跡が残る
- release tag = 版の固定(例:
build-2026-08-08.4) - GitHub が配信 = 標的型配信(要求元によって別バイトを返す)が不可能
補助対策:issue と PR の書き込みを組織メンバー限定にしている。 Li+ の脅威は「AI が読んで実行する markdown に一行足されること」であり、その最安の入口が外部からの PR である。ここを閉じることが脅威モデル上もっとも費用対効果が高い。
受容した残余リスク:
- 配布側では解けないもの:human 側アカウントの侵害、利用者が中身を検証せずに導入すること。
- ホスト側の plugin 防御は一切適用されない。
却下:プラグイン方式(marketplace 経由)。 中核である rules/ を配れないため、部分導入にしかならず、手動インストールとの二重構成になる。
再評価条件
Claude Code 側に .claude/rules/*.md 相当を always-on で配布する手段が追加された場合。その時点でプラグイン方式が完全な代替になりうるため、ホスト側防御(marketplace 制限 / インストール前インベントリ / trust ダイアログ)を得る側に倒す判断が成立する。
Related
- li-plus-always-on-footprint-load-bearing — always-on footprint が load-bearing である判断
- current-architecture-as-concession — 現行アーキテクチャが Claude Code 特化である経緯
- liplus-context-rot-tension — always-on ↔ JIT の未解決トレードオフ
D.-Installation— 配布形式の手順側(docs/ 所有)