← ClaudeAtlas

behavior-structure-separation-listed

リファクタリング(構造変更)と機能変更(behavior change)が同一 diff に混在していないかを識別し、structural change に対する external behavior preservation の証拠(テスト・型・静的解析)が揃っているかを diff-time で確認する。証拠不足のときは Characterization Test 追加を促すか question とする。DTO/公開 API の破壊的��更検出は api-compatibility、完了主張の反証や抽出リファクタの性能特性退行は refactor-claim-audit、新知識の命名・責務・境界への反映は knowledge-to-code-alignment、投機的抽象化・スコープ逸脱は altitude-generalization / fix-scope-integrity へ委譲する
s977043/river-review · ★ 3 · Code & Development · score 75
Install: claude install-skill s977043/river-review
## Origin / 由来 inspired by: - <https://agilejourney.uzabase.com/entry/2026/07/16/103000> — 構造変更(リファクタリング)と振る舞い変更を分離し、外部挙動を維持したまま設計を更新する営みとしてのリファクタリング論。Preparatory / Post-change Refactoring と Behavior Change の識別、Characterization / Safety Net の考え方。 上記は観測された考え方の紹介であり、本文の転載・著者による endorsement を含まない(nominative fair use)。命名は `skills/README.md` Naming に従い value を表す新規名として付与した。 ## Pattern declaration Primary pattern: Reviewer Secondary patterns: Inversion Why: 振る舞い/構造変更の混在と外部挙動維持の証拠評価は意味的判断が主だが、構造変更の証拠が差分に無い変更では実行を止めるゲートが必要。 ## Goal / 目的 diff に対し、次を diff-time で確認する。テストが通るだけでは分からない「仕様混在」と「安全網なしの構造変更」を検出する。 1. **分離**: 外部挙動を変える behavior change と、外部挙動を変えない structural change(リファクタリング)が同一 diff に混在していないか。混在する場合、diff・説明・コミットからそれを識別できるか。 2. **外部挙動維持の証拠**: structural change の前後で外部挙動が維持されている証拠(テスト・型・静的解析)が揃っているか。証拠が不足する場合、Characterization Test の追加を促すか `needs_review`(question)とする。 PlanGate が Behavior Change / Preparatory Refactoring / Post-change Refactoring / Characterization の区分を提供する場合はそれを入力とし、River Review は Plan を再作成せず、**diff と検証結果が Plan の変更順��・完了条件を満たすか**を確認する。 report-only。finding/question のみを出力し、自動修正・自動マージはしない。 ## Non-goals / 扱わないこと(委譲表) - **公開 API / DTO の破壊的変更検出**: エンドポイント・DTO・インターフェースの後方互換破壊とその影響範囲は `api-compatibility` が担う。本 skill は破壊的変更の検出ではなく、**振る舞い変更と構造変更の混在**と**構造変更の挙動維持証拠**を見る。 - **完了主張の反証・性能特性の退行**: 「動作は変えていない」「全部置換した」等の主張の grep 反証と、抽出リファクタの並列度/fast-path/遅延評価の退行・キー集約衝突は `refactor-claim-audit` が担う。本 skill は主張の有無に関わらず**分離の質と証拠の有無**を評価する。 - **新知識の命名・責務・境界への反映、設計知識の保全**: `know