メインコンテンツまでスキップ

フォルダで Skill を整理する

Skill のコレクションが増えるにつれて、フォルダに整理しておくと管理しやすくなります — 残りは skillshare が自動的に処理してくれます。

なぜ整理するのか?

20個以上の Skill のフラットなリストはナビゲートしづらくなります。

~/.config/skillshare/skills/
├── accessibility/
├── ascii-box-check/
├── core-web-vitals/
├── frontend-design/
├── performance/
├── react-best-practices/
├── remotion/
├── seo/
├── skill-creator/
├── ui-skills/
├── vue-best-practices/
├── vue-debug-guides/
├── web-artifacts-builder/
└── ... 20+ more

フォルダを使うと論理的にグループ化でき、skillshare が AI CLI 向けに自動的にフラット化します。

SOURCE (organized)                     TARGET (auto-flattened)
─────────────────────────────────── ──────────────────────────────────
~/.config/skillshare/skills/ ~/.claude/skills/
├── frontend/ ├── frontend__frontend-design
│ ├── frontend-design/ ├── frontend__react__react-best-..
│ ├── react/ ├── frontend__ui-skills
│ │ └── react-best-practices/ ├── frontend__vue__vue-best-prac..
│ ├── ui-skills/ ├── frontend__vue__vue-debug-gui..
│ └── vue/ ├── utils__ascii-box-check
│ ├── vue-best-practices/ ├── utils__remotion
│ ├── vue-debug-guides/ ├── utils__skill-creator
│ └── ... ├── web-dev__accessibility
├── utils/ ├── web-dev__core-web-vitals
│ ├── ascii-box-check/ └── ...
│ ├── remotion/
│ └── skill-creator/
└── web-dev/
├── accessibility/
├── core-web-vitals/
└── ...

Source vs Target comparison

実例

このパターンを使って整理された Skill コレクションの完全な例は runkids/my-skills を参照してください。


自動フラット化の仕組み

skillshare はフォルダのパスを __(アンダースコア2つ)を区切り文字にしてフラットな名前に変換します。

Source のパスSync される Target 名
frontend/react/react-best-practices/frontend__react__react-best-practices
utils/remotion/utils__remotion
web-dev/accessibility/web-dev__accessibility

重要なポイント:

  • SKILL.md を含むディレクトリのみが Skill として扱われる
  • 中間フォルダ(frontend/ 自体など)は単なる整理用で、SKILL.md は不要
  • listsync はどんな深さのネストされた Skill も発見する
  • checkupdate もネストされた Skill に対応する
Agent はネストされない

このページはSkillの整理についてのものです。Agent は常に ~/.config/skillshare/agents/(Project mode では .skillshare/agents/)直下に配置される単一の .md ファイルです — フォルダのネストや自動フラット化には対応していません。Agent を整理するには、命名規則(例: frontend-reviewer.mdbackend-auditor.md)と .agentignore のパターンを使ってください。


ネストされた Skill の扱い

list

同じディレクトリ内の Skill は自動的にグループ化されます。

$ skillshare list -g

frontend/vue/
→ vue-best-practices github.com/vuejs-ai/skills/...

utils/
→ remotion github.com/remotion-dev/skills/...

web-dev/
→ accessibility github.com/addyosmani/web-quality-...

各グループ内では、Skill はベース名(フラット化された完全な名前ではなく)で表示されます。トップレベルの Skill は末尾にグループ化されずに表示されます。すべての Skill がトップレベルの場合、出力は従来のフォーマットと同じフラットなリストになります。

check

ネストされた Skill を検出し、相対パスを表示します。

$ skillshare check -g
Checking for updates
─────────────────────────────────────────
▸ Source ~/.config/skillshare/skills

├─ Items 0 tracked repo(s), 15 skill(s)

✓ frontend/frontend-design up to date
✓ frontend/react/react-best-practices up to date
✓ utils/remotion up to date
✓ web-dev/accessibility up to date

update

完全なパス短い名前の両方に対応しています。

# 完全な相対パス
skillshare update -g frontend/react/react-best-practices

# 短い名前(ベース名) — 自動的に解決される
skillshare update -g react-best-practices

# すべてを更新する
skillshare update -g --all

短い名前が複数の Skill に一致する場合、skillshare はより具体的に指定するよう求めます。

'my-skill' matches multiple items:
- frontend/my-skill
- backend/my-skill
Please specify the full path

enable / disable

フォルダを使うと、カテゴリ全体を一度に有効/無効に切り替えるのが簡単になります。disable/enable は glob パターンを受け付けるので、フォルダを指定できます。

# frontend/ 配下のすべての Skill を無効化する(任意の深さ)
skillshare disable "frontend/**"

# 同じパターンでフォルダ全体を再度有効化する
skillshare enable "frontend/**"

# Target に反映する
skillshare sync

これは .skillignorefrontend/** という1行を書き込み、後でそのフォルダに追加するものすべてをカバーし続けます。個々の Skill を切り替えるには、代わりにその名前を渡してください(skillshare disable frontend/react/react-best-practices)。

パターンを引用符で囲む

シェルが先に * を展開してしまわないよう、フォルダパターンは引用符("frontend/**")で囲んでください。

詳しくは enable / disable.skillignore の構文 を参照してください。


フォルダへの直接インストール

--into を使うと、Skill を1ステップでサブディレクトリにインストールできます — 手動での mv は不要です。

# カテゴリフォルダにインストールする
skillshare install anthropics/skills -s pdf --into frontend
# → ~/.config/skillshare/skills/frontend/pdf/

# 複数階層のネスト
skillshare install ~/my-skill --into frontend/react
# → ~/.config/skillshare/skills/frontend/react/my-skill/

# --track でも使える
skillshare install github.com/team/skills --track --into devops
# → ~/.config/skillshare/skills/devops/_skills/

# Project mode でも使える
skillshare install anthropics/skills -s pdf --into tools -p
# → .skillshare/skills/tools/pdf/

skillshare sync の後、Target には自動フラット化された名前が表示されます。

  • frontend/pdf/frontend__pdf
  • frontend/react/my-skill/frontend__react__my-skill
  • devops/_skills/frontend/ui/devops___skills__frontend__ui
ヒント

--into は中間ディレクトリを自動的に作成します。先に mkdir する必要はありません。


推奨されるフォルダ構造

ドメイン別

skills/
├── frontend/
│ ├── react/
│ ├── vue/
│ └── css/
├── backend/
│ ├── api-design/
│ └── database/
├── devops/
│ ├── docker/
│ └── ci-cd/
└── utils/
├── git-workflow/
└── code-review/

ツールエコシステム別

skills/
├── vue/
│ ├── vue-best-practices/
│ ├── vue-debug-guides/
│ ├── vue-pinia-best-practices/
│ └── vue-router-best-practices/
├── react/
│ └── react-best-practices/
└── web/
├── accessibility/
├── performance/
└── seo/

混合: 個人 + Tracked repos

skills/
├── frontend/ # 個人の整理された Skill
│ └── vue/
├── utils/ # 個人のユーティリティ
│ └── ascii-box-check/
├── _team-skills/ # Tracked repo (自動更新)
│ ├── code-review/
│ └── deploy/
└── _org-standards/ # 別の Tracked repo
└── security/

Skill をバージョン管理する

フォルダで Skill を整理することは、自然に git と組み合わせられます。

skillshare init --remote [email protected]:yourname/my-skills.git
skillshare push -m "organize skills into categories"

これにより次のことが得られます。

  • マシン間の Skill 変更の履歴
  • GitHub/GitLab によるバックアップ
  • 共有 — 他の人があなたのコレクションを閲覧・fork できる
  • skillshare pull によるクロスマシン SyncCross-Machine Sync を参照)

フラットからフォルダへの移行

新規インストール

新しい Skill には、--into を使って正しいフォルダに直接インストールしてください — 上記の フォルダへの直接インストール を参照。

すでにフラットな Skill コレクションを持っている場合:

cd ~/.config/skillshare/skills

# カテゴリフォルダを作成する
mkdir -p frontend/react frontend/react utils web-dev

# Skill をフォルダに移動する
mv react-best-practices frontend/react/
mv react-debug-guides frontend/react/
mv react-best-practices frontend/react/
mv remotion utils/
mv accessibility web-dev/

# Target のシンボリックリンクを更新するために再度 Sync する
skillshare sync

sync の後、Target は自動的に更新されます — 古いフラットなシンボリックリンクはクリーンアップされ、新しいフラット化された名前が作成されます。


関連項目