Codex CLI Skills

Skills(スキル)はCodex CLIの拡張メカニズムであり、カスタムワークフローや自動化タスクを作成できます。スキルを使用すると、特定のシナリオにおけるCodexの動作方法を定義できます。


スキルとは?

スキルは設定可能な動作パターンであり、Codexに特定の種類のタスクの処理方法を指示します。独自のスキルを作成して次のことができます:

Codex 技能系统

  • 一般的な開発タスクの自動化
  • 特定分野の処理フローの定義
  • コードレビューの基準のカスタマイズ
  • プロジェクト固有のテンプレートとルールの作成

スキルシステムにより、Codexはさまざまなプロジェクトやワークフローのニーズに適応できます。まるでチームに専任の開発アシスタントを割り当てたかのようです。


スキルディレクトリ

Codexは以下の場所からスキルを読み込みます:

場所説明
~/.codex/skills/グローバルスキルディレクトリ。すべてのプロジェクトで利用可能
{项目目录}/.codex/skills/プロジェクトレベルのスキルディレクトリ
指定されたディレクトリを設定するconfig.toml の skills.directory で指定

スキルディレクトリの設定

カスタムスキルディレクトリ

[skills]
enabled = true
directory = "~/my-codex-skills"

スキルファイルの構造

各スキルは独立したフォルダであり、次のファイルを含みます:

skill-name/
├── skill.md          # 技能定义文件(必需)
└── (可选的辅助文件)

skill.md ファイル形式

スキル定義の例

---
name: コードレビュー
description: 深いコードレビューを実行し、改善提案を提供します
trigger: /review
---

# コードレビュースキル

ユーザーがコードレビューを要求した場合、次の手順を実行します:

## レビュー基準

1. コードの可読性
2. パフォーマンスの問題
3. セキュリティ上のリスク
4. ベストプラクティスの順守状況
5. テストカバレッジ

## 出力形式

次の構造化レポートを提供します:
- 問題リスト(重大度順)
- 改善提案
- コードスコア(1-10)

スキルのメタデータ

各スキルファイルの先頭にはYAML形式のメタデータを含める必要があります:

フィールド型説明必須
namestringスキル名である
descriptionstringスキルの説明である
triggerstringトリガーキーワード否

入力がスキルのtriggerに一致すると、Codexは自動的にそのスキルを使用してタスクを処理します。


カスタムスキルの作成

例として簡単なスキルを作成してみましょう:

ステップ1: スキルディレクトリの作成

スキルフォルダの作成

mkdir -p ~/.codex/skills/テスト生成

ステップ2: スキル定義の作成

skill.md の作成

---
name: テスト生成
description: コードの単体テストを生成します
trigger: テスト
---

# テスト生成スキル

ユーザーがテスト生成を要求した場合、次の手順を実行します:

## 手順

1. 既存コードの機能を分析する
2. テストが必要な境界条件を特定する
3. 適切なテストフレームワークを選択する
4. テストケースを生成する

## テスト基準

- カバレッジには通常ケース、境界ケース、エラーケースを含める必要があります
- 各テストケースは独立しており、他のテストの実行順序に依存しない必要があります
- 明確なテスト関数名を使用します

## 出力形式

直接実行可能なテストコードを生成し、必要なテストデータを含めます。

ステップ3: スキルの使用

これで、「テスト」を含む内容を入力すると、Codexは自動的にこのスキルを使用します:

スキルのトリガー

# これらの入力は「テスト生成」スキルをトリガーします
この関数のテストを生成してください
このモジュールをテストしてください

組み込みスキル

Codexには一般的なスキルがいくつか組み込まれています:

スキル名トリガーワード説明
コードレビューreview、レビューコードレビューを実行し、改善提案を提供します
デバッグdebug、デバッグ問題の特定と修正を支援します
リファクタリングrefactor、リファクタリング機能を変更せずにコード構造を最適化します
ドキュメントdoc、ドキュメントコードドキュメントを生成します

組み込みスキルの動作を上書きして、プロジェクトのニーズに合ったバージョンを作成できます。


スキルの優先順位

複数のスキルが一致する場合、Codexは次の優先順位で選択します:

  1. 完全一致(完全に一致するトリガーワード)
  2. 部分一致(入力がトリガーワードを含む)
  3. 意味的一致(AIが関連性を判断)

特定のスキルを強制的に使用

スラッシュコマンドで特定のスキルを強制使用できます:

スキルを強制使用

# スキルコマンドを使用
@skill-name タスクの説明

高度なスキル設定

条件付きトリガー

設定により、特定の条件下でスキルをトリガーできます:

条件付きトリガーの例

---
name: Pythonスキル
description: Pythonプロジェクト固有の処理
trigger: python
when:
  file_pattern: "*.py"
  directory: "src/"
---

# Pythonプロジェクトスキル

このスキルはPythonファイルを処理するときのみ有効です。

マルチステップタスク

スキルは複雑なマルチステップフローを定義できます:

マルチステップスキル

---
name: 完全な機能開発
description: 要件から実装までの完全なフロー
trigger: 機能開発
---

# 完全な機能開発フロー

## フェーズ1: 要件分析
- 機能要件を理解する
- 境界条件を特定する
- データ構造を設計する

## フェーズ2: 設計
- 関数/クラス構造を設計する
- インターフェースを定義する
- アルゴリズムを選択する

## フェーズ3: 実装
- コードを書く
- コメントを追加する
- ドキュメントを書く

## フェーズ4: テスト
- 単体テストを書く
- 境界条件を検証する
- カバレッジを確認する

## フェーズ5: コミット
- Gitコミットを作成する
- コミットメッセージを書く

スキルのベストプラクティス

命名規則

  • 明確で説明的な名前を使用する
  • 名前はスキルの機能を表すべきです
  • 中国語の名前の使用を避ける(エンコーディングの問題が発生する可能性があります)

トリガーワードの選択

  • 一般的なキーワードを選択する
  • あまりにも広範なトリガーワードを避ける
  • ユーザーの自然な表現方法を考慮する

スキルの粒度

  • スキルの責務を単一に保つ
  • 1つのスキルで1種類の問題を解決する
  • 複雑なフローはスキルの組み合わせで実現できる
優れたスキルは、ユーザーに「Codex は私のニーズを理解している」と感じさせるべきであり、特別な構文を学ぶ必要があるべきではない。

スキルの管理

利用可能なスキルの一覧表示

スキルリストの表示

# Codex で入力する
/skills

スキルの無効化

特定のスキルを使いたくない場合は、対応するファイルを削除するか、他のディレクトリに移動できます。

スキルの更新

スキルファイルを変更した後、反映するには Codex を再起動する必要があります。


スキルサンプルライブラリ

OpenAI 公式では、参考用と使用用のプリセットスキルをいくつか提供しています:

詳細な例については GitHub リポジトリを参照してください:https://github.com/openai/codex/tree/main/skills


よくある質問

Q: スキルがトリガーされません

スキルファイルのメタデータ形式が正しいか確認し、YAML ヘッダー形式が正しく、ファイルが.mdで終わっていることを確認してください。

Q: スキルをデバッグするには?

Codex で使用できる/debugコマンドでスキルマッチングの詳細情報を確認できます。

Q: スキルはCodexの通常の動作に影響しますか?

スキルは単にガイドラインを提供するだけで、Codex は依然として独立して判断します。スキルが適切に設定されていない場合、Codex はデフォルトの動作を使用します。

その他の拡張機能