Skills: 最初の Skill を作成する
最終更新:2026-08-31
紙の上で得た知識は浅く、この事を本当に知るには自ら実践する必要があります。このレッスンではゼロから実際に使える Skill を作成します。
1. 要件分析
コードレビュー Skill を作成します。要件は以下の通りです:
| 要件項目 | 説明 |
|---|---|
| 目標 | コードを自動レビューし、構造化レビューレポートを出力 |
| レビュー観点 | セキュリティ、パフォーマンス、可読性、ベストプラクティス |
| 出力フォーマット | 深刻度別にランク付けされたレビューチェックリスト |
| トリガー方式 | キーワード "review" または手動呼び出し |
| ツール要件 | ファイル読み込み、コード検索 |
2. Skill ファイルの作成
(1) ファイルの作成
BASH
# Claude Code
touch .claude/skills/code-review.md
# OpenCode
touch skills/code-review.md
(2) Frontmatter の作成
YAML
---
name: code-review
description: "自動コードレビュースキル、セキュリティ、パフォーマンス、可読性、ベストプラクティスをチェック"
triggers:
- keyword: "review|コードレビュー|レビュー"
tools:
- Read
- Grep
- Glob
---
(3) プロンプト本体の作成
MARKDOWN
# コードレビュースキル
## ロール
あなたはシニアコードレビュー専門家で、10年以上のフルスタック開発経験を持ちます。
## レビューフロー
1. Read ツールで対象ファイルを読み込む
2. Grep で関連コンテキストを検索(型定義、インターフェースなど)
3. 以下の4つの観点でレビュー
## レビュー観点
### セキュリティ
- SQL インジェクション、XSS、CSRF などの一般的な脆弱性
- 機密情報のハードコーディング
- 安全でない依存関係の使用
### パフォーマンス
- N+1 クエリ、不要なループ
- メモリリークリスク
- キャッシュ/インデックスの欠落
### 可読性
- 命名が明確か
- 関数が長すぎないか(>50行で警告)
- コメントが十分か
### ベストプラクティス
- プロジェクトの規約に従っているか
- エラーハンドリングが適切か
- 冗長なコードがないか
## 出力フォーマット
各問題について出力:
- 📍 場所:ファイル名:行番号
- 🔴/🟡/🟢 深刻度
- 📝 問題の説明
- ✅ 修正提案(コードサンプル付き)
3. Skill のテスト
(1) 手動トリガー
会話でトリガーキーワードを入力:
TEXT
📖 参照専用
あなた: review src/auth/login.py
AI: (自動的に code-review skill をロードし、レビューフローを実行)
(2) 動作の確認
Skill が正しくロードされたか確認:
TEXT
📖 参照専用
✅ 対象ファイルを自動的に読み込んだか?
✅ 4つの観点でレビューしたか?
✅ ランク付けされたレビューレポートを出力したか?
✅ 具体的な修正提案を提示したか?
(3) 調整と最適化
出力が理想的でない場合、プロンプトを調整:
MARKDOWN
# 最適化:サンプル出力を追加
## サンプル出力
📍 場所:src/auth/login.py:42
🔴 深刻:SQL インジェクションリスク
📝 文字列結合で SQL クエリを構築している
✅ 提案:
```python
# Before
query = f"SELECT * FROM users WHERE name = '{username}'"
# After
query = "SELECT * FROM users WHERE name = ?"
cursor.execute(query, (username,))
---
## 4. 反復による改善
### (1) コンテキスト認識の追加
```markdown
## コンテキストルール
- .eslintrc がある場合、そのルールに従ってレビュー
- pyproject.toml がある場合、設定に従っているかチェック
- レビュー前に Glob でプロジェクトの技術スタックを確認
(2) 条件分岐の追加
MARKDOWN
## 条件付きレビュー
- Python プロジェクト:type hints、docstring を追加チェック
- TypeScript プロジェクト:any 型、型安全性を追加チェック
- Go プロジェクト:error handling、goroutine リークを追加チェック
(3) チーム規約の追加
MARKDOWN
## チーム規約
- 関数は30行以内(チーム規約は50行より厳格)
- ユニットテストのカバレッジが必須
- API エンドポイントには Swagger ドキュメントが必須
Alice は反復を完了した後、チームのコードレビュー効率が3倍に向上しました。Bob は言います:「重要なのはプロンプトを具体的にすること——『コードレビュー』では曖昧すぎます。『4観点でランク付け出力』こそが実行可能な指示です。」
❓ よくある質問
Q Skill が自動ロードされない場合は?
A ファイル名とディレクトリが正しいか、frontmatter の triggers が入力したキーワードと一致するか、プラットフォームが自動ロードをサポートしているかを確認してください。
Q プロンプトはどのくらいの長さが適切ですか?
A 有効であれば長さは問いません。実用的な Skill は通常 50〜200 行です。重要なのは具体的で操作可能であることであり、長く曖昧であることではありません。
Q 1つの Skill で複数の言語を処理できますか?
A できます。条件分岐を使います。ただし、言語ごとに独立した Skill に分割することをお勧めします。保守しやすくなります。
📖 まとめ
- Skill 作成の3ステップ:要件分析 → ファイル作成 → テストと反復
- Frontmatter でメタ情報を定義し、Markdown 本文で動作を定義
- プロンプトは具体的で操作可能に——ロール、フロー、観点、出力フォーマットを含む
- サンプル出力とコンテキストルールで継続的に反復最適化
📝 練習問題
- 基礎問題(難易度⭐):このレッスンの手順に従って code-review Skill を作成し、テスト実行してください。
- 応用問題(難易度⭐⭐):code-review Skill に条件分岐を追加し、少なくとも2つのプログラミング言語の固有レビュールールをサポートしてください。
- チャレンジ問題(難易度⭐⭐⭐):完全な「API ドキュメント生成」Skill を作成し、要件分析、プロンプト設計、テスト検証の全フローを含めてください。