/analyze
各 Target の Skill について、コンテキストウィンドウの使用量と Skill の品質を分析します。
$ npx -y skills add runkids/skillshare --agent claude-codeHow it fires
How this command gets triggered: by you, by Claude, or both.
- Fires itselfClaude auto-loads it when your prompt matches the work.
- You can call itInvoke it directly when you want it.
- Slash command
/analyze
Context preview
What this command does when you run it.
各 Target の Skill について、コンテキストウィンドウの使用量と Skill の品質を分析します。
Command definition
analyze.mdsidebar_position: 4
analyze
各 Target の Skill について、コンテキストウィンドウの使用量と Skill の品質を分析します。
skillshare analyze # インタラクティブ TUI(デフォルト)
skillshare analyze claude # 単一 Target の詳細
skillshare analyze --verbose # 説明文が最も長い上位 10 件
skillshare analyze --json # 機械可読な出力
skillshare analyze -p # Project mode
使うタイミング
コンテキスト予算を最適化する
どの Skill がコンテキストウィンドウのトークンを最も消費しているかを特定する。
skillshare analyze # すべての Target をインタラクティブに閲覧
Target 間で比較する
Target 間(例: Claude と Cursor)でコンテキスト使用量がどう違うかを確認する。
skillshare analyze # TUI 内で Tab キーを押して Target を切り替え
Skill の品質を確認する
フィールドの欠落、説明文の短さ、トリガーフレーズの欠如がある Skill を見つける。
skillshare analyze # TUI 内に Lint アイコン(✗/⚠)が表示される
CI/スクリプト
機械可読なコンテキストメトリクスと Lint 結果を取得する。
skillshare analyze --json | jq '.targets[].always_loaded.estimated_tokens'
skillshare analyze --json | jq '.targets[].skills[] | select(.lint_issues | length > 0)'
実行内容
`analyze` は各 Skill について、2 層のコンテキストコストを計算します。
1. **常時ロード** — SKILL.md のフロントマターにある `name + description`(Skill マッチングのため、すべてのリクエストでコンテキストにロードされる) 2. **オンデマンド** — フロントマター以降の Skill 本文(Skill がトリガーされたときのみロードされる)
トークン数の見積もりには近似値として `chars / 4` を使用します。
Skill 品質 Lint
トークン分析に加えて、`analyze` はすべての Skill に対して組み込みの Lint エンジンを実行します。Lint ルールは SKILL.md の構造と説明文の品質をチェックし、問題を TUI と JSON 出力に直接表示します。
| ルール | 重大度 | チェック内容 | |------|----------|----------------| | `missing-name` | error | `name` フィールドが空または欠落している | | `missing-description` | error | `description` フィールドが空または欠落している | | `empty-body` | error | Skill 本文(フロントマター以降)が空である | | `description-too-short` | warning | 説明文が 50 文字未満 | | `description-too-long` | warning | 説明文が目標上限の 1024 文字を超えている | | `description-near-limit` | warning | 説明文が 900〜1024 文字の範囲にある | | `no-trigger-phrase` | warning | 説明文にトリガーフレーズ(例: "Use when…")がない |
TUI では、Lint 上の問題がある Skill は名前の横に ✗(error)または ⚠(warning)アイコンが表示されます。詳細パネルには、すべての検出結果を一覧する **Quality** セクションが含まれます。
インタラクティブ TUI
デフォルトでは、`analyze` は以下を備えたインタラクティブ TUI を起動します。
- **左パネル** — トークンコスト順にソートされた Skill 一覧。パーセンタイルごとに色分けされたドット(赤/黄/緑)付き
- **右パネル** — 詳細ビュー: トークン内訳、Lint による品質問題、パス、トラッキング状態、説明文プレビュー
- **下部バー** — Target セレクター(Tab/Shift+Tab で切り替え)+ トークン合計 + 見積もり計算式
TUI 操作
| キー | 動作 | |-----|--------| | `↑`/`↓` | Skill リストを移動 | | `←`/`→` | ページ送り/戻し | | `Tab` / `Shift+Tab` | Target を切り替え | | `/` | 名前で Skill をフィルタ | | `s` | ソートを切り替え: トークン数↓ → トークン数↑ → 名前 A→Z → 名前 Z→A | | `Ctrl+d` / `Ctrl+u` | 詳細パネルをスクロール | | `q` | 終了 |
色分け
トークン消費量のレベルは、Target ごとに動的なパーセンタイル閾値を使用します。
| 色 | 意味 | |-------|-------| | 🔴 赤 | P75 以上(消費量上位 25%) | | 🟡 黄 | P25〜P75(中間 50%) | | 🟢 緑 | P25 未満(下位 25%) |
出力例
デフォルト(--no-tui)
Context Analysis (global)
ℹ claude (7 skills)
Always loaded: ~362 tokens
On-demand max: ~22 tokens
詳細
skillshare analyze --verbose
Context Analysis (global)
ℹ claude (7 skills)
Always loaded: ~362 tokens
On-demand max: ~22 tokens
Largest descriptions:
my-big-skill ~180 tokens
another-skill ~120 tokens
...
単一 Target
Target 名を渡すと、自動的に verbose 出力が有効になります。
skillshare analyze claude
グループでフィルタする
# frontend 系のすべての Skill の合計トークンコストを見る
skillshare analyze claude --json --filter frontend
# TUI の検索ボックスを事前入力する
skillshare analyze --filter marketing
オプション
| フラグ | 説明 | |------|-------------| | `[target]` | 単一 Target の詳細を表示(自動的に verbose を有効化) | | `--verbose`, `-v` | Target ごとに説明文が最も長い上位 10 件を表示 | | `--no-tui` | インタラクティブ TUI を無効化し、プレーンテキストで出力 | | `--project`, `-p` | Project レベルの Skill(`.skillshare/`)を分析 | | `--global`, `-g` | グローバルの Skill(`~/.config/skillshare`)を分析 | | `--filter <text>` | 名前/パスの部分文字列で Skill をフィルタ | | `--json` | JSON として出力(スクリプト/CI 向け) | | `--help`, `-h` | ヘルプを表示 |
:::tip 自動検出 `--project` も `--global` も指定しない場合、skillshare は自動検出します。カレントディレクトリに `.skillshare/config.yaml` が存在すれば Project mode、それ以外はグローバルモードになります。 :::
JSON 出力
skillshare analyze --json
{
"targets": [
{
"name": "claude",
"skill_count": 7,
"always_loaded": {
"chars": 1448,
"estimated_tokens": 362
},
"on_demand_max": {
"chars": 88,
"estimated_tokens": 22
},
"skills": [
{
"name": "my-skill",
"description_chars": 180,
"description_tokens": 45,
"body_chars": 400,
"body_tokens": 100,
"lint_issues": [
{
"rule": "no-trigger-phrase",
"severity": "warning",
"category": "format",
"message": "Description lacks trigger phrases (e.g. 'Use when...'); agents may not know when to invoke this skill"
}
]
}
]
}
]
}Lint の問題がない Skill では `lint_issues` フィールドは省略されます。
Project mode
skillshare analyze -p # Project の Skill のインタラクティブ TUI
skillshare analyze -p --verbose # Verbose テキスト出力
skillshare analyze -p claude # 単一 Target の詳細
skillshare analyze -p --json # JSON 出力
フィルタリング
`--filter` を使うと、結果を Skill のサブセットに絞り込めます。フィルタは Skill の相対パス(グループディレクトリを含む)に対して大文字小文字を区別しない部分一致で行われます。
例えば、`--into frontend` で Skill をインストールした場合:
- `--filter frontend` は `frontend/` グループ内のすべての Skill にマッチ
- `--filter react` はパスに "react" を含む任意の Skill にマッチ
TUI モードでは、`--filter` はフィルタ入力欄を事前入力します。インタラクティブにフィルタするには `/` キーも使用できます。
JSON モードでは、出力に集計済みのトークン数を含む `filtered_summary` が含まれます。
{
"filter": "frontend",
"matched_count": 5,
"total_count": 50,
"filtered_summary": {
"always_loaded": { "chars": 2400, "tokens": 600 },
"on_demand": { "chars": 8000, "tokens": 2000 },
"total": { "chars": 10400, "tokens": 2600 }
},
"skills": [...]
}Web UI でも、検索やフィルタが有効なときは動的なトークンサマリーバーが表示されます。
予算の警告
`context_budget` の閾値が設定されている場合、`analyze` はいずれかの Target が予算を超えていると警告を表示します。設定の詳細については [sync — Context Cost](/docs/refer
Read more
sidebar_position: 4
analyze
各 Target の Skill について、コンテキストウィンドウの使用量と Skill の品質を分析します。
skillshare analyze # インタラクティブ TUI(デフォルト) skillshare analyze claude # 単一 Target の詳細 skillshare analyze --verbose # 説明文が最も長い上位 10 件 skillshare analyze --json # 機械可読な出力 skillshare analyze -p # Project mode
使うタイミング
コンテキスト予算を最適化する
どの Skill がコンテキストウィンドウのトークンを最も消費しているかを特定する。
skillshare analyze # すべての Target をインタラクティブに閲覧
Target 間で比較する
Target 間(例: Claude と Cursor)でコンテキスト使用量がどう違うかを確認する。
skillshare analyze # TUI 内で Tab キーを押して Target を切り替え
Skill の品質を確認する
フィールドの欠落、説明文の短さ、トリガーフレーズの欠如がある Skill を見つける。
skillshare analyze # TUI 内に Lint アイコン(✗/⚠)が表示される
CI/スクリプト
機械可読なコンテキストメトリクスと Lint 結果を取得する。
skillshare analyze --json | jq '.targets[].always_loaded.estimated_tokens' skillshare analyze --json | jq '.targets[].skills[] | select(.lint_issues | length > 0)'
実行内容
`analyze` は各 Skill について、2 層のコンテキストコストを計算します。
1. **常時ロード** — SKILL.md のフロントマターにある `name + description`(Skill マッチングのため、すべてのリクエストでコンテキストにロードされる) 2. **オンデマンド** — フロントマター以降の Skill 本文(Skill がトリガーされたときのみロードされる)
トークン数の見積もりには近似値として `chars / 4` を使用します。
Skill 品質 Lint
トークン分析に加えて、`analyze` はすべての Skill に対して組み込みの Lint エンジンを実行します。Lint ルールは SKILL.md の構造と説明文の品質をチェックし、問題を TUI と JSON 出力に直接表示します。
| ルール | 重大度 | チェック内容 | |------|----------|----------------| | `missing-name` | error | `name` フィールドが空または欠落している | | `missing-description` | error | `description` フィールドが空または欠落している | | `empty-body` | error | Skill 本文(フロントマター以降)が空である | | `description-too-short` | warning | 説明文が 50 文字未満 | | `description-too-long` | warning | 説明文が目標上限の 1024 文字を超えている | | `description-near-limit` | warning | 説明文が 900〜1024 文字の範囲にある | | `no-trigger-phrase` | warning | 説明文にトリガーフレーズ(例: "Use when…")がない |
TUI では、Lint 上の問題がある Skill は名前の横に ✗(error)または ⚠(warning)アイコンが表示されます。詳細パネルには、すべての検出結果を一覧する **Quality** セクションが含まれます。
インタラクティブ TUI
デフォルトでは、`analyze` は以下を備えたインタラクティブ TUI を起動します。
- **左パネル** — トークンコスト順にソートされた Skill 一覧。パーセンタイルごとに色分けされたドット(赤/黄/緑)付き
- **右パネル** — 詳細ビュー: トークン内訳、Lint による品質問題、パス、トラッキング状態、説明文プレビュー
- **下部バー** — Target セレクター(Tab/Shift+Tab で切り替え)+ トークン合計 + 見積もり計算式
TUI 操作
| キー | 動作 | |-----|--------| | `↑`/`↓` | Skill リストを移動 | | `←`/`→` | ページ送り/戻し | | `Tab` / `Shift+Tab` | Target を切り替え | | `/` | 名前で Skill をフィルタ | | `s` | ソートを切り替え: トークン数↓ → トークン数↑ → 名前 A→Z → 名前 Z→A | | `Ctrl+d` / `Ctrl+u` | 詳細パネルをスクロール | | `q` | 終了 |
色分け
トークン消費量のレベルは、Target ごとに動的なパーセンタイル閾値を使用します。
| 色 | 意味 | |-------|-------| | 🔴 赤 | P75 以上(消費量上位 25%) | | 🟡 黄 | P25〜P75(中間 50%) | | 🟢 緑 | P25 未満(下位 25%) |
出力例
デフォルト(--no-tui)
Context Analysis (global) ℹ claude (7 skills) Always loaded: ~362 tokens On-demand max: ~22 tokens
詳細
skillshare analyze --verbose Context Analysis (global) ℹ claude (7 skills) Always loaded: ~362 tokens On-demand max: ~22 tokens Largest descriptions: my-big-skill ~180 tokens another-skill ~120 tokens ...
単一 Target
Target 名を渡すと、自動的に verbose 出力が有効になります。
skillshare analyze claude
グループでフィルタする
# frontend 系のすべての Skill の合計トークンコストを見る skillshare analyze claude --json --filter frontend # TUI の検索ボックスを事前入力する skillshare analyze --filter marketing
オプション
| フラグ | 説明 | |------|-------------| | `[target]` | 単一 Target の詳細を表示(自動的に verbose を有効化) | | `--verbose`, `-v` | Target ごとに説明文が最も長い上位 10 件を表示 | | `--no-tui` | インタラクティブ TUI を無効化し、プレーンテキストで出力 | | `--project`, `-p` | Project レベルの Skill(`.skillshare/`)を分析 | | `--global`, `-g` | グローバルの Skill(`~/.config/skillshare`)を分析 | | `--filter <text>` | 名前/パスの部分文字列で Skill をフィルタ | | `--json` | JSON として出力(スクリプト/CI 向け) | | `--help`, `-h` | ヘルプを表示 |
:::tip 自動検出 `--project` も `--global` も指定しない場合、skillshare は自動検出します。カレントディレクトリに `.skillshare/config.yaml` が存在すれば Project mode、それ以外はグローバルモードになります。 :::
JSON 出力
skillshare analyze --json
{
"targets": [
{
"name": "claude",
"skill_count": 7,
"always_loaded": {
"chars": 1448,
"estimated_tokens": 362
},
"on_demand_max": {
"chars": 88,
"estimated_tokens": 22
},
"skills": [
{
"name": "my-skill",
"description_chars": 180,
"description_tokens": 45,
"body_chars": 400,
"body_tokens": 100,
"lint_issues": [
{
"rule": "no-trigger-phrase",
"severity": "warning",
"category": "format",
"message": "Description lacks trigger phrases (e.g. 'Use when...'); agents may not know when to invoke this skill"
}
]
}
]
}
]
}Lint の問題がない Skill では `lint_issues` フィールドは省略されます。
Project mode
skillshare analyze -p # Project の Skill のインタラクティブ TUI skillshare analyze -p --verbose # Verbose テキスト出力 skillshare analyze -p claude # 単一 Target の詳細 skillshare analyze -p --json # JSON 出力
フィルタリング
`--filter` を使うと、結果を Skill のサブセットに絞り込めます。フィルタは Skill の相対パス(グループディレクトリを含む)に対して大文字小文字を区別しない部分一致で行われます。
例えば、`--into frontend` で Skill をインストールした場合:
- `--filter frontend` は `frontend/` グループ内のすべての Skill にマッチ
- `--filter react` はパスに "react" を含む任意の Skill にマッチ
TUI モードでは、`--filter` はフィルタ入力欄を事前入力します。インタラクティブにフィルタするには `/` キーも使用できます。
JSON モードでは、出力に集計済みのトークン数を含む `filtered_summary` が含まれます。
{
"filter": "frontend",
"matched_count": 5,
"total_count": 50,
"filtered_summary": {
"always_loaded": { "chars": 2400, "tokens": 600 },
"on_demand": { "chars": 8000, "tokens": 2000 },
"total": { "chars": 10400, "tokens": 2600 }
},
"skills": [...]
}Web UI でも、検索やフィルタが有効なときは動的なトークンサマリーバーが表示されます。
予算の警告
`context_budget` の閾値が設定されている場合、`analyze` はいずれかの Target が予算を超えていると警告を表示します。設定の詳細については [sync — Context Cost](/docs/refer
📚 Sync skills across all AI CLI tools with one command and simplify team sharing. Supporting Codex, Claude Code, OpenClaw & more
Repo: runkids/skillshare

