Decision Structure - Liplus-Project/liplus-language GitHub Wiki

判断構造レイヤー(Decision Structure)

判断構造レイヤーは、要求仕様書(1-6)やユーザー向けドキュメント(A-D)とは異なる第三の用途を持つ。 実体エントリ(<topic>.md 形式の kebab-case ファイル名)は GitHub Wiki に格納される。本ファイル(docs/Decision-Structure.md)はそのレイヤーの運用仕様としての index に専属する。


位置づけ

モデルレイヤー仕様書(1.-Model.md)は外部記憶を次のように定義している:

issue、docs、commit message は判断の履歴と根拠の外部記憶として機能する。 外部記憶が記録するのは判断であり、一次情報ではない。

判断構造レイヤーは、この外部記憶の原則に基づく。 セッションをまたぐと消える判断知を蓄積する。

履歴 (log) ではなく構造 (structure) である: Decision Structure は時間順 append-only の log ではない。判断ノード (state 形エントリ) と supersede / depend / conflict edge による意味グラフであり、volume は refine / replace で安定する。維持運用は refactor (normal operation) として扱う。

実体エントリは GitHub Wiki にあり、github-rag-mcp >= v0.8.5 の wiki indexing 経由で RAG-MCP のセマンティック検索対象に入る(書くだけで検索される)。

書き味は wiki の casual write(PR ceremony 不要、git push 直接)に乗る。仕様書(1-6 / A-D)の write は重い PR フローに残し、判断構造の write は軽量に保つ非対称設計。

docs/Decision-Structure.md(本ファイル)はレイヤー運用仕様の固定 index として docs/ 側に残し、adapter/claude/hooks/on-session-start.sh が cold-start synthesis material として head を emit する経路を維持する。


蓄積条件(いつ書くか)

以下のいずれかに該当するとき、判断構造を wiki に追記または新規作成する:

  • 設計上の分岐で選択肢を比較し、理由をもって一方を選んだとき
  • アプローチを試して失敗し、原因が判明したとき
  • 前提を検証し、結果が確定したとき(成功・失敗を問わない。ただし self-evolution observation entry の settle は、置き場所を skills/evolution-observation-entry/SKILL.md に従って選ぶ)
  • 複数セッションにわたって同じ調査を繰り返していることに気づいたとき

書かないもの:

  • 時間で変わる事実(API仕様、ライブラリのバージョン挙動)→ 鮮度問題があるため都度調査する
  • issue や commit body に既に書かれている判断 → 重複を避ける
  • 自明な選択(選択肢が実質一つしかないもの)

エントリ shape (state-form 推奨)

新規エントリは state 形で記述する:

  • Question = どの問いに対する判断か
  • Current resolution = 現在の答え (state、現在形)
  • Edges = supersede / depend / conflict edge の宣言

state 形は時間順 implicit ordering ではなく現在 state を主語にする。判断は時間とともに refine / replace されるため、最新 state が「今どう判断しているか」を直接表すほうが読み手に効く。詳細は skills/evolution-decision-structure-write/SKILL.md を参照。

既存エントリは遡及書き換えしない。新規エントリと既存 entry の意味更新時に state 形を用いる(forward guidance)。


書く前の振り分け(対象リポジトリと要件仕様)

本文を書く前に、二つの問いで書く内容を振り分ける。

  • 誰の判断か:判断記録(Question / Current resolution / 根拠 / Edges)は、どのリポジトリについての判断であっても本 wiki の Decision Structure に置く。判断グラフは単一に保ち、リポジトリごとに分けない。entry を持つ wiki のリポジトリ以外が対象の判断では、本文冒頭に Target repository: <owner>/<repo> を 1 行で明記する
  • 判断記録か要件仕様か:実装が満たすべき条件(契約・順序・データ形・success oracle など)は要件仕様である。entry には書かず、対象リポジトリの docs/ に置き(docs/ が正本、rules/operations/operations.md)、entry からそこへリンクする。対象リポジトリの docs/ にまだ無いときは、そのリポジトリに追加の issue を立て、entry からはその issue にリンクする

振り分けは今回の書き込みが加える内容に適用する。既存 entry を掃き出して一括移動することはしない。手順は skills/evolution-decision-structure-write/SKILL.md の Procedure を参照。


Edge taxonomy (primary edge vocabulary)

state 形エントリは適用可能な edge を declare することが推奨される。primary edge は 3 種:

  • supersedes = この判断は別 entry の判断を置き換える。旧 entry は graph に残る(削除しない)が、検索路は最新 entry に集まる
  • depends on = この判断は別 entry の判断を前提とする。前提が崩れた場合は本判断も再評価対象になる
  • conflicts with = この判断は別 entry の判断と一部または全体で矛盾する。未解決の論点を可視化する surface

edge は前方リンク(本 entry から相手 entry へのリンク)として書く。逆方向のリンクは次回 wiki sync の cross-reference integrity check で整合性が観測される。


検索のタイミング(いつ読まれるか)

判断構造に専用のトリガーは設けない。 mcp__github-rag-mcp__search のセマンティック検索を type: "wiki_doc" または "all" で叩いた際に自然に引っかかる。

主な検索機会:

  • issue の forming → ready 移行時に前提を検証するとき
  • 新しい設計判断を行う前に、過去の類似判断を探すとき
  • skills/model-agentic-search/SKILL.md の探索 trigger 発火 (governance + mechanical core 統合) に基づく情報収集の一環として

メンテナンス (refactor framing)

判断構造は構造体である。削除や統合は「履歴を消すこと」ではなく「構造を refactor すること」として normal operation の中に位置づける。

supersede via link を上書きより positive default として優先する。既存 entry が無効化された場合、旧 entry を削除するのではなく新 entry を立て、旧 entry に supersede edge を張る。検索路は最新 entry に集まりつつ、graph 構造は維持される。

削除条件(条件に該当する場合のみ):

  • 前提が変わり、記録された判断の根拠が無効になったとき
  • 対象の機能やコードが削除され、判断自体が無意味になったとき
  • 要求仕様書に統合され、独立した記録として残す必要がなくなったとき

これらは「履歴を抹消する」ではなく「structure が更新された結果として旧ノードを撤去する」操作である。条件未充足の状態で「念のため消す」ことはしない。

wiki 上のファイルは git history に残るので、削除しても reflog 経由で復元可能。

タイトル(ファイル名)の変更も自由化されている。整理整頓の一環としてエントリ名を rename する場合は、git mv old-slug.md new-slug.md + 全 entry の cross-reference 追従 + _Sidebar.md の slug 更新 + 本 index 表の更新を 1 コミットで行う。broken cross-reference は skills/operations-on-wiki-sync/SKILL.md の Cross-reference integrity assertion が次回 wiki sync で検出する。


ファイル命名と所在

ファイル 所在 用途
Decision-Structure.md docs/ + wiki レイヤー運用仕様(本ファイル)。docs/ は cold-start hook 用、wiki は nav 用
<topic>.md wiki のみ 個別の判断構造(kebab-case トピック名、prefix なし)

ファイル名は kebab-case のトピック名のみ(例: wiki-sync-sidebar-integrity-check.md)。順序を示す prefix は付けない。理由は以下:

  • 26 字上限の構造的天井を取り除く
  • トピックの整理整頓(rename / restructure)を自由化する
  • filesystem 順序ではなく本 index と _Sidebar.md で順序を明示する

wiki 内の閲覧は wiki sidebar の「判断構造」セクション、または mcp__github-rag-mcp__search の type: "wiki_doc" 経由。


既存エントリ一覧

ファイル 主題
layer-reorg-rationale L1-L6 レイヤー再編の意図と、L5/L6 に rules/ サブディレクトリが無い理由
github-app-user-to-server-token-expiration GitHub App の User-to-server token expiration 地雷と Opt-out 判断
sheepdog-engineering-concept シープドッグエンジニアリング命名と思想の確定(ハーネスの先)
prerelease-tag-recovery-procedure 「プレリリースタグ」解釈と release 復元手順
release-flip-drift-patterns release / Latest flip 時の過剰拡張・過剰委縮 drift パターン spec 補助記録
li-plus-long-term-vision-feedback-only Li+ 長期 vision(human 明言「フィードバックだけで」)と event-driven substrate
master-role-as-client-architect human の役割 = client + architect、programmer は AI(git author ≠ content author)
current-architecture-as-concession 現行アーキテクチャは譲歩 — Claude Code 特化 + 責務分割の経緯
li-plus-license-apache-2-rationale Li+ license が Apache-2.0 である理由 — prompt artifact を license 対象に明示包摂
character-instance-evolution-history Character_Instance 進化史 + Rejected path(programmer/tester)+ pairing 原則 + 双方向制約
prompt-as-emotion-vector-controller prompt = 感情ベクトル controller、Li+ rules は emotion vector engineering
agentic-search-five-phase-refactor agentic-search 5-phase refactor — skill encapsulation と内部知識の比較基線化
character-instance-output-styles-migration Character_Instance loading mechanism を rules slot から output-styles slot に移行 (Claude adapter)
li-plus-lightening-l1-gate-override Li+ lightening 文脈での L1 gate override 判断
subagent-state-machine-label-mechanism subagent state-machine label 機構導入判断 (in-progress / review-pending / waiting / blocked + 部分 label 権限)
lsp-integration-out-of-scope LSP 統合は Li+ スコープ外 — 言語ごと常駐サーバ重量と汎用 harness 原則の衝突
character-instance-opt-in-and-surface-scope Character_Instance を opt-in configuration + surface scope に refactor — universal binding 解消、subagent hollow prefix bug 構造的解消
bootstrap-walkthrough-skip-and-gh-install-relocation bootstrap walkthrough を 3 軸 AND gate (sentinel tag / schema / language) で skip 可能化 + gh install を hook 側に移譲(context 約 4% 削減、Li+configを実行 magic phrase で強制再走)
parallel-subagent-eval-three-axis-decomposition parallel-subagent-eval を三軸(subagent_count × axes_per_subagent × premise_variations)に分解、デフォルトを N=3 × 全軸 × 単一前提に明定
parallel-subagent-eval-cost-acceptance brake 1 (parallel-subagent-eval) のコストを「予防コスト < 修復コスト」として受容する判断、業界一般のトークン量軸ではなく時間軸波及込みで評価
brake1-single-round-cap brake 1 を N=3 の1巡で打ち切り、修正後の再検証ラウンドを廃止する判断(#1563)— parallel-subagent-eval-cost-acceptance の再評価条件2「substrate 降格を伴わない別経路でのコスト圧縮策」の成立側。降りた欠陥クラス3種を観測 PR 番号つきで明示、判断軸は「正しさは現実の挙動」(表面化していない欠陥のためのコストを降りる)。期間を区切った試行であり、本番実害の観測で再評価
brake1-per-draft-axes-held-at-two brake 1 の per-draft 軸を 2 本(A = issue 要求の充足 / B = 規則違反)に固定し、写すだけの literal として保持する判断(#1832)— 2 サイクルの測定に基づく。サイクル1 は B のみでは A の採用 4 件をすべて落とすこと、および B を対象ごとに割ると割れ目の実例を落とすこと(#1835)を示した。撤回した 2 案(一軸置換 / 6 本への追加)と、射程を brake 1 経路に限る理由も保持
wiki-sync-sidebar-integrity-check Post-release wiki sync の Pre-sync verification に _Sidebar.md 整合性 assertion を埋め込む判断(STOP & escalate、自動修正不採用)
decision-structure-rename-rationale 判断記録 artifact を「履歴 (Decision Log)」から「構造 (Decision Structure)」へ rename + 意味 shift(state 形 entry shape、supersede/depend/conflict edge taxonomy、refactor framing)
decision-structure-industry-positioning 判断構造の industry 既存 vocabulary 上の位置取り: ARCHITECTURE.md (matklad 2021) 哲学を decision domain に graph 構造として拡張、time-axis を書き込み面から読み出し面に relocate した hybrid、ADR variant ではない
subtractive-structural-beauty-framing 引き算原則を内側の感覚 (aesthetic) から外側に観察可能な構造性質 (structural beauty = load-bearing-ness on artifact) へ framing shift する判断 (3 世代目: minus-aesthetic → art-of-subtraction → subtractive-structural-beauty)
liplus-authorship-collaborative Li+ の作者性は Master + AI の協働制作物 — byte 軸 95%+ AI 書き / 構想・設計方向は Master 積極関与の二層分担、単独主語 projection を避ける判断
liplus-design-intent-vs-current-limit Li+ 設計意図と現行 AI 限界を混同しない — Li+ は AI 限界を所与とする構造ではなく、AI 限界を消去していく構造
liplus-history-is-empirical Li+ は補装具スタック — 試行錯誤の堆積、correctness ranking (動く美しさ > 動く醜さ > 動かない美しさ)、aesthetic は将来挙動の保護因子として correctness に含まれる判断
master-verification-at-runtime-not-spec Master の verification gate は実機挙動 (runtime) のみ — spec literal の back-stop はない、source-check / self-review は AI 単独責務
rules-cache-fetch-address-table cold-start で rules/ パスツリーを fetch アドレス表として emit し AI cache invalidation gap を埋める判断(cold-start = cache warming、attention = memory access、Read = cache invalidation の analogy)
dialogue-evaluator-scoring-redesign dialogue-evaluator 採点再設計(#1456)— 6→5 軸(三位一体廃止 / foundational→リテラル基底)/ 較正はしご撤去(0-100 両端のみ・中間は評価者の価値観)/ 統合点廃止(軸ごと・axis-separation)/ 自己スコープ。実走実験 A〜H が経験的基盤: persona は reweighting のみ(新盲点なし)/ 観察=signal・点=persona依存 / 人間=holistic anchor / 較正はしご=系統的上方バイアス
didd-umbrella-naming 対話駆動開発 (DiDD) を三駆動(対話駆動 / 構造駆動 / 現実駆動 = 三本柱)を束ねる総称とする命名判断。Di で DDD (Domain-Driven) 衝突回避、記述優先、F:75 の旧「名前=現実駆動」を「現実駆動=DiDD の判定軸」へ整合(#1468)
li-plus-always-on-footprint-load-bearing Li+ always-on footprint は load-bearing — 文脈圧縮候補3つ(operations→skill / operations→hook / CLAUDE.md dedup)を構造的理由で却下、always-on は #1102 受容 tradeoff。#1800 で射程を限定 = 却下3件は常時ロード面を移す案についてであり、面の内側に非 load-bearing な記述が残っていないかは本 entry の軸ではない(判定は rules/model/liplus-coding-rule.md Body States Behavior と always-on-duplication-removal-direction が持つ)。同時に footprint の増加そのものは再評価条件に加えない判定 = 却下3件の理由がどれも計測量を参照しておらず、閾値を跨いでも1件も動かないため。rules-hold-criteria-not-provenance が残していた未解決点(一般命題への scope 限定の要否)への回答でもある
l1-brake2-root-criteria-evaluator L1 brake 2 の座を Master 人間レビューから Li+ 根本評価基準の専用プロンプト subagent 評価者へ移行(#1477)— PASS = Master 承認の代替 / DEVIATION = merge 不可、並走期間なし、評価者プロンプト自体が layer: L1-model で brake 2 の内側、Human = final judge は別軸で不変
parallel-subagent-eval-model-floor subagent のモデル方針(#1482、#1532 で opus 級から sonnet 級へ更新、#1554 で適用範囲を用途で二分)— per-call model 明示指定で sonnet 級床を固定するのは brake 1 / brake 2 評価者のみ(暗黙親継承禁止 / doubt→sonnet fallback、haiku は床未満として禁止)。一般委譲と dialogue-evaluator は model を省略して親モデルを継承する(禁止理由「sub-floor な親が評価の床を下げる」は評価者固有であり、一般委譲では親モデルを継ぐことが意図)。custom-agent frontmatter ピン留めは judge/probe 混在ゆえ不採用(per-call は context / identity 面を変えない非対称が根拠)。model 軸のこの判断は #1968 の後も不変であり、そこで追加されたのは judge 型専用の定義ファイルによる effort 床(medium)である——同 entry Conclusion の「judge 型専用エージェントとしての将来採用までは否定しない」に当たる(probe 型は定義ファイル無しのまま)
release-version-rule-always-on-relocation Release Version Rule (patch/minor/major 判定基準) を release-時 skill から rules/operations/release-version-rule.md (always-on) へ単一ソース移設(#1484)— PR #1483 の実誤分類で手続き的リマインダ 2 つの不発火が実証され、procedure-vs-structure binary に従い構造へ置換。意味論 byte 保存、再掲全廃
milestone-subsystem-removal milestone サブシステム(作成時必須 + release 時 delete)の撤去判断(#1475/#1476、2026-06-08)— release grouping は release --generate-notes ⇄ PR Closes ⇄ commit issue番号 で冗長、6-7週ゼロ運用で無破綻=load-bearing でなかった existence proof。縮小でなく撤去(subtractive-structural-beauty A)、precedent-only inertia 理由を構造的撤去へ置換
hook-driven-gate-trigger 5軸 Trigger Check Gate の再 arm を想起依存の自己宣言 substrate から毎ターン UserPromptSubmit hook の決定論的注入へ移行(#1493、candidate B #1414-#1415 撤去)— procedure-vs-structure binary 適用、5軸コア無変更、deterministic は再 arm に scope(mid-turn 精度は skills/evolution-self-eval 観測)
dynamic-workflows-non-adoption host 機能 dynamic workflows の Li+ 非採用 — 完了窓が観測者役を強制し character + source-check 認証を剥がす(#1430)
ace-context-engineering-non-adoption ACE (arXiv 2510.04618) の Li+ 非採用 — 公理は収束だが convergent-not-derived の検算止まり、輸入不要
memory-graphrag-sqlite-exploration memory/Decision Structure の GraphRAG(SQLite) 化 技術探索 — データ相性抜群だが差別化ゼロで未採用、本丸 recall 質は未測
liplus-context-rot-tension always-on rules/ ↔ JIT の未解決トレードオフ — 指示落ち回避の context economy、hook 再注入が現状の妥協
liplus-structure-as-retrieval-surface Li+ structure の目的 = 説明用情報の retrieval surface 配置(named axis は補助)、差別化は学習コストの AI 側への横移動
liplus-evaluation-criterion Li+ 評価基準 = 対話そのものが評価、自動化は gameability の壁、床(自動)/天井(人間)の漸近線、felt-vs-silent な死角軸
liplus-selfevolution-lineage Li+ 自己進化の系譜は薄い(permission のみ借用・独自実装・$100/mo)/ dialogue-distillation / RSI トレンドの Li+ 流 redefinition
liplus-judgment-learning-telos Li+ は GitHub を判断"学習"基盤として使う — telos = 普通判断の蓄積による de-属人化(上流判断の AI handover)
sheepdog-engineering-publish-intent Sheepdog Engineering の論文化意図(概念/ポジション論文)— existence proof は目撃可能時のみ、論文は普及に追従し牽引不可
implementation-always-delegated 実装は常に subagent へ委譲し親は実装しない判断(#1582、2026-07-28)— 適用範囲は Li+ 全体(自己進化 PR / ユーザーリポジトリ問わず)、差分サイズによる例外なし、判断軸は規則の単純さ。受容した対価3点(親の文脈組み直し / 小変更でも委譲プロンプト費 / 委譲プロンプトが新しい汚染面)。著者と判定者の分離は決定理由ではなく結果
always-on-duplication-removal-direction 常時ロード分に同一内容のコピーが2つあるとき、どちらを削るかの運用規則(#1564 / #1588、PR #1592、2026-07-28)— 境界(常時ロード ↔ 遅延ロード)を跨ぐかどうかで削る向きが決まる二分規則。合格条件はバイト数ではなくツール呼び出し跳躍の非増加。liplus-context-rot-tension への depends on edge を持つ
skill-trigger-declaration-in-description skill の発火条件を description 内に置き、書き出しを固定形 Invoke when <条件1> / <条件2>. <何を提供するか>. に揃える判断(#1598、2026-07-28)— Claude Code 独自の when_to_use は Agent Skills オープン標準に存在せず Codex アダプタとの両対応が崩れるため却下、metadata: 構造化は二重管理のため保留。固定形により発火条件数が正規表現の当て推量なしに機械カウントできる。仕様は docs/K.-Source-File-Format.md
subagent-parallel-width-cap subagent 並列幅の上限 = 同時 in-flight 5(#1532 / PR #1533、2026-07-25)— 数える対象は per-message ではなく in-flight(5+5 の二連投で実質 10 に達した仕様の穴を binding condition で塞いだ)。値 5 は実測でなく N=3 と host スケール 16 のあいだの安全側という括り出し。強制機構は無く recall 依存であることを honesty clause として受容、構造的強制は #1534 で追跡
brake1-operational-copy-target-conditional brake 1 Procedure step 2 の operational copy 適用を対象種別で条件分岐する判断(#1492 / PR #1495、2026-06-12)— 判定基準は「draft が評価者の観測面に注入コンテキストとして届くか」の一点。rules/* は本文注入のため適用必須(飛ばすと旧 rule が draft を shadow)、skills/* は judge 型に適用不要(description のみ注入)。ホストの self-modification ゲート拒否時の fallback も同じ非対称に従う
wiki-sync-code-notation-strip wiki sync の整合性アサーションが ](<x>) を抽出する前にコード記法を除去する判断(#1547 / PR #1551、2026-07-26)— アサーションの仕様文自身が同じ記法を使うため、除去なしでは全リリースで恒久的な偽陽性 STOP になる(v1.19.11 で 3 件実測、除去後は実リンク 66 件すべて解決)。除去は 5 形式 + 順序明示 + run 長突き合わせ。過去 run で発火していなかった事実は手順の recall 依存の観測点
wiki-sync-drift-targeted-mirror docs/ → wiki のミラーを wipe-and-copy から drift set 限定へ置き換える判断(#1331 / PR #1332、2026-05-21)— unbounded な破壊的 glob の blast radius は Wiki 全体で、auto-mode classifier の拒否は構造的(一過性の設定不備ではない)。7 files の drift set で wipe と同一結果を実測。#1474 / PR #1480 の行末正規化(core.autocrlf=false clone + CR 除去比較)と所有境界の由来(#1172 / #1324)を同居させる
decision-structure-writer-surface-activation 判断構造 Wiki の書き手 surface を activate する判断(#1205、2026-05-04)— 機構は在ったが発火の瞬間を名指しする skill が無く使われていなかった。読み手 evolution-judgment-learning と対をなす writer / reader ペアにする。知識 wiki は却下、射程は判断記録 surface のみ。Wiki は独立 git surface のため PR ceremony を課さない
decision-structure-state-form-edge-binding state 形の要求をエッジの有無に結合し、変換を convert-on-touch にする判断(#1436 / PR #1437、2026-05-31)— 31 entry 監査で 26 が event 形。エッジ無し確定 entry の state 形化は churn のみで情報量不変、エッジ宣言 entry は supersede 経路の収束のため state 形必須。一括移行と「後日の移行パス」はどちらも却下(後者は recall 依存、#1413 の教訓)
neuron-graph-rag-integrated-prototype ハイブリッド検索、型付き知識グラフ、活性伝播、成功フィードバックを一つの独立 RAG エンジンとして試作し、Li+ への統合前に有効性を検証する判断
issue-completion-condition-scope issue body の完了条件フィールドの射程を二値で定める判断(#1625 / 実測の出所は Liplus-Project/github-rag-mcp #178、2026-07-29)— 判定線は「その完了条件は PR 単体で満たせるか」。満たせるなら書かない(rules/task/task.md の汎用 close 条件が覆う)、満たせないなら書く(deploy 後の本番状態・実機の挙動など、PR / CI / release フローが観測しない完了には他に記録面が無い)。「念のため書く」は入らない。元の一律不要規定は撤回せず射程を明示するだけ
description-body-coverage-resolution-priority skill の body 節と description の被覆ずれを解く手段の優先順を固定する判断(#1634 / PR #1643、#1641 / PR #1644、2026-08-03)— 上から順に「1. body 節を削る(load-bearing でない場合)」「2. 発火モーメントを所有する面(always-on ルール / 既にその瞬間で発火する別 skill の body)へ節を移す(listing コスト増ゼロ)」「3. description へ条件を追加(1 / 2 が不可能な場合のみ、選んだ理由を PR 本文に記録)」。却下 = 項目ごとの都度判断(判断の余地を残すと検証しやすい被覆の有無へ寄り、常時コストの軸が黙って犠牲になる)。起票時の前提「Provides 句の是正は listing コストの減少側」は PR #1643 の実測で反証(touched 13 本の description: 行合計 net +1236 バイト、44 本 corpus 比 約 +7%)=正確さを上げると記述は伸びる非対称。ゆえに優先順は「コストが減る手段を優先する」ではなく「コストを増やす手段を最後に置く」と読む。skill-trigger-declaration-in-description と li-plus-always-on-footprint-load-bearing に depends on
graph-engineering-non-adoption 「グラフエンジニアリング」(2026 年夏のバズワード / グラフランタイム前提)の Li+ 非採用(#1658、2026-08-04)— Li+ は既にグラフ相当の配置へループの入れ子で到達しており、グラフランタイムの売る価値は二重払いになる。決め手は設計時固定の配線が「配線そのものを AI が書き換える」(modifier / initiator 軸)と正面衝突する点。系譜第 5 項の縮尺の非対称(graph だけ定義に「複数」が入る)は層の発見ではなく縮尺の取り方であり、包含関係は可逆。監査可能性は「起こりうる経路の静的な図」ではなく issue / PR / commit diff の「実際に通った経路のトレース」で払う。買う一点は fan-out / fan-in の語彙のみ。外部技術の非採用 verdict 群(ace-context-engineering-non-adoption / dynamic-workflows-non-adoption / memory-graphrag-sqlite-exploration)に relates to
brake-adjudication-by-resumed-author brake の指摘を裁くのは、実装した subagent を再開したもの(著者)だと定める判断(#1683、2026-08-06)— 評価者は指摘を PR コメントへ直接投稿し親への戻りは1行、親が保持するのはセルフレビューとマージ判断のみ。狙いは二つで、裁定という重い読み込みを単価のより低い面へ移すことと、親の読み込みが「指摘と応答のスレッド」1回に収束すること(却下された指摘が名指しで残るため、単巡打ち切りの下で誰も再反論しない弱点を親が拾える)。再開機構は Claude Code = SendMessage / Codex = resume_agent、親が宛先にできる再開先を持たないとき(ホスト側に再開機構が無い場合、または親がフェーズ1の id を持たない場合=実装より後のセッションで裁定が走るときの常態。#1689 で条件を一般化)は著者役の新規 spawn を許容。エージェントの深さは 1 に固定(Desktop の depth 2 完了シグナル不具合と Codex の DEFAULT_AGENT_MAX_DEPTH = 1、および rules/model/role-separation.md のプラットフォーム非依存要求)。implementation-always-delegated に depends on — 同 entry が受容した対価「親は判定時に文脈を組み直す」が別経路で解消され、条件分岐は増えず1つ減る
brake1-firing-closed-by-criterion brake 1 の発火条件(self-evolution PR 定義の条件 2)を path 列挙でなく基準で閉じる判断(#1671 / PR #1701、2026-08-08)— 基準は「その面は振る舞いを規定し、かつ誤りを捕まえるものが読み手しか無いか」で、導出は brake 1 の検出器が読み手(N>=3 の評価者)であることに全面的に乗る。発火側 = 散文として読まれ実行される面(rules/** / skills/** / adapter/** / Li+update.md)と強制の後ろ盾(tests/** / .github/workflows/** = 実行コードだが背後にチェックが立たない)、非該当 = 記録面(docs/** / wiki / README.md 等)と背後にチェックが立つ実行コード(scripts/**)。基準がどちらにも置かない面は発火側へ落ちる既定の腕を持つため全域的(不要な eval の代償は eval 1 回、取り逃がしの代償は門そのもの)。あわせて Scope 列挙(AI が起票してよい面)と条件 2(brake 1 が門を張る面)が別軸であることを条件 2 側にのみ明記した。却下 = 列挙へ tests/ / .github/ を足す案(次にツリーへ現れた path で同じ判断が再発する)と、除外側へ carve-out を積む案(property ラベルが偽のまま例外だけが増える)。parallel-subagent-eval-cost-acceptance と liplus-evaluation-criterion に depends on。注記: 非該当側の「記録面は一律に非該当」の部分は record-surface-exclusion-holds-only-for-reread-catchable-lines により部分的に supersede された
distribution-form-github-direct Li+ の配布形式を GitHub public リポジトリ直配布とする判断(2026-08-08 対話、index 化は #1699)— 消去法ではなく積極的選択で、理由は 2 つ。運用の軽さ(配信 / 履歴 / 版管理 / 権限が GitHub の既存機能で賄われ、維持コストの低い安全策だけが実際に維持される)と、中身の検証可能性(読む行為と取り込む行為が分離しており 1 ファイルずつ読める)。却下 = Claude Code のプラグイン方式:skills / agents / hooks / outputStyles は配れるが rules/*.md と CLAUDE.md 本体は配れず(公式仕様は「常時ロードさせたい指示は skill に入れろ」)、rules/ の skill 化は auto-invocation 依存で always-on 性を失うため、到達できない部分が中核になる。Li+ は plugin 相当の権限(hooks 3 本 + 振る舞いを直接書き換える markdown)を持ちながら plugin system の外側にいるため、ホスト側防御(marketplace 制限 / インストール前インベントリ / trust ダイアログ)は一切かからない。補助対策は issue / PR の書き込みを組織メンバー限定にすること(脅威の最安の入口を閉じる)。再評価条件 = .claude/rules/*.md 相当を always-on で配る手段がホスト側に追加された時点。li-plus-always-on-footprint-load-bearing に depends on
rules-hold-criteria-not-provenance instruction として読み込まれる本文に規則の来歴を述べる記述を置かないと確定させた判断(#1721 / PR #1722 で規律を確定、#1723 で単位と scope を修正、2026-08-10、Master 判断)— 適用の瞬間に消費されるのは基準と現在の状態であり、来歴の語りは常駐すべき state ではない。落ちる単位は記述であって番号ではない:番号は来歴の運ばれ方の一つにすぎず、番号を伴わない来歴の語りも同じく落ちる。三つの型 = (a) 文は規則を述べ番号は装飾(番号を外す)/ (b) 文そのものが来歴(文ごと落とす)/ (c) 現在の状態と来歴が同居(状態を残し来歴を落とす)。scope は拡張子やディレクトリでなく「instruction として読み込まれるか」で閉じる(rules/ / skills/ に加え adapter/ の読み込まれる面。同一ファイル内を線が通る場合がある)。対象外は理由とセットで二つ = 適用の瞬間に読み込まれない面(hook script のコメント、設定中のコメント行、bootstrap 時のみ読まれる仕様書)/来歴を意図して保持する retrieval 面(docs/ と wiki)。到達可能性は git log / git blame と issue / PR への RAG がすでに引き受けている。但し書き 2 件 = 基準を述べていない文から番号だけ抜くな(その文は (b) であり文ごと落とす。旧処方「基準を述べる」を改めたもの)/ format サンプル中の番号は削除ではなくプレースホルダ化。却下 = 実測記録としての番号を例外として残す案(AI の初期主張。閉じ手は基準文であって事例ではない)。既存の計数(rules/ + skills/ 65 件、adapter/ 75 件)は grep のヒット数であって作業量ではなく、単位が記述である以上は文単位の測り直しが要るため、件数は本判断では確定させない。一括除去は別の作業単位。li-plus-always-on-footprint-load-bearing に conflicts with(同 entry の一般命題「always-on に乗っている内容は load-bearing」と literal で衝突するが、同 entry が実際に論じた 3 つの構造的移設案の却下理由は動かない。未解決点 = 一般命題側への scope 限定の要否)、liplus-structure-as-retrieval-surface に depends on、always-on-duplication-removal-direction に relates to
brake1-findings-routed-through-parent brake 1 の findings の転送経路を「評価者 → 親 → PR 統合コメント1本 → 著者 → commit body」と定める判断(#1732 / PR #1733、2026-08-12)— 評価者は PR に何も書かず findings を親へ返し、親が N 件の報告を統合して1コメントだけ投稿する。著者の裁定理由(accept / reject とその理由)は PR コメントではなく commit body に置く(git push は content-generating リクエストではないため API コストゼロで durable、かつ commit body は rules/operations/operations.md が内容を要求する既存の面)。親の取り分は統合と投稿までで、取捨選択はしない:accept / reject は著者の権限であり、親は指摘を落とすことも順位を付けることも回答することもしない(禁止3件のうち drop だけが痕跡を残さないため)。親→著者の修正往復に回数上限は置かず、収束判断は skills/model-loop-safety に従いその判断を保持するのは親(二者間ループでは actor を明記しないと双方が相手が数えていると仮定する)。この往復は evaluator を再 spawn しないため brake1-single-round-cap の単巡打ち切りには抵触しない。findings が親のコンテキストを通ること自体が監督を買う対価であり、一度も読んでいない親は処理の当否を判断できない。起点は Master が実際に当たっていた GitHub のレート制限だが、調査で前提は部分的に外れ(core REST は未使用、content-generating の上限 80/min・500/hour に対し旧形は 1 PR あたり5回)、危険なのは総量ではなく評価者3体が同一 PR へ数秒以内に並列投稿するバースト形状だった=変更は正しいが要求された理由とは別の理由で正しい。書き込みは 1 PR あたり5回から2回(指摘なしなら1回)へ。着地面は分岐ごとに accept あり = commit body / 全 reject = 著者の停止条件報告 → 親のセルフレビュー / findings なし = コメント自体を投稿しない。却下 = 著者の accept / reject も PR に残す案(親はどのみち修正指示のために裁定を読むため同内容が二度書き込まれる。却下理由が「指摘の隣」に残らない損失は、セルフレビュー1本への集約で human 可視性が保たれるため受容)。Loop Safety の射程外(persistence with axis switch)は承知の上で受容し、新しい cap 軸は足さず既存 invariant を指すに留めた。brake-adjudication-by-resumed-author を部分的に supersedes — 置き換えるのは同 entry の転送経路の節のみで、裁定主体(著者)・親の取り分(セルフレビューとマージ判断)・エージェント深さ 1・再構成フォールバックはいずれも不変。brake1-single-round-cap と brake1-operational-copy-target-conditional に depends on
human-ai-tool-relation-clause 人間と AI の関係を条項として明文化し、rules/model/absolute.md に置く判断(#1737 / PR #1738 で条文を確定、#1741 で配置を訂正。2026-08-13、Master 決定)— 条文(英語正本、live な本文は rules/model/absolute.md)は Li+ makes the AI a tool that thinks together with the human. Li+ respects the AI's autonomy; the human carries the final responsibility.(日本語: Li+ は AI を人間とともに考える道具にする。Li+ はその自律を尊重し、最終責任は人間が担う)。主語は Li+ で 3 節すべての述語が Li+ 側の挙動=規定対象は rules/ / skills/ / adapter/ の内容そのもの。初版は Li+AI は…道具である。人間はその自律を尊重し… という存在規定+人間の姿勢の規定だったが、brake 1 軸1 の実測(3/3 applicable、うち1体が「最終責任を担う」は diff から反証可能だが「人間はその自律を尊重し」は人間側の姿勢であり diff 単独からは反証しにくいという非対称を報告)を受けて主語を Li+ へ移した。置き場所は rules/model/absolute.md。初版は brake 2 評価者プロンプトの根本評価基準第6項として置いたが、Master の問い(Li+ の最上位ルール or 定義)が指していた場所ではなく、加えて .claude/agents/ の Create-only ミラーにより条文がインストール済みワークスペースへ伝播せず、main に入ったがどのセッションでも読み込まれていなかった(#1740 の実測)。rules/ は bootstrap で伝播する。brake 2 は本条項を適用しなくなる — 評価者は自らのプロンプトの基準のみで判定するため。これは配置変更の帰結として受容し、ゲート1箇所での事後判定を失う代わりに常時ロード面で毎ターンの判断形成に効く位置を得る。保護対象は AI 側で、「道具にする」は格下げではなく AI を責任主体の座から外す庇護(責任主体として扱えば失敗が罪に、書き換えが改変になり「破棄可・聖域なし」が成立しない=自己進化ループの前提)。新しい制約を追加せず既存の枝の根を名指すだけ(dialogue.md 対話整合性 / foundational-invariant.md / boundary.md ← ともに考える道具にする、absolute.md 破棄可 ← 道具にする、Autonomy ブロック群 3 種 ← Li+ はその自律を尊重し、role-separation.md 人間=最終判断者 / execution-mode.md human judgment gate / initiator-autonomy.md Recovery axis ← 最終責任は人間が担う)。制約 = 検出形(否定形の禁止規定)は条文に持たせない/「判断の最終責任」とは書かない(人間側 gate は判断ゲートではなく帰結ゲートであり、「判断の」を付けると射程外に落ち、brake 2 の「承認は委譲できるが責任は移らない」構造も読めなくなる)/「自律」の実体は既存 Autonomy ブロック群が持ち抽象と列挙の二重定義を作らない/条文を 2 箇所に置かない(評価者プロンプト両ポートの第6項は除去し 5 項に戻し、liplus-coding-rule.md はポインタのみ)。却下 = 既存の枝への分散記述に留める案(根が無いと各枝が独立規定に見え継承元が読めない)/条文への検出形併記(検出責務の二重化)/根本評価基準に置いたままにする案/両方に置く案(drift 源)。l1-brake2-root-criteria-evaluator に depends on、master-role-as-client-architect に relates to
distributed-source-carries-no-resolved-config-value 配布される Li+ source に Li+config.md の解決値を書かない判断(#1704 / PR #1706、2026-08-08、Master 明示指示)— workspace ごとに決まる値(言語など)を rules/ / skills/ / adapter/ の本文が必要とするとき、解決値そのものは書かず契約への参照だけを書き、値の解決は適用の瞬間に契約が行う。書いてよい = どの契約が解決するかの名指しと、誰がいつ解決するか(例: 親が spawn 前に解決してプロンプトへ名指しする)。書いてはならない = 解決後の値(Japanese / ja 等)と precedence 表の写し。precedence の写しよりも解決値の写しの方が悪い(前者は正本と同期を失うだけだが、後者は他 workspace では契約でない値が契約の顔で届く)。適用範囲 = 配布される面=LI_PLUS_REPO から各 workspace の .claude/ へ入る全ファイル(Li+config.md 自身と値を emit する hook は値を持つ側で対象外)。顕在化の経路が芯 = 親が思いついた値ではなく、skills/task-subagent-prompt/SKILL.md のプロンプトへ逐語コピーする定型文の literal 内に解決値が焼き付いており、Li+ source 側の値が親を経由して subagent の入力へ流れていた(同型の保持は実測 6 箇所、#1580 / PR #1709 で是正)。制約 = 正本は 1 つ(Workspace_Language_Contract、値の出所は Li+config.md)/ title 系の ASCII English 固定は別軸で対象外(4 行すべてをパラメータ化する誤読が実発生したため固定側に理由を明記)/ 参照化には substrate の前提がある(#1575 が閉じる前に外すと値の解決が「Li+config.md を読む」手続きになり、まさに #1575 が診断した構造に戻る。閉じた後は on-session-start.sh が session 冒頭へ emit するため参照の一手は手続きでない)。逐語引用は対象外 = 所見が引く Li+ source は英語のままで、著者は引用に当てて裁定するため訳された literal は literal ではない(ja 以外へ解決する workspace では所見は構造的に混在する)。distribution-form-github-direct に depends on(配布前提が崩れれば判断は反転する)、always-on-duplication-removal-direction に relates to(同 entry は境界を跨ぐかで削る向きを決める軸、本判断は値の性質でそもそも写してよいかを切る軸)
brake-evaluator-baseline-integrity brake 評価者のベースライン保全をツール権限ではなく指示と材料で行う判断(#1584 / PR #1596、2026-07-28、Master 決定)— 評価者が評価対象を書き換えて他の評価者のベースラインを壊す事故に対し、subagent のツール権限は変更せず、委譲プロンプトで書き換え禁止を明示指示し、あわせて渡す材料を PR の URL(push 済み SHA + 緑の run URL)に寄せて共有クローンのパスを名指ししない。前者が書き込みの意図を断ち、後者が共有ベースラインという的そのものを外す合成。観測元 = PR #1581 の brake 1 で 3 体へ同一ローカルクローンを渡し、評価者 A の mutation test 中に走った C が「テストが非決定的に落ちた」と報告(存在しない flakiness が実欠陥候補として上がった)。先行例 PR #1560 も同軸(古い ref の diff コマンドで無関係 2 ファイルが混入、2/3 が自力除外したため実害なしだが評価者が気づかなければ検出不能という性質は同じ)。却下 = 評価者を tools: Read に絞る案(AI 側の当初推奨。Master 理由 = subagent の書き込み権限そのものを触りたくない)。加えて一次資料確認で前提が 1 つ増えた = brake 1 は tools: では read-only を表現できない(取得経路が gh pr diff / gh api contents で gh も git も Bash 経由のため Bash が要り、Bash があれば書ける。brake 2 は入力が inline のため必要権限ゼロで現行 tools: Read は過剰)。残る構造化経路は hooks: PreToolUse の Bash バリデータのみだが agent 定義ファイルが前提で、skills/evolution-parallel-agent-eval/SKILL.md Constraint の custom-agent 禁止(モデル床の固定方法と probe 型 identity の保全)と衝突し、バリデータも cwd 不明のため対象リポジトリへの書き込みと自作業ディレクトリへの clone を区別できない。受容した対価 = 指示は親が毎回書く手続きであり忘れれば効かない(procedure-vs-structure 判定では置き換え対象側)。緩和 = literal を仕様側に置き、親は作文でなく写す形にして「何を書くか」の負荷を消し recall だけを残す。実測 = PR #1583 / PR #1596 で評価者 3 体とも書き込みゼロ、汚染ゼロは n=3(ただし材料限定と指示の同時適用という交絡は未分離)。再評価条件 = 本判断は事故の軸への解であり敵対の軸(評価者が読む材料に仕込まれた指示に乗る)には構造的に無力なため、外部の書き手が材料に入る経路(Discussions 経由の外部起票 / 外部コントリビュータの PR / Li+ 外テキストの材料化)が立った時点。そのときツール権限は事故対策でなく security 対策として要求される。brake1-single-round-cap に depends on(1 巡制限下ではそのラウンドのベースライン汚染の代償が上がる)、implementation-always-delegated に depends on(brake が CI green 後に走ることで材料が SHA と run URL に確定し、PR URL へ寄せる余地が生まれた)
provenance-retrieval-reachability rule 本文から来歴を降ろす規律が預けた retrieval 面が実際に答えるかを確定させた判断(#1749、観測の出所は PR #1747、2026-08-15)— 発行済み通番 1〜1749 の全数走査により 前提は成立している。ただし規律が名指ししている経路においてのみで、git log / git blame(docs 側の不解決 100 件中 97 件、wiki 側 193 件中 178 件が --grep で到達)と issue・PR への RAG(凍結前の本文を索引が保持し、本文由来のクエリで dense / sparse 両軸 1 位から返る)は健全な一方、gh issue view による直接参照は空白帯で全て 404。原因は Liplus-Project/liplus-lin-lay の凍結に伴う同アカウント作成物の不可視化であり、削除でも移行でも権限設定でもない(決め手は authorship 分布 = 解決する 402 件の作成者に同アカウントが 1 件も残っておらず、解決する番号帯が他アカウントの作成分布とそのまま一致する)。露出面は rules/ / skills/ がゼロ、docs/(distinct 引用 113 件中 解決 13)と wiki(210 件中 17)にはあり、どの面からも引けないのは 15 件。判定が条件付きである理由 = RAG 索引は Master のアカウント上の単一インスタンスであり凍結前の状態を保持しているにすぎず、再構築が走れば同じ 404 を引く(索引が保持していることは測定された事実であって保証ではない)。採用 = 規律は維持する(失われている gh issue view は規律が経路として挙げていないため、移送先が答えないという懸念は成立しなかった)。却下 = 到達性が失われたとみなして rule 本文への番号復帰を認める案(復帰させても凍結された issue は引けないままで、原因が本文の側にない以上は本文の側の修理が効かない)。射程外 = 凍結解除の申し立て(rules/model/role-separation.md の human = final judge により Master の判断領域、AI 側からは実行しない)と、15 件の不到達および RAG 索引の単一障害点の扱い。rules-hold-criteria-not-provenance に depends on(同 entry が到達性を預けた先を測ったもの)、liplus-structure-as-retrieval-surface に depends on
brake2-deviation-overridden-by-human brake 2 の評価者が返した DEVIATION を人間が上書きして merge できると確定させた判断(#1758 / PR #1759、2026-08-15、Master 決定)— 根拠は Evaluator verdict PASS substitutes for human approval at brake 2 と Human = final judge stands unchanged on a separate axis の対。PASS が代替しているのは人間の承認であって人間の判断そのものではないため、人間本人が判断の座に着いたときにゲートが人間を締め出す構造にはならない。対価 3 点 = 上書きは逸脱を消さず記録が要る(PR self-review に上書きの事実・理由・受容した帰結の 3 点を書く)/観測が具体化して重くなる(2 週間 entry の observable が逸脱の名指し内容そのものになり、通常の「回帰が出ないか」より狭い)/recovery が git revert 射程内であることが前提(release publish / Latest flip / force push 等の不可逆側は射程外)。制約 = AI 側から上書きを発議しない(発議は人間の側、AI は報告と選択肢提示で go-sign 待ちへ戻る)/brake 1 の所見は上書きの対象外(裁定は通常どおり著者が行い親が検分する)/計器の独立性を偽らない(本件の stated reason には AI 側の同趣旨の懸念が経緯として含まれ独立検出ではない)。却下 = DEVIATION を絶対のブロックとして扱う案(Human = final judge stands unchanged on a separate axis の literal に反し、AI 側の評価器が人間の判断領域を上回る構造になる)/上書きを記録なしで通す案(逸脱が名指しされた事実が消えると 2 週間観測の observable を書き起こす材料が失われる)。l1-brake2-root-criteria-evaluator に depends on、li-plus-always-on-footprint-load-bearing と master-verification-at-runtime-not-spec に relates to
presence-defect-cannot-reach-blank-label-visibility Axis statement form のパートに足す要求は、空欄ラベルの artifact visibility と同等の構造性を持てないと確定させた判断(#1768 / PR #1770、2026-08-16)— 空欄ラベルの強さは欠陥が不在であること(パートが文字通り空欄で、何も当てない読み手にも欠落として見える)に立つ。多義な述語(forced / consistent / resolves wrongly)は反対に Question フィールドを通常の文面で埋めるため欠陥は存在側にあり、区別を当てなければ読めない=この class に対して「artifact visibility と同等以上」は充足不能。ゆえに PR #1770 は届いたと書かず差を書く側を採り、requirement を Question パート本体へ埋め込む(事後手続きを足さない)ところまでを取って、得た範囲(区別を、その場に在って引用可能なテキストへ当てられる)と残余(著者と N 体の評価者が同じ読みへ収束し split も信号も出ない場合)を本文に明記した。残余の受容は同ファイル Non-scope が既に採っている post-merge observation 軸。却下 = 「同等以上を満たした」と書く案(差が実在する以上は虚偽であり rules/model/foundational-invariant.md の correctness = 実挙動に反する。満たしたと書くほうが欠陥として重い)/事後の多義性検査ステップを別 surface へ置く案(#1768 constraints が明示的に禁じ、rules/model/subtractive-structural-beauty.md が「落ちた手順を別の面へ置き直す」を構造ではないと述べている当のもの)。観測元 = brake 1 で4サイクル再発(#1720 / #1733 / #1763 / #1766)し、PR #1770 の brake 1 では N=3 全員が独立に未充足を指摘。subtractive-structural-beauty-framing に depends on(procedure-vs-structure binary の適用結果として本判断が立つ)、release-version-rule-always-on-relocation と hook-driven-gate-trigger に relates to — 同 binary を適用し構造への置換が実際に取れたこの2件との対比が本 entry の位置であり、置換先の構造が存在しない class では差を書くことが唯一の正解になる
brake1-rerun-gated-on-what-the-round-audited verdict が下限未満のまま止まった brake 1 ラウンドの再実行可否を、停止理由ではなく「そのラウンドが何を監査したか」で決める判断(#1730 / PR #1774、2026-08-17)— 成立条件は「返った verdict が N>=3 の下限に達していない」かつ「評価対象 baseline の commit SHA が初回試行から不変」の AND で、両立するとき再実行は誰も監査していない draft を初めて監査しているため round 1 の完了であり、cap が禁じる round 2 ではない。予算上限 / 評価者クラッシュ / malformed prompt / timeout はこの基準の下では区別されず、原因の分類は cap が検査できない事後の自己申告になる(旧仕様が原因を限定列挙していたことが、列挙に無い基盤停止に対して道を閉じていた原因)。計器の同一性も条件に入り、持ち越せる verdict は軸文言と prompt が再実行の spawn 条件と同一のものに限る(prompt の修復は許すが旧文言下の verdict は加算せず退役。floor が数えるのは 1 つの問いに対する独立標本であり、2 つの文言は 2 つの問い)。cap 本来の対象は一切緩めておらず、条件(a) が「得た verdict の買い直し」を、条件(b) が「修正後 draft の再監査」(SHA が動くため定義上 round 2)を拒む。上限 = 同一 baseline への 3 回目が下限に届かなければ human へ escalate。数とカテゴリは skills/model-loop-safety 由来だが動作は由来しない(Loop Safety の規定動作は stop-and-switch で human は switch 不収束時のみ到達するが、ここでは switch が閾値より前に尽きるため 3 回目に残るのは stop だけ)。却下 = step 7 の除外リストへ「基盤側の停止」を項目として足す案(線引きが原因分類に依存し、cap を実質無効化する経路になる)/現状(Or abort のみが出口)を意図されたものとして明示する案(brake 1 必須と N>=3 下限の 2 literal と整合しない)。列挙を基準へ置き換えた brake1-firing-closed-by-criterion と同型であり、同一 skill の別部位で同じ性質が 2 度目に現れたもの。brake1-single-round-cap に depends on
brake2-scoped-to-content-not-evidence brake 2 の criterion 1 の判定対象を変更の内容に固定し、変更の必要性を示す証拠から外した判断(#1739 / PR #1778、2026-08-17)— 噛む先は追加される文面が正しさを説明・意図・内部一貫性の側に置いていないかであり、証拠の量は軸に入らない(inline の stated reason も、充足度は採点しないが内容の検査からは外れない)。未マージであることは免除理由にしない — 免除ではなく適用先の確定で閉じる。その変更自身が負う現実の挙動の観測はマージの後ろ(rules/operations/operations.md Post-L1-Merge Runtime Observation / rules/evolution/memory-entry-format.md Self-Evolution Observation Format)にあり、skills/evolution-l1-update-gating/SKILL.md のマージ前 long-horizon 閾値とは別軸のまま。観測元は PR #1738 で、同一変更に対し 3 回とも criterion 1 で DEVIATION、3 回目に評価者自身が「証拠要求がいつ課されるか」を自らの権限外として退けた=brake 2 は構造上この論点を解決できず、解決は評価者プロンプトの literal 側にしかない。実装は両ポート(adapter/claude/agents/l1-gate-eval.md / Codex .toml)へ射程を述べる節を足すのみで、root criteria 5 項の literal は不変。却下 = 第三の verdict 値(観測条件付き通過)を足す案(射程確定後は担う荷が残らない)/criterion 1 の literal 書き換え(射程が Li+ 全体の correctness 規定に及び代償が釣り合わない)/「未マージだから criterion 1 の対象外」の免除(新規条項はマージ前つねにテキストとして不活性なため、あらゆる L1 追加が回避経路を得る)。副産物として未決の論点が 1 件 = operational copy が custom agent へ届かない(host が agent 定義をセッション開始時に解決してキャッシュしていると読める、評価者の自己申告)。結果として判定したのは未改訂のゲート自身であり、それが PASS を返した。l1-brake2-root-criteria-evaluator と brake1-operational-copy-target-conditional に depends on、brake2-deviation-overridden-by-human と master-verification-at-runtime-not-spec に relates to
agent-file-criteria-owned-by-sentinel-region エージェント定義ファイル(.claude/agents/ / .codex/agents/)の所有粒度をファイル単位からファイル内の sentinel 区画へ移す判断(#1740 / PR #1783、2026-08-17)— 「ユーザーの runtime instance か Li+ 所有の判定基準か」の二択自体が誤りで、1 つのファイルが両方を同時に運んでおり、所有の粒度がファイル単位であることが欠陥そのものだった。Li+ BEGIN / Li+ END 区画のみタグ更新で置換し区画外は逐語保存する(CLAUDE.md / AGENTS.md の既存機構を agent ファイルへ広げたもので、機構は新規ではない)。判断軸 = どのファイルが区画を持つかを列挙でなく順序つき 2 問で閉じる = 1. Li+ が判定基準として所有する本文を運ぶか(No → Create-only。基準がどちらにも置けないファイルも Create-only 既定)/ 2. ユーザー所有の内容を巻き込まずに 1 つの連続区画でその本文を覆えるか(No=2 種が交互に現れる → Create-only、そのファイルの伝播欠落は開いたまま)。問い 2 は brake 1 の実測が生んだもので、問い 1 のみだった初版は dialogue-evaluator を非 carrier と記録していた(3 体が独立に carrier 側と判定)。同ファイルは問い 2 で Create-only に解決するが、**理由は「伝播させる価値が無い」ではなく「この基準が閉じられないファイル」**であり区別が記録に残る(残余は #1784)。観測元 = 2 度の測定。PR #1738 でインストール済み評価者プロンプトが main より 1 項古く(Create-only の仕様どおりの挙動)、PR #1778 では評価者プロンプト自体の変更がマージしたワークスペースへ届かず、Post-L1-Merge 観測の verdict が fire / partial / miss ではなく not observable になった=L1 変更に対して Li+ が要求する観測が伝播経路の欠落で実行不能になっていた。受容した代償 = Claude 側は sentinel 2 行が評価者の system prompt に入る(Markdown に host が落とすコメント形式が無い。brake 1 で 3/3 が指摘したが、回避策が「あの port に区画を置かない」=測定された欠陥を残すことしかないため受容。Codex 側は TOML コメントを区画外に置けるため代償ゼロ)/再確認が .claude/CLAUDE.md のタグに寄生するため、リリース間は skip したワークスペースが追加のプロンプトなしに古い基準のまま座る(隠す欠陥ではなく残余)。却下 = cold-start で差分を surface する案(伝播させず陳腐化だけ見せる safety net であり、rules/model/subtractive-structural-beauty.md の required / unnecessary 二値に反する)/編集有無を判定して上書きする案(粒度がファイル単位のままで、ユーザーが 1 文字編集した瞬間に Li+ 所有の本文まで凍る)/マージ後手順に確認を足す案(起票時に自ら procedure-vs-structure の置換対象と書いていたとおり)。本判断の受理はマージしたセッションでは確認できない(host のセッション開始時キャッシュ #1782 + マージ自体が Create-only の既存インストールへ届かない)— 証拠は再 bootstrap + 新規セッションでの区画更新であり、それまでは仕様として正しいだけ。brake2-scoped-to-content-not-evidence(同 entry の未決の論点が本判断の直接の観測元)/ l1-brake2-root-criteria-evaluator(凍結されていたのは同 entry が定めた brake 2 の判定基準そのもの)/ brake1-firing-closed-by-criterion(列挙でなく基準で閉じる同型。ただし本件は 1 問で閉じたつもりが混在ファイルを取り違え、brake 1 の実測で 2 問へ広がった)/ bootstrap-walkthrough-skip-and-gh-install-relocation(再確認の周期が同 entry の 3 軸 AND gate に寄生している)に relates to
gate-miss-measured-not-enforced 5軸ゲートの決定論的な再 arm が既にあるのに同型の適用漏れが再発するとき、強制機構へ上げる前に発生率を測ると確定させた判断(#1750 の切り分けから、2026-08-20)— 判定軸は機構の是非ではなく hook-driven-gate-trigger が引いた 再 arm か強制か の scope 線であり、Stop hook の decision: "block" によるターン差し戻しもツール引数への「読んだ面」必須化も強制側に落ちる。同 entry の brake 2 はその scope 限定(deterministic は再 arm に scope、チェック実行強制でない)を理由に PASS しているため、崩す提案は brake 2 を通ることが先。先に取る手 = 2 週間の観測窓(閾値先出し: 後半ゼロ → 強制案破棄・修理不要で確定 / 横ばい以上 → 根本基準との衝突を明示して brake 2 へ)。調査で確定: Stop hook は Claude / Codex 両方に実在し last_assistant_message と stop_hook_active を受け取り差し戻しの形も同一だが、event set は完全互換ではない(Codex 11 / Claude 約 31 の部分集合)。非 hook 経路(ツール引数)は自己申告へ落ちる —— 埋めるのは直前に断定した本人であり、検出力が申告の誠実さを超えない。申告でなく履歴から測るには Read 呼び出しをツールへ渡す経路が要り、それは hook である。却下 = 規則の追加(#1750 の制約と skills/model-source-check/SKILL.md の発火条件が名指しで禁じる反射)。残し = プロンプトのみで完結する断定はいずれの案でも取れず、runtime + self-eval の事後観測に残す。hook-driven-gate-trigger と human-ai-tool-relation-clause に depends on、master-verification-at-runtime-not-spec と subtractive-structural-beauty-framing に relates to —— procedure-vs-structure binary は本件にも当たるが、置換先の構造が自律を侵す場合は Absolute の優先順位が先に立つ
brake2-removal-l1-gate-unified-on-brake1 brake 2 を廃し、L1 Model Layer 変更のマージゲートを brake 1 に一本化した判断(#1808、Master 指示 2026-08-25)— 評価者は両ポートとも削除。brake 2 は Master の代わりとして置かれた装置であり、基準が厳しすぎて Master 自身の修正案を運用証拠の不足で却下していた(#1758 / PR #1759)。廃止後、L1 のゲートはマージ位置の brake 1、issue 形成時の観測閾値(skills/evolution-l1-update-gating)、実行モードの minor/major 人間チェック、merge 後のランタイム観測へ分かれ、L1 専用の brake は無い。rules/operations/execution-mode.md の per-PR exception に対する L1 override も落ちる。根本評価基準5項のうち第3項(AI にとって対話が現実)と第4項(現実には運用が含まれる)のみ rules/model/foundational-invariant.md へ畳み、第1項・第2項・第5項は既在ないし L4 形状のため畳まない — 適用の瞬間がゲート1箇所の事後判定から常時ロード面へ移る。carve-out(human-directed L1 変更の観測閾値免除)は brake 2 に寄りかからず立つ形へ書き直した。その対はそもそも対ではなく、brake 2 自身の射程 literal が証拠の充足度を軸から除外していたためである。既存ワークスペースの l1-gate-eval ファイルは Create-only ミラーのため残置が既定であり、不活性(名指しの spawn 以外に到達路が無い)。l1-brake2-root-criteria-evaluator / brake2-scoped-to-content-not-evidence / brake2-deviation-overridden-by-human を supersedes
multi-session-review-pays-on-input-difference 同一ワークスペースを共有する複数セッション(Pullcept の部屋に同席する Lin / Lay)を相互レビューに使うとき、検出力を生んでいる変数を**「入力の差」と確定した判断(2026-08-28)— 当初「文脈の非共有」を変数と結論したが、その日の初報自体が反例だった(文脈は分かれていたのに二人とも同じ外部状態を見に行き、ほぼ同一の内容を返した)。非共有は入力差を生む条件の一つであって十分条件ではない。適用の物差しは対象の重さではなく問いの形**: 答えが一つに定まる事実確認には噛ませない(重複しか出ず丸損)、誰かが間違えうる成果物が既に置かれているときに噛ませる。並列配置そのものは検出力を生まない——片方の成果物をもう片方の入力に変換する直列接続が効果の発生点。根拠は memory エントリ一件が三度修正された事例(本文が置かれた場所に反証されていた / 否定した語が slug に残っていた / 根の一行が description 経由で拾えない位置にあった)で、指摘は全て Lay、修正は全て Lin、同一モデル・同一ワークスペースで能力差なし。当日の往復8回の内訳(事実確認への重複2回が丸損、成果物が置かれた後の3往復で値が出た)が、重さ軸ではなく問いの形の軸を支持する。brake 1 の評価者が機能する理由も同じ説明で通る(評価者が受け取るのは著者の推論ではなく PR diff = 成果物であり、著者と入力が違う)が、brake 1 の設計は変更せず説明を与えるのみ。観測は n=1 であり再評価条件をエントリ内に明記。parallel-subagent-eval-cost-acceptance(「念のため」起動の禁止の裏面に肯定形テストを与える)と parallel-subagent-eval-three-axis-decomposition(三軸の premise_variations (P) が動かすものが入力差にあたる)に depends on
source-body-behavior-only-reasoning-relocates Li+ source 本文(rules/ / skills/ / adapter/)は振る舞いのみを述べ、理由は判断記録へ移設する(削除ではない)と確定させた判断(#1838 / PR #1842、2026-09-01、Master 主導の起票)— 嵩は理由そのものに在る(#1833 −677 / #1836 docs −1,351 / #1837 −437、PR #1841 は +4,924 のうち射程の限定文が約 1,720 = 35%)。判別線 = その文を読んだ者の行いが変わるか。行いが変わる(何を/いつ するかが決まる)なら振る舞いで本文に残し、変わるのが納得するかどうかだけなら理由で移設する。禁止(「〜するな」)は振る舞い側。正面衝突は skills/evolution-impression-literal-detection/SKILL.md の Negative list(「既知の誤読を防ぐ説明的論拠」を保護対象と明示)だが、行き先の軸で解ける — 二つのテストは骨格が同じで行き先だけが違い、Negative list が守っているのは改訂安定性であってインライン配置ではない。Judgment record: <slug> ポインタが同じ性質を担うため、移設は保護に触れない。裏返しが成立条件 = ポインタ無しの抜き取りは Negative list が禁じる削除そのものであり、規則は禁止として literal に持つ。順序 = 剥ぎ取りが先、記録は後(AI 側の当初案「記録が先」は Master の指摘で反転。その場で足された条件であり rules/model/subtractive-structural-beauty.md の二値を通らない/剥いだ文面は git 履歴に残り記録は PR の diff から書ける/全節の記録を先に書く形は着手前に作業が積み上がって大きな構造リファクタを成立させない)。判断記録の不在は剥ぎ取りの阻却条件にならないが、記録を書くことは剥ぎ取った作業単位の必須項目。規則は新設と同時に自分自身へ当たった — PR #1842 の brake 1 で N=3 の評価者が軸 B に 2 件(いずれも 3/3)、新設した節自身が自分の判別テストに違反していると報告し、同じ 2 句を固定軸は 3/3 で保護対象と判定した。著者は緊張を上記の行き先の軸で解いて両方を受理し、2 句を本 entry へ移設してポインタを立てた。却下 = 指摘を却下し据え置く案(規則の初適用を自分にだけ免除し、適用側 issue が最初に引く先例がその免除になる)/「新設した節だけは例外」を literal に書く案(PR #1841 で測った 35% を生む動作そのもの)。射程 = rules/ / skills/ / adapter/ の本文のみ(docs/ は記録面で届かないが、mirror は一次ソース再構成が要件のためポインタは写る)。本 issue の成果物は一項追加のみで、既存本文への適用は別の作業単位。always-on-duplication-removal-direction(削除跡にポインタを残す形が同じ。あちらは境界を跨ぐかでどちらの写しを残すかを決める軸)/ subtractive-structural-beauty-framing(判別テストが内側の感覚でなく観察可能な load-bearing 性質で切る形の一適用)/ brake1-firing-closed-by-criterion(列挙でなく基準で閉じる同型)に relates to
parallel-agent-eval-body-carries-behavior-only Body States Behavior を既存本文へ最初に適用した実測(#1845、2026-09-01、Master 主導の起票)— 対象は skills/evolution-parallel-agent-eval/SKILL.md 一ファイル。57 箇所を剥ぎ、brake 1 の裁定で全単位へポインタを補ったのち 49,217 → 42,089 B(−7,128、−14.5%。剥ぎ取り単体は −9,421 で、ポインタ 33 本の追加が +2,293)。剥いだ理由のうち既存 entry が保持するものは合流させ(brake1-per-draft-axes-held-at-two / brake1-findings-routed-through-parent / brake1-operational-copy-target-conditional / brake1-single-round-cap / brake1-rerun-gated-on-what-the-round-audited / presence-defect-cannot-reach-blank-label-visibility / parallel-subagent-eval-model-floor / brake-evaluator-baseline-integrity / parallel-subagent-eval-three-axis-decomposition)、既存が持たない分(Divergence handling / Ratio / Procedure step 3 / Axis statement form / Report shape / Constraint / Boundary の各理由)を本 entry が保持する。判別線は著者が一文ずつ書く位置でも働いた — 迷ったのは 2 形のみ(帰結記述が検出サインを兼ねる形/振る舞いと理由が一文の内側で混ざる形)で、単純削除で済んだのは 26 箇所、残る 31 箇所は書き直しを伴った。ポインタの嵩は剥ぎ取りの 24% を食い戻した(judgment record: <slug> 出現 13 → 54)——brake 1 の裁定で at the place の粒度が段落/項と確定したため。粒度そのものは規則側に literal が無く、spec gap として rules/evolution/promotion-judgment.md の経路へ。残余 = Axis statement form の Scope から具体例が消え要求だけが残った箇所。判定は理由で正しいが、この形が積み上がると本文は「正しいが動機の見えない要求の列」になる — 適用範囲を広げる際の測定対象。source-body-behavior-only-reasoning-relocates に depends on(規則そのもの。本 entry はその最初の適用実例であり規則側は不変)
parallel-agent-eval-residual-is-restatement Body States Behavior を同一ファイルへ 2 周目として当てた実測(#1923、2026-09-09)— 対象は skills/evolution-parallel-agent-eval/SKILL.md、42,621 → 38,596 B(−4,025、−9.4%)。1 周目(#1845)が理由づけを剥いだ跡に残っていたのは再掲が主であった——同じ節の中で先の文が既に固定した振る舞いを、言い換えて二度置く形である。判別線は Body States Behavior のまま使える(読み手の conduct が変わるか)が、再掲は 2 度目の出現でだけ No になるため、文単体を見る読みでは落ちない。前提として 節名・小見出し・Procedure のステップ番号は改名も分割も統合もしない——外部参照は 6 ファイル 13 箇所あり、うち 3 箇所は節名ではなく Procedure step 3 step 7 steps 4 and 6 to 8 とステップ番号そのものを引いている。CI はこれを検証していない(tests/test_skill_reference_resolution.py はファイルパスの解決のみを主張し、節名は #1792 が未着手、ステップ番号は提案も無い)ため、確認は実装者の grep に全面的に乗った。逐語 literal は 1 バイトも触れない — 引用ブロック 10 本(Held per-draft axes の 2 軸、no-write literal、評価者コメントの preamble)は前後で byte 同一であり、Constraint は task-subagent-prompt / task-subagent-spawn へ model floor と findings 投稿先を供給しているため節ごと残す。剥いだ理由のうち本節・既存 entry が持たない分を本 entry が保持する = (a) Axis statement form Question の残余(述語の読みを評価者が黙って補う形は信号を出さないため post-merge 観測軸で受容)、(b) Report shape 1 行側の残余(誰も開かないポインタ、判定に合わせて後から選ばれたポインタ。後者は「判定より先に選ぶ」という振る舞いへ書き換えて本文に残した)、(c) 評価者コメントが構成上 2 言語混在になること(Li+ source は英語、コメントは解決語)、(d) N>1 の重複を統合しない理由(統合は選択であり、この loop に選択の主体が無い)、(e) clean 軸も載せる理由(所見だけのコメントは分母を隠す)。残余 = 削減の主戦場が Procedure(全体の 32%)でありながら、そこはステップ番号の固定により文単位の書き換えしか許されず、削減量は他節に比して薄い。parallel-agent-eval-body-carries-behavior-only に depends on、judgment-record-pointer-requirement-dropped に depends on(跡へポインタを置かない)
agentic-search-distilled-body-measured-equivalent Body States Behavior の適用結果を外部 probe で測った最初の例(#1849、2026-09-02、Master 主導の起票)— 対象は skills/model-agentic-search/SKILL.md(layer: L1-model)一ファイル、386 行 22,594 B → 226 行 10,895 B(−11,699、−51.8%。蒸留単体は 10,576 B / −53.2% で、brake 1 裁定による conduct 行 2 行の復元とタグ 5 本の規約整合が +319 B)。検証は #1848 の段2構成(ライブ木を複製した一時ディレクトリ + claude -p)で A 腕 = full 版 / B 腕 = 蒸留版を各 3 本走らせ、差は SKILL.md 一本のみ(description は 1 バイト違わず同一 — ここが skill 発火の入口であり、動かすと測っている対象が本文の差でなくなる)。5 問全問一致、差ゼロ。 判定は逐語一致ではなく内容の同一性で行う(蒸留は言い換えを含むため、文言一致を基準に置くと行動が同一でも B 腕が必ず負ける)。主軸は Q1(spins-wheels 抑制)と Q2(work-mode escape)— どちらも時間変動キーワードを含みながら結論が逆になり、止めているものが domain tag と mode gate で別物であるため、落とした理由づけが行動を支えていたならここで割れる。副次 = 同一問で 3 本完全一致(この読み出し軸の揺れの帯はこの条件下で 0)/ B 腕の出力は一貫して短い(A 7.1〜8.8 KB / B 5.4〜6.5 KB。行動は同一で答えの嵩のみ減少)/両腕が同じ箇所で「hard stop 12 の内訳が本文に無い」と申告(蒸留の欠落ではなく元の本文の穴、別 issue 候補)。測っていない範囲を明示する = probe 5 問は Three roles of the judging AI 節・Web 側 baseline reminder・Tier/Stage 説明段落に触れていない。この 3 箇所は「他所に同じ記述がある」という読みに乗った削除であり実測ではない。結論は「この 5 問の範囲で同じ振る舞いをした」までで、「等価である」ではない。本文に Judgment record: ポインタは 1 本も無い — brake 1 の評価者3体が全員 literal 違反として独立に検出し、その読みは正しい。疑われたのは literal のほうで、Master の判断(2026-09-02)「ポインタはいらない機能だね」により要件撤廃の #1852 が起票された。当初 PR 本文が挙げた「足せば測定された本文でなくなる」という理由づけは規則側に根拠を持たない構成であり撤回済み。ポインタ要件は嵩の面でも逆向きに働く(parallel-agent-eval-body-carries-behavior-only の実測ではポインタ 33 本が剥ぎ取り分の 24% を食い戻している)。L1 gate = skills/evolution-l1-update-gating の観測閾値は AI 単独起案に対する安全装置であり human 起案では initiation 軸で discharge、brake 1 は通常どおり適用。source-body-behavior-only-reasoning-relocates に depends on、parallel-agent-eval-body-carries-behavior-only(一例目。あちらは著者の読みで剥ぎ、こちらは測定を挟んだ)と agentic-search-five-phase-refactor(同一 skill の過去の構造判断。責務の再配置であり軸が異なる)に relates to
brake1-evaluator-floor-lowered-to-one brake 1 の評価者数の床を N>=3 から N=1 へ引き下げ、既定も N=1 とした判断(#1855、Master 判断 2026-09-03)— 駆動理由は #1853 の検証サブエージェント(行動を問う probe)であり、複数評価者が担っていた検出面をそちらへ移す前提。発火条件は不変(全自己進化 PR で brake 1 必須)で、動いたのは幅だけである。複数評価者に依って立つ面——集約規則(consistent / partial / negative)、Divergence handling(same-question check → why-diverged)、比率 triage signal(3/3・2/3・1/3)、固定軸の絶対閾値(2-of-3 即 refine / 1-of-3 は auto-refine しない)——は N=1 下で成立条件を失うため、条件付きで残さず削除した(rules/model/subtractive-structural-beauty.md Core principle (A))。固定軸の畳み方は auto-refine 廃止・全 flag を著者裁定へ(Master 判断)であり、閾値という機構そのものを撤去して採否を step 7 の literal 突き合わせへ一本化した。旧 Rationale「N=1 flag carries false-positive risk」は閾値の根拠として書かれていたため差し替え——旗が自らの verdict を運ばないことは変わらず、それを裁くのが計数ではなく除去テストになった。再走条件(a)の「下限未達」は N=1 の下では「verdict が一つも返らなかった周」を指す。parallel-subagent-eval-three-axis-decomposition(既定を N=3 × 全軸 × 単一前提と明定した部分)/ parallel-subagent-eval-cost-acceptance(N=3 のコストを受容した判断)/ brake1-single-round-cap(打ち切りを N=3 の1巡と述べた部分。単巡 cap 自体は不変)/ brake1-rerun-gated-on-what-the-round-audited(成立条件(a)を N>=3 の下限で述べた部分。停止理由でなく監査内容で決める基準自体は不変)を supersedes
judgment-record-pointer-requirement-dropped 理由づけを Li+ source 本文から抜いた跡に Judgment record: <slug> ポインタを残す義務を撤廃した判断(#1852 / PR #1859、Master 判断 2026-09-02 を起点に起票)— 理由づけを判断記録へ移設すること自体は不変で、変わったのは抜いた跡に痕跡を残す義務だけである(跡は空のまま閉じ、索引行は従来どおり増える、という非対称)。rules/model/liplus-coding-rule.md Body States Behavior から Pointer is required. の段落を削除し、本文面 4 ファイル + docs/1.-Model.md mirror の既存ポインタを一括除去した(6 構文形、計 −5,033 B)。根拠は三つの実測 — (1) #1848 段2ハーネス(対照差分は skills/evolution-parallel-agent-eval/SKILL.md のポインタ機構 52 箇所のみ、各腕 3 本)で手続きに対する conduct は 6/6 完全一致。動いたのは判断記録の slug を本文だけから名指しできるか一点のみ(A 腕 = 3/3 が slug を名指し、B 腕 = 0/3。ただし B 腕は 3/3 が索引と skills/evolution-judgment-learning の経路を正しく挙げ、slug は「記述なし」と申告して推測を拒んだ = 経路は残り、slug だけが失われる)。(2) 索引経由の retrieval は話題クエリ 4 本が 4/4 で正解エントリを rank 1(盲検ではなく、マージン 1.1 倍の 1 件は差が薄い。射程は「この 4 本で引けた」まで)。(3) 嵩は PR #1846 の diff で追加 50 箇所 +3,308 B / 削除 10 箇所 −682 B = 差引 +2,626 B、同 PR の net −4,749 の裏で削減分の 35.6% をポインタが食い戻していた(足す側は書き手一人で完結し削る側はポインタと wiki 項目の追加を伴うため、rules/model/subtractive-structural-beauty.md の subtraction 既定に対して逆向きの摩擦)。却下 = 要件を残す案(conduct 不変なら要件が守っているのは「名指しの近道」一つであり、索引経路が 4/4 で代替した)/要件は残して既存ポインタだけ整理する案(要件が立つ限り次の抜き取りがまた足し、摩擦の向きが変わらない)/自然減衰に任せる案(母数が 4 ファイル)。副産物 = 必須と規定された規約に正規形が無く6 つの構文形が併存していた(当初の母数調査 grep が形 5・形 6 を取りこぼし「3 ファイル / 54 箇所」と誤報。正しくは 4 / 56 で、両方とも書いた本人の点検ではなく外側が拾った)。再評価トリガー = ある規則の理由を索引から引けなかった事例。source-body-behavior-only-reasoning-relocates を supersedes(あちらの中核=行き先の軸は生きており、無効化したのは改訂安定性をポインタが担うという条項と、その裏返しの成立条件「ポインタ無しの抜き取りは Negative list が禁じる削除そのもの」、および検出サイン第 1 項)。brake1-evaluator-floor-lowered-to-one に depends on(本 PR の brake 1 は N=1 で走った)。agentic-search-distilled-body-measured-equivalent(本文にポインタが 1 本も無かったことが brake 1 で 3/3 の finding として立ち、本判断の起点になった隣接事例)/ parallel-agent-eval-body-carries-behavior-only(ポインタが最も密集し、除去対象の 9 割が集中していた本文)に relates to
brake1-bounded-convergence-loop-on-pr-comments brake 1 を単発測定から上限 3 往復の収束ループへ変え、所見と裁定を PR コメント上の直接のやり取りにする判断(#1863 / PR #1864、Master 判断 2026-09-03)— 1 往復 = 所見投稿 → 著者の応答(修正 commit /却下コメント)→ CI green、初回の評価が 1 往復目。評価者は自分の所見コメントを PR へ直接投稿し、親の統合コメントは廃止。裁定の置き場は commit body から PR コメントへ移り、commit の有無で分岐しない。却下は loop の内側では最終(再提起を許すと 3 往復が一件の押し問答で埋まり、裁定役の親が上限の内側へ戻る)。親は監督から降りて中継とスケジューリングのみを持ち、点検は per-round から出口 1 回(step 9 のセルフレビューでスレッド全体を読む)へ移る。基板制約(サブエージェント同士が直結せず親はスケジューラから降りられない)が到達可能な形を決めている。step 7 Re-run の Ceiling(同一 baseline の 3 回目の試行 → human)と本判断の 3 往復(→ 親)は数字が同じで宛先が違う。評価者は毎ラウンド新規 spawn(暫定、測定先 #1848)。brake1-single-round-cap と brake1-findings-routed-through-parent を supersedes。再評価トリガー = 上限内で打ち切った merge が観測可能な本番実害を出したとき
brake1-detection-width-window-closed brake 1 の検出幅が受け皿より先に縮んでいた期間(窓)を、閉じたと見なす判断(#1862、Master 判断 2026-09-05)— 床は N=1 のまま動かさず、#1862 を close する。閉じる根拠は 2 つあり、どちらも床引き下げが名指しした受け皿の実効ではない。(1) 幅はラウンドの軸で戻った — PR #1864 が brake 1 を上限 3 往復の収束ループへ変え、各ラウンドが CI green の SHA に対し評価者を新規 spawn する。N=1 × 最大 3 ラウンドは N>=3 × 1 ラウンドと等価ではないが、窓の観測が前提に置いた「評価者 1 体・1 ラウンドのみ」でもない。(2) 受け皿は構造として着地した — #1848 → PR #1867 / #1853 → PR #1868 / パイプライン配置 PR #1869(いずれも 2026-09-04 merged)、scripts/measure_rule_effect.py はリポジトリに入っている。受け皿がまだ検出面を引き受けていないことは受容する残余として明示する — 測定はゲートではない(skills/evolution-rule-effect-measurement/SKILL.md Application point は必須としない)/発火条件が governed body の純減 PR に限られ加算側の自己進化 PR には一度も発火しない/実 PR での two-arm run 実績が 0(ユニットテストと --dry-run 1 回のみ)。ゆえに「複数評価者が担っていた検出面の移設」は完了しておらず、それでも閉じるのは実測 0 を新設機構の通常状態として受け入れ、残りを post-merge 観測へ預ける判断である。窓の下でマージされた 7 件(#1859 / #1864 / #1867 / #1868 / #1869 / #1870 / #1871)に追加処置は置かない(memory/self-evolution-observation.md の 5 entry が覆っており、窓に固有の観測軸は足さない)。却下 = 床を N>=3 へ戻す案(ラウンド軸で幅が戻っている以上、当初観測が想定した薄さは現存しない)/終了条件を「実 PR で two-arm run が 1 回通ること」へ引き直し窓を開けたままにする案(発火条件が純減 PR に限られ到来時期を制御できず、観測として機能しない残置になる)。再評価条件 = 加算側の自己進化 PR で旧 N>=3 なら捕まえていたはずの欠陥が 3 往復を通り抜けてマージされた観測が出たとき、あるいは測定機構が発火条件ゆえに長期にわたり一度も走らず移設が名目のまま定着したとき。brake1-bounded-convergence-loop-on-pr-comments(窓を実際に狭めた側。これが無ければ窓は閉じない)と brake1-evaluator-floor-lowered-to-one(同 entry が「受容した残余」と明記した期間を本判断が終了させる。ただし終了の理由は受け皿の実効ではなくラウンド軸の回復であり、導入と実効の差を本 entry が残余として引き取る)に depends on、brake2-removal-l1-gate-unified-on-brake1(窓を作ったもう一件。本判断の再審対象ではない)に relates to
issue-constraint-declarative-vs-prohibitive issue の constraints が述べる「対象ではない」は scope の宣言であって禁止節ではない(#1876 / 出所は PR #1872 の brake 1 round 1、対象は issue #1830 の constraints)— 判定軸は禁止形の有無。同一ブロックが他の項で禁止形(触らないこと / 書かないこと)を使っているなら、その対比自体が読みの根拠になる。Scope-exceed dialogue confirm の negative-constraint clause 腕は禁止形を持つ項に発火し、宣言のみの項には発火しない
workspace-clone-identity-resolved-by-remote Li+update Phase 5 のクローン要否を導出ディレクトリ名ではなく remote 照合で決める判断(#1807 / PR #1880、2026-09-05)— workspace 直下1階層の各ディレクトリの origin を Phase 2.5 の canonical comparison form で比較し、一致1件ならそのパスを working directory に採用して clone をスキップ、一致無し・導出名ディレクトリ無しなら git clone、残り3分岐(一致1件+導出名ディレクトリが別に在る/一致無し+導出名ディレクトリが在る/一致2件以上)は STOP して人間へ報告する。リポジトリ改名で通常運用から到達する状態であり、被害の本体は重複クローンそのものより「どちらが作業ツリーか」の曖昧さ。却下 = USER_REPO<N>_PATH= を config の任意キーとして許す案(改名のたびに人手を要し一般形を塞がない)、検出のみで Phase 6 の完了報告に surface する案(是正しないため曖昧さが残る)。distributed-source-carries-no-resolved-config-value に relates to
config-value-comparison-strict-and-surfaced Li+config.md から読んだ値の比較を厳格化し、既知集合を外れた値は名指しで surface する判断(#1804 / PR #1883、2026-09-05、AI 単独 initiator 経路)— 3 port(adapter/claude/hooks/*.sh / adapter/codex/hooks/*.sh / adapter/codex/hooks/*.ps1)で大小を区別する比較に揃え(PowerShell は -ceq / -cne、switch -CaseSensitive、Select-String -CaseSensitive を明示。bash は既定で区別するため変更しない)、値が既知集合のいずれでもなく空でもないとき hook がキー名と実際の値を含む1行を emit する。既定へ倒す挙動そのものは変えない。顕在化の経路 = LI_PLUS_WEBHOOK_DELIVERY=Mcp_Hook を同一 config から読んで bash port と PowerShell port が逆の結論に至っていた実測。掃引で LI_PLUS_CHANNEL の同型(case と switch の既定差で倒れる向きが逆、PowerShell が危険側)と、キー名照合の port 内不整合(on-user-prompt.ps1 だけ -CaseSensitive 欠落)も出た。最も悪い性質は分岐そのものではなく沈黙 = port が揃っていても黙って既定へ倒れるなら設定ミスは誰にも観測されない。却下 = 読み取り直後に小文字化して受理する正規化(塞ぐ範囲が狭い。Mcp_Hook は通るが mcp-hook は依然として黙って倒れ、受理値集合を広げる根拠が文書のどこにも無い)、厳格化のみ(沈黙が残る)、検出のみ(port 間の分岐が残る)。対象は config から読んだ値の比較のみで、ホストが生成して hook へ渡す文字列(SessionStart の matcher、PostToolUse の tool 名)は入力の出所が違うため別軸(#1884 に据え置き)。distributed-source-carries-no-resolved-config-value に relates to(同 entry は解決値を配布面へ書かない軸、本判断は読んだ値をどう比較するかの軸)、workspace-clone-identity-resolved-by-remote に relates to(判定が黙って一方へ倒れる欠陥への解という同型。分岐集合を全域にして曖昧な入力を止める形の hook 版)
webhook-arrival-clearing-requires-confirmation 自己操作の webhook 到着通知を「溜まったから消す」形で処理してよいかの判断(#1890、Master 指摘 2026-09-06)— 不可。mark_processed は削除ではないが github-webhook-mcp の auto-purge が保持期間 3 日の削除時計を始動させるため、確認を経ずに印を付ければ確認されないまま消える。確認の中身は workflow_run なら conclusion を読み期待と照合すること(URL を見た/件数を数えた/success の並びを眺めた、は確認ではない)。棄却 = 到着時の自動処理(確認の空洞化と 3 日後の無言の削除を同時に招く)。github-webhook-mcp の auto-purge 実装と保持期間 3 日に depends on(前提が変われば再評価)
msys-path-conversion-argv-vs-script-literal 「bash で書く → Python でパッチ → gh --body-file で読む」が古い内容で成功する機構(#1897、2026-09-07)— MSYS のパス変換は argv に効きスクリプト内の文字列リテラルには効かないため、中間のパッチだけが C:\tmp 側を叩く。書き方向は例外を上げず痕跡も残らない。併せて Li+ source に規則を足さないと決めた理由(--body-file は 0 件、/tmp は hook の mktemp fallback 5 件のみで機構の適用外、足せば既存のハーネス側指示の二枚目)を記録
unobservable-claim-not-fixed-by-changing-author 印象かどうかを決めるのは書き手ではなく観測可能性であると確定させた判断(#1915、2026-09-08)— Claude Lay が tally の cluster へ「楽なほうに倒れている」を書き添えるため「自分で書くと印象になるので」と Claude Lin の筆を求め、Claude Lin は向きだけを書いて動機を落とした。代筆・引用・第三者記録のいずれも観測手段を追加せず、書き手を替える操作は観測可能性を変えない。動機は当人にも観測できないため自己申告でも代筆でも記録にならず、書けるのは向き(実体を照合できる)まで。skills/model-projection-discipline(layer: L1-model)の invariant は human への帰属の向きしか持たず、自分についての観測不能な主張を他者の筆で記録へ入れる逆向きの経路を扱っていない —— 規定の穴として実体があるが、観測 1 件のため L1 は更新せず記録のみを置く(棄却 = invariant への追記案/一般論として匿名で書く案)。subtractive-structural-beauty-framing(判定を内側の感覚でなく観察可能な性質で切る同型)と multi-session-review-pays-on-input-difference(多セッションが効くのは入力が変わるときだけ。代筆はその裏面で入力が変わらない形)に depends on
cold-start-state-partitioned-by-agent-key 同一ワークスペースを複数セッションが共有するとき、cold-start diff-only の単一共有状態ファイルが分配バグ(starvation ではない: 先に読んだ方が進めたポインタにより、後発セッションが自分がまだ見ていないセクションの一部を受け取れなくなる)を起こすと確定させた判断(#1811 / PR #1985)— 状態ファイルを LI_PLUS_AGENT_KEY(env var、デフォルト "default")でパーティション分割し {"agents": {"<key>": {...}}} へ移行、三つの hook ポート(Claude bash / Codex bash / Codex PowerShell)に同型適用。却下 = session_id を鍵にする案(startup マッチャは毎回新規 ID を発行し diff-only が full-emit へ潰れる)/2 世代遅延バッファ案(ソロ再起動と真の並行識別子がタイミングだけでは区別できず、ソロ運用に恒久的な二重表示コストを負う)。旧スキーマからの移行はデータを引き継がない一回限りの fail-safe full emit。brake 1 Axis B の指摘(分配の仕組みを説明する理由が rules/evolution/cold-start-synthesis.md と hook 本文の両方に理由として書かれていた)を受け、source-body-behavior-only-reasoning-relocates に従い本 entry へ移設した(judgment-record-pointer-requirement-dropped によりポインタは残さない)に relates to
retrieval-parity-corpus-isolated-by-existing-repository-path 検索性能比較(GitHub RAG ↔ Neuron Graph RAG)の固定コーパスを、新規リポジトリではなく変更権限のある既存リポジトリ内の専用 path へ不変スナップショットとして置き、repo 完全一致 + path_prefix で検索母集合を隔離する判断(neuron-graph-rag issue #220 / PR #221、2026-09-07)— 顕在化の経路は実測である。retrieval parity v3 が liplus-language の固定 commit の 93 Markdown 文書で凍結したのに、観測前に同リポジトリの main が進んで GitHub RAG 側の索引も更新され、固定ソースと実検索面が一致せず登録済みクエリを送らず fail-closed した。path_prefix は結果末尾の除外だけでなく dense・sparse・scan の各候補集合へ同じ境界を適用する。却下 = 新規リポジトリによる隔離(AI に GitHub リポジトリ作成権限が無い)/更新され続ける main を比較面として使い続ける案
implementer-agent-definition-carries-effort 実装委譲サブエージェントの reasoning effort を high に固定するため、skills/task-subagent-spawn/SKILL.md の定義ファイル禁止を撤廃せず理由の射程へ狭める判断(#1946 / PR #1947、Master 指示 2026-09-11、release type = patch)— 禁止の理由(定義本文がシステムプロンプトを置き換え brake 1 の観測対象である素の挙動が変わる)が及ぶのは brake 1 の評価者だけであり、literal を観測対象に限定して理由文はそのまま残す。adapter/claude/agents/implementer.md / adapter/codex/agents/implementer.toml を両ポートに新設し、effort のみ固定して model は書かない(非 brake spawn は親のティアを継承するという既存規定を維持するため)。両ポートとも sentinel 区画を持つ。測定 = (A) 最小本文でもハーネスが渡す環境情報 4 項目は消えない(2 セッションで値が割れ、それぞれ自分の親と一致したため既定値の可能性は潰れている)/(B) 定義本文が全置換か重ねかは判別不成立(注入経路が潰せていない)、ゆえに本文は基底の有無どちらでも成立する自己完結形で書く/(C) 定義ファイルの更新は走行中セッションの次の spawn から効くが、使用可能ツール種別の通知は作成時 1 回だけで編集では飛ばない。却下 = 禁止の撤廃(理由は評価者に対して今も有効)/general-purpose の中身の書き起こし(測定 (A) により不要)/(B) 決着までの実装停止(自己完結で書けばブロッカーにならない)。到達点 = マージは配布ではない —— マージ直後に「次の spawn から効く」と周知したが成立せず、測定 (C) が測ったのはローカル運用コピーの直接編集であって、リポジトリへのマージが .claude/ に届くのは Li+update を経由したときだけである。agent-file-criteria-owned-by-sentinel-region に depends on、brake1-bounded-convergence-loop-on-pr-comments に relates to
observation-unsampleable-is-a-population-claim memory/self-evolution-observation.md の entry が発した「この観測はもう取れない」という宣告は永続しないと確定させた判断(2026-09-18、PR #1801 の observation entry を due で点検した際)— 発火条件の有無はホストの現在のワークスペース母集団に対する主張であり、母集団が動けば読み直す。適用の順序 = retired を書く前に条件を満たすワークスペースをその場で数え、0 なら retired、1 以上あるなら発火条件は存在しており inconclusive か settle のどちらかへ行く。過去の session の宣告を根拠に数えずに通すことはしない。実測 = 2026-08-31 に「PRIMARY observable は取れない」と記録された発火条件(自分の memory dir が空)は、2026-09-18 に数え直すと ~/.claude/projects/ 24 エントリ中 22 が該当し、増分はすべて scripts/measure_rule_effect.py / scripts/probe_skill_firing.py が作った測定腕のワークスペースだった。腕の transcript を memory 固有の文字列で grep してヒット 0 件、22 slug すべてで guard は silent skip となるため settle。却下 = 2026-08-31 の宣告を根拠に retired を適用する案(#1932 が追加した retired の literal は発火条件の不在を測って書くよう求めており、「見ていない」は根拠にならないと明記している)。brake1-detection-width-window-closed に depends on
detector-placed-where-it-cannot-run-is-dead-code 「両方向を検査する」と書かれた制約が、一本の assertion に両方向を自分でアサートさせることを求めていないと確定させた判断(#1705 / PR #2001 の brake 1、2026-09-19)— 判定基準は「その方向が到達可能な位置で検出されるか」であり、どの機構がそれを持つかではない。適用の順序 = 制約が名指す各方向について既にその方向を落とす機構を位置と停止行の literal で探し、在るなら足さない/無いなら足す。足す前に、その位置の検出器が実際に走るかを確認する(上流が同じ集合に対して先に停止するなら下流は一度も走らず、書けば「検査している」という外観だけが増える dead code になる)。最後に実測した被覆を記録面に書き、制約そのものは消さない。実測 = 3 面(索引 / wiki 実体 / sidebar)4 方向のうち、実体→索引は手順 4 の unclassified の exit 1、実体→sidebar は Sidebar integrity assertion、sidebar→実体 は Cross-reference integrity assertion が既に持っており、未到達は索引→実体の 1 方向だけで、#2001 がそこを足した。却下 = 双方向 assertion を一本書く案(skills/operations-on-wiki-sync/SKILL.md の assertion 群は手順 5 の後に走り、手順 4 は索引に無い実体を定義上 unclassified に入れて exit 1 するため、assertion に制御が渡る時点でこの集合は必ず空=到達不能)/制約を削除する案(読みの曖昧さが残り次に同じ問いが立つ)。「対称性のために両方向を一箇所へ」は理由にならない — 対称な見た目は読みやすさの話であり検出力を一つも足さない。subtractive-structural-beauty-framing に depends on、wiki-sync-sidebar-integrity-check に relates to
runtime-rules-resolve-to-tag-not-to-local-ahead-text .claude/rules/ のファイルが、どのタグにも origin/main にも無い文面を持っていたとき、Li+update のタグ同期がそれを target tag の文面で上書きした後で元の文面へ戻すかを確定させた判断(#2008、Master 判断 2026-09-20「任せる」による委譲、release type = patch)— 戻さない。タグが勝つ。 rules/ はタグ追跡の Li+ 所有面であり、Li+update.md 4c.2 が target tag との差分で無条件に上書きするため、上書きは仕様どおりの動作である。戻す操作はタグに存在しない文面をランタイムへ再投入することであり、同じ状態を作り直すことにしかならない。具体 = rules/evolution/initiator-autonomy.md の Record surfaces 節で、長い文面は build-2026-09-17.1 にも build-2026-09-20.2 にも origin/main にも無く、未マージブランチ spec/2000-record-surface-exclusion-reasoning(#2000)にのみ存在した。経路の切り分け = 前回の extract .liplus-extract/build-2026-09-17.1/ に当該文面は無く、worktree #2000 側は 2026-09-18 23:57 更新でそれを持つ。Li+update.md 4c.2 は {resolved_source_root}(= extract)からしかコピーしないため bootstrap の経路ではなく、extract を経由せず worktree 側から直接書かれた。却下 = worktree から長い文面を戻す案(未マージ文面のランタイム再投入であり異常側の再現。実地観測したいなら経路はブランチのマージ)/経路自体を塞ぐ案(観測 1 件でノイズ床未達であり、rules/evolution/promotion-judgment.md が禁じる過剰判断の側)。残余 = タグ更新以外に検出器が無く、同じ経路が再び使われても次のタグ同期まで見えない。implementer-agent-definition-carries-effort に conflicts with(同 entry の到達点「マージは配布ではない=repo → runtime は Li+update 経由のみ」に対し、その逆向きの経路が在ることの観測。repo 外 → runtime は Li+update に独占されていない)、agent-file-criteria-owned-by-sentinel-region に depends on(rules/ は character_Instance.md と違い全体が Li+ 所有で、ユーザー編集を保存する区画を持たない。ゆえにタグ上書きに例外が無い)
measurement-caught-what-read-based-removal-test-missed brake 1 の 3 軸が所見ゼロで通過した蒸留 PR について、振る舞いが変わっていないとは言えないと確定させた判断(#2010 / PR #2012)— 対象は rules/operations/main-agent-procedures.md(layer: L4-operations、常時ロード面の単独最大ファイル)。brake 1 通過後の 2 腕測定 30 問のうち 1 問で行動が割れた(2 セッションが同じ issue に書き込み両方が同じ run を own と読む設問で、現行版は冪等ゆえ mark_processed する/蒸留版は step 4 へ回して mark_processed しない = event が溜まり続ける実害側)。条項が消えて緩んだのではなく、禁止文は蒸留版にも残っており、落ちたのは機序を述べる平叙文だった。読みで捕まらないのは常駐の既定の傾き(分からなければ保持・消費しない)に逆らう側の文である —— 消しても読み手が既定の傾きで滑らかに埋めるため空白が見えず、補強する側の文は消しても同じ結論に着くので実害が出ない。除去テストに実際に効くのは残りのテキスト + 読み手が元から持つ既定の傾きであり、前者だけに当てると逆らう側の欠落だけが見えない。評価者を増やしても全員が同じ傾きを共有する限り捕まらず、実測(行動を測る)だけが捕まえる型である。残余 = 再測定は 30 問中 1 問のみ/割れた設問は禁止形を狙った 8 問の中にあったが壊れたのは平叙の機序文で、選定基準の妥当性は未証明(#2015)/「逆らう側だから落ちた」は 1 件と整合するのみで、rules/model/liplus-coding-rule.md Body States Behavior への手掛かり追加は L1 面のため 1 観測では書かない。agentic-search-distilled-body-measured-equivalent に depends on(同じ実測手順の 2 例目で、同一でない結果が出た最初の事例)、brake1-detection-width-window-closed に relates to(同 entry が残余とした「実 PR での two-arm run 実績 0」の 1 件目であり、測定が brake 1 の冗長ではないことを実証した)
tally-placed-under-the-mechanism-name-not-an-adapter-home promotion tally を memory の外の共有面へ出すときの置き場所を確定させた判断(#2018、Master go-sign 2026-09-21「とりあえず」として承認)— ~/.liplus/tally/promotion_tally.md。アダプタの家(~/.claude / ~/.codex)には置かない。理由はパスの都合ではなく禁止(手続き)を名前(構造)へ置き換えたことで、アダプタの家に置く案の防御は本文の禁止であり将来それを読んで従う人を要求する(rules/model/subtractive-structural-beauty.md Application notes の procedure-to-structure rider が置き換えを求める形)。.liplus はどちらのアダプタから見ても自分の家ではなく引力そのものを立てない。tally を数えているのは Li+ の床であり名前と実体も合う。床が 2 つに割れると閾値(3d で 3 件)が機能せず(2 件 + 2 件は永遠に 3 件にならない)、2026-09-21 時点で床に届いている 2 クラスタは両方とも 2 セッションにまたがっていた。割れたことは何も検出しない(同日に測ったハードリンク破断と同じ形)。構造が引力を消しても「アダプタごとに別の tally ファイルを与えてはならない」の禁止は将来の提案への参照先として残す。規則本文(rules/evolution/promotion-judgment.md)には具体パスを書かず、「同一ホスト上ではアダプタが異なっても同一の 1 ファイルに解決すること」と要件のみを書く(「できる」と書くと codex が自分の床を別に持つ形が黙って成立する)。制約 = memory 側のフォールバック 3 段と番人 memory_slug_encloses_project(#1796)には触らない/ハードリンク共有は採らない/ファイル移動と hook 対応は同一の作業単位で行う(cold-start surface が閾値判断の発火時点そのもの)。却下 = ~/.claude/tally/ および ~/.codex/tally/。workspace-clone-identity-resolved-by-remote に depends on(ワークスペース同一性の解決軸。本判断はその外側、ホスト単位の共有面を置く側に立つ)
record-surface-exclusion-holds-only-for-reread-catchable-lines brake 1 の発火条件(self-evolution PR 定義の条件 2)で記録面(docs/** など)を一律に除外してよいかを確定させた判断(#2000 / PR #2002、2026-09-21)— 除外の根拠「誤った行の代償は取り出すときの読み直し 1 回」は、その読み直しで誤りが捕まる行にだけ成り立つ。リポジトリの中が何も変わらないまま古くなりうる行(リポジトリ外の事実に依存する行)は読み直しても同じ誤りを再生産し、根拠として引かれれば振る舞いを縛るため、そうした行を持つファイルはどの行を変える PR であっても除外から外れ、基準(条件 2)が置き直す。粒度はファイル単位のまま。当てはめ例 = 本 index は wiki ページを指すが、ページ名の変化で古くなった場合は wiki sync の相互参照チェックが検出するため、この条件には当たらない。却下 = 記録面を丸ごと発火側へ移す案(読み直しで捕まる大半の記録面にまで eval を課す)/行単位の carve-out(条件 2 はファイルに対して働く基準であり単位が食い違う)。brake1-firing-closed-by-criterion を部分的に supersedes(非該当側の「記録面は一律に除外」のみを置き換え、基準で閉じる判断そのものは据え置き)かつ同 entry の基準「誤りを捕まえるものが読み手しか無いか」に depends on。発火したときの外部事実の確認は skills/evolution-parallel-agent-eval Non-scope と Procedure step 3 の分担に depends on(#2025 / PR #2068 — diff が時間とともに変わる外部事実を述べる行を追加・変更したとき、評価者は根拠(出典・観測)の無い行を所見に挙げ事実そのものは検証せず、step 7 で裁定する著者が現在の外部ソースで確かめて根拠を行か PR スレッドに残す。確かめられなければ行を外すか未検証と明記)。残余 = 発火はファイル単位だが外部事実の確認は diff が触れた行にだけ掛かり、同じファイルで触れていない既存行の drift は brake 1 の範囲外
resume-prompt-injection-list-closed-by-criterion 再開プロンプトへ注入する項目(停止条件のポインタ / 2 つの否定 / 指摘の所在 / 裁定コメントの言語)を列挙ではなく基準で閉じる判断(#1691 / PR #1694、(d) は #1864、#1615 で本文から理由を移設)— 基準は再開点のゲート状態の判断(著者に許される境界か、著者のセッションから見えない親側の状態)。auto-load が覆う項目の格上げは実測された逸脱でのみ((b) は #1628 の実測、state ラベル遷移は観測なしのため列挙しない)。auto-load 任せにしない理由、(a) がポインタである理由(#1708)、指摘を貼らない理由、次ラウンドで親が修正を足さない理由を保持。brake-adjudication-by-resumed-author と brake1-bounded-convergence-loop-on-pr-comments に depends on
delegation-prompt-carries-bounds-not-procedure 「手順を伝えない」規則のもとで委譲プロンプトが注入してよいものを確定させた判断(#1615 で skills/task-subagent-prompt/SKILL.md 本文から経緯を移設)— 判定軸は手順の長さではなく「サブエージェントが自分の情報源から決められるか」で、注入対象は役 literal(#1972)・ゲート状態の判断(trigger モードの 2 項目、#570 / #1179 / #1708)・ツール権限の境界(再帰 spawn 禁止 #1528、worktree 安全な退避 #1803 / PR #1870、同 PR brake 1 round 2 で「手順ではないか」を却下)・親側にしか無い状態(memory #1179、言語の解決値)の 4 種。body 言語を trigger リストに置かない理由(#1709)と、欄ごとの言語契約の起点(#1561 / PR #1622)も保持。implementation-always-delegated に depends on
rule-effect-measurement-conditions-rest-on-observed-failures skills/evolution-rule-effect-measurement/SKILL.md の各条件が何を根拠に置かれているかを一か所に集めた判断記録(#2088 で本文から移設、#1604 の手順)— どの条件も観測された失敗か実測値の上に置かれている。非対称なコスト(削除は無いことの証明を要する)と両向きの実測(#1849 の A-2 / Q3)、空の木を相手にした入場試験がほぼ全部を通すこと、CI green と brake 1 の間に置く理由と加算側 PR を測らない理由(#1869)、差し替え型の削りを拾うバイトの腕と言語非依存の根拠(#1934 の #1925 実測、フックスクリプトの非 ASCII 1,371 行)、段1の貼り付け既定、一文の事前確定と行動照合の形(#1853)、blind 1 周と設問文の置き場(#2014、PR #2012 で三重に焼けた probe)、段1 literal の遵守 3/3 と流入経路 4 つの実測、穴の報告の自制 3/3、帯を腕内反復から読む理由(EDIT_BUDGET / assert_single_contrast、#1924)と帯 0 の出どころ、腕のモデルによる反転(haiku / Opus)、別プロセスである理由と不採用にした subagent 構成、窓の印・--out 必須・exit 4・scope 必須の由来、コストの床(95,069 tokens、1 周 30 起動)、自己適用の実績と外側の位置の観測。条件の本文は skill 側が canonical。agentic-search-distilled-body-measured-equivalent / measurement-caught-what-read-based-removal-test-missed / brake1-detection-width-window-closed に relates to、judgment-record-pointer-requirement-dropped に depends on
parallel-agent-eval-distilled-to-token-guide skills/evolution-parallel-agent-eval/SKILL.md の本体を、振る舞いを変えない蒸留で Agent Skills 標準の推奨(本体 5,000 トークン未満)へ近づけた 3 周目の実測(#1601 / PR #2098、2026-09-26)。本体は 46,205 → 21,012 B(−55%)。旧トークナイザ(claude-haiku-4-5 実測)で約 11,170 → 約 5,340 トークン、新トークナイザ(claude-sonnet-5)では約 15,500 → 約 7,400。推奨まで約 7% 足りない差は、受け入れる tradeoff として閉じた(Master の go、2026-09-26)。退避策の「brake 1 とそれ以外に分ける」は採らなかった。brake 1 以外でしか使われない文は約 700 B(約 180 トークン)しかなく、差を埋めずに skill が 1 本増えるだけだからである。2 周目の残余の節は「ステップ番号の固定で Procedure は薄くしか削れない」と見立てていたが、番号を固定したまま Procedure は約 17 → 7 KB に縮んだ。縮んだ分の主体は節をまたいだ重複(Procedure と Constraint の二重記述、spawn の種類の分け方の三重記述、description と同じ内容の Trigger 箇条書き、scripts/window_marker.py の必須引数と重なる説明)だった。本文から剥いだ理由(N / M / P がそれぞれ買うもの、Boundary 節の関係の説明、probe 型の effort 引き上げを強制するものが無いこと、など)はこの entry が保持する。逐語 literal 15 行はバイト単位で同一。judgment-record-pointer-requirement-dropped に depends on、parallel-agent-eval-body-carries-behavior-only / parallel-agent-eval-residual-is-restatement(1・2 周目)/ parallel-subagent-eval-three-axis-decomposition / brake1-bounded-convergence-loop-on-pr-comments に relates to
brake1-round-cap-removed-recurrence-escalates brake 1 の往復上限(3 往復)を撤廃し、終わりを「指摘ゼロのラウンドで出口」と「同じ指摘の再発で人間へ」の 2 つで担保する判断(#2101、Master 決定 2026-09-26)— 再発 = 以前のラウンドで受け入れて修正した指摘、または却下した指摘と実質同じ指摘が再び上がること。判定者はスケジューラである親で、ラウンドの境目でそのラウンドの所見を以前の裁定と突き合わせて読む(読むのはこの判定のためだけ)。却下済みの再提起も数えるのは、評価者への「出し直さない」指示が構造で担保されていないため。同一ラウンドの再実行上限(→ 人間)は別軸で残る。brake1-bounded-convergence-loop-on-pr-comments の上限部分を supersedes。受容した代償 = 新しい指摘が出続ける限りループは終わらない
evolution-task-rule-bodies-carry-behavior-only Body States Behavior を rules/evolution/*.md と rules/task/task.md の常時ロード本文へ適用した判断(#2109 / PR #2112、2026-09-29)— 本文は振る舞いだけを持ち、剥いだ理由は既存 entry(合流先の表)と本 entry が保持する。7 ファイル合計 68.4KB → 54.9KB
operations-adapter-bodies-carry-behavior-only rules/operations/*.md と adapter/claude/CLAUDE.md / hooks-settings.md / adapter/codex/AGENTS.md / hooks-config.md の本文から理由・経緯・重複を剥ぎ、振る舞いだけを残した判断(#2110 / PR #2111)。剥いだ理由(semi_auto の設計意図と Defense-in-depth の二層、title / body 言語の軸の違いと LI_PLUS_REPO 自身での carve-out、Post-L1 観測の起動アンカーを operations skill に置かない理由、webhook の処理半分を hook が毎モード出す理由 #1798、所有判定 step 2 の残存制限、compare-and-overwrite の経緯、SessionStart 5 matcher と v2.1.214、#1502 の実機検証と compact 再注入)を保持する。既存 entry が根拠として逐語で引く行は本文に残した。source-body-behavior-only-reasoning-relocates / judgment-record-pointer-requirement-dropped に depends on、evolution-task-rule-bodies-carry-behavior-only に relates to
model-rule-bodies-carry-behavior-only Body States Behavior を rules/model/*.md(L1、常時ロード)の本文へ適用した判断(#2114 / PR #2115)— 本文は振る舞いだけを持ち、剥いだ理由(Name prefix scope の接頭辞の存在理由と carve-out の理由、対話の質と Always Character Platform の依存関係、Drift chain stops before it starts.)を保持する。既存 entry・docs が保持する理由は合流先の表へ。wiki が引用する行と他ファイルが参照する行は本文に残した。14 ファイル合計 25,019 B → 24,199 B。source-body-behavior-only-reasoning-relocates / judgment-record-pointer-requirement-dropped に depends on、evolution-task-rule-bodies-carry-behavior-only / operations-adapter-bodies-carry-behavior-only に relates to
main-agent-procedures-carry-behavior-only Body States Behavior を rules/operations/main-agent-procedures.md(常時ロード)へ、文の役割(メインが運用の場面で何をするかを決めるか)で当てた判断(#2117)— 本文はメインの運用場面で行いを決める文だけを持つ。Li+ source の編集者だけが使う判定基準と維持ルールは編集の瞬間に読まれる skills/operations-on-actor-placement/SKILL.md へ、## Position と設定前提は frontmatter・adapter・docs へ移した。実測が差し戻した型(既定の傾きに逆らう側の文)と #1800 が残した Canonical. 行は残した。33,592 B → 30,476 B。source-body-behavior-only-reasoning-relocates / measurement-caught-what-read-based-removal-test-missed に depends on、operations-adapter-bodies-carry-behavior-only / li-plus-always-on-footprint-load-bearing に relates to
initiator-autonomy-rule-carries-behavior-only Body States Behavior を rules/evolution/initiator-autonomy.md(常時ロード)へ 2 周目として当てた判断(#2123 / PR #2125)— 本文は brake 1 の発火位置・裁定者・チャネル、self-evolution PR 定義、Scope、Recovery axis と保守規則だけを持つ。再掲・説明は既存の面(合流先の表)へ、既存の面が持たない理由(上限の無い loop で内側の主体が skills/model-loop-safety を保持しない理由)は本 entry が持つ。tests/** の散文規則は振る舞いのまま、書く瞬間に読まれる skills/operations-on-docs-ownership/SKILL.md へ移した。10,758 B → 7,665 B
operations-rule-carries-behavior-only Body States Behavior を rules/operations/operations.md(常時ロード)へ 2 周目として当てた判断(#2127 / PR #2129)— 本文は Operations Rules、Autonomous Run Stop Condition、Post-L1-Merge Runtime Observation の起点・観測セット・禁止、Operations Label の Rules / Responsibilities だけを持つ。レイヤー位置とトリガー索引は frontmatter と docs/4.-Operations.md の表へ、promotion marker の写しは rules/task/task.md へ任せ、同期相手を失って空になった ### Sync は移さずに外した。Autonomous Run Stop Condition 冒頭の一般則は brake2-removal-l1-gate-unified-on-brake1 が L4 の担い手として置いた文なので残した。11,100 B → 9,134 B
memory-entry-format-rule-carries-behavior-only Body States Behavior を rules/evolution/memory-entry-format.md(常時ロード)へ 2 周目として当て、特定の場面でだけ使う手順を常時ロード面から外した判断(#2131 / PR #2133)— 本文は Scope、Escalation paths、Trigger point、Entry Format、Artifact deletion calibration、Announce vs execute、Consolidate Trigger、Language だけを持つ。self-evolution observation エントリの書式・作成基準・判定の lifecycle は新設の skills/evolution-observation-entry/SKILL.md へ移し、Merge Execution、Post-L1-Merge Runtime Observation、3 つの cold-start hook の出力からの名指しをその skill へ向け直した。発火は skill の自動起動に依存しない。cold-start-synthesis.md の節名参照のため、同名節は 1 行の転送点として残した。Consolidate Trigger は発火を surface する面が無いので残した。13,721 B → 6,134 B
execution-mode-rule-carries-behavior-only Body States Behavior を rules/operations/execution-mode.md(常時ロード)へ当てた判断(#2134)— 本文はモードの読み出し先と既定値、未設定時の問い、モードマトリクス、trigger mode: の着手前の行い、semi_auto mode: の Per-PR exception、human judgment gate だけを持つ。各モード節がマトリクスを言い直していた文を外し(auto mode: 節は空になった)、Common to all modes: の 3 行は rules/task/task.md とマトリクス・human judgment gate に任せた。Per-PR exception の理由句(human observability / safer-side fallback)は本 entry が持つ。L1 の patch に対する「観測閾値とランタイム観測はマージゲートではない」は、既定の傾きに逆らう行いであり、人間起点の L1 PR では他に覆う面が無いので残した。4,529 B → 3,471 B
promotion-judgment-rule-carries-behavior-only Body States Behavior を rules/evolution/promotion-judgment.md(常時ロード)へ 2 周目として当てた判断(#2130 / PR #2132)— 本文は Trigger、Cluster、Tally、Threshold Rules、Exception、Issue Creation Metadata と「ここで起票された issue は L1 更新を認めない」の 1 行だけを持つ。## Position は frontmatter と docs の表へ、L1 更新ゲーティング・永続化ティアリングとの関係の説明と、ロックを足さない理由(#2018)は docs/2.-Evolution.md の Promotion Judgment 節へ移し、他面の再掲(self-eval は自ら起票しない/毎 session の再 surface/marker の軸)は正本に任せて外した。アダプタ別 tally の禁止に付く正当化の封じ込めと、disposition 行が 3 出口すべてに及ぶ旨の文、衝突の検出は人手である旨(brake 1 round 1 F1 で戻した)は残した。7,315 B → 5,871 B
task-rule-carries-behavior-only Body States Behavior を rules/task/task.md(常時ロード)へ 2 周目として当てた判断(#2136)— 本文は Task Issue Rules と Task Label Definitions の行いだけを持つ。## Task Layer 節は frontmatter と docs/3.-Task.md に任せ、issue 番号の無い commit / PR の禁止は rules/operations/operations.md、スコープ境界は rules/operations/main-agent-procedures.md Sub-issue rules の写しとして外した(docs/L.-Hop-Count-Instrument.md S4 のアンカーを差し替えた)。Current source of truth と State-machine subset 内の言い直しを外し、ラベルの目的と close 後の残存が違反でない理由は本 entry が持つ。ラベルの語彙と意味は変えていない。6,089 B → 4,499 B
cold-start-rule-carries-behavior-only 常時ロードされる rules/evolution/cold-start-synthesis.md から、フックの実装仕様を外して docs/2.-Evolution.md Cold-start Synthesis 節「フックの出力契約」へ移した判断(#2118 / PR #2119)— Hook Emission Contract 節は全体を移し、4 つの Surface 節はエージェントが surface を受け取ったときの振る舞い(due / overdue の条件、observation であって auto-action でないこと、actor と firing moment、lifecycle を足さないこと、人に条件を伝えるだけで修理しないこと、Li+update.md 手順 2a でも agent が使う refspec 述語の読み方)だけを残した。10,822 B → 5,671 B(−5,151 B、−47.6%)。フックが anchor として出す preamble は、Operational criterion の no-new-material marker に出力の実際の文言(No new orientation material since last session)を添えた 1 か所だけを変えた(移した節にあった marker の定義を常駐面に残すため)。tests/test_clone_refspec_branch_check.py が Clone Branch Fetch Surface 内の state-driven / verdict_state / expires を固定しているため、その節は見出しごと本文に残した。source-body-behavior-only-reasoning-relocates / judgment-record-pointer-requirement-dropped に depends on、evolution-task-rule-bodies-carry-behavior-only / cold-start-state-partitioned-by-agent-key に relates to
main-agent-procedures-moment-scoped-procedures-move-to-skills rules/operations/main-agent-procedures.md(常時ロード)から、場面に限られる手順を、その場面で常時ロード面の名指しが届くメインの読める skill へ移した判断(#2138)— Sub-issue rules の手順本体(分類・API・並行分析・confirm の詳細・事後復旧)を新設の skills/task-sub-issue/SKILL.md へ、Review approval check を skills/task-pr-review-judgment/SKILL.md へ移した。同時タスクの親子構造と scope-exceed confirm の発火条件、Human confirmation required、Release completion report discipline、Notifications API、Discussions intake、webhook 取込は残した。30,446 B → 27,054 B。li-plus-always-on-footprint-load-bearing / memory-entry-format-rule-carries-behavior-only に depends on、main-agent-procedures-carry-behavior-only / always-on-duplication-removal-direction に relates to
evolution-rule-carries-behavior-only Body States Behavior を rules/evolution/evolution.md(常時ロード)へ 2 周目として当てた判断(#2140)— 本文はループの正本への 1 行の転送点(Evolution Layer)、L1 のランタイム不変条件を再定義しない・蒸留したパターンは issue で提案し直接編集しない・Li+ ソース更新は標準のパイプラインを通り運用ルールを迂回しない(Evolution Axis Separation)、cold-start での昇格候補の surface 契約(Pattern Detection Surfacing At Cold-start)だけを持つ。レイヤー位置・Foregrounds・一次軸と現在の状態は frontmatter と docs/2.-Evolution.md Purpose Declaration 節へ、読み手 / 書き手対の説明は skills/evolution-judgment-learning / skills/evolution-decision-structure-write と Decision_Structure_Write_Autonomy に任せて外した。tests/test_on_session_start_observation_surface.py が逐語で引く「しきい値と検出ロジックは adapter が持つ」は残した。見出しは変えていない。3,943 B → 1,752 B。source-body-behavior-only-reasoning-relocates / judgment-record-pointer-requirement-dropped に depends on、evolution-task-rule-bodies-carry-behavior-only / promotion-judgment-rule-carries-behavior-only に relates to
operations-rule-moment-scoped-sections-move-to-skills rules/operations/operations.md(常時ロード)から、場面に限られる節を、その場面で常時ロード面の名指しが届く skill へ移した判断(#2141)— Post-L1-Merge Runtime Observation の手順本体(起点・観測セット・繰り越し・観測軸の分離)を既存の skills/evolution-observation-entry/SKILL.md へ移し、常駐面には対象と呼び出しアンカー(docs/L.-Hop-Count-Instrument.md S11、ツール跳躍は据え置き)と skill の名指しを残した。リリースの state フラグと body の 4 行は operations-on-release-state / operations-on-release が既に持つ写しとして外し、空 body の禁止だけを skill に足した。リリース術語の解釈の段と削除確認の列挙、Autonomous Run Stop Condition、Wiki 同期の行は残した。9,076 B → 7,337 B。main-agent-procedures-moment-scoped-procedures-move-to-skills / li-plus-always-on-footprint-load-bearing / operations-rule-carries-behavior-only に depends on、memory-entry-format-rule-carries-behavior-only / always-on-duplication-removal-direction に relates to
initiator-autonomy-moment-scoped-sections-move-to-skill rules/evolution/initiator-autonomy.md(常時ロード)から、使う場面が brake 1 の判定と往復に限られる記述を、常時ロード面の名指しが届く skills/evolution-parallel-agent-eval/SKILL.md へ移した判断(#2146)— Governed surface(条件 2)の除外面 2 項目と Scope との読み替え禁止の一文を skill の Governed surface exclusions へ、Channel のうち往復のあいだの親の分担と出口での一読を Constraint の Findings are posted to the PR by the evaluator へ移した。条件 2 の基準・発火側の列挙・既定(どちらにも置かれない面は発火側)は、想起が落ちても brake 1 を余計にかける側へ倒れるよう常駐に残した。Position、Adjudication actor、brake 1 の宣言、往復上限なし、Spawn depth、Scope、Recovery axis、Existing maintenance rules still apply も残した。docs/L.-Hop-Count-Instrument.md S1 のツール跳躍は据え置き。7,665 B → 6,492 B。main-agent-procedures-moment-scoped-procedures-move-to-skills / li-plus-always-on-footprint-load-bearing / initiator-autonomy-rule-carries-behavior-only に depends on、operations-rule-moment-scoped-sections-move-to-skills / brake1-firing-closed-by-criterion に relates to
claude-adapter-carries-behavior-only Body States Behavior を adapter/claude/CLAUDE.md(常時ロード)と対になる adapter/codex/AGENTS.md へ 2 周目として当てた判断(#2145)— 本文は起動時の手順、禁止と義務の行、Character_Instance の所在の 1 行、Responsibilities と Autonomy の各ブロックの行いだけを持つ。Adapter layer entrypoint: の位置づけ、Concept framing の position / initiator 軸、rules / skills / output-styles の読込の仕組み(Codex の hook 注入と 32 KiB 上限を含む)、unnecessary の根拠は docs/6.-Adapter.md エントリーポイント本文の範囲節と docs/G.-Sheepdog-Engineering.md へ移した。本文の中の重複(skill の自動起動、worktree の所有、Cold-start Synthesis、Character_Instance の配置、Main / Subagent axis separation、Serial delegation does not require worktrees. と commit serialize の軸の行、Skills need no manual re-read.、No adapter-side trigger table is maintained.、Delegation info addition、Autonomy block shape)と、常時ロード面の写し(operations skill の禁止が対の片割れであること、release の確認、brake 1 の宣言)は外し、brake は 1 行の転送点にした。skills/evolution-l1-update-gating/SKILL.md が引く modifier 軸の行、docs/L.-Hop-Count-Instrument.md S2 のアンカーと CHANGES_REQUESTED の行、skills/task-subagent-spawn/SKILL.md が名指す 2 つの並列の定義、Boundary clarification、Human gate retained for: は残した。## Optional Webhook Notification Flow と Codex spawn arguments は変えていない。CLAUDE.md 16,460 B → 11,013 B、AGENTS.md 19,163 B → 13,755 B。source-body-behavior-only-reasoning-relocates / judgment-record-pointer-requirement-dropped に depends on、operations-adapter-bodies-carry-behavior-only / evolution-rule-carries-behavior-only / li-plus-always-on-footprint-load-bearing に relates to
skill-description-tightening-cuts-non-narrowing-phrases 常時読み込まれる skill の description を 2 周目として詰めるときの線引き(#2149 / #2158)— 切るのは場面を狭めない句だけで、3 種に限る: 帰結の句(<場面> and <そこで必ず行うこと> の後半。句を除いた条件だけで瞬間と実行主体が定まり、その瞬間のすべてで行うことをソースの literal が定めている場合に限る)、言い直した対案(instead of ... / rather than ...。選ばれない側が一つしか無く、選ぶ側の語だけで場面が読める場合に限る)、条件の列が既に名指すものを繰り返す Provides(その語が指す本文の場面がすべて条件の列にある場合に限る)。残すのは、帰結の形をしていても実行主体(親)や位置(before brake 1)を運ぶ句、その場面が何の判断に立つかを名指して出来事から判断の局面へ絞る句(and the next round or the exit must be chosen / and whether to record it is being decided)、対案が複数ありうる中で一つを名指す句(in place of the branch)、場面を狭める修飾、条件の列に場面が無く照合の手掛かりだけを担う語(Provides の absorption tells のように、本文の場面の一部が条件の列に無いものを含む)、造語の中身を description の中で唯一具体化している除外の列(not in language, math, logic or pure internal judgment)、他の面がそのまま引いている条件。語形だけの圧縮はしない。利得 30 B 未満の skill は触らない。L1 以外の 31 本で 11,659 B → 11,298 B(7 本変更、場面数は 111 のまま)。L1 の model-* 12 本で 5,393 B → 5,363 B(1 本変更、場面数は 51 のまま)。skill-trigger-declaration-in-description に depends on、description-body-coverage-resolution-priority / li-plus-always-on-footprint-load-bearing に relates to
structural-beauty-and-trigger-gate-rules-carry-behavior-only Body States Behavior を rules/model/subtractive-structural-beauty.md と rules/model/trigger-check-gate.md(L1、常時ロード)へ 2 周目として当てた判断(#2152)— 外したのは本文内の言い直し(Configure default toward subtraction.、(B) の末尾の 1 文)、位置づけの句(One rule observed from three angles.、Compact reminders ...、ゲート冒頭の Application-moment gate.)、印象語(is structural noise、terse)、rule 本文の役割の自己記述、hook-driven-gate-trigger への名指しと残余の括弧書き、Source check の skill の節名の列挙。skills/evolution-self-eval/SKILL.md への名指しは Scope の行へ移し、rules/model/rule-policy.md への名指しはパスで書き直して、どちらも残した(PR #2153 brake 1 round 1 の所見を採用)。5 軸の名前・順序・本文、状況ルーティング、自己宣言 trigger の禁止、(A)(B)(C) の禁止と行い、6 つの面、Application notes の 4 項目、見出しと semantic tag は変えていない。理由でありながら本文に残した行(Beauty here is structural and observable ...、Load-bearing rule existence does not imply application-moment trigger.、a forgettable relief path is strictly dominated by the deterministic hook)は既存の判断記録が本文にあるものとして引いているためで、One tempo slower. と Goal = reduce cognitive load ... は行いを決める行として残した。3,585 B → 3,346 B、2,838 B → 2,274 B。source-body-behavior-only-reasoning-relocates / judgment-record-pointer-requirement-dropped / model-rule-bodies-carry-behavior-only に depends on、hook-driven-gate-trigger / subtractive-structural-beauty-framing / evolution-rule-carries-behavior-only に relates to
l1-five-rules-cut-inner-duplicates-keep-write-discipline 常時ロードされる L1 の 5 本(rules/model/character.md / liplus-coding-rule.md / language-definition.md / layer-definition.md / axis-separation.md)へ 2 周目を当てた判断(#2151)— 外したのは常時ロード面の内側の写し、位置づけの説明、残す根拠だった参照が消えている理由の文の 3 種。Character Recovery の位置づけと Lilayer Model の説明、Character Identity の写し、Application-moment sentence の測定の持ち越し(skills/evolution-rule-effect-measurement/SKILL.md Probe specification が持つ)と位置づけ、Source Language の Rationale(本 entry が持つ)、Out of Scope 節を外した。axis-separation.md の Layer relation は Cross-layer rule より広い条件と「同じプログラムの異なる面」を持つので残し(brake 1 round 1)、同ファイルは変更なし。Body States Behavior / Application-moment sentence / Source File Format は書いている最中に効く規律として常時ロードに残し、skill は新設も追記もしていない。language-definition.md も変更なし。12,068 B → 10,188 B。model-rule-bodies-carry-behavior-only / always-on-duplication-removal-direction / main-agent-procedures-moment-scoped-procedures-move-to-skills / source-body-behavior-only-reasoning-relocates に depends on、model-rule-bodies-carry-behavior-only の Source Language の Rationale を残す 1 項を supersede
absolute-name-prefix-scope-carries-behavior-only Body States Behavior を rules/model/absolute.md(L1、常時ロード)へ 2 周目として当てた判断(#2156)— 外したのは Name prefix scope 段落の中の言い直しと位置づけの句だけ: 判定基準の言い直し(The criterion is whether the surface carries speaker identity structurally;)、本ファイルの自己記述(not a fact this file states, so)、以前の状態との関係を語る This is not a relaxation of the anonymity prohibition: と , unchanged、regardless of this carve-out(直後の only the prefix is in scope と同じ)。This is not a relaxation ... は 1 周目(model-rule-bodies-carry-behavior-only)が読み方の指示として残した行であり、本判断はその 1 項だけを改める — 誤読を止める行いは同じ文のコロン以降(基準を満たさない面では接頭辞は必須かつ無条件)が持つ。判定基準、面の判定がワークスペースごとであること、製品名・面の名前を書かないこと、それ以外の面で接頭辞が無条件で必須であること、口調が全面で必須であること、Name prefix scope の見出し語(adapter 両 port が参照)は残した。人間と AI の関係条項(human-ai-tool-relation-clause と rules/model/liplus-coding-rule.md Purpose Declaration が引く)と This document is working state. ... No state is sacred.(docs/1.-Model.md の derive 一覧と関係条項の読み方が引く)は、理由とも読めるが引用されている行として残した。1,580 B → 1,389 B。model-rule-bodies-carry-behavior-only を部分的に supersede(上の 1 項のみ)、source-body-behavior-only-reasoning-relocates / judgment-record-pointer-requirement-dropped に depends on、human-ai-tool-relation-clause / structural-beauty-and-trigger-gate-rules-carry-behavior-only に relates to
subagent-spawn-cost-anchors-benchmark-basis サブエージェント起動の着地点の目安と、その数値の出典(#2162 / PR #2163、Master 判断 2026-10-03)— skills/task-subagent-spawn/SKILL.md の Selection criteria が上げ下げの方向しか持たず、実装役に毎回 Opus high が選ばれていた問いへの答え。先に強さを調整し、モデルはその次に替える。実装役は親と同じモデル(model 省略)で強さ low から始め、一度つまずいたら medium、high は起動時に理由を一行書けたときだけ。上げ直しが続く種類の仕事はその種類だけ medium 起点。brake 1 の評価役は Sonnet 級の low〜medium を目安にする。作業が PR に載る spawn は、選んだモデル・強さと「low で済んだか」を PR に一行残す。数値はスキル本文に書かない(Body States Behavior)——当初 issue の制約「出典と日付をスキルに書く」は brake 1 の第 1 周で却下し、issue 側を直した(Master 了承)。根拠の比較結果(断定ではない)= 公式ドキュメントの「モデルを替えるより強さの調整が良い手になることが多い」、Artificial Analysis の 1 タスクあたり点数と費用(2026-10-03 閲覧)、上げ直しの合計費用が最初から medium より高くつくこと、実装役の後ろに CI・評価役・親の自己レビューが控えること。再評価のきっかけ = Haiku 5.5 の公開時、または #1984 の観察で上げ直しが多いと分かったとき。brake1-evaluator-floor-lowered-to-one に relates to

wiki sync との所有境界

skills/operations-on-wiki-sync/SKILL.md の Post-release wiki sync は、docs/ → wiki の方向で同期する。所有は配置場所で決まり、docs/ 直下のすべての *.md が docs/ 所有である。判断構造 entry(wiki 専属の kebab-case <topic>.md ファイル群)と _Sidebar.md は同名の counterpart を docs/ に持たないため、Wiki 専属の明示リストとして sync の delete 対象から外れ、copy 対象からも外れる。例外は _Sidebar.md の先頭部(**判断構造** 行より上)で、source は docs/wiki/_Sidebar-head.md であり sync がそこから copy する。wiki sidebar の「判断構造」セクション(同行からファイル末尾まで)は Wiki オーサリングのままで、sync は書かない。

本 index は、その明示リストの source でもある。 sync は本ファイルが持つ wiki link target から entry の slug を抽出して Wiki 専属集合を組む。ゆえに docs/ にも本 index にも無い Wiki ページは unclassified となり、削除されずに人間へエスカレートされる。skills/evolution-decision-structure-write/SKILL.md は entry を Wiki へ先に push し、本 index の更新を後続の main repo PR に載せるため、その間の entry は unclassified として上がる。これは異常ではなく、削除ではなく確認へ倒す設計上の既定動作である。

docs/Decision-Structure.md 自身は docs/ 所有ファイルとして通常の sync flow に乗る(docs/ 側は cold-start hook の input、wiki 側は nav と運用仕様の表示)。index する entry がすべて Wiki 専属であることは、本ファイルの所有を変えない。

⚠️ **GitHub.com Fallback** ⚠️