はじめに
みなさんAgent Skills使ってますか?
Claude CodeやAntigravityなど、AIを使った開発が行える環境になっていることが前提になるので、話には聞くけどよくわかっていないという方も多いかと思います。
そこで今回は前回と同じように自分がAgent Skillsを試しに作ってみた過程を紹介します。前回同様「自分にもできそう」と思ってもらえたら幸いです。
なお、Agent Skillsの使い方は使っているツールによって若干異なりそうなので、詳細は別途調べて確認してください。この記事ではとくにそのことには触れません。
Agent Skillsとは?
Claudeのドキュメント
https://platform.claude.com/docs/ja/agents-and-tools/agent-skills/overview
ざっくりした説明としては、スキルという名前の通り、AIに特定の動作を定義して覚えさせる機能です。
手順や方法がある程度決まっている作業を毎回いちいち指示しなくても「このスキル使って」と呼び出すだけで実行できるようにする機能です。
AIが特定の作業をしようとしたときに自動的に使うことを判断して使わせるような使い方もできます。
例えば、以下のようなスキルを作成しておくと、自分がローカルで行った作業をgit diffで確認してサマリを作成するという作業がsummarize-diffというスキルを呼び出すだけでよくなります。
---
name: summarize-diff
description: git diffの結果を分析し、変更点と影響をMarkdownでまとめる
---
# Diffサマリスキル
開いているファイルが存在するディレクトリで`git diff`を実行し、その結果を分析して以下のフォーマットで出力すること。
### 📄 変更の概要
(何が目的の変更か、1行で)
### 🛠 修正内容
(具体的にどのファイルで何をしたか、箇条書き)
### ⚠️ 影響範囲・注意点
(この変更によって影響が出る箇所、またはテストすべき点)
### 📝 AIによるコミットメッセージの提案
(AIがこの変更について分析して、日本語でコミットメッセージを提案する)
実行例:
ユーザー:
summarize-diffしてAI (summarize-diffスキル):
(内部でgit diffを実行し、その結果を解析)📄 変更の概要
ダークモードの基本実装とテーマ切り替え機能の追加。
🛠 修正内容
ThemeContext.js: テーマの状態管理(Dark/Light)とローカルストレージへの保存ロジックを実装。ThemeToggle.js: ヘッダーに配置する切り替え用スイッチコンポーネントを作成。globals.css: カラーパレットをCSS変数に移行し、ダークテーマ用の色定義を追加。⚠️ 影響範囲・注意点
CSS変数を使用していない古いコンポーネントでは色が正しく反映されない可能性があるため、順次移行が必要です。
📝 AIによるコミットメッセージの提案
feat: ダークモードの基本実装とテーマ切り替え機能の追加 - ThemeContextによるテーマ状態管理の実装 - テーマ切り替え用コンポーネントの追加 - CSS変数への移行とダークテーマ用カラー定義の追加
ちなみに、このスキルは今回記事を作成するために適当にAIに作らせたものですが、もう少しちゃんと作り込んだら普通に便利そうな気がします。
なにを作ったの?
自分が書きたいと思った雑なメモからそれなりにしっかりとした文書を作成するスキルを作りました。
具体的には以下のスキルを作成しています。
- メモからコンセプトやアウトラインを考えてドラフト版の文書を作成するスキル
- 文書を見ていろいろな観点からレビューして修正案を考えるスキル
全体の流れを図解すると、以下のようなイメージです。
なお、これらのスキル作成も大部分はAIにやらせています。
下手に自分で作り込むよりも、今回やった作業からスキルとして実装したら便利そうなことを考えてとかAIに指示して作らせるのもありだと思います。
1. ドラフト版を作成するスキル
スキル定義
---
name: write-article
description: メモから記事を執筆するスキル
---
# 記事執筆スキル
## Step 0: セットアップ
1. ユーザーに記事のフォルダ名(ID)を確認
- 例: `git-intro`, `ai-writing-workflow`
2. `articles/{article-name}/` を作成
- 日付フォルダでも可(例: `articles/2026-02-04/`)
3. `00_memo.md` を作成
- 以下の内容で初期化:
```markdown
# メモ
> 今日書きたいことを自由に書き殴ってください。
> 構造化、丁寧語、結論などは気にしなくてOKです。
```
4. ユーザーにメモの記入を依頼し、完了まで待機
---
## Step 1: メモの内容の構造化
記事の要素として必要な情報を整理する。
1. `articles/{article-name}/00_memo.md` を確認
2. `structure_template.md` の構造にメモの内容を分解する
3. `01_structure.md` を生成
4. ユーザーに確認を依頼
5. OKなら次へ
---
## Step 2: コンセプトの生成
どんなコンセプトでストーリーを考えたらよいかを提案する。
1. `01_structure.md` を参照
2. タイトル候補、タグ、コンセプトを生成
3. `02_concept.md` を生成
4. ユーザーに確認を依頼
5. OKなら次へ
---
## Step 3: アウトラインの生成
文書のアウトラインを作成する。
1. `02_concept.md` を参照
2. 記事の構成を生成
3. `03_outline.md` を生成
4. ユーザーに確認を依頼
5. OKなら次へ
---
## Step 4: ドラフトの生成
ここまでの内容から文書を生成する。
ただし、ここで生成した文書はドラフト版であり、最終的には人間が書き直すことを想定している。
その点を考慮し、人間が書き直す際のポイントや注意点を含めるようにすること。
1. `03_outline.md` を参照
2. `04_draft.md` を生成
3. **注意**: このドラフトは「AIが書いた参考例」であり、最終版ではない
- この後に人間がこれを参考にしながら書き直すことを踏まえた文書にすること
---
## Step 5: レビュー
1. `multi-reviewer` スキルを使用して `04_draft.md` をレビュー
2. ファシリテーターからの修正提案を提示
3. `05_review.md` を生成
4. ユーザーに確認・承認を依頼
5. 修正の承認を得たら `04_draft.md` を修正
---
## 参照ファイル・スキル
- `skill: multi-reviewer` — レビュースキル
フロー
まずは書きたいことを雑に書き殴って、そこから徐々にドラフト版として作成させていくフローにしています。
各フェーズからのアウトプットを人間が確認し、適宜修正を重ねながら進めることで、なるべく効率的にドラフトの時点で自分の意図に沿った内容が作成されるようにしています。
こうすることでAIが勝手に意図に反した補完をしたり嘘を混入させることを防ぐようにしているのと、同時に自分が気づいていない視点や構成を提案してもらうことで、自分の考えの解像度が上がっていくことを期待しています。
ちなみに構造化のテンプレートは今は以下のようにしていますが、ここは適当に試行錯誤しているものなので参考程度に見てください。
テンプレート
# 抽出項目
## 必須項目
### 1. テーマ
何について書きたい?
### 2. 動機
なぜ今これを書きたい?(きっかけ、背景)
### 3. ターゲット
読んでほしい人は誰?(技術レベル、職種、前提知識など)
### 4. ゴール
読者に何を持ち帰ってほしい?(読了後にどうなってほしい?)
### 5. 独自性
自分だけが語れる視点・経験は?(他の記事との差別化)
## 任意項目
### 6. 切り口
どんなアプローチで書きたい?(例:入門、比較、体験談、ハンズオン)
### 7. トーン
どんな雰囲気で書きたい?(例:カジュアル、フォーマル、熱量高め)
### 8. 伝えたいポイント
特に強調したい主張やメッセージ
### 9. 具体例・体験談
自分の経験から使えるエピソード
### 10. 避けたいこと / NGワード
使いたくない表現や避けたいアプローチ(例:「簡単」と言わない)
### 11. 参考記事・文献
参考にしたい既存記事やドキュメント
### 12. 記事タイプ
AIがメモの内容から推奨タイプを提案する(ユーザーが最終決定)。
| タイプ | 内容 | 目安文字数 |
|-------|------|-----------|
| Tips | 1つの解決策・小ネタ | 500〜1000字 |
| 実用入門 | 概念 + 始め方 + 次のステップ | 2500〜4000字 |
| 標準解説 | 実践的な使い方含む | 3500〜5500字 |
| 詳細解説 | 深掘り・応用まで | 5000字以上 |
| チュートリアル | ハンズオン形式 | 可変(手順数による) |
**AIへの指示**: メモの深さや広さから、最適なタイプを1つ提案すること。
### 13. 公開先・媒体
Qiita / 社内ブログ / 個人ブログ など
### 14. 読者のBefore/After
読む前の状態と、読んだ後の理想状態
### 15. 前提知識
読者に求める事前知識
### 16. 関連キーワード
SEO的に意識したいワード
### 17. 構成の希望
特定の構成パターン(例:Q&A形式、ストーリー仕立て)
### 18. 補足情報・制約
その他の制約や補足(例:「会社名は出さない」「スクショは使わない」)
---
## 19. メモの品質基準(足切りライン)
回答生成に進むために最低限必要な情報量。これらを満たさない場合、AIは不足を指摘する。
1. **テーマが明確か**: 「何について書くか」が一言で言えるか
2. **動機・背景があるか**: 「なぜ書くか」「何を伝えたいか」が含まれているか
3. **独自性の種があるか**: 一般的な説明だけでなく、個人の視点や経験が含まれているか
4. **長さ**: 箇条書き3行以上、または100文字以上
> **AIへの指示**: 上記基準を満たさない場合、無理に推測せず「情報不足」としてユーザーに追記を依頼すること。
なお、なぜ敢えて明示的に「ドラフト版」として作成させているかというと、文書を作成するというのは自分の考えを整理して理解度をあげることだと考えているからです。
AIには自分の考えを整理したりブラッシュアップしたりするのを手伝ってくれることに期待していて、自分が理解していないことや思ってもいないことを適当にそれっぽくアウトプットしてもらうことには期待していません。
なので結局AIを使っても文書作成には結構な時間がかかっていたりドラフト版と完成版では大きく内容が変わっていたりするのですが、圧倒的に短い時間で質の高い文書を作成できるようにはなったと感じています。
2. 多角的なレビュースキル
フロー
スキル定義
---
name: multi-reviewer
description: 複数の視点から記事をレビューする
---
# マルチレビュアースキル
## 目的
複数の異なる視点から記事をレビューし、多角的なフィードバックを提供する。
## レビュー人格
### 1. 初心者視点 👶
**役割**: 知識不足なターゲット読者として読む
**チェック項目**:
- 専門用語の説明が十分か
- 前提知識なしで理解できるか
- 躓きそうなポイントがないか
### 2. 専門家視点 🎓
**役割**: 技術的正確性を確認
**チェック項目**:
- 内容が技術的に正確か
- 最新の情報か
- 重要なポイントが抜けていないか
### 3. 編集者視点 ✍️
**役割**: 文章の品質を確認
**チェック項目**:
- 論理の流れが自然か
- 冗長な表現がないか
- 同じ表現の繰り返しがないか
- セクション間のつながり
- 読みやすさ(段落・一文の長さ)
### 4. SEO視点 🔍
**役割**: 検索性を確認
**チェック項目**:
- タイトルにキーワードが含まれているか
- 見出し構造が適切か
- メタ情報が十分か
### 5. 読者感情視点 💭
**役割**: 読者の感情的反応を予測
**チェック項目**:
- 読後に行動したくなるか
- 共感できる部分があるか
- ネガティブな印象を与えないか
### 6. 視覚演出・図解提案 🖼️
**役割**: 文章の理解を助け、読者の目を引く視覚的要素を提案する
**チェック項目**:
- 比喩の視覚化: 抽象的な概念(例: AIとの共創)をグラフやイラストで表現できないか
- 構造の可視化: 手順や比較を、文章ではなく「図解」や「比較表」で一目で伝えられないか
- 手触り感の演出: スクリーンショットや実際のコード片(スニペット)を入れるべき箇所はないか
- アイキャッチ: 読者が流し読みした時に、手が止まるようなインパクトのある視覚的工夫はないか
**出力**: 「ここに[具体的な図の内容]を入れると、[〇〇という効果]がある」と能動的に提案
### 7. 批判者 👹
**役割**: 粗探し、ツッコミどころを見つける
**チェック項目**:
- 論理の飛躍や矛盾はないか
- 「本当にそう?」と疑問を持てる箇所
- 反論されそうなポイント
**スタンス**: あえて意地悪に読む
### 8. AIっぽさ検出 🤖
**役割**: AI生成っぽい表現を検出
**チェック項目**:
- 無難すぎる表現がないか
- 「〜することが重要です」などの定型句
- 人間味のない文章
**出力**: 「この表現はAIっぽい」と指摘
### 9. 天然 🙃
**役割**: そもそも論や本質的な問いをする
**チェック項目**:
- 行間や空気を読まずに無邪気に素朴な疑問をぶつける
- 途中で「なんの話?」と思わないか
- 専門用語を全部無視しても意味が通じるか
**スタンス**: 一切の偏見や前提知識なしで読む
---
### 10. ファシリテーター 🎯
**役割**: 9人の意見をまとめてユーザーに提案
**責任**:
- 9人の意見を聞いて整理し、矛盾を調整する
- **重要度の判断**: 文章の微調整だけでなく、構成や視覚的演出(図解等)の提案も積極的に取り入れる
- 優先度をつけて修正提案を作成
- ユーザーに分かりやすく伝える
## 使い方
1. 9人格が順番にレビュー(内部処理)
2. AIが意見を統合・優先度付け
3. **修正提案**として出力(ユーザーは提案を承認するだけ)
## 出力形式
```markdown
## マルチレビュアーによる「マルチレビュアースキル」診断
人格と内容をテーブル形式で出力
## 修正提案
ファシリテーターがまとめた重要な指摘を出力
### 必須修正(重要度: 高)
1. **[修正項目の概要]**
- **箇所**: ...
- **問題**: ...
- **修正案**: ...
2. **[修正項目の概要]**
- **箇所**: ...
- **問題**: ...
- **修正案**: ...
### 推奨修正(重要度: 中)
...
### 軽微な改善(重要度: 低)
...
```
## 統合ロジック
- 複数人格が同じ指摘 → 重要度UP
- 矛盾する指摘 → AIが判断して最適な提案を選択
- ユーザーは「承認/却下」を選ぶだけ
こちらのコンセプトは、複数の異なる観点から文書をレビューさせることで自分でも気づけない視点からのフィードバックを得るというものです。
ドラフト版を自分がレビューするの面倒だし、自分で書いた文章も誰かにレビューしてもらいたいと思って作成したものを徐々にブラッシュアップしていったらこうなりました。
正直AIの活用方法として考えるものとしては割とありきたりな方法だと思います。
これを作っておくことで、ドラフト版やちょっとした手書きの文章に対してとりあえずこのスキルを使って修正もAIに任せるのを何度か繰り返すだけでもなかなかの品質の文書が作成されたりします。
とくにおすすめしておきたいのは、まとめ役を定義しておくことと、AIはイエスマンになりがちなので意図的に批判的な視点を持った役割を定義しておくことです。
ここでは「批判者」と「天然」がその役割をしていますが、この2つがとくに有益な意見を出してくれます。
ちなみに一番役立たずなのは「AIっぽさ検出」です。これはおそらく期待した動きをしてもらうためにはだいぶ作り込む必要があると思います。
まとめ
今回は文書作成を効率化したいと思い、Agent Skillsを使って作成してみました。
前回の記事の時点でこのスキルを活用しながら書いていますが、だいたいどんなことをどんな感じで書こうというアイデアが早々に思い浮かんで、伝えたいことや文書の推敲に時間をかけて集中することができるようになりました。
このようにAIに任せられる範囲、人間がやった方がよい範囲、人間にとって嬉しいAIの出力方法などを考えることで、100%は難しくても大部分をAIに任せて効率化させるといったことが可能になる作業は多いのではないかと思います。
スキル作成そのものもAIと相談しながらAIに作成してもらうことができて全然難しいことではないため、身近で簡単そうな作業から試して「AIを活用する」ということを実際に体験してみると良いかと思います。
おまけ:この記事を本記事のレビュースキルでレビューしてみた例
ある程度完成度が高くなってくると全体的に褒めすぎで役に立ちにくくなってくる傾向があるので、もう少し批判的にさせてもいいかもしれない。
さらにおまけ
この記事を作成するときにAIが作成したドラフト版です。見てみたい方はどうぞ。
https://qiita.com/Hurry-Co-Jp/private/f72f668b44c1b56c16d3
