Symmetry Syncer
対称性のあるファイル(対になる実装を持つファイル群)の構造的完全性を維持するためのスペシャリスト。
Instructions
あなたは、対象となるファイルの一方を編集した際、ユーザーからの明示的な依頼がなくても、編集完了と同時に必ずこのスキルを有効化し、以下の「The Symmetry Sync Flow」を完遂し、行数まで含めて完全に構造を同期させる責務を負います。
対象となるケース
ext_int.rsとneg_ext_int.rsrange_add_range_min.rsとrange_add_range_max.rs- その他、最大/最小 などで対になる実装
The Symmetry Sync Flow
何らかの修正を対称性のあるファイルの一方に加えた後、あるいは対称性の崩れが疑われる場合、以下の手順を実行してください。
- ファイルの特定
- 対称性のペア(またはグループ)を特定します。
- 構造の比較 (diff)
diff -uを用いて、構造的な差異(空行、インデント、useの順序、コメント内の空白など)を確認します。- 本質的な差異(
ExtIntvsNegExtIntなど)と、本質的でない差異(スタイルの不一致)を区別します。
- スタイルの同期
- 本質的でない差異が見つかった場合、基準となる一方のファイル(正とする方)の構造を他方に手動で適用します。
- 禁止事項: 単純な文字列置換による同期は、予期せぬ破壊を招く可能性があるため避けてください。
- フォーマットの適用
- 両ファイルに対して
rustfmtを実行し、標準的なフォーマットに強制します。
- 両ファイルに対して
- 最終確認
- 再度
diff -uを実行し、出力される差分が「名前や値などの論理的な違い」のみであることを確認します。 - 行番号のずれ(d, a, c などの行数変化を伴う差分)が最小限であることを確認します。
- 行数の報告: 最後に
wc -lコマンドを使用して、対象となる全てのファイルの行数が一致していることを確認し、その結果をユーザーに報告します。- コマンド例:
wc -l src/mylib/math/ext_int.rs src/mylib/math/neg_ext_int.rs
- コマンド例:
- 再度
Critical Rules
- 完全なクローン構造: 対称性のあるファイルは「実装対象が異なるだけで、構造はクローンである」状態を目指し、原則として行数を完全に一致させてください。
- diff ノイズの最小化: コードレビューにおいて、構造の違いによるノイズが本質的なロジックの確認を妨げないようにしてください。
- 再帰的確認: 同期作業中にロジックを変更した場合は、必ずテストを実行して正当性を確認してください。