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

フィルタリングリファレンス

どの Skill がどの Target に届くかを制御する3つのフィルタリングレイヤーの完全な仕様です。

手っ取り早いガイダンスをお探しですか?

シナリオ駆動のガイドは Skill のフィルタリング を 参照してください。

概要

レイヤースコープ設定場所構文評価されるタイミング
.skillignoreすべての Target から隠すSource ディレクトリまたは Tracked repo のルートgitignoreDiscovery
SKILL.md metadata.targetsSkill をリストされた Target に制限するSkill ごとのフロントマターYAML リストSync(discovery 時にパース)
Agent targetsAgent をリストされた Target に制限するAgent ごとのフロントマターYAML リストSync(discovery 時にパース)
Target の include/excludeTarget ごと、リソースごとconfig.yaml または CLI フラグGo filepath.Match の globSync
Sync モードの注意点

これら3つのレイヤーはすべて mergecopy の Sync モードにのみ適用されます。 symlink モードでは Source ディレクトリ全体が1つの単位としてリンクされるため、Skill ごとの フィルタリングは効果を持ちません。

評価順序と優先順位

Skill が Target に届くには、すべてのレイヤーを通過する必要があります。

  1. .skillignore — Discovery 時に評価される。一致した Skill は Sync パイプラインに入らない。
  2. Target の include/exclude — Sync 時に評価される(FilterSkills)。Skill は発見されるが、 一致しない Target ではスキップされる。
  3. SKILL.md metadata.targets — Sync 時に評価される(FilterSkillsByTarget)。Skill は 宣言された Target に制限される。

.skillignore

場所:

  • Source のルート: ~/.config/skillshare/skills/.skillignore — すべての Skill に適用される
  • Tracked repo のルート: _team-repo/.skillignore — そのリポジトリ内にのみ適用される

構文: 完全な gitignore*(1セグメント)、 **(任意の深さ)、?[abc]!pattern(否定)、/pattern(アンカー付き)、 pattern/(ディレクトリのみ)。

.skillignore.local: .skillignore と同じ場所に置きます。パターンはベースファイルの後に 追加されます — 最後に一致したルールが優先されます。無視解除には !pattern を使います。このファイルは コミットしないでください。

CLI での可視性:

コマンド出力
skillshare sync件数 + Skill 名
skillshare status --jsonパターンと無視リストを含む source.skillignore オブジェクト
skillshare doctorパターン数と無視数

📖 ファイル構造リファレンス

SKILL.md targets フィールド

フォーマット: トップレベルまたは metadata の下にネスト:

# 推奨
metadata:
targets: [claude, cursor]

# レガシーなフォールバック
targets: [claude, cursor]

動作: ホワイトリスト — その Skill はリストされた Target にのみ Sync されます。このフィールドを 省略すると、すべての Target に Sync されます。metadata.targets とトップレベルの targets の両方が 存在する場合、metadata.targets が優先されます。

エイリアス: Target 名はエイリアスに対応しています。claudeclaude-code として設定された Target に一致します。対応する Target を参照してください。

📖 Skill フォーマット — targets フィールド

Agent も、Agent のフロントマター内のトップレベルの targets リストを通じて同じホワイトリストに 対応しています。このフィールドがない Agent は、Agent 対応のすべての Target に Sync されます。 Agents — Agent ファイルフォーマット を参照してください。

Target の include/exclude フィルター

CLI で設定する:

# Skill
skillshare target claude --add-include "team-*"
skillshare target cursor --add-exclude "legacy-*"
skillshare target claude --remove-include "team-*"

# Agent
skillshare target claude --add-agent-include "team-*"
skillshare target claude --add-agent-exclude "draft-*"
skillshare target claude --remove-agent-include "team-*"

保存場所: config.yaml の中の、Skill 用の targets.<name>.include / targets.<name>.exclude、 Agent 用の targets.<name>.agents.include / targets.<name>.agents.exclude

構文: フラットなリソース名に対して照合される Go filepath.Match の glob パターン。Skill はフラットな Skill 名(例: _team__frontend__ui)を使い、Agent はフラットな .md ファイル名を使います。

対応非対応
*(任意の文字)**(再帰的)
?(単一文字){a,b}(波括弧展開)
[abc](文字クラス)

優先順位: includeexclude の両方が設定されている場合、include が先に適用され、その後 exclude が適用されます。両方に一致するリソースは除外されます。

ビジュアルエディタ: skillshare ui → Targets ページ → 「Customize filters」ボタン。

📖 Target コマンドフィルター動作の例Configuration

関連項目