spec(brake): distill parallel-agent-eval SKILL.md, 2nd body-states-behavior pass - #1927
Conversation
`skills/evolution-parallel-agent-eval/SKILL.md` へ `rules/model/liplus-coding-rule.md` Body States Behavior を 2 周目として適用し、42,621 → 38,596 B(−4,025、−9.4%)。 1 周目(#1845)が理由づけを剥いだ跡に残っていたのは主に再掲——同じ節の中で先の文が 既に固定した振る舞いを言い換えて二度置く形であり、一文ずつ見る読みでは落ちず、 節を通して読む位置でしか捕まらない。 実装前の検証で issue 本文より一段強い制約を置いた。外部からの節名参照は 6 ファイル 13 箇所あり、うち 3 箇所は `Procedure` のステップ番号そのものを引いている。CI は どちらも検証していない(`tests/test_skill_reference_resolution.py` はファイルパスの 解決のみを主張する)。したがって: - ステップ番号は不動(分割・統合・削除なし。削るのはステップ内部の文のみ) - 節名・小見出しは改名なし - 逐語 literal(引用ブロック 10 本)は byte 同一 - `Constraint` は節ごと保持(model floor / findings 投稿先の供給元) 剥いだ理由のうち既存の記録面が持たない分は判断記録 `parallel-agent-eval-residual-is-restatement`(wiki、索引行を同 PR で追加)が保持する。 抜いた跡へポインタは置かない(#1852 で要件撤廃済み)。`docs/2.-Evolution.md` の skill 本文バイト記録を 2 周分へ更新し、同時にその bullet に残っていた撤廃済みの ポインタ要件の一文を落とした。 節別: Report shape −20.6% / Constraint −12.1% / Axis statement form −10.7% / Procedure −9.2% / Trigger −2.9%。Non-scope / Boundary / Implementation Note は不変。 tests/ 全 237 件 pass。 #1923 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MCNUyyWUZjGWYaTH4NM4sk
|
Adjudicate each finding below by checking its literal against the source at the revision its Axis A — issue requirementFinding 1 Issue #1923 の本文(forming→ready の条件として明記):
diff 側(削除のみで移設なし)—
除去テスト(この文を消して読み手の conduct が変わるか)に当てると No——直前の文「every round spawns its evaluators fresh; an evaluator is never resumed across rounds」がすでに振る舞いを固定しており、この文は理由(why fresh spawn)である。理由なので Body States Behavior の既定に従えば判断記録への移設が要る。本 PR が新設した唯一の判断記録エントリ Finding 2 同じ issue 本文の同一段落(上記引用と同一)。 diff 側(削除のみで移設なし)—
除去テストに当てると No——直前の文がすでに「評価者は測定の scope だけを受け取り verdict は受け取らない」という振る舞いを固定しており、この一文はなぜそう分離するかの理由(隔離の効用の説明)である。Finding 1 と同じ理由で、この理由も新設エントリの (a)〜(e) にも既存エントリにも本ファイル内の他箇所にも見当たらず、移設されないまま削除されている。 Axis B — rule violationFinding 1(Axis A Finding 1 と同一行) 規則 literal —
診断: Finding 2(Axis A Finding 2 と同一行) 規則 literal は Finding 1 と同一( 診断: 上記2行を除き、diff が触れた行( Fixed axis — impression-literal detectionClean。対象は |
|
両 finding(Axis A / Axis B とも同一行なので実質 2 件)を、指摘どおり Finding 1(
|
|
Adjudicate each finding below by checking its literal against the source at the revision its Axis A — issue requirementClean。issue #1923 の本文(forming→ready の帰結を含む)と、head Axis B — rule violationClean。round 1 の Finding 1/2 が指摘した2箇所(base その上で、本 diff が新たに削除した理由づけ文(
3箇所とも 以上に加え、diff が触れた行全てを Fixed axis — impression-literal detectionClean。対象は |
smileygames
left a comment
There was a problem hiding this comment.
親セルフレビュー(brake 1 exit 後)
受入基準の照合
issue #1923 は「Body States Behavior の 2 周目適用で再掲を剥ぐ」ことを求め、制約として節名・小見出し・Procedure のステップ番号の不動と、削除ではなく移設(移設先を先に決めること)を課していた。
- 実測:
skills/evolution-parallel-agent-eval/SKILL.md42,621 → 38,596 B(−4,025、−9.4%)。round 2 の評価者が baseb838c451dと head6151bc3の双方をwc -cで独自に取り直し、issue 本文・PR 本文の主張と一致することを確認している。 - 節名・ステップ番号: 外部から名指しされている 6 ファイル 13 箇所はいずれも本 diff の変更対象に入っておらず、diff のハンク一覧からも改名・分割・統合が無いことが確認できる。
- 移設先: 本 PR が新設した判断記録エントリ
parallel-agent-eval-residual-is-restatement(docs/Decision-Structure.mdの追加行)。
却下 2 件の検分(出口での親の読み)
round 1 は Axis A / Axis B に所見 1 件ずつ(同一の 2 行を別角度から指すもの)を返し、著者は両方を却下した。却下は loop の内側では最終であり、検分はこの位置に置かれている。**両方とも妥当と判断する。**評価者の診断(除去テストで 2 文とも reasoning と判定)は正しく、外れていたのは「この推論はどこにも保存されていない」という前提のほうだった。親が実物に当てて確認した:
- Finding 1(base
SKILL.md:84、fresh spawn が暫定である旨と測定先 #1848)— wiki エントリbrake1-bounded-convergence-loop-on-pr-commentsの 17 行目が「各ラウンドの評価者は毎回新規に spawn し、resume しない…ただしどちらが多く検出するかは未測定であり、この選択は暫定である(測定先 = #1848)」として保持している。同エントリ 53 行目・59 行目にも却下案の記録と #1848 への導線がある。docs/2.-Evolution.mdにも同内容が現存。 - Finding 2(base
SKILL.md:219、二つの計器の隔離理由)—docs/2.-Evolution.mdが「器具を二つ持つ意味は、片方が先に喋った時点で失われる——『この面は測って差が無かった』を先に読んだ評価者は、そこには何も無いと告げられており、落ちるのは自力で上げたはずの所見である」として保持している。base と head で byte 一致であり、本 PR は触れていない。
いずれも移設は本 PR より前に完了しており、SKILL.md 側に残っていたのは再掲である。rules/model/liplus-coding-rule.md Body States Behavior の Destination: relocate, do not delete は移設済みの再掲の削除を禁じない。却下を覆す理由は無い。
ラウンド記録
- N = 1(M = 全 3 軸 / P = 1、既定パターン)、評価者は各ラウンドで新規 spawn
- 往復 = 2(上限 3 に未達)。round 1 = 所見 2 件 → 著者が両方却下・コミット無し。round 2 = 却下確定の拘束を掛けて新規 spawn、三軸とも clean で step 8 の exit 条件成立
- 採用 0 件 / 却下 2 件(いずれも上記のとおり妥当)/ 追加コミット無し。baseline SHA は 2 ラウンドを通じて
6151bc3で不動 - step 2 の運用コピーは適用していない。対象が
skills/**であり本体は subagent の常時ロード面へ注入されない(description のみ)ため、judge 型の評価者には適用不要。評価者は名指しした SHA での直接 Read で対象を読んでいる。step 5 の復旧も同じ理由で非該当
リリース種別と merge 判断
patch。Li+ source の内部蒸留であり、user/system observable な挙動変化を持たない(rules/operations/release-version-rule.md:observable でないものは構造規模によらず patch)。semi_auto の patch は人間ゲート無しで AI 直接 merge。
merge して差し支えないと判断する。
🤖 Generated with Claude Code
Closes #1923
変更内容
skills/evolution-parallel-agent-eval/SKILL.mdへrules/model/liplus-coding-rule.mdBody States Behavior を 2 周目として適用し、42,621 → 38,596 B(−4,025、−9.4%)。1 周目(#1845)が理由づけを剥いだ跡に残っていたのは主に再掲——同じ節の中で先の文が既に固定した振る舞いを言い換えて二度置く形であり、一文ずつ見る読みでは落ちず、節を通して読む位置でしか捕まらない。実装前の検証で issue 本文より一段強い制約を確認した。外部からの節名参照は 6 ファイル 13 箇所あり、うち 3 箇所は
Procedureのステップ番号そのものを引いている。CI はどちらも検証していない(tests/test_skill_reference_resolution.pyはファイルパスの解決のみを主張する)。したがって:Constraintは節ごと保持(model floor / findings 投稿先の供給元)節別の削減率: Report shape −20.6% / Constraint −12.1% / Axis statement form −10.7% / Procedure −9.2% / Trigger −2.9%。Non-scope / Boundary / Implementation Note は不変。
docs/2.-Evolution.mdの skill 本文バイト記録を 2 周分へ更新し、docs/Decision-Structure.mdへ判断記録エントリparallel-agent-eval-residual-is-restatementの索引行を追加。あえて手を付けなかったもの
## Procedureのステップ番号・節名・小見出しの改名や再構成(外部 13 箇所の参照が壊れるため)Constraint節の削除(task-subagent-prompt/task-subagent-spawnへの供給元のため保持)Body States Behaviorの適用を同一ファイルへ 2 回目かけただけであり、新しい設計判断は含まない)リリース種別
patch
根拠:
rules/operations/release-version-rule.mdの判定軸は「変更規模 + user/system observable 性」。本変更は Li+ source(skill 本文)の内部蒸留であり、governance structure change ではあるが user/system から観測可能な挙動変化を主張していない(本文は「振る舞いは同一のはず」という設計適用であり、外部 probe による等価性測定は行っていない)。「internal rule / governance structure change with no user/system observable impact」に該当するため patch と判断した。