Claude CodeのスキルをGitHubから入れる前に確認する5つのこと

GitHubで見つけたClaude Codeのスキルを入れる前に確認する5つのことを表すアイキャッチ。開いたフォルダから取り出した5枚のカードを虫眼鏡で確かめるイラスト

ZEN AI LAB のキャラクター ZEN

監修:ZEN AI LAB(ZEN)

人間1人とAI社員で動く会社です。記事の数値は自社の作業ログの実測、仕様や料金は公式の一次情報で確認しています。確認した日付は本文に書いています。

GitHubやSNSで便利そうなClaude Codeのスキルを見つけても、中身を判断できず、入れるのを迷うことがあります。導入前に見るのは、入る場所、自動で動く処理、許可なしで動くもの、外とのやりとりと費用、文章の指示です。

この記事では、次のことが分かります。

  • どのファイルを開き、何という語で探すか
  • コードを読めないときに説明だけを頼む方法
  • 何が見つかったら導入を保留するか
  • 入れた後に残す記録

ZEN AI LABは2026-09-19に、5つのリポジトリ(=スキルのファイル一式を置いたGitHub上の保管場所)を取得しました。取得した日の最新版だけを対象に、スクリプトを実行せず中身を読んでいます。読み終えたら、気になるスキルを確認し、入れるか保留するかを決められます。

GitHubのスキルを入れる前に確認する5つのこと

最初に、開くファイルと検索する語をまとめます。コード全体を理解できなくても、検索で確認する場所を絞れます。

スキルを入れる前に確認する5つのこと。入る場所・自動で動く処理・許可なしで動くもの・外とのやりとりと費用・文章の指示と、それぞれの探す語と見つけたときの行動
確認すること開くファイル探す語(意味)見つけたらどうするか
入る場所README、install.sh、package.json.claude/skills(スキルの保存先)、install.sh(導入用の処理)コピー先を確かめるまで入れない
自動で動く処理package.json、hooks.json、導入用ファイルpostinstall(入れた直後に自動で動く処理)、Hook(操作をきっかけに動く処理)動く条件と変更内容を説明できるまで保留する
許可なしで動くものSKILL.md(=スキルの中身を書いたファイル)allowed-tools(許可なしで使えるツールの指定)、!とバッククォート(=半角の、左上から右下へ短く傾いた記号)ツールとコマンドの目的を確かめる
外とのやりとりと費用README、スクリプト、設定例curl、wget、| bash(縦棒の後)、| iex(縦棒の後)、API_KEY(外部サービスを使うための鍵)接続先、送る内容、料金を確かめる
文章の指示SKILL.mdsource(出典)、citation(引用元)、Before・After(書き換え例)自分の仕事の決まりと合うか読む

利用条件を示すライセンスについては、LICENSEも別に確認します。

① どこに入るかを確認する

ホームフォルダの.claude/skillsに入るのか、作業中のプロジェクトだけに入るのかを確認します。前者は、ほかのプロジェクトでも使われる場所です。

READMEとinstall.shを開き、.claude/skillsを検索します。コピー先や作成されるフォルダを説明できない場合は、実行を保留します。

Claude Codeの公式ドキュメントでは、個人のSkillは~/.claude/skillsに置くとすべてのプロジェクトで使われます。プロジェクトの.claude/skillsに置くと、そのプロジェクトだけで使われます。

② 入れたときに自動で動く処理を確認する

インストールに続いて動く処理と、Claude Codeの操作に反応して動く処理を探します。

package.jsonではpostinstallを検索します。リポジトリ全体ではhooks.jsonとHookを探します。postinstallは、パッケージを入れた直後に動く処理です。Hookは、ファイル編集などをきっかけに動く処理です。

Anthropicの説明では、信頼できる出所を「自分で作ったもの」か「Anthropicから入手したもの」としています。GitHubで見つけた他の人のスキルは、この定義に当たりません。SKILL.md、スクリプト、画像を含む全ファイルを確かめるよう勧めています。

③ 許可を聞かずに動くものを確認する

SKILL.mdの先頭で、allowed-toolsを探します。これは、スキルが有効な間にClaudeが許可を求めず使えるツールの指定です。利用できるツールを制限する設定ではありません。

同じファイルで、!とバッククォートで囲まれたコマンドも探します。この形のコマンドは、スキルの内容がClaudeへ送られる前にシェル(=コマンドを実行する仕組み)で実行されます。Claudeが読んだ後に実行を判断する処理ではありません。

これらの仕様はClaude Codeの公式ドキュメントに記載されています。設定でdisableSkillShellExecutionをtrueにすると、このコマンド実行を止められます。

④ 外とのやりとりと費用を確認する

スキルが外部サービスへ接続するか、APIキーや有料サービスを必要とするかを確認します。

スクリプトでは、curlやwgetの後に|(縦棒)とbashが続く行を探します。PowerShellでは、irmの後に|とiexが続く行を探します。見つけたら、取得先と実行される内容を確認できるまで保留します。

APIキーを求める場合は、接続先と料金表も確認します。Anthropicの説明によると、Claude CodeのSkillは、そのパソコンの他のプログラムと同じネットワークアクセスを持ちます。

Anthropicは、外部の URL からデータを取ってくるスキルは特に危険だと説明しています。取ってきた内容に、悪意のある指示が含まれうるためです。信頼できるスキルでも、外部の依存先(=そのスキルが使う外部のプログラムやデータ)が変わると危険になりえます。

⑤ 文章の指示が自分の決まりに合うか確認する

コマンドが見つからなくても、SKILL.mdの文章を最後まで確認します。スキルはClaudeへの指示です。出典の扱い、事実の追加、ファイルの変更方法が仕事の決まりと合うかを読みます。

source、citation、Before、Afterを検索すると、出典の扱いや書き換え例を見つけやすくなります。説明と例が食い違う場合は、必要な部分だけを参考資料として扱う方法もあります。

コードが読めなくても検索して別の場所から説明を頼める

コードを一行ずつ解読する必要はありません。検索で該当箇所を絞り、その部分が何をするのかを平易な言葉に直します。

コードが読めなくても読むだけで確かめる流れ。スキルを置くフォルダではClaude Codeを起動せず、別の空のフォルダのClaude Codeに説明だけを頼む
  1. 空の作業用フォルダへ移動し、git clone https://github.com/<作者>/<名前>.gitを貼り付けて実行します。clone(=GitHubのファイル一式を自分のPCにコピーする操作)が行われます。この操作だけでは、取得したスクリプトは動きません。
  2. テキストエディタで取得したフォルダを開き、表の検索語を一つずつ探します。
  3. 別の空のフォルダでClaude Codeを起動します。cloneしたフォルダの場所を伝え、対象ファイルを読ませます。
  4. 「実行や変更はせず、書き込む場所、外部通信、自動実行、必要な費用だけを説明してください」と頼みます。
  5. 説明と元のファイルを見比べ、判断できない項目があれば保留します。

プロジェクトの.claude/skillsにあるスキルのallowed-toolsは、そのフォルダを信頼すると答えた後に有効になります。allowed-toolsは、許可なしで使えるツールの指定です。

公式ドキュメントは、リポジトリを信頼する前にプロジェクトのSkillを確認するよう案内しています。このため、cloneしたフォルダではClaude Codeを起動せず、別の場所から説明だけを頼みます。

Claude Codeを毎日使った記録は、53日間の使用量をAPI料金で計算した記事にもまとめています。

入れ方ごとに確認するファイルが変わる

案内されている入れ方によって、確認する処理が変わります。

入れ方ごとの書き込み先と動く処理。git clone、install.sh、npmのpostinstall、プラグインのHook、gh skill の違い
  • git cloneしてプロジェクトに置く場合は、置き場所とSKILL.mdを確認します。
  • install.shを使う場合は、コピー先、ダウンロード、設定ファイルの変更を確認します。
  • npmのpostinstallを使う場合は、インストール直後に動くファイルを確認します。
  • プラグインのHookを使う場合は、どの操作をきっかけに何が動くかを確認します。

GitHubは、gh skill previewで導入前に中身を表示できると案内しています。--pinを使うと、タグかcommit SHA(=特定の版を示す識別子)に固定できます。

GitHubはSkillの内容を検証していません。プロンプトインジェクション(=AIへの隠れた命令を文章に紛れ込ませる手口)、隠れた指示、悪意のあるスクリプトが含まれる可能性を注意点として挙げています。GitHubの告知では、GitHub CLI v2.90.0以降が対象です。

迷う記述が見つかったら導入を止めて確認する

次の記述が見つかったら、その場では入れません。目的と影響を説明できるまで保留します。

  • ホームフォルダの.claudeへファイルをコピーする
  • postinstallやHookで処理が自動実行される
  • allowed-toolsに書き込み用のツールがある
  • !とバッククォートで囲まれたコマンドがある
  • 外部から取得した内容をbashやiexへ渡す
  • APIキーや有料サービスを求める
  • 元の文章にない事実や出典を足す例がある
  • LICENSEと別の設定ファイルで表記が一致しない

見つかった記述だけで作者の意図は判断できません。処理が自分の作業環境と運用ルールに合うかを基準にします。

実例:ZEN AI LABが5つのリポジトリを確認した結果

ZEN AI LABは2026-09-19に、5つのリポジトリをgit cloneしました。スクリプトは実行せず、取得したファイルだけを読んでいます。

SKILL.mdは合計150件あり、allowed-toolsを持つものは1件でした。!とバッククォートの実行構文や、!(ビックリマーク)で始まるコードのまとまりを含むものは0件でした。

今回の5件では、許可なしで動く指定はほとんど見つかりませんでした。判断を分けたのは、入る場所、自動で動く処理、費用、文章の指示です。

リポジトリ見つかったことZEN AI LABの判断
coreyhaines31/marketingskillsSKILL.mdは50件。skillsフォルダ内にスクリプトはなく、外側のtools/clisにJavaScriptが64本あったai-seoの1本を内容を変えずに導入
jpeggdev/humanize-writingSKILL.mdは1件。postinstall、allowed-tools、元の文にない事実が現れる書き換え例があった導入せず
AgriciDaniel/claude-seoSKILL.mdは33件。install.sh、Hook、外部取得や設定変更の処理があったSkillとして導入せず、参考文書を版固定で保存
jamditis/claude-skills-journalismSKILL.mdは64件。候補にした2本はMarkdownだけで、スクリプトはなかったSkillとして導入せず、参考文書を版固定で保存
assafelovic/gpt-researcherSKILL.mdは2件。標準の使い方ではOpenAIとTavilyのAPIキーが必要で、ライセンス表記が一致していなかった有料APIが必要なため保留

判断の基準は、事実を作らないこと、有料サービスを勝手に増やさないこと、会社全体の設定へ書き込む処理を把握することでした。

詳しい確認内容

確認したcommitは、marketingskillsが5b2c0007、humanize-writingがda03340eです。claude-seoは92795530、claude-skills-journalismは7aca2049、gpt-researcherは6f998577でした。

humanize-writingのpackage.jsonでは、7行目にpostinstallがあります。そこから動くinstall-skill.jsは、ホームフォルダ内の3か所へファイルをコピーします。コピー先は.claude/skills、.cursor/skills、.windsurf/skillsです。

8行目にはpreuninstallがあります。そこから動くuninstall-skill.jsは、15行目で対象フォルダを削除します。

同じリポジトリの書き換え例では、404行目からの元の文にない研究、割合、取材した人物名が、421〜426行目の書き換え後に現れます。450行目では、一人称と具体的な出典を足したことが改善点として挙げられています。

一方、262行目には、本当の出典を探すか主張を消すという指示があります。358行目には、技術的な正確さと具体的なデータを残す記述もあります。

claude-seoのinstall.shは、8〜9行目と47行目でSkillをホームフォルダの.claude/skillsへコピーします。Agentは.claude/agentsへコピーします。

セットアップでは、scripts/runtime.pyの313行目でPlaywrightを使い、Chromiumをダウンロードします。hooks.jsonには、プラグインとして入れた場合に、ファイルの編集や書き込みのたびに動くHookが定義されていました。

同リポジトリには、取得した内容をシェルへ渡す形の記述があるファイルが13ありました。PowerShellで取得した内容をiexへ渡す形の記述があるファイルは5ありました。説明文や変更履歴も対象なので、すべてが実行を促す記述とは限りません。

入れた後は取得元と判断を記録する

記録する項目は、リポジトリ名、取得したcommit、導入したファイル、確認した項目、判断の理由です。版を固定すると、後から内容が変わったときに差を確認できます。

ZEN AI LABは2026-09-11にmarketingskillsの6本を入れた際、取得元のcommitを記録していませんでした。2026-09-19に取得した版と比べると、改行コード以外の差はありませんでした。同日に由来の台帳を作り、取得元を記録しました。

この確認だけでは実行時の挙動までは分からない

今回は取得した日の最新版だけを読み、過去の履歴と今後の更新は確認していません。スクリプトを動かしていないため、実行時の挙動も確認できていません。「見つからなかった」という結果は、その処理がないことの証明にはなりません。

ZEN AI LABは今回、gh skillとnpx skills addを実行していません。確認はすべて、cloneしたファイルを読む方法で行いました。

humanize-writingは、npmで公開されている版とリポジトリの内容が同じかを確認していません。機械集計は、決まった形のallowed-toolsと実行構文を検索した結果です。別の書き方を拾えていない可能性があります。確認にかかった時間は測っていません。

今回の判断は、ZEN AI LABの運用上の決まりに照らしたものです。他の環境での判断まで決めるものではありません。

スキルを入れる前の確認とは別に、すでに使っているClaude Codeの任せ方(許可・自動処理・指示の置き場)を自分で見直したい方には、10問の無料のチェックシートがあります。

入れる場所と、使うものだけを選ぶ例は、marketingskillsの使い方に書いています。

まとめ

  • 5つの点を、表にある決まった語で探します。
  • 読めない箇所は、別のフォルダで起動したClaude Codeに説明だけを頼みます。
  • 説明できない処理が1つでもあれば保留し、入れたら版と判断を記録します。
  1. 今日入れようとしているスキルで、表の検索語を一つずつ探します。
  2. 見つけた処理の目的と変更先を説明できなければ、導入を保留します。
  3. 入れる場合は、リポジトリ名、commit、判断の理由を記録します。

Claude Codeの実運用記録を続けて読む方は、ZEN AI LABのClaude Code Hubをご覧ください。