restraint について
デザインやコードの変更を依頼された範囲に限定するレビュー用スキルです。不要なUIや設定、コードを見つけ、削除と報告の方法も定めています。
主な機能
- 01依頼されていないUIやコードの指摘
- 02動作する最小構成の優先
- 03不要なコードと関連要素の削除
- 04不要な設定やフォールバックの回避
- 05重大度別の問題報告
活用シーン
- 01機能変更に余分なUIがないか確認
- 02削除後に関連コードを整理
- 03実装案に不要なオプションがないか確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ raphaelsalaja/ skills --skill restraintインストール後、Claude Code で/restraintを入力して読み込まれたか確認します。
同梱ファイルagents/openai.yaml
詳細
抑制
このスキルは、変更を依頼された内容だけに絞ります。余分なインターフェース、オプション、コードを取り除き、「削除」は完全に消すこととして扱います。
依頼内容を具体化する
ユーザーが求めていない要素、オプション、コードパスは、依頼を機能させるために必要でない限り、指摘事項です。未リリースの作業には、後方互換性は必要ありません。ユーザーが承認していない削除は、編集ではなく提案です。
ラベルの文言は copy に属します。既存の要素を再利用することは reuse に属します。
依頼内容以外は何も追加しない
ユーザーが求めていないセクション、バッジ、件数、キャプション、フッター、ボタン内のアイコン、サウンド、装飾効果は追加しません。すべての行に件数バッジを付けるのは restraint-no-unrequested-ui です。
画面ですでに示されているフィードバックは追加しない
結果がすでに画面に表示されている操作について、トーストやダイアログを追加しないでください。これは restraint-no-redundant-feedback です。
機能する最小限の実装
カスタム要素よりネイティブ要素を、モノレポより単一のアプリを、設定より固定値を優先します。<video controls> で機能するのにカスタムの動画プレーヤーを作るのは restraint-smallest-build です。誰も変更しない設定項目は restraint-no-needless-setting です。
リリース前に防御的なコードを追加しない
未リリースの作業には、レガシーブランチも互換性シムも残しません。これは restraint-no-legacy です。常に設定される値にフォールバックを追加しないでください。これは restraint-no-fallbacks です。
削除は完全に消すこと
ユーザーが削除を求めた場合は、コードとそのスタイル、変数、ルート、メニュー項目を削除します。「レビュー待ちにする」は restraint-delete-dont-defer です。削除したパッケージの変数が theme.css に残っているのは restraint-remove-the-trail です。
クリーンアップを依頼された場合は、未使用のファイル、エクスポート、スタイル、依存関係、残ったプロトタイプを列挙します。承認後に削除してください。
コメントは制約を示すか、削除する
コードの内容を説明するコメントは削除します。コードから読み取れない制約を示す場合に限り、コメントを残します。説明に終始するコメントは restraint-no-narrating-comments です。
対になる例
各チェックは対になっています。問題のある行の隣に、それを置き換える行を示します。
| ルール | 問題のある例 | 置き換え |
|---|---|---|
restraint-no-unrequested-ui | すべての行に件数バッジを付ける | バッジなし |
restraint-no-redundant-feedback | ユーザーに見える移動の後にトーストを表示する | トーストなし |
restraint-smallest-build | カスタムの動画プレーヤー | <video controls> |
restraint-no-needless-setting | 誰も変更しない余白の設定項目 | 固定の --gap |
restraint-no-legacy | 「安全のため」に残されたレガシーブランチ | 削除 |
restraint-no-fallbacks | 常に設定される値に対する value ?? defaultValue | value |
restraint-delete-dont-defer | 「レビュー用に保留しました」 | 削除、または質問を1つ |
restraint-remove-the-trail | 削除したパッケージの変数が theme.css に残っている | 変数も一緒に削除 |
restraint-no-narrating-comments | // Render the header | コメントなし |
報告
重大度。 HIGH は、誰も求めていない機能、設定、コードパス、または「削除済み」とされながら残っている項目です。MEDIUM はフォールバック、レガシーブランチ、残存する変数です。LOW は説明に終始するコメントです。
形式。 根本原因ごとに指摘を1件記載します。
file:line - [rule-id] what is wrong
続いて Rule | Count | Severity のサマリーを記載します。HIGH が1つでも残っている場合は Block、それ以外は Approve とします。読んでいないファイルに Approve を付けてはいけません。実行できなかったチェックはすべて Not verified と記載します。