インストール済みスキルの一覧表示
学習後のゴール
openskills listを使用してインストール済みの全スキルを表示できる(project)と(global)位置タグの違いを理解する- プロジェクトスキルとグローバルスキルの数を素早く統計できる
- スキルが正常にインストールされたかを判断できる
現在の悩み
いくつかのスキルをインストールした後、次のような問題に遭遇するかもしれません:
- 「どのスキルをインストールしたか忘れてしまった」
- 「このスキルはプロジェクトにインストールされたのか、それともグローバルにインストールされたのか?」
- 「なぜAプロジェクトでは見えるのに、Bプロジェクトでは見えないのか?」
- 「使わないスキルを削除したいが、具体的な名前がわからない」
openskills listコマンドはまさにこれらの疑問を解決するためのものです。スキルの「目次」のように、インストール済みの全スキルとその場所を一目で把握できます。
いつ使うべきか
| シナリオ | アクション |
|---|---|
| スキルのインストール後、成功したか確認したい | openskills listを実行してスキルが表示されるか確認 |
| 新しいプロジェクトに切り替え、利用可能なスキルを確認したい | openskills listを実行してprojectスキルを確認 |
| スキルを整理する前に確認したい | openskills listを実行して全スキルを表示し、不要なものを削除 |
| スキルの読み込み問題をデバッグしたい | スキル名とインストール場所が正しいか確認 |
コア概念
OpenSkillsは4つの位置にスキルをインストールできます(検索優先順位順):
- project .agent/skills - プロジェクトレベルの汎用スキルディレクトリ(マルチエージェント環境)
- global .agent/skills - グローバルな汎用スキルディレクトリ(マルチエージェント環境)
- project .claude/skills - プロジェクトレベルのClaude Codeスキルディレクトリ
- global .claude/skills - グローバルなClaude Codeスキルディレクトリ
openskills listは以下の処理を行います:
- これら4つのディレクトリを巡回して全スキルを検索
- 重複排除:同じスキル名は1回のみ表示(projectのものを優先)
- ソート:projectスキルが先、globalスキルが後;同じ場所内ではアルファベット順
- 場所タグ:
(project)と(global)タグで区別 - 統計サマリー:projectスキル数、globalスキル数、総数を表示
重複排除が必要な理由
projectとglobalの両方に同じスキル(例:pdf)をインストールした場合、OpenSkillsはprojectバージョンを優先的に使用します。listコマンドは1回のみ表示し、混乱を防ぎます。
実践してみよう
ステップ1:インストール済みの全スキルを表示
理由 現在の環境でどのスキルが利用可能かを素早く確認するため
以下のコマンドを実行します:
npx openskills list期待される出力
スキルが1つもインストールされていない場合、以下が表示されます:
Available Skills:
No skills installed.
Install skills:
npx openskills install anthropics/skills # Project (default)
npx openskills install owner/skill --global # Global (advanced)スキルがインストール済みの場合、以下のような出力が表示されます:
Available Skills:
pdf (project)
Comprehensive PDF manipulation toolkit for extracting text and tables...
code-analyzer (project)
Static code analysis tool for identifying security vulnerabilities...
email-reader (global)
Read email content and attachments via IMAP protocol...
Summary: 2 project, 1 global (3 total)ステップ2:出力フォーマットを理解
理由 各行が何を意味するかを理解することで、必要な情報を素早く特定できる
出力フォーマットの説明:
| パート | 説明 |
|---|---|
pdf | スキル名(SKILL.mdのnameフィールドから取得) |
(project) | 位置タグ:青色はプロジェクトレベルスキル、グレーはグローバルスキル |
Comprehensive PDF... | スキル説明(SKILL.mdのdescriptionフィールドから取得) |
Summary: 2 project, 1 global (3 total) | 統計サマリー:projectスキル数、globalスキル数、総数 |
ステップ3:位置タグを検証
理由 スキルが予期した場所にインストールされたかを確認し、「なぜこのプロジェクトでこのスキルが見えないのか」という疑問を避けるため
以下の操作を試して位置タグを理解しましょう:
# 1. プロジェクトレベルスキルをインストール
npx openskills install anthropics/skills -y
# 2. リストを確認(projectタグが表示されるはず)
npx openskills list
# 3. グローバルスキルをインストール
npx openskills install anthropics/skills --global -y
# 4. 再度リストを確認(2つのpdfスキルがあるが、1回のみ表示され、タグはproject)
npx openskills list期待される出力
Available Skills:
pdf (project)
Comprehensive PDF manipulation toolkit for extracting text...
Summary: 1 project, 0 global (1 total)グローバルとプロジェクトの両方に同じスキルをインストールしても、listコマンドは1回のみ表示します。これはprojectバージョンの優先順位が高いためです。
チェックポイント ✅
以下の内容を確認してください:
- [ ]
openskills listを実行するとインストール済みスキルのリストが表示される - [ ]
(project)と(global)タグを区別できる(色が異なる:青色 vs グレー) - [ ] Summaryの統計数字が正しい(projectスキル数 + globalスキル数 = 総数)
- [ ] 同じスキル名は1回のみ表示されるルールを理解している
よくある落とし穴
よくある問題1:インストール直後のスキルが見つからない
現象:installコマンドは成功したが、listで表示されない
トラブルシューティング手順:
- 正しいプロジェクトディレクトリにいるか確認(projectスキルは現在のプロジェクトにのみ表示される)
- グローバルにインストールされたか確認(
--globalフラグを使用) - インストール場所を検証:
# プロジェクトディレクトリを確認
ls -la .claude/skills/
# グローバルディレクトリを確認
ls -la ~/.claude/skills/よくある問題2:奇妙なスキル名が表示される
現象:スキル名が期待したものではない(例:フォルダ名 vs SKILL.mdのname)
原因:OpenSkillsはスキル名としてフォルダ名ではなく、SKILL.mdのnameフィールドを使用します
解決方法:SKILL.mdのfrontmatterを確認:
---
name: pdf # これがlistコマンドで表示される名前
description: Comprehensive PDF manipulation toolkit...
---よくある問題3:説明が完全に表示されない
現象:スキル説明が途中で途切れている
原因:これは端末の幅制限によるもので、スキルの内容には影響しません
解決方法:SKILL.mdファイルを直接確認して完全な説明を取得
このレッスンのまとめ
openskills listはスキル管理の「目次」コマンドで、以下のことができます:
- 📋 全スキルの表示:インストール済みスキルを一目で把握
- 🏷️ 位置タグの区別:
(project)はプロジェクトレベル、(global)はグローバルレベル - 📊 統計サマリー:projectとglobalスキルの数を素早く把握
- 🔍 トラブルシューティング:スキルが正常にインストールされたか検証し、スキルの場所を特定
コアルール:
- 同名のスキルは1回のみ表示(project優先)
- projectスキルが先、globalスキルが後
- 同じ場所内ではアルファベット順
次のレッスンの予告
次のレッスンでは**スキルの更新**を学びます。
学べること:
- ソースリポジトリからインストール済みスキルを更新する方法
- 全スキルの一括更新
- メタデータのない古いスキルの処理
付録:ソースコード参照
クリックしてソースコードの場所を表示
更新日時:2026-01-24
| 機能 | ファイルパス | 行番号 |
|---|---|---|
| listコマンド実装 | src/commands/list.ts | 7-43 |
| 全スキルの検索 | src/utils/skills.ts | 30-64 |
| 検索ディレクトリ設定 | src/utils/dirs.ts | 18-25 |
| Skill型定義 | src/types.ts | 1-6 |
主要な関数:
listSkills():インストール済みの全スキルを表示し、出力をフォーマットfindAllSkills():4つの検索ディレクトリを巡回し、全スキルを収集getSearchDirs():4つの検索ディレクトリパスを返す(優先順位順)
主要な定数:
- なし(検索ディレクトリパスは動的に計算されます)
コアロジック:
- 重複排除メカニズム:
Setを使用して処理済みのスキル名を記録(skills.ts:32-33, 43, 57) - 場所判定:
dir.includes(process.cwd())を使用してprojectディレクトリかを判定(skills.ts:48) - ソートルール:project優先、同じ場所ではアルファベット順(list.ts:21-26)