Skip to content

spec(skills): strip placement-derivation restatement from 7 operations-* skills - #1933

Merged
smileygames merged 1 commit into
mainfrom
1922-skill-derivation-strip
Sep 10, 2026
Merged

smileygames merged 1 commit into
mainfrom
1922-skill-derivation-strip

Conversation

@smileygames

Copy link
Copy Markdown
Member

Closes #1922

何をしたか

skills/operations-*/SKILL.md 7 ファイル / 9 段落が持っていた、rules/operations/main-agent-procedures.md ## The bar and its pair の実行主体確立基準(2条件)を自分の場合に当てはめ直した「なぜ正本をここに置かないか」の再導出を落とした。#1800(PR #1925)が main-agent-procedures.md 側の 15 節から同じ形を落としており、本 PR はその skill 側の残りを対象にした2本目。

before / after(build-2026-09-09.3 実測)

file before after delta
operations-foreground-webhook-intake 1,505 B 809 B -696 B
operations-handoff-continuity 1,339 B 896 B -443 B
operations-on-branch 1,913 B 1,425 B -488 B
operations-on-issue-format 1,461 B 926 B -535 B
operations-on-pr-review 3,154 B 2,710 B -444 B
operations-on-release 4,184 B 3,718 B -466 B
operations-on-sub-issue 2,133 B 1,737 B -396 B
合計 15,689 B 12,221 B -3,468 B

残したもの(適用の瞬間に使われる情報であり、導出ではない)

  • 各ファイルの「正本はどこにあり、何を保持するか」のポインタ列挙。1 バイトも削っていない。
  • operations-on-pr-review — 正本(main-agent-procedures.md PR review)が保持する内容の列挙(self-review mandate / review basis / self-review procedure / mode-specific human gate / follow-through)は文として残した。落としたのは「なぜこの節だけ skill 側に残るか」の論証のみ。
  • operations-on-release Human Confirmation Required 節 — 末尾の一文「確認はこの手続きに先行する」(実行順序の事実であり配置理由の導出ではない)は残した。

カーブアウト確認(9 段落すべて個別)

制約どおり、削除前に 9 段落すべてを個別に確認した。他所に無い統治条項・論証は 1 件も無く、9 件とも落とした。

  • operations-foreground-webhook-intake(2段落) —— うち「ファイルを削除しない理由」は起票時コメントで「落とせる候補」と留保されていた1件。## The bar and its pair 末尾が持つ byte-frozen アダプタ literal の段落(adapter/*/CLAUDE.md ## Optional Webhook Notification Flow が byte-frozen で、Li+update.md が legacy trailer をそこから導出するため drift すると migration が壊れる、というくだり)と literal で同旨だった。起票時コメントの判定どおり落とせた。もう1段落(「なぜ何も持たないか」)も、正本側の Foreground webhook notification intake 節の Actor = 行がすでに同じ理由(ユーザーターン境界がトリガーで pull surface が届かない)を保持している。
  • operations-handoff-continuity / operations-on-branch / operations-on-issue-format / operations-on-sub-issue(各1段落) —— いずれも Parent retains への当てはめ直し。対応する main-agent-procedures.md 側の節は spec(operations): placement derivation is restated in 15 sections of the always-on resident surface #1800 で同型の文をすでに落としており、skill 側だけがその論証の写しを残していた。
  • operations-on-pr-review(1段落) —— ## The bar and its pair の「One shape resolves the other way」節が、この段落と同じ論証(正本の実行主体がサブで親は運搬役のときはポインタでなく正本自体を skill に残す)をすでに skills/task-subagent-prompt/SKILL.md Resume-phase authority boundary を例示として名指して持っていた。二重。
  • operations-on-release(2段落) —— Human Confirmation Required 側・Release Completion Report Discipline 側とも「人間向け確認/報告であり subagent には対話面が無い」という当てはめ直しで、## The bar and its pair の「the procedure needs a surface no subagent has」の条項をそのまま適用しただけだった。

見出しと意味タグは 1 つも変えていない

git diff -U0 -- skills/ | grep -E '^[+-](#|<[a-z])'

は空。description frontmatter も対象外のため変更していない。

導出の行き先(削除ではなく移設)

rules/model/liplus-coding-rule.md Body States Behavior の「剥ぎ取りが先、記録は後」に従い、docs/4.-Operations.md### skills/operations-* 側の再導出を落とした(#1922) を追加した(#1800 の記録の直後、同じドキュメント)。

リリース種別

patchrules/operations/release-version-rule.md を読んだ判定基準どおり「structural change AND user/system observable -> minor」であり、observable でないものは構造規模によらず patch。本 PR は AI 内部の判断挙動(どのファイルを読み、何を正本として参照するか)にのみ影響し、外部プロセスの出力・成果物の形・利用者に見える動作はいずれも変わらない。governance/spec 面の構造変更ではあるが observable 側の条件を満たさない。

テスト

python -m pytest tests/test_skill_reference_resolution.py = 2 passed / 158 subtests passed
python -m pytest tests/ = 237 passed / 776 subtests passed(約 3:50)

未実施(コーディネータ側で実施)

merge、self-review の投稿、brake の実行は行っていない。

🤖 Generated with Claude Code

…s skills

`skills/operations-*/SKILL.md` の 7 ファイル / 9 段落が、`rules/operations/main-agent-procedures.md`
`## The bar and its pair` にある実行主体確立基準(2条件)を自分の場合に当てはめ直した
「なぜ正本をここに置かないか」の再導出を持っていた。#1800 (PR #1925) が `rules/` 側の 15 節から
同じ形を落としており、本コミットはその skill 側の残りを落とす。基準自体はポインタとして残し、
「正本がどこにあり何を保持するか」の列挙は変更していない。

9 段落を個別にカーブアウト確認した結果、他所に無い論証は無く全て落とした
(`operations-foreground-webhook-intake` の「ファイルを削除しない理由」を含む —
issue #1922 の起票時コメントで留保されていたが、`## The bar and its pair` 末尾の
byte-frozen アダプタ literal の段落と literal で同旨と確認済み)。見出し・意味タグ・
`description` frontmatter は変更していない。

Closes #1922

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@smileygames

Copy link
Copy Markdown
Member Author

Adjudicate each finding below by checking its literal against the source at the revision its path:line is given at, and adopt or drop it on that. No count enters that judgment, and no axis is exempt from it: the fixed impression-literal axis is adjudicated the same way, on the flagged phrase against the removal test its own spec fixes (skills/evolution-impression-literal-detection/SKILL.md), and it fixes no threshold.

Axis A — issue requirement

所見なし。読んだもの: issue #1922 本文(gh api repos/Liplus-Project/liplus-language/issues/1922 --jq .body)+コメント1件(id 5616552696、前提検証・再測表を含む)と、PR #1933 の全差分(docs/4.-Operations.md + skills/operations-*/SKILL.md 7 ファイル)を突き合わせた。

  • 対象ファイル数・段落数: issue コメントの再測表「7 ファイル / 9 段落」と、差分中の削除段落を実数え(operations-foreground-webhook-intake 2 / operations-handoff-continuity 1 / operations-on-branch 1 / operations-on-issue-format 1 / operations-on-pr-review 1 / operations-on-release 2 / operations-on-sub-issue 1 = 9)が一致。issue 本文が対象外とした6ファイル(on-ci / on-commit / on-docs-ownership / on-pr-creation / on-release-state / on-wiki-sync)はいずれも今回の差分に含まれない。
  • issue 本文「operations-on-branch / operations-on-sub-issue / operations-on-pr-review はポインタ以外の実体(repo-first execution surface / draft-PR early open / delegated-subagent stop condition)を持つ。これらは対象外」— 変更後の3ファイルを読み、この3節はいずれも無改変で残っていることを確認した(skills/operations-on-branch/SKILL.md:1-16<repo-first-execution-surface>skills/operations-on-sub-issue/SKILL.md:1-14<ci-visibility-single-parent-pr-with-draft-early-open>skills/operations-on-pr-review/SKILL.md:9-32Delegated-subagent stop condition)。
  • issue コメントが確定した保留判定「operations-foreground-webhook-intake の『ファイルを削除しない理由』は落とせる」を PR はそのとおり実行し(該当2段落削除)、issue 本文の制約「ポインタの解決先を壊さないこと」「見出し・意味タグを動かさない」も差分上で維持されている(各ファイルのポインタ文はバイト単位で残存、# 見出し・<tag> の追加削除なし)。
  • issue spec(operations): placement derivation is restated a second time on the operations-* skill surface #1922 の依存 #1800(PR spec(operations): strip placement derivation from 15 section heads #1925 として merge 済み)はすでに満たされている。

Axis B — rule violation

所見なし。照合した規則: rules/operations/main-agent-procedures.md:22-38(The bar and its pair、maintenance rule = 「canonical を main-readable な面へ移し、skill にはポインタを残す」。導出文の保持自体は要求していない)、rules/model/subtractive-structural-beauty.md(Core principle (A) — 非load-bearingな内容は構造ノイズ)、rules/model/liplus-coding-rule.md Body States Behavior(reasoning は relocate、strip 後に record を書く)、rules/operations/operations.md Operations Rules(コミット title/body 形式、issue 参照形、docs 同一 PR 要件)。

  • 変更7ファイルすべてのポインタ本体(canonical の所在+保持内容列挙)が1バイトも欠けていないことを差分・変更後ファイル本文の両方で確認した。落ちたのは配置理由の再導出のみで、main-agent-procedures.md 側の maintenance rule はポインタ以外を要求していない。
  • reasoning の relocate 要件(rules/model/liplus-coding-rule.md)に対し、docs/4.-Operations.md### skills/operations-* 側の再導出を落とした(#1922) の記録が同一 PR で追加されている(strip 後に record、の順序も満たす)。
  • コミット 123bf72e461351ff3f57f5c54eb8925265c9e0c0 の title は ASCII 英語1行 (spec(skills): strip placement-derivation restatement from 7 operations skills)、body は日本語文を含み Closes #1922 の形(#<number>)で issue 参照を持つ。PR title も ASCII 英語1行で影響範囲 (skills) を含み、body は日本語で Closes #1922 を持つ。
  • docs 更新(docs/4.-Operations.md)が実装と同一 PR に含まれており、「Split docs PR is prohibited」に抵触しない。
  • 削除段落の内容(Why the canonical is not here 等で始まる文言)がリポジトリの他所(rules/** skills/** adapter/** docs/**)に取り残しとして存在しないかをリポジトリ全体で sweep した: grep -rn "Why nothing is held here\|Why the file is not deleted\|Why the canonical is not here\|Why this condition alone is held here" --include=*.md .(クローン 123bf72e4613 チェックアウト時点、全パス)— 0件。
  • docs/L.-Hop-Count-Instrument.mdskills/operations-foreground-webhook-intake/SKILL.md を行番号付きで参照している(:200 :68)が、同ドキュメント自身が「行番号は baseline タグ時点の実測であり、以降のソース変更でも書き換えない」と明記しており(計数規則 冒頭、および S3 節の追記)、本 PR による行のずれはこの参照を壊さない。

固定軸 — impression-literal detection

該当なし。スイープ対象は本 diff が触れた skills/**/SKILL.md 7 ファイル(rules/** adapter/** Li+update.md の変更はこの PR に無く、docs/4.-Operations.mdskills/evolution-impression-literal-detection/SKILL.md の Scope に含まれないため対象外)。追加行は5行(skills/operations-foreground-webhook-intake/SKILL.md:13 1行、skills/operations-on-pr-review/SKILL.md:34-36 3行、skills/operations-on-release/SKILL.md:13 1行)、それ以外の変更行は純削除。5行はいずれも canonical の所在を指すポインタ文か、既存文の末尾をそのまま残したものであり、除去テストで意味変化が起きない語句(フレーバー)は含まれていなかった。

@smileygames smileygames left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

親セルフレビュー(brake 1 exit 後)

受入基準の照合

issue #1922skills/operations-*/SKILL.md が節末に持つ「なぜ canonical をここに置かないか」の再導出を落とすことを求め、制約として (1) ポインタ本体は残す (2) description は対象外 (3) 削除前に各段落を個別確認 (4) 節名・見出し・意味タグは動かさない、を課していた。依存の #1800 は PR #1925 として先に merge 済みで、rules/ 側の load-bearing 判定が確定してから着手している。

  • 実測 15,689 → 12,221 B(−3,468)、7 ファイル・9 段落。起票時の「下限 3,488 B」に対し、実際に落ちたのは 3,468 B。起票時の測定は各ファイル先頭の 1 段落のみを対象にしていたため、2 段落持つ 2 ファイル分が下限側に含まれていなかった一方、ポインタ本体を残す判断で削除量が段落全体より小さくなった箇所がある。
  • 節名・意味タグ: git diff -U0 -- skills/ | grep -E '^[+-](#|<[a-z])' が空。
  • テスト: 237 passed / 776 subtests、tests/test_skill_reference_resolution.py = 2 passed / 158 subtests。
  • 判断記録: docs/4.-Operations.md### skills/operations-* 側の再導出を落とした(#1922) を同一 PR で追加。#1925 と同じ routing。

起票時に保留されていた前提の帰結

operations-foreground-webhook-intakeWhy the file is not deleted 段落は、起票時に「削除不可の根拠がここにしか無いかもしれない」と保留されていた。親が事前に The bar and its pair 末尾と突き合わせ、redirect stub の根拠が literal で存在することを確認して ready へ上げている。実装側も同じ確認を独立に行い、9 段落すべてが純粋な再導出という結論。#1925## Merge Execution で 1 件見つけたような「基準側に無い論証」は、skill 側には無かった。

逸脱

なし。 scope 逸脱なし、手続き逸脱なし。step 4 の clean 分岐は今回正しく適用した——ラウンドが clean であることを先に確定させ、リレーせず author も resume せず step 8 で exit している。

ラウンド記録

  • N = 1(M = 全 3 軸 / P = 1、既定パターン)
  • 往復 = 1。ラウンド 1 が三軸とも所見なしで返ったため step 8 で exit(上限 3 に未達)
  • 採用 0 件 / 却下 0 件 / 追加コミットなし。却下されたまま残った所見は無い
  • step 2 の運用コピーは適用していない。対象が skills/** であり本体は subagent の常時ロード面へ注入されない(description のみ)ため、judge 型評価者には適用不要。評価者は名指しした SHA での直接 Read で読んでいる。step 5 も同じ理由で非該当

リリース種別と merge 判断

patch。統治・仕様面の構造変更であり user/system observable な影響を持たない(rules/operations/release-version-rule.md)。semi_auto の patch は人間ゲート無しで AI 直接 merge。

merge して差し支えないと判断する。

🤖 Generated with Claude Code

@smileygames
smileygames merged commit 361637e into main Sep 10, 2026
2 checks passed
@smileygames
smileygames deleted the 1922-skill-derivation-strip branch September 10, 2026 10:04
@smileygames

Copy link
Copy Markdown
Member Author

訂正: rule effect measurement の記録欠落(unmeasured を事後に記入)

skills/evolution-rule-effect-measurement/SKILL.md Application point, Position on the self-evolution PR pipeline は、順序を implementation -> CI -> measurement -> brake 1 と固定し、発火条件を次のように定めている。

Firing condition = a PR whose diff over the governed body (rules/** / skills/** / adapter/**) deletes more lines than it adds.

本 PR の統治面の実測 line delta は下表のとおりで、発火条件を満たしていた

追加行 削除行
rules/** skills/** adapter/** 5 21

実測は走らせていない。それ自体は仕様上の違反ではない(The run is not mandatory、外部予算を食うため取れない run は merge gate を止めない)。違反はそちらではなく記録の側にある。

What holds instead is the record: write unmeasured with its reason — spend limit, outside the firing condition, or nothing in the diff to raise a probe over — into the parent's self-review record. Never leave it blank and never record it as a negative result. A blank is read as no problem, which makes the absence of a verdict work as a verdict.

親のセルフレビューはこの件について空白だった。仕様が名指しで禁じている状態である。

事後記入

unmeasured。理由 = 発火位置でゲートが適用されなかった。

予算上の制約でもなく、発火条件の外だったからでもない。親が問いを立てていない。理由を正確に書くのは、仕様が想定する 3 つの理由(spend limit / outside the firing condition / nothing to raise a probe over)のいずれにも当たらないためである。3 つはいずれも「判断した上で取れなかった」形だが、本件は判断自体が存在しない。

事後に走らせない理由

ゲートの位置は CI green と brake 1 の間であり、評価者へ渡すのと同一の baseline に対して立つ。その瞬間は過ぎている。同 skill は既存本文の掃引を spare-capacity follow-up, not the primary path と位置づけており、事後の run は本 PR のゲートを満たすものにはならない。位置を外れた run をこの PR の記録に載せれば、満たされなかったゲートが満たされたように読める。

検出経路

Master の質問(「Li+ に最近追加した実機デバッグ用の処理は使った?」)で発覚した。AI 側の自己点検では検出していない。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

spec(operations): placement derivation is restated a second time on the operations-* skill surface

1 participant