parallel agent eval residual is restatement - Liplus-Project/liplus-language GitHub Wiki
parallel-agent-eval の 1 周目の跡に残っていたのは理由づけではなく再掲である
Question
skills/evolution-parallel-agent-eval/SKILL.md は rules/ + skills/ を通じて単体最大のファイルであり(42,621 B / 271 行、1 行あたり 157 B)、brake 1 が全自己進化 PR で必須である以上、自己進化 PR ごとに毎回読まれる。この 1 本には 2026-09-01 に rules/model/liplus-coding-rule.md Body States Behavior が既に一度当たっている(#1845、49,217 → 42,089 B)。一度剥いだ本文へ同じ規則をもう一度当てて、まだ剥げるものがあるか。あるとすれば、それは何か。
Current resolution
42,621 → 38,596 B(−4,025、−9.4%)。剥げた。ただし剥げたものの主体は理由づけではなく再掲である。
再掲 = 同じ節の中で、先の文が既に固定した振る舞いを、言い換えてもう一度置く形。1 周目が理由づけを剥いだ跡で、残った振る舞い文どうしが近接し、重なりが露出した。
判別線そのものは Body States Behavior のまま使える(この文で読み手の conduct が変わるか)。変わるのは適用の位置である——理由づけは文単体を読めば No が出るが、再掲は2 度目の出現でだけ No になる。だから一文ずつ独立に見る読みでは落ちず、節を通して読む位置でしか捕まらない。1 周目が理由づけを取り切っていて再掲を残したのは、その位置の差である。
節別の推移:
| 節 | 前 | 後 | 差 |
|---|---|---|---|
| Procedure | 13,569 | 12,322 | −9.2% |
| Axis statement form | 7,652 | 6,835 | −10.7% |
| Constraint | 6,042 | 5,311 | −12.1% |
| Report shape | 5,553 | 4,409 | −20.6% |
| Trigger | 2,275 | 2,209 | −2.9% |
| Design Dimensions | 2,202 | 2,182 | −0.9% |
| Non-scope / Boundary / Implementation Note | 4,094 | 4,094 | 0 |
前提として置いた制約(実装前の検証で issue 本文より一段強くなった)
外部からこのファイルの節を名指す参照は 6 ファイル 13 箇所(initiator-autonomy / impression-literal-detection / operations-on-pr-review / task-subagent-prompt / task-subagent-spawn / task-subagent-state-labels)。うち 3 箇所は節名ではなく Procedure のステップ番号そのものを引いている(step 3 / step 7 / steps 4 and 6 to 8)。
CI はどちらも検証していない。tests/test_skill_reference_resolution.py の正規表現は skills/([a-z0-9-]+)/SKILL\.md であり、docstring が It asserts resolution only. と述べるとおりファイルパスの解決のみを主張する。節名は #1792 が未着手で open、ステップ番号は提案も存在しない。issue 本文の「節名の変更は CI の cross-ref 検証と実参照の両方を確認してから」は存在しない検証を前提にしていた——確認は実装者の grep に全面的に乗る。
そこから置いた制約:
- **ステップ番号を動かさない。**削るのはステップ内部の文であって、ステップの分割・統合・削除は行わない。
- 節名・小見出しを改名しない(
Procedure/Constraint/Report shape/Trigger/Axis selection/Axis statement form/Design Dimensions/Round trips/Round boundary)。 - **逐語 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 のいずれも持たない分だけをここが持つ。1 周目の合流先(brake1-findings-routed-through-parent の再 spawn / 却下最終 / 収束、brake-evaluator-baseline-integrity のツール権限、parallel-agent-eval-body-carries-behavior-only の Axis statement form 全般)は不変で、そちらへ寄せた分はここに写さない。
- **
Axis statement formQuestionの残余。**操作を名乗らせても、述語の読みを評価者が黙って補う形は残る——これは信号を一切出さないため事前には捕まらず、post-merge 観測軸で受容する。本文からは残余記述を落とし、要求(操作を名乗れ/名乗らない疑問文は未記入)だけを残した。 Report shape1 行側の残余。誰も開かないポインタと、判定に合わせて後から選ばれたポインタの 2 形。後者は「判定より先に選ぶ」という振る舞いへ書き換えて本文に残し、受容の記述だけをここへ移した。前者は受容のまま。- **評価者コメントが構成上 2 言語混在になること。**Li+ source は英語であり(
rules/model/liplus-coding-rule.mdSource Language)、コメントは解決語で書かれるため、引用が源の言語のまま地の文の解決語の中に入る。混在は不可避であって欠陥ではない。本文には継ぎ目の規則(逐語引用とpath:lineと preamble は解決しない)だけを残した。 - **N>1 の重複を統合しない理由。**統合は選択であり、この loop はその選択を行う主体を持たない(親は往復の内容に触れない)。本文には「統合しない・著者が各々をリテラルで読む」だけを残した。
- **clean 軸も載せる理由。**著者は step 6 で全軸を読むため、所見だけのコメントは分母を隠す。本文には「clean 軸も載せる」だけを残した。
Scopeの第二次元が絶対量ではないこと。「不在の主張は読んだ幅までしか広くない」は、その直後の具体(英語パターン掃引が日本語側へ届かない)が同じことを述べるための導入であり、再掲である。具体のほうが記入時に効くため、導入を落として具体を残した。
残余
**削減の主戦場が Procedure(全体の 32%)でありながら、そこはステップ番号の固定により文単位の書き換えしか許されない。**結果、Procedure の削減率(−9.2%)は Report shape(−20.6%)に比して薄い。ステップ内部の再掲を取り切ったあとで Procedure をさらに薄くする道は、ステップの再編を伴うため、外部 3 箇所の同一 PR 更新とセットでしか開かない。次にこのファイルを触るときの判断材料。
もう一つ:再掲は 2 周目で初めて見えた。1 周目の跡が近接したから見えたのであり、3 周目に何が見えるかは未知である。「2 周で取り切った」とは言えない——言えるのは「この 2 種(理由づけ・再掲)については取った」までである。
制約
- 節名・小見出し・ステップ番号は不変(外部 13 箇所、CI の網なし)
- 逐語 literal は byte 同一
- 抜いた跡へ
Judgment record:ポインタは置かない(要件は #1852 で撤廃済み) docs/2.-Evolution.mdは記録面でありBody States Behaviorの scope 外。理由を持ち続けてよい
Edges
- depends on
parallel-agent-eval-body-carries-behavior-only— 同一ファイルへの 1 周目。本 entry はその跡に何が残っていたかの測定であり、あちらの合流表は不変 - depends on
judgment-record-pointer-requirement-dropped— 抜いた跡へポインタを置かない根拠 - relates to
brake1-findings-routed-through-parent— 本文から剥いだ再 spawn / 却下最終 / 収束の理由の保持先(docs/2.-Evolution.mdにも記録あり) - relates to
brake-evaluator-baseline-integrity— 本文から剥いだツール権限の理由の保持先 - conflicts with (現時点で対立 entry なし)
検出サイン(この判断が後で疑問視される場合)
- 同 skill 本文へ「なぜそうなっているか」を書き足そうとしている → 本 entry か 1 周目の合流先へ書く
Procedureのステップを分割・統合しようとしている → 外部 3 箇所がステップ番号を引いている。CI は検証しない。同一 PR で更新するか、やめる- 引用ブロックを言い換えようとしている → 逐語 literal であり、写す側が作文しないことが要件そのもの
- 「もう剥ぐものは無い」と述べようとしている → 2 周目で初めて再掲が見えた。取り切った証拠はない