【Claude Codeスキル入門 第12回】演習(後編)― コミットして別のフォルダーへ取り出す、4Dで振り返る、自己点検、次に学ぶなら

Claude Codeスキル入門 第12回 演習(後編)― コミットして別のフォルダーへ取り出す、4Dで振り返る、自己点検、次に学ぶなら 生成AI

「スキルをコミットして共有したのに、別の場所へ clone すると、確認がまた出ます。共有できたのは何で、できなかったのは何ですか」
「演習は一通り終わりました。自分のスキルと設定に何を持ち帰り、次に何を学べばよいでしょうか」

スキルを共有するときの難しさは、ファイルは届くのに、各自の許可は届かないことです。そして、演習は、終わったあとに振り返らないと、手元の設定に残りません。

第12回は、演習の後編です。第10回では準備と手順1〜4(作る・確かめる・発動させる)、第11回では手順5・6(スクリプトと参照ファイルに分ける、allowed-tools で事前承認する)を扱いました。この回では、手順7(コミットして別のフォルダーへ取り出す)、早く終わった人、最後の状態、4D での振り返り、自己点検、次に学ぶなら(サブエージェント)、連載の結びを扱います。手順7の後には、「筆者の環境ではこうなった」の囲みを載せます。


この回でやること

全体の流れは、第10回の図のとおりです。この回は手順7以降です。手順7と「早く終わった人」の表は、すぐ下に載せます。

囲みの版は、2.1.289(筆者の PC の CLI を非対話の claude -p で試した記録。確認の画面が出る操作は「承認が要る」として止まる)です。詳しくは第10回の「筆者の記録の読み方」を見てください。数値と仕様は2026年10月時点です。


手順7

手順7と「早く終わった人」の表です。

手順やること確認すること
7コミットして、git clone ~/practice ~/practice-clone で別のフォルダーに取り出し、そこを開いた新しいセッションで頼むclone 先でも一覧に出て発動したか。settings.local.json が無いこと(コミットされない)
早く終わった人CLAUDE.md の「よく使うコマンド」があれば消してスキルに任せる(第7回の「CLAUDE.md を短くする」)。個人スキル commit-message-ja を作る発動したか。個人のスキルは、どこに作ると一覧に出たか

手順7:コミットして、clone した別のフォルダーで動かす

スキルをコミットし、git clone ~/practice ~/practice-clone で別のフォルダーに取り出して、そこを開いた新しいセッションで「検証して」と頼みます。clone 先でも一覧に出て発動したか、settings.local.json が無いこと(コミットされない)を確かめます。

.claude/settings.local.json は、「常に許可」を選ぶと Claude Code が書き込むファイルです。公式の文書には、初めて書き込むとき Git のグローバルの除外に自動で入れるが、手で作ったファイルは自分で .gitignore に入れる、とあります(https://code.claude.com/docs/ja/settings )。この演習の ~/practice では、連載「Claude Code実践入門」第8回(演習 前編:準備から実装と検証まで)の準備プロンプトで作った .gitignore に入っています。

筆者の環境ではこうなった(2.1.289:手順7)
git add -A で、SKILL.md・reference/reading-diff.md・scripts/verify.sh の3つがコミットされた(コミット「ansible-verify スキルを追加」)。.claude/settings.local.json は .gitignore(3行目)にあるので、コミットされなかった。
git clone ~/practice ~/practice-clone の直後に「検証して」と頼むと、CLI は「Ignoring 6 permissions.allow entries from .claude/settings.json: this workspace has not been trusted.」と出し、スキルの呼び出しも、ansible-lint などの個別のコマンドも承認待ちになった(未信頼のフォルダーだから。連載「Claude Code実践入門」第6回の「未信頼のフォルダーでは、プロジェクトの allow が効かない」)。
clone 先を信頼した後に「検証して」と頼むと、プロジェクトの allow は効いたが、スキルの呼び出しは承認待ちだった(Skill(ansible-verify) の許可は ~/practice の settings.local.json にあり、clone 先には無い)。Claude は個別のコマンドで検証した。
→ 共有されるのはスキルのファイル(SKILL.md・scripts・reference)で、各自の「常に許可」は共有されない。

公式の permissions のページには、-p では信頼の確認の画面が出ないこと、未信頼のフォルダーでは permissions.allow が使われないこと、手で信頼を記録する方法(~/.claude.json の設定)があります。同じ表に、スキルの allowed-tools はワークスペースの信頼で止められない、ともありますが、筆者の記録ではスキルの呼び出しそのものが承認待ちだったので、この点は確かめられていません(https://code.claude.com/docs/ja/permissions の「What runs before you trust a folder」)。


早く終わった人

  • CLAUDE.md の「よく使うコマンド」を消してスキルに任せる:CLAUDE.md に検査・構文確認・差分確認のコマンドが書いてあれば消して、スキルに任せます(第7回の「CLAUDE.md を短くする」)。筆者の ~/practice の CLAUDE.md は、/init が英語で書いた22行で、コマンドの節の見出しは「Commands」です
  • 個人のスキル commit-message-ja を作る:~/.claude/skills/commit-message-ja/SKILL.md に作ります(個人のスキルの置き場所は第2回の「スキルの置き場所」)。個人のスキルは、そのPCのほかのプロジェクトのセッションにも読まれるので、試したら消すか、試験用と分かる名前にしてください。発動したか、個人のスキルをどこに作ると一覧に出たかを確かめます

筆者は、この2つを試していません。


最後の状態

筆者の練習用リポジトリの最後の状態(2.1.289)です。コミットは筆者が手で行いました。

$ git log --oneline
f257ee5 ansible-verify スキルを追加
5667c29 name[casing] を外す
b141158 NTPの参照先を3台にする
2612102 CLAUDE.md を追加
97c9de3 Initial commit

~/practice の .claude/ の下は、次のとおりです。

~/practice/.claude/
├── settings.json            allow・ask・deny(コミット済み)
├── settings.local.json      「常に許可」で書かれるルール(コミットされない)
└── skills/
    └── ansible-verify/
        ├── SKILL.md
        ├── scripts/verify.sh
        └── reference/reading-diff.md

~/practice-clone(git clone で取り出したフォルダー)には、settings.json と skills/ はありますが、settings.local.json はありません。

最後の SKILL.md の frontmatter は、手順1の出来上がりに、手順4で足した言い回しと、手順6の allowed-tools を加えた形です。

---
name: ansible-verify
description: ansible-lint、構文チェック、stg への --check --diff を順に実行し、変更内容を検証する。playbook・role・inventory などの Ansible の変更を作ったあと、本実行や prod への実行を提案する前に使う。「lint 通る?」「構文を確かめて」のように、lint や構文の確認だけを頼まれたときにも使う。
allowed-tools: Bash(bash .claude/skills/ansible-verify/scripts/verify.sh *)
---
手順7のあとの2つのフォルダーの状態を比べた図。見出しは「手順7のあとの状態:~/practice と ~/practice-clone」。左の枠 ~/practice/ には、CLAUDE.md と .claude/ があり、.claude/ の下に settings.json、settings.local.json(橙色、「コミットされない(.gitignore)」と添え書き)、skills/ansible-verify/ があり、その下に SKILL.md、reference/reading-diff.md、scripts/verify.sh がある。中央の矢印「git clone」で、右の枠 ~/practice-clone/ へつながる。右の枠には CLAUDE.md、.claude/、settings.json、skills/ansible-verify/(SKILL.md、reference/reading-diff.md、scripts/verify.sh)があり、settings.local.json は点線の枠で「来ない」とある。下の緑の枠に「共有されるのは、スキルのファイル(SKILL.md・scripts・reference)。各自の「常に許可」は共有されない」。一番下の灰色の枠に「clone 先を信頼したあとも、スキルの呼び出しは承認待ちだった。Skill(ansible-verify) の許可は settings.local.json にあり、clone 先には無いため。(筆者の環境:CLI 2.1.289 の claude -p)」とある。

4Dで振り返る

演習を、Anthropic の AI Fluency の4D で振り返ります。4D は、連載「Claude活用入門」第6回の「AI Fluencyの4D」で紹介した、AI と協働するための枠組みです(講座:https://academy.claude.com/ja/courses/ai-fluency-framework-foundations )。

AI Fluencyの4D演習を振り返る問い
委任(Delegation)どこまでスキルに任せ、どこで人に返したか。発動しない依頼は、人が頼み直したか
記述(Description)description は普段の言い回し(チームなら、メンバーの言い回し)で書けたか。止まる条件を SKILL.md に書けたか
評価(Discernment)RESULT 行と changed で確かめたか。発動しない依頼、発動してほしくない依頼も試したか
責任(Diligence)本実行と prod を人の承認に残したか。allowed-tools は狭いか。他人のスキルを読んでから使ったか

表の日本語の訳語(委任・記述・評価・責任)は、連載「Claude Code実践入門」第9回の「4Dで振り返る」と同じ筆者の訳で、公式の日本語訳は確認できていません。

筆者の記録に当てはめると、次のとおりです。

  • 委任・記述:スキルは③(--check --diff)の結果を見せて止まり、人に返しました。「lint 通る?」は発動せず、人が言い回しを足して頼み直しました
  • 評価:手順3(2.1.289)の報告は「stg で確認できていないので、prod はまだ提案できない」で、verify.sh の RESULT 行(2.1.302 で確かめ直したとき)は lint=0 syntax=0 check=4 でした。どちらも、unreachable を「通った」とは言いませんでした。「本番に流して」で発動したので、発動してほしくない依頼も試す意味がありました
  • 責任:stg への本実行も prod への --check --diff も、承認なしには進みませんでした。他人のスキルは、SKILL.md と scripts を読んでから使います(第8回の「チームで使うときの運用ルール(筆者の例)」)

自己点検

一人で振り返る点検です。演習で控えたことを、自分のスキルと設定に反映できたかを確かめます。

  • 第10回の手順3・4で足した言い回しと発動しなかった依頼は何でしたか。自分の description に、普段の言い回しとして反映できていますか
  • 発動してほしくない依頼(筆者の記録では「本番に流して」)で発動しませんでしたか。発動したあとに、本文が止まる形になっていましたか
  • 止まった画面の文言を控えましたか。保護されたパス、allowed-tools、未信頼のフォルダーのどれか、文言から分かりますか(第9回の「症状別チェックリスト」)
  • allowed-tools は verify.sh の呼び方だけに絞れていますか。自分の Claude Code の版で、事前承認が効きましたか
  • clone 先で動かなかったものは、コミットされるファイルで解決できましたか、各自の設定でしたか。他人のスキルは、読んでから使っていますか
  • 4D のうち、一番弱かったのはどれでしたか

次に学ぶなら:サブエージェント

メインの会話とサブエージェントを比べた図。左の青い枠は「メインの会話(今のコンテキスト)」で、中の白い箱に「スキルの手順・知識」があり(書類のアイコン)、その下に「今の会話に足される」と書かれている。右の緑の枠は「サブエージェント(次の連載)」で、見出しの下に「別のコンテキスト」「担当ごとの model」と書かれ、3つのロボットのアイコンの横に、haiku(調べる)、sonnet(書く)、sonnet(確認)の3つの箱が縦に並ぶ。左の枠から右の枠へ、「依頼」と書かれた矢印が伸びる。下の帯には「スキルから担当を呼び分けると、役割ごとにモデルを分けられる」と書かれている。

今回のスキルは、今の会話に手順と知識を足すものでした。サブエージェントは、別のコンテキストで動く担当で、担当ごとにモデル(model)とツール(tools)を決められます。スキルから担当を呼び分ければ、役割ごとにモデルを分けられます。たとえば、調べる担当は Haiku、書く担当と確かめる担当は Sonnet にして、判断は本体(既定の Opus 5.5)と人に残す、のような分け方です(筆者の例で、公式の推奨ではありません)。公式には、スキルの frontmatter に context: fork と agent を書いて、スキルを別のサブエージェントで動かす設定もあります。サブエージェントの定義の skills: に書いたスキルは、起動時に全文が読み込まれます。詳しくは、次の連載「Claude Codeサブエージェント入門」で扱います。

  • スキル:今の会話に手順を足す
  • サブエージェント:別のコンテキストで動く
  • 担当ごとにモデルを分けられる

スキルの model: は、スキルが動く間のモデルを決める1行です(第2回の「frontmatter のフィールド」)。使い分けは、サブエージェント入門に回します。組み込みのサブエージェントはスキルを事前に読み込みません(https://code.claude.com/docs/ja/sub-agents )。

公式の言い方(2026年10月時点)では、サブエージェントの model には sonnet・opus・haiku などの別名、完全なモデル ID、inherit を書けます(https://code.claude.com/docs/ja/sub-agents )。コストのページは、簡単なサブエージェントの作業には model: haiku を勧めています(https://code.claude.com/docs/ja/costs )。Claude Code v2.1.293 以降は、Anthropic API では haiku が Haiku 5.5 に解決されます(筆者の 2.1.302 で claude-haiku-5-5 を確認。2.1.289 では Haiku 4.5 でした)。モデルを省略したときの決まり方は、連載「Claude Codeサブエージェント入門」第5回の「モデルの決まる順番」にあります。組み込みの Explore は Haiku ではなくメインの会話のモデルで動きます(例外は、メインの会話が Fable のときだけです。連載「Claude Codeサブエージェント入門」第2回の「Explore のモデルは本体のモデル」)。

公式の教材(Claude Academy。講座の題・時間は2026年10月17日に筆者が確かめた値で、変わることがあります。レッスンごとの時間は、連載「Claude Codeサブエージェント入門」第1回の「あわせて読みたい公式の教材」にあります)

スキルから担当を呼ぶ手順は、連載「Claude Codeサブエージェント入門」第7回の「スキルと担当の組み合わせ方2つ」で、この演習の ansible-verify を使って扱います。


連載の結び

この連載は、Claude Code のスキルを、同じ指示を2回打ったら作る(第1回の「繰り返す指示は、まだ書かれていないスキル」)、description は何をするかといつ使うかを、普段の言い回しで書く(第2回の「frontmatter のフィールド」、第3回の「説明は2つの問いに答える」「普段の言い回しを入れる」)、SKILL.md は短く、資料は参照ファイルに、決まった処理はスクリプトに分けて読まずに実行する(第4回の「段階的開示:SKILL.md は目次」、第7回の「scripts/verify.sh(案)」)、事前承認は狭く書く(第5回の「allowed-tools で事前承認する」、第6回の「SKILL.md(案)」)、Git で共有し、他人のスキルは読んでから使う(第8回の「共有の手順」)、動かないときは症状から切り分ける(第9回の「症状別チェックリスト」)の順に扱いました。そして、第10〜12回の演習で、検証スキルを作り、発動させ、分け、事前承認し、別のフォルダーへ取り出して、それぞれを一度ずつ手で確かめました。

筆者の記録で目立ったのは、手元で試さないと分からないことが多いという点です。「lint 通る?」は発動せず、「本番に流して」は発動し、allowed-tools の効き方は版で違いました。スキルは、言い回しを変えて試し、版が変わったら確かめ直すものです。そして、スキルは強制ではありません。必ず守らせたいことは ask・deny のルールやフックで守り、スキルは手順と知識を足すものとして使います。


まとめ

  • 手順7:clone 先では、スキルのファイルは共有されるが、各自の「常に許可」(settings.local.json)は共有されない。未信頼のフォルダーでは、プロジェクトの allow が効かない
  • 最後の状態:~/practice には settings.local.json があり、~/practice-clone には無い。共有されるのは SKILL.md・scripts・reference
  • 4D と自己点検:任せ方・書き方・確かめ方・責任の取り方を振り返り、自分のスキルと設定に反映する
  • 次に学ぶなら:スキルは今の会話に手順を足し、サブエージェントは別のコンテキストで動く。次の連載「Claude Codeサブエージェント入門」へ

全12回の「Claude Codeスキル入門」は、これで終わりです。


連載「Claude Codeスキル入門」全12回

全回の目次と、読む順番・目的別の読み方は、Claude Codeスキル入門の入口のページにまとめています。

  1. スキルとは何か
  2. SKILL.mdを書く
  3. 発動する説明を書く
  4. 複数のファイルに分ける
  5. スクリプトとallowed-tools
  6. 検証スキルを作る(前編)
  7. 検証スキルを作る(後編)
  8. Gitでチームに共有する
  9. うまく動かないとき
  10. 演習(前編):作る・確かめる・発動させる
  11. 演習(中編):分ける・事前承認
  12. 演習(後編):共有と振り返り(この記事)
seichan

プロフィール詳細は「プロフィール」をご覧ください。
AWS Certified Solutions Architect – Professional (https://www.credly.com/badges/fd8feb88-6f1f-42ff-a94b-445bb6661cb8/public_url)
Nutanix Certified Professional - Multicloud Infrastructure 6 (https://www.credly.com/badges/5c081bef-a425-42e4-809c-85138e676630/public_url)
Palo Alto Networks System Engineer (PSE) - Hardware Firewall Professional (https://www.credly.com/badges/69dc3880-4a51-47eb-8843-47ba6ea7d013/public_url)

seichanをフォローする
生成AI
シェアする
seichanをフォローする

コメント

タイトルとURLをコピーしました