Claude Codeのカスタムスキルで日常業務を自動化する実践ガイド
株式会社Bizmarq

Claude Codeには、~/.claude/commands/ にMarkdownファイルを置くだけで独自のスラッシュコマンドを追加できる「カスタムスキル」という機能があります。やっていることはClaude Codeへの指示書をファイルに書いておくだけですが、想像以上に実務で使えます。
私たちは日常業務のIssue作成・タスク管理・議事録生成・記事執筆などをこの仕組みで自動化してきました。この記事では、その過程で得た作り方と運用のコツを共有します。
なぜスキルを作るのか
Claude Codeは毎回チャットで頼めばだいたいやってくれます。それでもスキルにまとめる理由が3つあります。
- 手順の再現性 — Issue作成、Project追加、ステータス設定、優先度設定。この手順を毎回口頭で伝えるのは面倒ですし、どこかで抜けます。スキルに書けば同じ品質で何度でも回せます。
- 暗黙知の明文化 — 「ラベルは
priority:高の形式」「担当者名はアカウント名にマッピング」といった暗黙のルールを埋め込めます。自分が忘れてもClaude Codeが覚えています。 - 起動コストの削減 — 録画・文字起こし・議事録生成・共有メッセージ・TODO同期といった複数ステップが、コマンド一言で走り出す体験は大きいです。
基本の仕組み
~/.claude/commands/ に .md ファイルを置くと、ファイル名がそのままコマンド名になります。create-issues.md なら /create-issues です。
中身はMarkdownで書いた指示書で、特別な構文はほぼありません。唯一の独自機能は、スラッシュコマンドの引数を受け取る $ARGUMENTS という変数です。
# Issue一括作成 (/create-issues)
$ARGUMENTS に渡されたタスクリストからIssueを一括作成する。
## 手順
1. タスクリストをパースする
2. 各タスクに対して gh issue create を実行
3. 作成したIssueをProjectに追加する
人間が毎回伝えていた指示を、ファイルに永続化したもの。それがスキルです。
作り方は3ステップ
- ファイルを作る —
~/.claude/commands/に.mdを置く - 指示を書く — 口頭で伝えるのと同じ感覚でMarkdownで手順を書く
- 使う — チャットで
/コマンド名と打つ。引数は空白の後に続け、$ARGUMENTSで受け取る
厳密なパーサーは不要です。フォーマットが多少揺れてもClaude Codeが文脈から判断してくれるのが強みです。
実例1: Issueの一括作成
会議やチャットで出たタスクを手作業でIssue化すると、1件あたりタイトル入力・ラベル選択・Project追加・ステータス設定・優先度設定で5ステップ。10件なら50ステップです。
スキルにマッピングテーブルを持たせておけば、ラベルは内容から自動判定できます。
## ラベルマッピング
- 高、急ぎ、至急 → `priority:高`
- 開発、実装、バグ → `type:dev`
- 記事、SNS → `type:marketing`
完璧ではありませんが8割は当たるので、外れた分だけ手で直せば十分です。Issue作成はREST API、Project操作はGraphQLというツールの使い分けや、Project ID・フィールドIDといった定数もスキルに直接書いておきます。これがないとClaude Codeは毎回「Project IDは?」と聞いてくるので、一度調べた値を書いておくだけで完全に自動化できます。
実例2: 会議の録画から共有まで一気通貫
もっとも手応えがあったのが、録画・文字起こし・議事録生成・共有メッセージ作成・TODO同期を一気に回すスキルです。手作業だと30分かかる工程が、待ち時間込みで10分に縮みました。
このスキルの肝は、Claude Codeの AskUserQuestion を使って対話的に情報を集める点です。
1. AskUserQuestion でMTGタイプを選択
選択肢: 社内定例 / クライアントMTG / プロジェクト会議 / 1on1
こう書くとClaude Codeが選択肢付きの質問を出し、ユーザーはクリックで選ぶだけ。一方で毎回答えるのが面倒な場面向けに、引数によるスキップも用意します。/record-meeting internal で質問なしに即開始できるようにしておくと、対話モードと即時モードを使い分けられます。
外部のPythonスクリプトを呼ぶ場合は、作業ディレクトリ・仮想環境のパス・コマンドオプションといった環境固有の情報もスキルに持たせます。Claude Codeが迷わず実行できるようになります。
運用して見えたコツ
- 雑に書いて、使いながら育てる — 最初から完璧を目指さず、最低限の手順で動かし、迷った箇所や足りなかった情報を後から足していきます。
- 定数はスキルに直接書く — 読み手はClaude Codeです。環境変数に逃がすより、Markdownのテーブルで渡すほうが確実に読み取ってくれます。
- 対話と引数を両方用意する — 初回や選択肢が多いときは
AskUserQuestion、慣れたら$ARGUMENTSで一発起動。両方あるのが一番使いやすいです。 - パスは絶対パスで書く — カレントディレクトリは変わることがあるため、ファイルパスは絶対パスで固定します。
- エラーケースも書く — 指示にないエラーに遭遇するとClaude Codeは独自に対処しようとします。「502は数秒待ってリトライ」「ラベルが無ければ自動作成」など、想定される対処を書いておけば暴走を防げます。
- 専門処理はサブエージェントに委任する — スキル本体はワークフロー制御に徹し、Webリサーチのような専門処理はTaskツールでサブエージェントに切り出します。この分離がうまく機能します。
まとめ
スキルはコードではなくドキュメントです。プログラミング言語の文法は要らず、自分の業務フローを日本語で書き下ろしてClaude Codeに読ませるだけで動きます。
万能ではありません。Claude Codeの解釈に頼る以上、厳密な制御が必要な処理には向きません。人間がやっていた手作業を代行させる、というのが守備範囲です。
Claude Codeを日常的に使っているなら、まずは一番よく繰り返す作業を1つ、スキルにしてみることをおすすめします。私たちも最初の1本から始めて、気づけば業務ルーティンに深く入り込んでいました。