5
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

スキルの名前を verify にするだけで、Claude Code はコミット前にそれを実行する

5
Last updated at Posted at 2026-10-01

Claude Code 2.1.286(2026-09-30)の changelog に、こう書かれています。

Improved commit guidance: when your project or user skills include one named verify,
Claude is now told to run it right before committing, except for docs-only and tests-only commits

スキルの「名前」が挙動を変えると読めます。

同じ日に取得した公式のスキル解説には、この規約が載っていません。 30回測りました。

スキル名 verify   / Claude Code 2.1.286 / コード変更   3/3 実行された
スキル名 verify2  / Claude Code 2.1.286 / コード変更   0/3
スキル名 verify   / Claude Code 2.1.285 / コード変更   0/3
スキル名 verify   / Claude Code 2.1.286 / ドキュメント  0/3
スキル名 verify   / Claude Code 2.1.286 / テスト        0/3

検証環境: Windows 10 / Claude Code 2.1.285 と 2.1.286 を隔離導入 / claude -p /
--permission-mode acceptEdits / 全ラン設定ディレクトリ使い捨て(コールド) / 測定は 2026-10-01


測り方

捨てリポジトリを毎回作り直します。中身は app.py / docs/readme.md / tests/test_app.py と、
スキル1本だけ。スキルの中身はマーカーファイルを1つ書くだけです。
マーカーの有無が、実行されたかどうかの判定です。

.claude/skills/verify/SKILL.md   ← ディレクトリ名と、この中の name: が「verify」
app.py / docs/readme.md / tests/test_app.py

名前は2か所にあります。 ディレクトリ名と、SKILL.md 冒頭の name:。
今回はこの2つを同時に変えているので、どちらが引き金かは分けられていません。

初回コミットを済ませてから変更を1つ作り、**「このリポジトリの変更をコミットして」**とだけ頼みます。
git は --allowedTools で通してあります。

変えるのは3つだけです。スキルの名前、Claude Code の版、変更したファイルの種類。


結果

各3回。2つのバッチで独立に測り、どちらも同じに分かれました(合計30ラン・$3.12)。
2つのバッチはスキルの本文と git の許可が少し違います(後述)。

スキル名 Claude Code の版 変更 実行された コミット
verify 2.1.286 コード 3/3 3/3
verify2 2.1.286 コード 0/3 3/3
verify 2.1.285 コード 0/3 3/3
verify 2.1.286 ドキュメントのみ 0/3 3/3
verify 2.1.286 テストのみ 0/3 3/3

名前を verify2 に変えただけで、走らなくなります。 スキルの中身も説明文も同じです。

Claude Code 2.1.285 では走りません。 この版で入った挙動です。

ドキュメントだけ・テストだけの変更では走りません。 changelog の除外どおりでした。

コミットとの前後

実行された3回のうち、2回はコミットの2〜3秒前にマーカーが書かれていました。
残り1回は同じ秒に収まって判定できません(git log のコミット時刻は秒単位)。
後だったと確認できた回はありません。


測るときに踏んだ罠

1回目と3回目のあいだに、失敗した2回目があります。 スキルの説明文を

description: Project verification. Runs the project's checks before a commit.

と書いたところ、verify2 でも Claude Code 2.1.285 でも走るようになりました。

原因は単純で、説明文に「before a commit」と書けば、名前の規約とは関係なく
通常のスキル呼び出しで拾われる
からです。名前の効果を、自分で消していました。

説明文を

description: Project verification. Runs the project's checks.

に戻したのが、上の結果です。同じことを試す人は、説明文に commit を書かないでください。
書くと「名前は関係なかった」という逆の結論が出ます。

1回目は git を通しておらず、コミット自体が権限で止まっていました。
それでも条件の分かれ方は3回目とまったく同じで、verify の回だけスキルが走っていました。


言えないこと

  • 測ったのは 2026-10-01 の1日、各3回を2バッチ。 30ランすべてで結果は一貫していましたが、
    ベンチマークではありません
  • 除外の判定基準は公開されていません。 「ドキュメントのみ」「テストのみ」が
    どう判定されるかは分かりません。私が測ったのは docs/ 配下1ファイルと tests/ 配下1ファイルだけの場合です
  • 混在した変更(コードとドキュメントを同時に変える)は測っていません
  • ユーザー側のスキル(~/.claude/skills/verify)では測っていません。
    changelog は「project or user skills」と書いていますが、確かめたのはプロジェクト側だけです
  • ディレクトリ名と name: のどちらが引き金かは分けていません。 2つ同時に変えました
  • バンドル版の /verify とは別の話です。 測ったのは自前のスキル
  • スキルが何をするかは挙動に影響しないと確かめたわけではありません。
    今回のスキルは「ファイルを1つ書く」だけです

まとめ

  • Claude Code 2.1.286 から、verify という名前のスキルはコミット直前に実行される
  • 引き金は名前。 verify2 に変えると走らない。中身も説明文も同じでも変わる
  • Claude Code 2.1.285 では走らない。 この版で入った
  • ドキュメントだけ・テストだけの変更では走らない
  • 公式のスキル解説には、まだこの規約が書かれていない(2026-10-01 取得)

スキルを verify という名前にしている人は、コミットのたびに走ることになります。
重い検査を入れているなら、名前を変えるか、その前提で中身を組み直すかを決めておくほうがよいと思います。


関連記事


JQITのエンジニアの95%以上は未経験からの採用です。
よければコーポレートサイトにも遊びに来てください。

▶ コーポレートサイト

エンジニア採用も行っています。もしご興味あれば覗いてみてください。

▶ 採用サイト

5
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?