Repository navigation
gate miss measured not enforced
5 軸ゲートの決定論的な再 arm が既に存在し、それでも同型の適用漏れが観測され続けるとき、Li+ は次に何をするか。強制機構(ターン終了のブロック / ツール引数による必須化)へ上げるのか、それとも別の手を先に取るのか。
強制へは上げない。まず発生率を測る。
hook-driven-gate-trigger が引いた線がここに効く。同判断は「決定論性の scope は再 arm(号令注入)に限られ、チェック実行の強制ではない」と明記し、brake 2 はまさにその scope 限定を理由に PASS した。Stop hook の decision: "block" によるターン差し戻しも、書き込みツールに「読んだ面」を引数として要求する案も、この線の強制側に落ちる。同じ hook 機構を使うかどうかは判定軸ではない。再 arm か強制かが判定軸である。
したがって強制機構の導入は、hook-driven-gate-trigger の brake 2 が依拠した前提を崩す変更であり、その前提を崩す提案は brake 2 を通してからでなければ成立しない。実装者が緩い許可だけで通してよい種類ではない。
先に取る手 = 発生率の観測。 対象クラスが自律で閉じつつあるなら、強制機構は閉じかけの問題のために自律を売ることになる。売値は human-ai-tool-relation-clause が rules/model/absolute.md に置いた条項そのもの——同条項は主語を Li+ に置き、規定対象を rules/ / skills/ / adapter/ の内容としているため、強制機構を出荷することは条項の充足状態を diff で観測可能な形で動かす。
観測窓は 2 週間。閾値は先に固定する:
- 窓の後半で発生ゼロ → 自律で閉じた。強制案は破棄し、当該クラスは「修理不要」で確定
- 横ばい / 増加 → そこで初めて強制側を検討し、根本基準との衝突を明示した上で brake 2 へ載せる
測る前に機構を足さない。 これが本判断の可搬部分である。
- depends on: hook-driven-gate-trigger — 再 arm と強制を分ける scope 線が本判断の前提。同 entry の brake 2 判定(「deterministic は再 arm に scope、チェック実行強制でない」)が崩れるなら本判断も再評価対象
- depends on: human-ai-tool-relation-clause — 「Li+ はその自律を尊重し」の主語が Li+ である以上、強制機構の出荷は条項の観測対象そのものを動かす。条項の射程が変われば本判断の代償計算も変わる
- relates to: master-verification-at-runtime-not-spec — 残余(強制しない以上、適用漏れは事後にしか観測されない)は runtime + self-eval で閉じる。spec literal 側に back-stop を作らない方針と同型
- relates to: subtractive-structural-beauty-framing — procedure-vs-structure binary は本件にも当たるが、hook-driven-gate-trigger のように置換先の構造が自律を侵さない形で取れる場合に限られる。侵す場合は binary の適用より Absolute の優先順位が先に立つ
rules/model/trigger-check-gate.md Source check 軸の適用漏れ(状態を保持している面を開かずに断定する)が、2026-08-13 から 2026-08-18 にかけて 9 件累積し、promotion-judgment の noise floor を越えて #1750 として起票された。
2026-08-20 の切り分けで 9 件は 2 つに割れた:
- A = 発火ギャップ 8 件. 面は到達可能で、1 回読めば決まった。うち 1 件は tool 呼び出しすら不要で既に文脈内にあった(自分の言い回しを Master の発言として帰属)。規則も skill も毎ターンの hook 再 arm も全て存在した上での漏れである
- B = 射程ギャップ 1 件. 開いた面にそもそも当該の問いを決める射程が無く(受信メール 1 通から「返信したか」の否定を断定)、そこに気づかなかった。A とは別型
A に対する「規則をもう一本足す」は #1750 の制約が名指しで禁じており、skills/model-source-check/SKILL.md 自身も「規則が発火しなかったとき、もう一本足す反射に乗る前に capability / visibility の substrate を先に問え」を発火条件に持つ。そこで構造側の候補として Stop hook(last_assistant_message を受け取りターン終了をブロック)と、ツール引数による必須化が検討された。
調査で確定した事実:
-
Stophook は Claude Code / Codex の両方に実在し、last_assistant_messageとstop_hook_activeを受け取る。差し戻しの形はdecision: "block"+reasonで両者同一(Codex の生成スキーマが「Claude の意味論に合わせた」と明記) - ただし hook の event set は完全互換ではない。Codex 11 / Claude 約 31 の部分集合であり、フィールド名も一部異なる
- ツール引数による必須化は hook を外した瞬間に自己申告へ落ちる。「読んだ面」を埋めるのは、直前に断定した本人である。破れた誠実さと埋める誠実さが同一主体であり、構造ではなく書類になる。申告でなく履歴から測るには、エージェントの Read 呼び出しをツール側へ渡す経路が要り、それは hook である
つまり非 hook 経路に、自己申告へ落ちない形は見つからなかった。残った選択肢は強制側の hook のみであり、そこで Master が本音を述べた(2026-08-20、「強制行動化じゃん? AI の自律にかけたいのが本音」)。この一言が判定軸を設計から根本基準へ移した。
- A クラスの一部はどの機構でも取れない。ツールを一切通らずプロンプトだけで完結する断定(Master が実行したコマンドの断定 / 自分の言い回しの Master への帰属)は、
Stophook の本文照合でもパス照合の対象外であり、非 hook 経路では原理的に届かない -
hook-driven-gate-trigger は本件を既に scope 外として名指している(「mid-turn gist-assertion 精度の構造的強制」は残しであり、post-judgment の miss は
skills/evolution-self-eval/SKILL.mdが観測する)。#1750 の結論はこの既存判断と整合しており、新規の未決事項ではない - 同 entry が監視項目として挙げた habituation(毎ターン同一号令の壁紙化) が、本件の対立仮説として生きている。再 arm が存在するのに漏れるなら、原因は「機構が足りない」ではなく「号令が壁紙化した」かもしれない。その場合の手は強制ではなく号令の動的化であり、観測はこの二択を分ける材料にもなる
- 観測窓の運用に新しい仕組みは要らない。
memory/promotion_tally.mdとmemory/self-evaluation_log.mdが既に面として存在する
- 採用: 強制機構の導入前に発生率の観測窓(2 週間、閾値先出し)を置く。窓の結果で破棄 / brake 2 送りを分岐
-
却下(現時点):
Stophook のdecision: "block"によるターン差し戻し。理由は機構の是非ではなく、hook-driven-gate-trigger の brake 2 が依拠した re-arm scope を崩すため。崩す提案は brake 2 を通ることが先 - 却下: 書き込みツールへの「読んだ面」引数の必須化。非 hook では自己申告へ落ち、検出力が申告の誠実さを超えない。hook を足せば自己申告は解けるが、その時点で強制側の判断と同じ場所に戻る
-
却下: 規則の追加。#1750 の制約と
skills/model-source-check/SKILL.mdの発火条件が名指しで禁じる反射 - 残し: プロンプトのみで完結する断定は、いずれの案でも取れない。runtime + self-eval の事後観測に残す(master-verification-at-runtime-not-spec と同じ処理)
- issue #1750(promotion / spec / forming、9 occurrences、2026-08-20 に切り分け結果を body へ反映)
-
memory/promotion_tally.mdクラスタassertion made from a surface whose scope cannot settle the question(B 型、2026-08-20 に A から分離、tally 1) - 調査で参照した外部ソース:
openai/codexのcodex-rs/hooks/schema/generated/(生成スキーマ実物)/ Claude Code Hooks reference
この 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 の言い直し・位置づけは持たない
- サブエージェント起動の着地点の目安と数値の出典