소스 정보
- 저장소
- aki77/claude-plugins
- 최근 소스 활동
- 2026년 7월 9일 00:55
- 감지된 SKILL.md 언어
- 일본어
- 스타
- 0
- 포크
- 0
설치 방법
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
소스 파일 검토
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
메뉴
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
직접 명령은 검토 Prompt를 거치지 않습니다. 실행하기 전에 소스를 확인하세요.
npx skills add https://github.com/aki77/claude-plugins --skill plan-rubocop-review-run명령은 한 줄로 유지됩니다. 복사하기 전에 가로로 스크롤해 전체 내용을 확인하세요.
로컬 사본을 원하시나요? SkillsMP에서 현재 제공할 수 있는 파일을 다운로드하세요.
SOC 직업 분류 기준
SKILL.md 표시 중
| name | plan-rubocop-review-run |
| description | plan-rubocop-review フック専用。手動・自動を問わずこのスキル名で明示起動されたときのみ実行する。 |
| allowed-tools | Bash |
| user-invocable | false |
| model | haiku |
Plan Mode のプラン本文に含まれる Ruby コードブロック を、実装着手前に RuboCop(プロジェクトの .rubocop.yml 準拠)で検証します。
検証対象は プランに実際に書かれた ```ruby コードブロックのみ です。コードブロックが無いプラン、配置パスが特定できないコードブロックは検証できません。「検証された」という偽の安心感を避けるため、最後に必ず「検証したブロック数・スキップしたブロック数・違反件数」をユーザーに報告してください。
前提:
bundle exec rubocop は 使える前提 でよい。事前に --version 等で存在確認する必要はない(万一使えなければラッパが rubocopAvailable: false を返すので、その分岐で素通しする)。--stdin でメモリ上で行う。検証対象のプラン全文は、このスキルを起動した指示(フックの reason)の中の <<<PLAN と PLAN で囲まれたブロックに含まれている。この区切りの間にあるテキストをプラン全文として扱う。
プラン全文から ```ruby ~ ``` で囲まれた Ruby コードブロックをすべて列挙する。各ブロックについて、そのコードの本来の配置パス(リポジトリルート相対)を推定する:
app/models/article.rb を以下のように作成する」→ app/models/article.rbspec/models/article_spec.rb」→ spec/models/article_spec.rbapp/models/, app/controllers/, spec/ 等)から補う。```ruby 以外の言語ブロック(bash, yaml, json 等)、言語指定のないブロックは対象外。検証対象ブロックが 1 つも無ければ手順4へ(PASS 扱い)。
検証先プロジェクトのルート(.rubocop.yml がある場所=通常はカレントディレクトリ)で、抽出したブロックを次の補助スクリプトに渡す。stdin 経由で JSON を渡すこと(コードに改行・特殊文字が含まれるため引数では渡さない)。
echo でインラインに渡すとコード中の改行・クオートが壊れやすいため、いったん JSON ファイルを書いてから cat で渡すこと:
# 1. blocks JSON を一時ファイルに書く(code には実際の Ruby ソースを改行込みで入れる)
cat > /tmp/plan-rubocop-blocks.json <<'JSON'
{
"blocks": [
{ "path": "app/models/article.rb", "code": "class Article < ApplicationRecord\n validates :title, presence: true\nend\n" }
]
}
JSON
# 2. 検証先プロジェクトのルートで実行する
cat /tmp/plan-rubocop-blocks.json | node ${CLAUDE_PLUGIN_ROOT}/skills/plan-rubocop-review-run/scripts/rubocop-stdin.mjs
code フィールドには Ruby ソースを正しい改行・インデントで入れること(JSON 文字列としてエスケープする)。path はそのコードの本来の配置パス。
スクリプトは各ブロックを bundle exec rubocop --server --stdin <path> --format json --force-exclusion で検証する。--server により初回呼び出しで RuboCop サーバが起動・常駐し、2 ブロック目以降はそれを使い回してブート時間を削減する。全ブロック検証後にスクリプトが --stop-server でサーバを停止するため、常駐プロセスは残らない。検証結果は次の JSON で返る:
rubocopAvailable: false → このプロジェクトで bundle exec rubocop が使えない、または入力不正。検証不能 として手順4へ(PASS 扱い・マーカー付与)。その旨をユーザーに報告する。rubocopAvailable: true → results に各ブロックの offenseCount と offenses(cop / message / line / severity / correctable)が入る。totalOffenses が総違反数。totalOffenses === 0(全ブロック違反なし、またはスキップのみ) → 手順4(PASS)へ。totalOffenses > 0(違反あり) → プラン内の該当 Ruby コードブロックを RuboCop 指摘(cop / message / line)に沿って修正する。correctable: true の Cop は autocorrect 相当の修正を施す。修正後、マーカーは付けずに ExitPlanMode を呼ぶ(再びフックが発火し、修正後のコードが再検証される)。プラン本文の末尾に次の 1 行を追記してから ExitPlanMode を呼ぶ:
<!-- plan-rubocop-review: passed -->
このマーカーがあると以降このプラグインの検証はスキップされ、即座に承認へ進む。
ExitPlanMode の前後で、次を必ずユーザーに伝える:
これは「Ruby を含むプランは必ず RuboCop 検証された」という誤解を防ぐため。プランにコードブロックが無い/パス不明でスキップした場合は、「検証していない」ことを明示する。
<!-- plan-rubocop-review: passed --> を付けるのは、totalOffenses === 0 または検証不能(rubocopAvailable: false)・検証対象ブロックなし のときのみ。違反が残っている状態で付けない。--stdin で検証する。```ruby ブロックのみ。プラン本文の自然言語記述から Ruby コードを「想像して」検証してはならない(書かれていないコードは検証対象外)。