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 に分割することをお勧めします。保守しやすくなります。

📖 まとめ


📝 練習問題

  1. 基礎問題(難易度⭐):このレッスンの手順に従って code-review Skill を作成し、テスト実行してください。
  2. 応用問題(難易度⭐⭐):code-review Skill に条件分岐を追加し、少なくとも2つのプログラミング言語の固有レビュールールをサポートしてください。
  3. チャレンジ問題(難易度⭐⭐⭐):完全な「API ドキュメント生成」Skill を作成し、要件分析、プロンプト設計、テスト検証の全フローを含めてください。
Web-Tutorial.com

Web-Tutorial 技術チーム

複数の開発者によって共同維持されているプログラミングチュートリアルプラットフォーム。各チュートリアルは専門分野の開発者が執筆・レビューしています。正確で信頼性の高いコンテンツを目指しています — 問題を見つけた場合はお知らせください。

100%