com um clique
symmetric-check
コードパスの変更・バグ修正時、または計画レビュー時に使用。対称ペア(show/hide 等)とリソース生成/破棄の適用漏れを検証する。
Instalar com Codex ou Claude Copie este prompt, cole no Codex, Claude ou outro assistente e deixe que ele revise a página da skill e instale para você.
Menu
コードパスの変更・バグ修正時、または計画レビュー時に使用。対称ペア(show/hide 等)とリソース生成/破棄の適用漏れを検証する。
Instalar com Codex ou Claude Copie este prompt, cole no Codex, Claude ou outro assistente e deixe que ele revise a página da skill e instale para você.
Baseado na classificação ocupacional SOC
workspace/plan.md の完成後、実装着手前に使用。計画の影響範囲・不変条件・スコープの漏れを検証する。
GitHub issue から作業を開始するときに使用。実装の前段階(ブランチ作成・調査・計画・計画レビュー)までを行う。
コード変更を伴うタスク(機能追加・バグ修正・リファクタリング)の実装時に使用。実装からコミット作成まで自律的に行う(計画が要る変更は /start-issue へ)。
大きなサイクル完了後や定期メンテナンス時に使用。governance:check(決定的検査)を実行し、機械化できない意味的整合(コマンド直書き grep・npm ラッパー等価・メモリ整合)を検証して報告する(修正はしない)。
開発サイクル完了時(実装・レビュー・追加修正まで済んだ後)に使用。教訓の抽出・残タスクの振り分け・RETROSPECTIVE.md 更新を行う。
UI モード・状態遷移・ガード条件の追加・変更時、または計画レビュー時に使用。既存モードとの直交性・リセット経路・入力分岐・SPEC §8.6 整合を検証する。
| name | symmetric-check |
| description | コードパスの変更・バグ修正時、または計画レビュー時に使用。対称ペア(show/hide 等)とリソース生成/破棄の適用漏れを検証する。 |
| argument-hint | [変更内容やキーワード, 例: 'result-clicked: emitSelectionUpdate を追加' / 'iconUrls Set を廃止して LruIconCache に移行'] |
| allowed-tools | ["Read","Grep","Glob"] |
$ARGUMENTS に関連する対称性を2軸(コードパス対称・リソースライフサイクル対称)で検証する。 $ARGUMENTS が空の場合は、会話の直近の変更内容から対象を推定する。
実装後のコードレビューだけでなく、workspace/plan.md の計画レビューにも使える。計画段階で対称性を検証し、見落としがあれば計画を更新してから実装に進む。
対称性の見落としは3種類ある:
show を変更したら hide も要確認。片方だけ変更すると不変条件が壊れる$ARGUMENTS から以下を抽出する:
コードベースを grep し、以下のようなペアを探す:
| 変更対象 | 確認対象 |
|---|---|
*clicked* | *double-clicked* |
show / open | hide / close |
enter* | exit* |
expand | collapse |
mount / setup | unmount / teardown |
register | unregister |
同じ関数やキーワードの他の呼び出し箇所も検索し、元の変更に含まれなかったコードパスを見つける。
変更がリソース管理に関わる場合(Blob URL、listen、Child プロセス、タイマー等)、以下を検索する:
| 確認項目 | 検索方法 |
|---|---|
| 生成箇所 | createObjectURL / listen( / spawn / setTimeout 等を grep |
| 登録箇所 | .add( / .set( / 変数への代入 |
| 破棄箇所 | revokeObjectURL / unlisten / kill / clearTimeout 等を grep |
特に以下のパターンに注意:
if (...) return があるパスで、生成済みリソースが破棄されない.add/.set していた全箇所を grep し、新機構で同等の保護があるか確認同じ型の値を対称な 2 対象へ配線している箇所を洗う(main / results、tx / rx、from / to 等)。newtype で分けても閉じないことがある——分岐点が「どちらの生成呼び出しの戻り値か」なら、包む時点ではまだ両方が同じ型である(#671 PR D の実例: attach(results, ..) と attach(window, ..) が同型の wake handle を返し、newtype でも取り違えは compile を通る)。
| 確認項目 | 方法 |
|---|---|
| 配線の起点 | 同型の値を作る呼び出しを列挙し、変数名でなく引数で「どちらの対象か」を確認する |
| 中継の各段 | 構造体リテラルのフィールド短縮記法(Foo { a, b })は取り違えを隠す。段ごとに読む |
| 区別できる観測 | 取り違えたときにどちらか一方だけが壊れる観測を 1 つ特定する。無ければ「この誤りは検出手段が無い」と報告する |
判定に「型で守られている」と書くときは、守っている箇所が起点かどうかを明示する。 起点が同型なら型は守っていない。
候補ごとに十分なコンテキストを読み、全実行ケースを列挙する:
候補: <file>:<line> — <説明>
ケース A: <シナリオ> → <影響> → OK / 問題: <説明>
ケース B: <シナリオ> → <影響> → OK / 問題: <説明>
判定: [適用] 同じ変更が必要
[不要] 理由: <ケースごとの明示的な根拠>
ケースごとの根拠なしの「不要」判定はレッドフラグ。根拠のない除外は未検証として扱う。
根拠の規律: 全判定に根拠(file:line または grep 結果)を付ける。コードを確認せずに下した判定は [適用]/[不要] とせず [要確認] として報告する。
全候補を判定と根拠付きで列挙する。 対称ペアが見つからなかった場合は、その旨を明示する(Step 2 で実行した grep パターンを添える)。