結論から言うと、Claude Codeを最強の相棒にする鍵は「自分だけの拡張」にある。1人でのSaaS開発において、AIに毎回同じ指示を出す時間は最大の損失だ。開発しているThreadPostでも、定型的な作業をどれだけAIに押し込めるかが勝負だった。
Claude Codeには、ユーザーが定義できる拡張機能として「カスタムコマンド(Commands)」と「スキル(Skills)」の2種類が存在する。これらを使い分け、自分専用の「開発フロー」を構築することで、生産性は劇的に向上する。
この記事では、1人開発で実践しているClaude Codeのカスタムスキル作成術を7つのステップで徹底解説する。初心者でも今日から始められるように、具体的な手順と設計の勘所をまとめた。この記事を読み終える頃には、Claude Codeは世界に一つだけの、専用の超有能な開発パートナーに進化しているはずだ。
SNS運用を自動化しませんか?
ThreadPostなら、投稿作成・画像生成・スケジュール管理までAIがサポート。
1. 前提知識:拡張機能の置き場所と準備
Claude Codeの拡張を始める前に、まずはディレクトリ構造を理解する必要がある。設定は「プロジェクト単位」と「ユーザー単位」の2箇所で管理できる。
プロジェクト単位の設定は、リポジトリのルートにある「.claude」ディレクトリに配置する。ここに置いた設定はリポジトリに含まれるため、チームメンバーと共有したり、別の環境で開発を再開したりする際にそのまま引き継げる。
一方、ユーザー単位の設定は、PCのホームディレクトリ配下の設定フォルダに保存される。特定のプロジェクトに依存しない、自分だけの便利ツールはこちらに置くのが正解だ。まずはプロジェクトのルートで「mkdir -p .claude/commands」と「mkdir -p .claude/skills」を実行し、箱を作るところから始める。
2. ステップ1:カスタムコマンドで「週3回の指示」を自動化する
最初のステップは、カスタムコマンドの導入だ。カスタムコマンドとは、Claude Codeのチャット欄で「/」から始まるスラッシュコマンドとして呼び出せる定型指示のことだ。
推奨する基準はシンプルだ。同じ指示を週に3回以上打っているなら、それは即座にコマンド化すべきサインだ。たとえば「差分を確認してコミットメッセージを生成して」や「このファイルのテストコードを書いて」といった指示が該当する。
作成方法は非常に簡単だ。「.claude/commands/」配下に、コマンド名にしたいファイル名のMarkdownファイルを置くだけでいい。たとえば「review.md」というファイルを作り、その中に「現在の変更内容をセキュリティとパフォーマンスの観点でレビューして」と書いておけば、次からは「/review」と打つだけでその指示が発動する。
この「入力コストの削減」と「指示品質の均一化」が、1人開発のスピードを支える。手で打つと毎回微妙に指示内容がブレるが、コマンド化すれば常に最高の品質でAIが動く。
3. ステップ2:スキル(Skills)で「常に守るべきルール」を自動化する
コマンドの次は、スキルの活用だ。コマンドが「人間が明示的に呼び出すもの」であるのに対し、スキルは「AIが状況に応じて自律的に適用するもの」だ。
たとえば、プロジェクト独自のアーキテクチャ規約や、必ず守るべきコーディングスタンスがあるとする。これをスキルとして定義しておけば、「新機能を追加して」と頼んだ際、AIは自らスキルを参照し、規約に沿ったコードを生成するようになる。
具体的には「.claude/skills/」配下にディレクトリを作り、その中に「SKILL.md」を配置する。このファイルに「APIを追加する際は必ずこのディレクトリ構造を守る」といったルールを記述しておく。これにより、いちいち指示しなくてもAIが勝手に「空気を読んで」動くようになる。これが、AI駆動開発における「配管」の自動化だ。
しんたろー:
Claude Codeで毎日コードを書いている身からすると、カスタムコマンドは「脳の外部メモリ」だ。
毎回同じことを考えなくて済むから、クリエイティブな作業に集中できる。
特にThreadPostの開発では、煩雑なデプロイ前チェックをコマンド一つで終わらせるようにしてから、ミスが激減した。
4. ステップ3:SKILL.mdの「description」を検索クエリとして設計する
スキルを作ったのにAIが呼んでくれない。そんな悩みを持つ初心者は多いが、原因の9割は「description」フィールドの書き方にある。
Claude Codeは、セッション開始時に全てのスキルの説明文(description)を読み込み、ユーザーの発言と「意味が近いもの」を自動で選択する。つまり、descriptionは「機能の説明」ではなく「ユーザーがどう頼むか」という検索クエリとして書く必要がある。
たとえば、SEO改善のスキルを作る場合、「SEOを改善する機能」と書くのではなく、「ユーザーが『SEO改善』や『検索順位を上げたい』と依頼したときに起動する」と記述する。AIが理解しやすい「起動キーワード」を盛り込むことで、呼び出し精度は劇的に向上する。
もし複数のスキルが競合して誤爆する場合は、「〜のときには使わない」という否定条件を追記するのも有効なテクニックだ。
5. ステップ4:「判断」を型にはめず「配管」に徹する設計思想
ここが最も重要なポイントだが、何でもかんでも自動化すればいいわけではない。スキル化すべきなのは、あくまで「配管(定型作業)」の部分だけだ。
AIに「何を考えるか」という「判断」のプロセスまで固定させてはいけない。たとえば、新しいアイデアのブレスト手順を厳密にスキル化してしまうと、AIの思考が特定のパターンに収束し、発想の広がりが死んでしまう。
スキルにすべきなのは「次回も全く同じ手順で再現できる作業」だ。ファイルの配置、テストの実行、定型的なフォーマットチェック。これらは迷わずスキル化する。一方で、設計の意思決定やユーザー体験の検討といった「判断」が必要な部分は、あえて型にはめず、人間がAIと対話しながら進める余白を残しておく。
しんたろー:
最初、開発の全工程をスキルで固めようとして失敗した。
思考のプロセスを固定すると、AIが「マニュアル人間」のようになってしまい、面白いアイデアが出なくなった。
今は「面倒な作業はスキル、大事な判断はチャット」という役割分担を徹底している。
ここまで読んだあなたに
今なら無料で全機能をお試しいただけます。設定後はAIが投稿案を毎日生成。確認して選ぶだけ。
6. ステップ5:ProjectとUserスコープを使い分ける
開発効率をさらに高めるには、スコープの使い分けをマスターする。Claude Codeの拡張は、配置場所によって適用範囲が変わる。
以下の表に、それぞれの特徴と使い分けをまとめた。
| 項目 | Projectスコープ(リポジトリ内) | Userスコープ(ホームディレクトリ) |
| :--- | :--- | :--- |
| 配置場所 | .claude/commands/ または .claude/skills/ | 設定ディレクトリ配下 |
| 共有範囲 | チームメンバー全員 | 自分のみ |
| 適した内容 | プロジェクト固有の規約、ビルド手順 | 個人のメモ、汎用的なリファクタリング |
| メリット | 開発環境の標準化ができる | どのプロジェクトでも同じツールが使える |
| おすすめ度 | ★★★★★ | ★★★★☆ |
1人開発であっても、将来的にチームで動く可能性や、GitHub等で公開することを考えるなら、基本的にはProjectスコープで管理するのがおすすめだ。プロジェクトの文脈(コンテキスト)をAIに正しく伝えるためにも、リポジトリ内に設定を閉じ込めておく方が管理がしやすい。
7. ステップ6:AI自身にスキルを作らせる「自動化の自動化」
初心者が自分で「SKILL.md」を一から書くのはハードルが高い。そこで、Claude Codeの対話能力をフル活用する。
一番効率的な方法は、手動で作業を完結させた直後に、Claude Codeに対してこう頼むことだ。「今やった一連の手順を、次から一発で呼べるスキルにして。説明文は『APIドキュメントを更新する』でお願い」
これだけで、AIは今行った操作の履歴を分析し、適切なディレクトリ構造と「SKILL.md」の雛形を自動で生成する。あとは人間がその内容を軽くレビューし、必要に応じて微調整するだけでいい。この「AIに自分の拡張を作らせる」というサイクルを回せるようになると、開発環境の進化スピードは一気に加速する。
8. ステップ7:引数($ARGUMENTS)を活用してコマンドを汎用化する
カスタムコマンドをより強力にするのが、引数の活用だ。コマンドファイルの中で「$ARGUMENTS」という変数を使うと、コマンド実行時に渡した文字列を指示の中に埋め込める。
たとえば、「test.md」というコマンドを作り、中身を「$ARGUMENTS のテストコードを書いて」としておく。すると、チャット欄で「/test src/logic.ts」と打つだけで、特定のファイルに対するテスト生成指示が完成する。
さらに「$1」「$2」といった位置引数を使えば、「/rename old.ts new.ts」のように複数のパラメータを扱うことも可能だ。これにより、単なる定型文の呼び出しを超えた、自分専用の「高機能CLIツール」をClaude Codeの中に構築できる。
9. つまずきポイント:初心者がハマりやすい3つの罠
Claude Codeの拡張に挑戦する際、多くの人が直面する罠がある。あらかじめこれを知っておけば、無駄な試行錯誤を減らせる。
- スキルの作りすぎによる混乱
感動して何でもスキルにすると、AIがどのスキルを使うべきか迷い、動作が不安定になる。「再現性があるか」を自問し、不要なスキルは削除するかコマンドに格下げする。
- descriptionが曖昧すぎる
「いい感じにするスキル」のような曖昧な説明では、AIはいつ呼び出せばいいか判断できない。具体的な起動キーワード(例:デプロイ前、リファクタリング時)を必ず含める。
- ローカル環境のパス不一致
スキル内で外部スクリプトを叩く場合、相対パスの指定ミスで動かないことが多い。AIにパスを確認させるか、プロジェクトルートからの絶対的な位置関係を意識して記述する。
10. FAQ(よくある質問)
Q1: スキルとコマンド、どちらを先に作るべき?
まずは「コマンド」から始めるのがおすすめだ。コマンドは「いつ実行するか」を人間が決めるため、動作が予測しやすく、作成もMarkdownファイルを置くだけと非常に簡単だ。コマンド化して定型作業が整理されてきたら、次に「常に守ってほしいルール」をスキルとして切り出すと、スムーズに拡張できる。
Q2: スキルが期待通りに起動してくれません。
原因の9割はSKILL.md内のdescriptionだ。機能の説明(例:SEOを改善する)ではなく、ユーザーが実際に言う言葉(例:SEO改善と依頼したとき)を記述する。また、競合するスキルがある場合は、descriptionに「〜には使わない」という否定条件を追記するだけで、誤爆が劇的に減る。
Q3: AIに手順を覚えさせるコツはありますか?
作業が終わった直後に、Claude Codeに対して「今やった一連の手順を、次から一発で呼べるスキルにして」と頼むのが一番だ。AIが自動でSKILL.mdの雛形を作成する。これをベースに、descriptionを人間が微調整するのが最も効率的な作成フローになる。
Q4: チームで共有すべきコマンドはどこに置くべき?
プロジェクトルートの「.claude/commands/」に配置する。ここに置くことで、リポジトリをクローンしたチームメンバー全員が同じコマンドを利用できるようになる。個人のメモや特定のプロジェクトに依存しない作業ツールは、Userスコープ(ホームディレクトリの設定ディレクトリ)に置くのが正解だ。
Q5: スキルをたくさん作りすぎて管理が大変です。
「その作業は、次回も同じ手順で再現できるか」を自問する。もし手順が毎回変わるような「判断」を伴う作業なら、スキル化すべきではない。スキルはあくまで「配管(定型作業)」に徹し、判断が必要な部分は人間が握り続けることで、スキルの乱立と品質の低下を防げる。
11. まとめ
Claude Codeのカスタムスキルとコマンドを使いこなすことは、1人開発者にとって「もう一人の自分」を雇うことに等しい。
- 週3回以上の指示は「コマンド」にする
- プロジェクトの規約は「スキル」に任せる
- descriptionは「ユーザーの言葉」で書く
- 「判断」は人間、「配管」はAIという役割分担を徹底する
この原則を守るだけで、開発効率は驚くほど変わる。まずは今日、自分が一番よく打っている指示を一つだけ選び、.claude/commands/ に保存することから始める。その小さな一歩が、爆速開発への入り口になる。
Claude Codeの定型作業に疲れたら、この記事を参考に自分だけのコマンド・スキルを育てて開発を自動化する。

この記事が参考になったら、ThreadPostを試してみませんか?
投稿作成・画像生成・スケジュール管理まで、AIがサポートします。
ThreadPostをもっと知る