Repository navigation
operations adapter bodies carry behavior only
rules/operations/*.md(常時ロード)と adapter/claude/CLAUDE.md / adapter/claude/hooks-settings.md / adapter/codex/AGENTS.md / adapter/codex/hooks-config.md の本文から、rules/model/liplus-coding-rule.md Body States Behavior の判別線(読んだ者の行いが変わるか)で理由・経緯・重複を剥いだとき、剥いだ理由はどこが保持するか。
本文は振る舞い(何を・いつ・どの条件で・誰が・何を禁じるか)だけを持つ。剥いだ理由は、既存 entry や docs が既に保持しているものはそちらが持ち(下の「合流先」)、それ以外は本 entry が持つ(下の「本 entry が保持する理由」)。
PR #2111(issue #2110)で 8 ファイル合計 +95 / −183 行。見出し・semantic tag は不変。## Optional Webhook Notification Flow 節は byte-frozen のまま。本文にポインタは置かない(judgment-record-pointer-requirement-dropped)。
判断の根拠として既存 entry に逐語引用されている行は、剥ぐ対象から外した。main-agent-procedures.md の these serve as arrival confirmation = proof that the operation reached GitHub.(webhook-arrival-clearing-requires-confirmation の唯一の根拠)と、operations.md の title 行の理由(distributed-source-carries-no-resolved-config-value が「固定側にはその理由を明記する」と決めている)は本文に残した。PR #2111 brake 1 round 1 の指摘による。
| 剥いだ位置 | 合流先 |
|---|---|
operations.md Autonomous Run Stop Condition の「停止条件はこの一般則の適用例の一つであって範囲ではない」 |
brake2-removal-l1-gate-unified-on-brake1(一般則を L4 で無条件に成り立つ形へ広げた判断) |
hooks-settings.md / hooks-config.md の LI_PLUS_AGENT_KEY の理由(なぜ session 単位の識別子では足りないか) |
cold-start-state-partitioned-by-agent-key |
CLAUDE.md Resume mechanism の ListAgents 実測(2026-09-26/27)の詳細、子に id を尋ねても宛先が得られないこと |
docs/6.-Adapter.md(同段落が実測を全文で保持) |
execution-mode.md
- semi_auto の設計意図: 自己進化ループを回すことが設計目標で、patch の自動マージは低リスク変更から人間のボトルネックを外す。minor / major は人間の確認を残す。
- semi_auto の防御は意図して二層(Defense-in-depth): 1 層目 = AI self-review + Li+ spec discipline(日常の誤りを吸収)、2 層目 = release の人間ゲート(実機検証後の Latest flip。利用者への致命的な露出を防ぐ)。どちらの層も振る舞いとしては本文に残っている(Mode matrix の
AI self-review行とhuman judgment gate)。本文から外したのは「二層として設計した」という説明だけである。brake1-detection-width-window-closedはこの二層を「縮んでいない残りの層」の一つとして数えており、その参照先は本節である。 - Per-PR exception の L1 追記: L1 の観測閾値(issue 形成時)と post-merge ランタイム観測は、この mode matrix が持たない軸にある。どちらもマージゲートではない(この一文は本文に残した)。
- 「Li+config.md を手で編集しなくてよい」「release はモードに依らず人間が確認する」の二行は、同じファイルの直前の行と Mode matrix の重複として外した。
operations.md
- title 行と body 行は別の軸: ASCII English の title は GitHub 側の一行タイトルの慣習で、
LI_PLUS_PROJECT_LANGUAGEが解決する値ではない(理由の一文は本文に残した)。title 行をパラメータ化しつつ body 行を契約参照として読む、という誤読に向けた行だった。 - body 行の carve-out:
Workspace_Language_Contractは「LI_PLUS_REPOの統治を変えない」と到達の終わりを述べるだけで、その先で何が統治するかは決めていない。だからLI_PLUS_REPO自身を操作するとき、body 言語を決めるのはLI_PLUS_PROJECT_LANGUAGEではなく、そのリポジトリ自身の統治(.github/workflows/liplus-ci.ymlが言語を固定し、欠けた run を落とす)。title 側の行は固定値をパラメータ化することに、この行は配布元リポジトリを操作しながら host workspace の値で body を解決することに、それぞれ向けた対になっている。 -
docs/とdocs-tierは同じ語で別の軸: 後者はskills/evolution-persistence-tieringの永続度の段階で、wiki も含む。 -
mark_processedを省くと backlog が溜まる。 - Autonomous Run Stop Condition: 静的検査が緑でも静的軸が通ったことしか言わず、ランタイム軸(subrequest 上限、IPC、rate limit、schema migration の副作用)については何も言わない。夜間実行の価値は朝より早く検出することであり、デプロイ後の観測を省けばそれを失う。
- Post-L1-Merge Runtime Observation: 観測対象は規則適用の瞬間の AI の判断挙動で、本番デプロイ観測(外部プロセスの出力)とは別の軸、名目の予算は同じ 5 分。起動アンカーを
operations-*skill に置けないのは、その手続きの実行主体が全モードでメインで、メインは operations skill を読まないため(置いたアンカーが読み手を素通りする)。5 分窓の中の手順は想起依存のままで、rules/model/subtractive-structural-beauty.mdの手順→構造の二択では置き換え側にある。hook による置き換えが残っている修理の形。 - Operations Label の
promotionmarker: 閾値・期間の数字(3 日で 3 回、5 回で即時)はrules/evolution/promotion-judgment.mdの写しだったため外した。
main-agent-procedures.md
- 本文中の「ここでは再掲しない」系のメタ行は、ポインタだけを残して外した。規範の正本はポインタ先にあり、写しを置かないという方針は
always-on-duplication-removal-directionと同じ。 - 「マージは閉じ括弧ではなく、先送り項目の受け渡しが閉じ括弧」: 先送り項目の規定(ワークスペース側はマージ後の瞬間に、リポジトリ側はマージ前に起票)そのものは本文に残した。
- Foreground webhook intake の Purpose「前面スレッドを軽く保つ」: 禁止(配送済みのイベント源があるのに GitHub を広く探さない)は本文に残した。
- state dir の名前の一覧は
scripts/check_webhook_notifications.pyが 1 か所で持ち、本文の行は契約であって二つ目の出所ではない。 - 所有判定 step 2 の残存制限: タイトルは issue を名指し、書き手を名指さない。同じ issue に書く二つのセッションは同じタイトルの run を二つ上げ、どちらも両方を自分のものと読む。どのセッションも飢えない。各自が自分の到着確認を一つ持ち、
mark_processedは冪等なので、重複した消費は最初と同じ状態を書く。step 2 を作成に絞り戻して直さない(この禁止は本文に残した)。 - Handoff continuity の Actor: メインが境界を越えて持つ状態は、実装サブエージェントの再開先(spawn したセッションの文脈にしか無い)と
chat memory。
adapter/claude/CLAUDE.md / adapter/codex/AGENTS.md
- Concept framing の Stages(harness → agility → sheepdog)と Substrate caveat(
--channelsが Claude Desktop に届かないと判断、substrate 層 Sheepdog は保留)、self-eval が modifier 軸の計器であること: 状態と経緯の記述で、読み手の行いを変えない。正本はdocs/G.-Sheepdog-Engineering.md(Lay 側 #2109 はrules/evolution/evolution.mdから同じ--channels括弧句を外した。adapter 側は Substrate caveat の行ごと外したので両 adapter は並行のまま)。 - Resume mechanism: id を失うと、再開が保とうとしている実装文脈そのものを失う。id 喪失は「spawn したセッションの文脈」の項が述べる状態と同じ。
- What worktree does not isolate: 上の 3 行が名指すのは staging area であり、共有されるもの全体ではない。退避手順は委譲プロンプトに毎回注入される。
- AGENTS.md の skill 選択: Codex は name / description / path を先に見て、選ばれたら
SKILL.md全体を読む(Claude ホストと同じ progressive disclosure)。 - AGENTS.md の resume:
fork_turnsは spawn 呼び出しの引数で、再開はエージェント自身の保存済み文脈を構造的に継承する。フェーズ 2 が依存するのはその性質。
adapter/claude/hooks-settings.md
- compare-and-overwrite は以前の「存在すれば触らない」規則を置き換えた。以前の規則では hook 構造の更新を自動で配れなかった。新しい規則は
settings.jsonを release ごとにテンプレートへ揃えつつ、内容が違うときだけ上書きするので、毎回の機密ファイル許可プロンプトを避ける。 - Migration note: 以前の Li+ から上げたワークスペースで
settings.jsonに置かれていた利用者のキーは、この規則のもとでは上書きで落ちる。 - SessionStart の 5 matcher: Claude Code v2.1.214 より前は fork 系のセッションが
resumeを名乗っていたため、以前は 4 matcher で足りていた。未登録の matcher は別の entry へ落ちない。 - mcp_tool entry の版条件: v0.11.3 より前の
get_pending_statusは汎用 JSON({pending_count, types, latest_received_at})を返し、Claude Code は parse はするが UserPromptSubmit の decision schema に合わないので捨てる。v0.11.3 は local bridge 側でhookSpecificOutput.hookEventName="UserPromptSubmit"とadditionalContextの要約へ包む。 - webhook の処理半分を hook が毎モード出す理由: webhook ブロックは「誰がツールを呼ぶか」と「届いたものをどうするか」の分離できる二つで、delivery mode が選ぶのは前者だけ。常駐の正本(
main-agent-procedures.mdForeground webhook notification intake)の発火の瞬間はeach user turn startで、常駐は読み込みの保証であって発火の保証ではない。両半分を一緒に落としたのが #1798(イベントは文脈に届いたが、何をするかを言う面が無かった)。 - post-tool-use の firing trace は #1710、stray-script scan は #2047。
adapter/codex/hooks-config.md
- 配置(
.agents/skills、.codex/、AGENTS.md)・Windows ネイティブの PowerShell 実行・SessionStart のadditionalContextが届くこと・GUI trust の必要は #1502 の実機検証による。trust の案内はdocs/D.-Installation.mdが持つ。 - matcher は公式の hooks schema で regex と確認済み。Claude 型の 4 entry に分ける必要はない。
- compact 後に
additionalContextが残るかは #1502 で未検証(Codex App に手動/compactが無い)。compactでも再注入するのは安全側の既定。再注入を全 matcher で行うのは、session 境界ごとの再注入が Codex で唯一の常時オンの基盤だから。 - webhook の処理半分を毎モード出す理由は hooks-settings.md 側と同じ(#1798)。
issue #2110(Master「無駄なもの全部蒸留して」のうち Lin 担当分)。rules/evolution と rules/task は別 issue(#2109、evolution-task-rule-bodies-carry-behavior-only)。
- 振る舞いは変えない。削るのは理由・経緯・重複・自明な補足だけ(issue #2110 constraints)。
-
## Optional Webhook Notification Flow節は byte-frozen(tests/test_adapter_update_contract.pyが逐語で固定)。 - CLAUDE.md と AGENTS.md の共有文面は両方同じ内容で変える。Codex の spawn 引数の行は
tests/test_codex_subagent_context_contract.pyが固定しているので触らない。 - 既存 entry が判断の根拠として逐語で引く行は剥がない(上の Current resolution)。
採用: 剥いだ理由を本 entry と既存の記録へ移し、本文は振る舞いだけにする。根拠として引かれている行は残す。
却下: 理由の置き場を PR #2111 の本文だけに任せる案(issue #2110 の constraints が置き場を Decision Structure wiki と名指し、rules/model/liplus-coding-rule.md Body States Behavior が記録を剥いだ作業単位に求めている。PR #2111 brake 1 round 1 で指摘)。
-
depends on
source-body-behavior-only-reasoning-relocates— 判別線と移設の規則そのもの -
depends on
judgment-record-pointer-requirement-dropped— 本文にポインタを残さない -
relates to
evolution-task-rule-bodies-carry-behavior-only— 同じ蒸留の rules/evolution・rules/task 側
- issue #2110 / PR #2111
-
brake1-detection-width-window-closed— semi_auto の二層を参照する entry
この Wiki は、Li+ に基づく開発・運用を支えるための情報整理空間です。
数字で始まるページは、 Li+プログラムの各レイヤーの仕様を定義するページです。
- 要求(何を満たすか)と仕様(どう振る舞うか)を一体として記述する
- 実装前に作成または更新する
- issue群から採用された要件を集約する
これらのページは 安定性と一貫性を重視して管理されます。
アルファベットで始まるページは、 Li+の構想・設定・導入手順などの参照用ページです。
- 設計思想・背景
- 設定リファレンス・インストール手順
これらのページは 必要に応じて更新・拡張されます。
リポジトリ内の rules/**/*.md(L1–L4 の常時ロード分、subdir 含む)、skills/**/SKILL.md(トリガー起動分)、adapter/claude/CLAUDE.md、adapter/claude/hooks-settings.md、adapter/claude/hooks/*.sh、adapter/codex/AGENTS.md、およびルート直下の Li+config.md、Li+update.md は、
AIやランタイムが直接読む実行用プログラム / 定義ファイルです。
-
docs/は人間向けの仕様書・要求仕様・手順書 -
rules/,skills/および adapter / update は実行時に読み込まれる本体
両者は対応しているが、役割は同じではない。
Home | 1. Model | 2. Evolution | 3. Task | 4. Operations | A. Concept
要求仕様書 (1-6)
参考文書 (A-L)
- A. Concept
- B. Configuration
- C. Update
- D. Installation
- DiDD(対話駆動開発)
- E. Li+ language
- F. Behavior-First
- G. Sheepdog Engineering
- H. Roles and Evaluation
- K. Source File Format
- L. Hop Count Instrument
判断構造
- Decision Structure
- layer reorg rationale
- github app user-to-server token expiration
- sheepdog engineering concept
- prerelease tag recovery procedure
- release flip drift patterns
- Li+ long-term vision (feedback only)
- Master role as client-architect
- current architecture as concession
- Li+ license Apache-2.0 rationale
- Character_Instance evolution history
- prompt as emotion vector controller
- agentic-search five-phase refactor
- Character_Instance output-styles migration
- Li+ lightening L1 gate override
- subagent state-machine label mechanism
- LSP integration out of scope
- Character_Instance opt-in and surface scope
- parallel-subagent-eval three-axis decomposition
- parallel-subagent-eval cost acceptance
- parallel-subagent-eval model floor
- release version rule always-on relocation
- bootstrap walkthrough skip and gh install relocation
- wiki sync sidebar integrity check
- decision structure rename rationale
- decision structure industry positioning
- subtractive structural beauty framing
- Li+ authorship is collaborative
- Li+ design intent vs current limit
- Li+ history is empirical
- Master verification at runtime not spec
- rules cache fetch address table
- dialogue-evaluator scoring redesign
- Li+ always-on footprint is load-bearing
- DiDD umbrella naming
- milestone subsystem removal
- L1 brake 2 root-criteria evaluator
- Hook-driven gate trigger
- ゲート適用漏れは強制より先に測る
- dynamic-workflows non-adoption
- ACE context-engineering non-adoption
- memory GraphRAG SQLite exploration
- Li+ context-rot tension
- Li+ structure as retrieval surface
- 常時ロード分の重複を削る向き
- Li+ evaluation criterion
- Li+ self-evolution lineage
- Li+ judgment-learning telos
- Sheepdog Engineering publish intent
- Implementation always delegated
- brake evaluator baseline integrity
- brake1 single-round cap
- brake1 の再実行可否は監査内容で決める
- brake 指摘の裁定を再開した著者が持つ
- brake1 の発火条件を基準で閉じる
- skill の発火条件は description 内に置く
- subagent parallel-width cap
- brake1 operational-copy target-conditional
- brake1 findings は親を経由する
- brake1 の per-draft 軸を 2 本に固定する
- brake 2 の DEVIATION を人間が上書きする
- wiki sync code-notation strip
- wiki sync drift-targeted mirror
- decision structure writer surface activation
- decision structure state-form edge binding
- Neuron Graph RAG integrated prototype
- issue 完了条件フィールドの射程
- body 節と description の被覆ずれの解き方
- グラフエンジニアリング非採用
- Li+ の配布形式は GitHub 直配布
- 配布される source に config の解決値を書かない
- ルールは基準を持ち、来歴は git に置く
- 人間と AI の関係条項を absolute.md に置く
- 来歴を預けた retrieval 面が実際に答えるか
- 存在側の欠陥は空欄ラベルの可視性に届かない
- brake 2 の判定対象は変更の内容
- エージェント定義の判定基準を sentinel 区画で所有
- brake 2 を廃し L1 のゲートを brake 1 へ一本化
- 多セッションが効くのは入力が変わるとき
- source 本文は振る舞いのみ、理由は移設
- parallel-agent-eval 本文は振る舞いのみ
- agentic-search 蒸留版は full と同等(実測)
- 読みの除去テストが通した削除を実測が差し戻した
- brake1 の評価者数の床を N=1 へ
- Judgment record ポインタ要件を撤廃
- brake1 を上限 3 往復の収束ループへ
- 受け皿より先に縮んだ検出幅の窓を閉じる
- issue constraints の「対象ではない」は宣言
- クローン同一性は remote で解決
- tally は機構の名前の下に置く
- config 値比較は厳格に、外れた値は名指し
- webhook 到着通知の消去は確認を伴う
- 検索性能比較コーパスは既存リポジトリ内の path で隔離する
- MSYS のパス変換は argv だけに効く
- 観測不能な主張は書き手を替えても記録にならない
- parallel-agent-eval の 1 周目の跡に残っていたのは再掲
- 実装委譲エージェントに定義ファイルを与え effort を固定
- cold-start diff-only 状態は agent key でパーティション分割
- 観測不能の宣告はホストの母集団に対する主張
- 検出器は到達可能な位置にあって初めて検出器である
- ランタイムの rules はタグへ解決する
- 記録面の除外は読み直しで捕まる行にだけ成り立つ
- 再開プロンプトの注入項目は基準で閉じる
- 委譲プロンプトが運ぶのは境界であって手順ではない
- 規則の効きの実測の各条件は観測された失敗の上に置かれている
- parallel-agent-eval は蒸留で約 5,340 トークン、残りの超過は受容
- brake 1 の往復上限を撤廃し、同じ指摘の再発を人間へ上げる
- rules/evolution と rules/task の本文は振る舞いのみ
- rules/operations と adapter の本文は振る舞いのみ
- rules/model(L1)の本文は振る舞いのみ
- main-agent-procedures の常時ロード本文はメインの運用場面で行いを決める文のみ
- cold-start-synthesis の本文は振る舞いのみ、フックの仕様は docs へ
- initiator-autonomy の常時ロード本文は振る舞いのみ、tests の散文規則は skill へ
- operations.md の常時ロード本文は振る舞いのみ、索引と label 辞書の写しは持たない
- memory-entry-format.md の常時ロード本文は書式と保守のみ、observation 手順は skill へ
- promotion-judgment の常時ロード本文は振る舞いのみ、軸の関係の説明は docs へ
- execution-mode.md の常時ロード本文は、マトリクスを言い直さず、他の常時ロード面の写しも持たない
- task.md の常時ロード本文は issue とラベルの行いだけを持ち、写しと層の説明は持たない
- main-agent-procedures の場面に限られる手順は、名指しが届く skill へ
- evolution.md の常時ロード本文は振る舞いのみ、レイヤーの位置づけと他面の写しは持たない
- operations.md の場面に限られる節は、名指しが届く skill へ
- CLAUDE.md の常時ロード本文は振る舞いのみ、位置づけ・読込の説明・常時ロード面の写しは持たない
- initiator-autonomy の場面に限られる記述は、brake 1 の skill へ
- skill description の詰めは、場面を狭めない句だけを切る
- L1 の 5 本の 2 周目は内側の写しと位置づけの説明を外し、書く規律は常時ロードに残す
- subtractive-structural-beauty と trigger-check-gate の常時ロード本文は振る舞いのみ、言い直し・位置づけ・他所の再掲は持たない
- absolute.md の常時ロード本文は振る舞いのみ、Name prefix scope の言い直し・位置づけは持たない
- サブエージェント起動の着地点の目安と数値の出典