You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
operations-on-sub-issue — body :41 の scope-exceed dialogue confirm は :43 で「At sub-issue creation OR mid-implementation ... fire a dialogue confirm before the commit」、:59 で「Post-implementation (PR review time) is too late and is rejected as a firing moment — the gate must fire pre-commit」と自分で宣言する。しかし description の 3 条件はすべて sub-issue の作成・分類・リンクの瞬間で、pre-commit の経路が無い。実装中に commit しようとするエージェントが開くのは operations-on-commit。rules/task/task.md:38(always-on)がこの skill をゲートの権威として名指ししているため、常時 context にある規則が、適用の瞬間に開けない skill を指している。
model-source-check — body 11 節のうち :73 External-capability spec-write order と :105 System-injected output litmus が Provides にも発火条件にも無い。後者の litmus(:107 「The injected value is the claim to verify, not the verification」)は on-session-start.sh が毎起動でマーカーを注入する以上セッション中の最高頻度ケース。
task-subagent-delegation — description の第3発火条件「bounded read-only investigation ... is about to be delegated」に対応する body 節が無い(body は Rules / Responsibilities / Autonomy / Adjacent firing moments、いずれも issue・branch・commit・PR を前提とする)。実際に読み取り専用監査の委譲に効く内容(再帰 spawn 禁止)は skills/task-subagent-prompt/SKILL.md:49 にあり、同じ発火条件が両方の description に書かれている。
operations-on-docs-ownership — body :33 は「編集前に、属する集合を grep して全メンバーを列挙せよ」と pre-edit 動作を規定するが、description の発火モーメントは「about to be committed」= post-edit のみ。pre-grep 側が到達不能で、post-grep 側しか残らない。
evolution-self-eval — description は「self-evaluation entry is about to be recorded」= 記録すると既に決めた後に発火する。body :32-34 の trigger は「Record when fact is observed」= 手続きを飛ばした瞬間・人間の訂正が入った瞬間であり、記録するかどうかを決める側。決める瞬間には何も routing しない。
B. Provides 句の不正確
evolution-parallel-agent-eval — description が既定として safer-side OR aggregation を名指しするが、body :55 の aggregation rule は「Choose based on the asymmetry of the judgment」と per-judgment 選択にしており、OR は :58 の delete/keep 二択に限定、adopt/reject は :59 で AND、中間は :60 で three-value。かつ Procedure step 6(:87)は three-value 分岐を実行する。brake 1 は adopt/reject 判断であり、description だけを読むと body が別物を割り当てている既定を持ち込む。伝播済み: skills/evolution-impression-literal-detection/SKILL.md:30 が「brake 1's default safer-side OR」を基準に自分の閾値を較正している(Record the asymmetric brake 1 aggregation threshold as a Decision Structure entry #1616 とは別軸)。
model-trigger-check-gate-actions — description 9 条件に対し body :24 の trigger moments は 10。未ミラー 2 件のうち :30「Before choosing Character / tone / closing」は、evolution-self-eval:68 が「Primary axis = Character drift」と置く当の瞬間。
C. description の形式逸脱
model-agentic-search — 44 本中唯一、description が Provides 句を持たず、末尾が行動規則の断片(「Internal knowledge is the comparison baseline only under the (a)/(b) triggers, never the answer source.」)で終わる。862 文字(最長)をすべて発火条件に費やしており、body の二段 retrieval プロトコルと 9/12 クエリ予算がルーティング面から不可視。発火条件自体は精密なので skill は開くが、複数が同時に一致した瞬間に比較できない。Split model-agentic-search by firing condition (L1, brake 2 required) #1599(発火条件による分割)とは別軸で、分割しても残る。
D. 発火条件の重複
task-pr-review-judgment ↔ operations-on-pr-review — CI green の瞬間に両方の description が一致し、どちらを開く資格があるか description から判別できない。判別軸(main か subagent か)は body 側(task-pr-review-judgment:13)にあり、しかもそれは主エージェントが読むなと言われている側の body。軸が description で表現可能なことは operations-on-pr-review の第2節が subagent を名指ししていることで証明されている。両 body は同一内容の深さも違う(前者は execution-mode.md へ委譲、後者は per-PR exception を inline)ため、どちらが開いたかで知識が変わる。
目的
skill の
descriptionは Li+ 唯一のルーティング信号である(アダプター側にトリガ表を持たない設計 —adapter/claude/CLAUDE.md、docs/K.-Source-File-Format.md)。body に節を足したときに description を元のスコープのまま置いた結果、その節が名指しする「まさにその瞬間」に誰もその skill を開けない箇所が溜まっている。scheduled evolution-full-run (2026-08-02) の read-only 監査で 44 skill を全文読解して検出。
確認済みの事実
共通形状はひとつ: body に固有の発火条件を散文で抱えた節が追加され、ルーティングする唯一の面である description は前のスコープのまま残された。
A. 発火条件の被覆漏れ(到達不能な節)
以下は載っている節の発火モーメントが description のどの節にも無く、実際には別の skill が開かれる。
operations-on-sub-issue— body:41の scope-exceed dialogue confirm は:43で「At sub-issue creation OR mid-implementation ... fire a dialogue confirm before the commit」、:59で「Post-implementation (PR review time) is too late and is rejected as a firing moment — the gate must fire pre-commit」と自分で宣言する。しかし description の 3 条件はすべて sub-issue の作成・分類・リンクの瞬間で、pre-commit の経路が無い。実装中に commit しようとするエージェントが開くのはoperations-on-commit。rules/task/task.md:38(always-on)がこの skill をゲートの権威として名指ししているため、常時 context にある規則が、適用の瞬間に開けない skill を指している。operations-on-issue-maturity— body:32の memo-mode rapid intake は:34で「human が『黙って』/『quick memo』と示した時」を自分の発火条件として持つ。だがこれは issue 作成の瞬間であり、routing 先はoperations-on-issue-format(description が「canonical convergence fields (purpose, premise, constraints, target files)」を約束)。その body:18-24に rapid path は無い。仕様がフィールド集合を省けと言っている瞬間に、フィールド集合を必須とする側だけが開かれる。operations-on-release— body:109-112の適用モーメント 3 つのうち 2 つ(cold-start synthesis での「Latest 遅れ / flip 保留」を unique insight として出すな / 人間の明示的な問い以外での release state 言及)が description の 4 条件のどれにも当たらない。セッション開始時に hook が release tag を surface して synthesis を組む瞬間、リリース作成でも branch 削除でも force push でも完了報告でもないためこの節は絶対に読まれない。この節が抑止するために書かれた当のドリフトが、routing 不能な瞬間に起きる。model-source-check— body 11 節のうち:73 External-capability spec-write orderと:105 System-injected output litmusが Provides にも発火条件にも無い。後者の litmus(:107「The injected value is the claim to verify, not the verification」)はon-session-start.shが毎起動でマーカーを注入する以上セッション中の最高頻度ケース。task-subagent-delegation— description の第3発火条件「bounded read-only investigation ... is about to be delegated」に対応する body 節が無い(body はRules/Responsibilities/Autonomy/Adjacent firing moments、いずれも issue・branch・commit・PR を前提とする)。実際に読み取り専用監査の委譲に効く内容(再帰 spawn 禁止)はskills/task-subagent-prompt/SKILL.md:49にあり、同じ発火条件が両方の description に書かれている。operations-on-docs-ownership— body:33は「編集前に、属する集合を grep して全メンバーを列挙せよ」と pre-edit 動作を規定するが、description の発火モーメントは「about to be committed」= post-edit のみ。pre-grep 側が到達不能で、post-grep 側しか残らない。evolution-self-eval— description は「self-evaluation entry is about to be recorded」= 記録すると既に決めた後に発火する。body:32-34の trigger は「Record when fact is observed」= 手続きを飛ばした瞬間・人間の訂正が入った瞬間であり、記録するかどうかを決める側。決める瞬間には何も routing しない。B. Provides 句の不正確
evolution-parallel-agent-eval— description が既定としてsafer-side OR aggregationを名指しするが、body:55の aggregation rule は「Choose based on the asymmetry of the judgment」と per-judgment 選択にしており、OR は:58の delete/keep 二択に限定、adopt/reject は:59で AND、中間は:60で three-value。かつ Procedure step 6(:87)は three-value 分岐を実行する。brake 1 は adopt/reject 判断であり、description だけを読むと body が別物を割り当てている既定を持ち込む。伝播済み:skills/evolution-impression-literal-detection/SKILL.md:30が「brake 1's default safer-side OR」を基準に自分の閾値を較正している(Record the asymmetric brake 1 aggregation threshold as a Decision Structure entry #1616 とは別軸)。evolution-loop— Provides が「the loop entry and exit contract」を約束するが、body 30 行に entry 条件も exit 条件も無い。逆に実在するExecution mode/Stage responsibilityが Provides に無い。実際の entry/exit 権限はrules/evolution/initiator-autonomy.mdとskills/evolution-full-run/SKILL.md:16にあり、この description はどちらも指していない。operations-on-merge/operations-on-pr-review— 両者の Provides が pre-merge の成果物で止まり、body の post-merge 義務(operations-on-merge:33の L1 変更後 5 分観測 /operations-on-pr-review:82-86の deferred item を同一セッションで実行)を名乗っていない。rules/operations/operations.md:120はこの skill を「merge の瞬間に確実に発火する invocation anchor」として名指ししている。merge と post-merge が別セッションになる経路(trigger モードで auto-merge が人間承認後に発火し、subagent のセッションは先に終わる —operations-on-pr-review:33-34が自分で記述)では、どの description も 5 分観測を名乗っていない。model-trigger-check-gate-actions— description 9 条件に対し body:24の trigger moments は 10。未ミラー 2 件のうち:30「Before choosing Character / tone / closing」は、evolution-self-eval:68が「Primary axis = Character drift」と置く当の瞬間。C. description の形式逸脱
model-agentic-search— 44 本中唯一、description が Provides 句を持たず、末尾が行動規則の断片(「Internal knowledge is the comparison baseline only under the (a)/(b) triggers, never the answer source.」)で終わる。862 文字(最長)をすべて発火条件に費やしており、body の二段 retrieval プロトコルと 9/12 クエリ予算がルーティング面から不可視。発火条件自体は精密なので skill は開くが、複数が同時に一致した瞬間に比較できない。Split model-agentic-search by firing condition (L1, brake 2 required) #1599(発火条件による分割)とは別軸で、分割しても残る。D. 発火条件の重複
task-pr-review-judgment↔operations-on-pr-review— CI green の瞬間に両方の description が一致し、どちらを開く資格があるか description から判別できない。判別軸(main か subagent か)は body 側(task-pr-review-judgment:13)にあり、しかもそれは主エージェントが読むなと言われている側の body。軸が description で表現可能なことはoperations-on-pr-reviewの第2節が subagent を名指ししていることで証明されている。両 body は同一内容の深さも違う(前者は execution-mode.md へ委譲、後者は per-PR exception を inline)ため、どちらが開いたかで知識が変わる。clean だった軸
name/description/layer)、nameはディレクトリ名と一致、layerは 6 値のいずれか、接頭辞→layer の対応(model-*→L1 等)に例外なし。description の 1024 文字上限超過ゼロmodel-accepted-tradeoff:45/trigger-check-gate-actions:65-66/ release↔release-state /evolution-full-run:18/parallel-agent-eval:11)。残る 1 件が上記 13Defines/Enforces/Handles/Applies/Retrievesへの動詞置換は一貫した許容変異。topic ラベルとして書かれた description はゼロ制約
skills/evolution-l1-update-gatingの long-horizon observation 閾値は AI 単独起動では hard requirement。上記のうちmodel-*prefix の skill(4 / 11 / 12)は L1 に該当するため、本 issue の実装対象から外すか、閾値が満たされるまで待つskills/evolution-impression-literal-detection:30の較正が既定に依存しているため、決めた側に合わせて両方を直す完了条件
関連
Observation: skill listing exceeds context budget; 9 discipline skills never dispatched in 52 startups #1542 = skill listing が context 予算を超過、9 本が 52 起動で一度も dispatch されていない観測。本 issue の「条件を足す」方向はこの観測と逆を向くため、両者を突き合わせて判断すること
Split model-agentic-search by firing condition (L1, brake 2 required) #1599 =
model-agentic-searchの分割(12 とは別軸)Record the asymmetric brake 1 aggregation threshold as a Decision Structure entry #1616 = brake 1 aggregation 閾値の判断記録(8 とは別軸)
decision-structure-write description declares 3 firing conditions while its body lists 5 #1611 =
evolution-decision-structure-writeの description 3 条件 vs body 5 節(同一クラスの既知 1 件)L1 skill descriptions cannot route to firing moments their bodies declare #1641 = 本 issue から切り出した L1 分(4 / 11 / 12)。L1 Update Gating の閾値待ちで
deferredPost-merge obligations have no invocation anchor in trigger mode #1642 = 項目 10 の調査中に検出した構造の穴(trigger モードで merge の瞬間にセッションが存在せず post-merge 義務が発火しない)。本 issue のスコープ外
決定(2026-08-03)
スコープ
model-*= L1)。L1 skill descriptions cannot route to firing moments their bodies declare #1641 へ分離済み解決方針の優先順
各項目に対し、上から順に適用可能な手段を採る。description への条件追加は最終手段。#1542 の観測(listing が context 予算を超過)と本 issue が逆を向かないための構造。
Provides 句の不正確(9 / 10)と重複条件の削除(5)は listing コストの減少側であり、この優先順の対象外。
項目別の確定事項
operations-on-issue-maturity:32-34の memo-mode rapid intake をoperations-on-issue-formatの body へ移す(方針 2)。移送先の description は既に issue 作成の瞬間で発火するため条件追加は不要task-subagent-delegationの description 第 3 条件を削除する。対応する body 節が無く、実体(再帰 spawn 禁止)はskills/task-subagent-prompt/SKILL.md:49にあり、同一の発火条件が既にそちらの description に載っているsafer-side OR既定は body の実行手順と両立しない。description からsafer-side OR aggregationを削り、非対称性で選ぶ旨に改める。あわせてskills/evolution-impression-literal-detection/SKILL.md:30のnarrower than brake 1's default safer-side ORは比較参照先を失うため、閾値を絶対値で述べる形に改める(brake 1 側 Procedure step 4 の fixed-axis override 経路が既にあるので、参照先はそちらへ向ける)operations-on-merge/operations-on-pr-reviewの Provides 句を body の post-merge 義務に一致させるところまで。trigger モードで merge の瞬間にセッションが存在しない経路は description の問題ではないため Post-merge obligations have no invocation anchor in trigger mode #1642 に分離した(LI_PLUS_REPO_EXE_MODE=semi_autoのため現行の self-evolution 経路では親が直接 merge し anchor は発火する)task-pr-review-judgmentの description に actor 軸(main agent)を書き足す。body 側の「operations skill を読むな」規定は触らない対象ファイル
skills/operations-on-sub-issue/SKILL.md(1)skills/operations-on-issue-maturity/SKILL.md+skills/operations-on-issue-format/SKILL.md(2、節の移送)skills/operations-on-release/SKILL.md(3。移送先候補 =rules/evolution/cold-start-synthesis.md)skills/task-subagent-delegation/SKILL.md(5)skills/operations-on-docs-ownership/SKILL.md(6)skills/evolution-self-eval/SKILL.md(7)skills/evolution-parallel-agent-eval/SKILL.md+skills/evolution-impression-literal-detection/SKILL.md(8、二者を同時に直す)skills/evolution-loop/SKILL.md(9)skills/operations-on-merge/SKILL.md+skills/operations-on-pr-review/SKILL.md(10)skills/task-pr-review-judgment/SKILL.md(13)完了条件(追加)