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

Configuration

skillshare の Config ファイルリファレンスです。

概要

~/.config/skillshare/
├── config.yaml ← Config ファイル
├── skills/ ← Source ディレクトリ(あなたの Skill)
│ ├── .metadata.json ← Skill メタデータ(自動管理)
│ ├── my-skill/
│ ├── another/
│ └── _team-repo/ ← Tracked リポジトリ
├── extras/ ← Extras Source ルート
│ └── rules/ ← Extra リソース(例: rules)

~/.local/share/skillshare/
└── backups/ ← 自動バックアップ
└── 2026-01-20.../

IDE 対応(JSON Schema)

Config ファイルには、対応エディタで 自動補完バリデーションホバードキュメント を有効にする YAML Language Server ディレクティブが含まれています。

skillshare init で作成された新しい Config には、これが自動的に含まれます。

# yaml-language-server: $schema=https://raw.githubusercontent.com/runkids/skillshare/main/schemas/config.schema.json
source: ~/.config/skillshare/skills
targets:
claude:
path: ~/.claude/skills

既存の Config に追加する

この機能が導入される前に作成された Config には、1行目 にコメントを追加してください。

グローバル Config~/.config/skillshare/config.yaml):

# yaml-language-server: $schema=https://raw.githubusercontent.com/runkids/skillshare/main/schemas/config.schema.json

プロジェクト Config.skillshare/config.yaml):

# yaml-language-server: $schema=https://raw.githubusercontent.com/runkids/skillshare/main/schemas/project-config.schema.json

または単純に skillshare init --force(グローバル)や skillshare init -p --force(プロジェクト)を 再実行して、スキーマコメント付きで Config を再生成してください。

対応エディタ

エディタ必要な拡張機能
VS CodeRed Hat の YAML
JetBrains IDE組み込みの YAML 対応
NeovimLSP 経由の yaml-language-server

Config ファイル

場所: ~/.config/skillshare/config.yaml

完全な例

# yaml-language-server: $schema=https://raw.githubusercontent.com/runkids/skillshare/main/schemas/config.schema.json
# Source ディレクトリ(Skill を編集する場所)
source: ~/.config/skillshare/skills

# 新しい Target のデフォルト Sync モード
mode: merge

# デフォルトの Target 命名(flat または standard)
# target_naming: flat

# Target(AI CLI の Skill ディレクトリ)
targets:
claude:
path: ~/.claude/skills
# mode: merge(デフォルトを継承)

codex:
path: ~/.codex/skills
mode: symlink # デフォルトモードを上書き
include: [codex-*] # merge/copy モードのみ

cursor:
path: ~/.cursor/skills
mode: copy # Cursor 用に実ファイルを使う
exclude: [experimental-*] # merge/copy モードのみ

# カスタム Target
myapp:
path: ~/apps/myapp/skills

# リモート Skill — install/uninstall で自動管理される
skills:
- name: pdf
source: anthropics/skills/skills/pdf
- name: _team-skills
source: github.com/team/skills
tracked: true

# 保存時に $HOME → ~ に折りたたむ(dotfiles フレンドリー)
# preserve_tilde_on_save: true

# commit/push/pull 対象のディレクトリ(skills がデフォルト、agents、extras、root)
# git_root: skills

# カスタム agents Source(オプション、デフォルトの場所を上書き)
agents_source: ~/my-agents

# カスタム extras Source(オプション、デフォルトの場所を上書き)
extras_source: ~/my-extras

# 任意のディレクトリに Sync する非 Skill リソース
extras:
- name: rules
source: ~/company-shared/rules # オプションの extra 単位の上書き
targets:
- path: ~/.claude/rules
- path: ~/.cursor/rules
mode: copy

# Sync 時に無視するファイル
ignore:
- "**/.DS_Store"
- "**/.git/**"
- "**/node_modules/**"
- "**/*.log"

フィールド

source

あなたの Skill ディレクトリへのパス(唯一の信頼できる情報源)。

source: ~/.config/skillshare/skills

デフォルト: ~/.config/skillshare/skills

mode

すべての Target のデフォルト Sync モード。

mode: merge
挙動
merge各 Skill が個別にシンボリックリンクされる。ローカルの Skill は保持される。(デフォルト)
copy各 Skill が実ファイルとしてコピーされる。シンボリックリンクをたどれない AI CLI 向け。
symlinkTarget ディレクトリ全体が1つのシンボリックリンクになる。

target_naming

merge/copy Sync のデフォルトの Target 命名戦略。

target_naming: flat
挙動
flatネストされた Skill が __ セパレータでフラット化される(例: frontend__dev)。(デフォルト)
standardSKILL.md の name フィールドをそのまま使う(例: dev)。Agent Skills spec に準拠。

targets

Sync 先の AI CLI Skill ディレクトリ。

targets:
<name>:
path: <path>
mode: <mode> # オプション、デフォルトを上書き
include: [<glob>, ...] # オプション、merge/copy モードのみ
exclude: [<glob>, ...] # オプション、merge/copy モードのみ

例:

targets:
claude:
path: ~/.claude/skills

codex:
path: ~/.codex/skills
mode: symlink

custom:
path: ~/my-app/skills

include / exclude(Target フィルター)

merge および copy モード でどの Skill を Sync するかを制御するには、Target 単位のフィルターを 使用します。

targets:
codex:
path: ~/.codex/skills
include: [codex-*]
claude:
path: ~/.claude/skills
exclude: [codex-*]

ルール:

  • マッチングは Target のフラット名に対して行われる(例: team__frontend__ui
  • include が先に適用される
  • exclude は include の後に適用される
  • パターン構文は Go の filepath.Match*?[...])を使用
  • symlink モードでは include/exclude は無視される
  • 以前 Sync されていた Source 管理のリンクが除外対象になった場合、sync はその Target エントリを削除する
  • Target 内にすでに存在するローカルの非シンボリックリンクフォルダは保持される

パターンチートシート

パターンマッチするもの典型的な用途
codex-*codex-agentcodex-ragプレフィックスによるグルーピング
team__*team__frontend__uiリポジトリ/グループの名前空間
*-experimentalrag-experimentalサフィックスによるクリーンアップ
core-?core-acore-11文字のバリエーション
[ab]-toola-toolb-tool少数の明示的なセット

シナリオA: include のみ

Target が限定されたサブセットのみを受け取るべき場合に include を使います。

targets:
codex:
path: ~/.codex/skills
include: [codex-*, shared-*]

用途:

  • Codex をコーディングワークフローのみに集中させる
  • ライティング/リサーチ専用の Skill をこの Target に送らないようにする

シナリオB: exclude のみ

Target が既知のサブセットを除いてほぼすべてを受け取るべき場合に exclude を使います。

targets:
claude:
path: ~/.claude/skills
exclude: [*-experimental, codex-*]

用途:

  • 1つのメイン Target を広くカバーしたままにする
  • 不安定な、または Target 固有の Skill を隠す

シナリオC: include + exclude

広い include を設定してから例外を切り出したい場合、両方を使います。

targets:
cursor:
path: ~/.cursor/skills
include: [core-*, team__*]
exclude: [*-deprecated, team__legacy__*]

評価順序:

  1. include にマッチする名前のみを残す
  2. exclude にマッチするものを削除する

Source の Skill が以下の場合:

  • core-auth
  • core-deprecated
  • team__frontend__ui
  • team__legacy__docs
  • misc-tool

cursor の結果:

  • Sync される: core-authteam__frontend__ui
  • Sync されない: core-deprecatedteam__legacy__docsmisc-tool

CLI からフィルターを管理する

YAML を手動で編集する代わりに、target コマンドを使います。

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

# Agent(agents パスを持つ Target のみ)
skillshare target claude --add-agent-include "team-*"
skillshare target claude --add-agent-exclude "draft-*"
skillshare target claude --remove-agent-include "team-*"

skillshare sync # 変更を適用する

重複するパターンは黙って無視されます。無効な glob パターンはエラーになります。Agent フィルターは Skill フィルターと同じ glob 構文を使いますが、mergecopy モードでのみ機能します。symlink モードでは、agents ディレクトリ全体が1つの単位としてリンクされるため、Agent フィルターは無視されます。

完全なリファレンスは target コマンド を参照してください。

Skill 単位の Target

Skill は SKILL.md の metadata.targets を使って、どの Target と互換性があるかを宣言できます。 トップレベルの targets フィールドは古い Skill 向けのフォールバックとして引き続きサポートされますが、 両方が存在する場合は metadata.targets が優先されます。

---
name: claude-prompts
metadata:
targets: [claude]
---

これは、Config レベルの include/exclude と並行して機能する第2層のフィルタリングです。

Source Skill

├─ Config の include/exclude ← Target 単位、利用者が設定

└─ Skill の targets フィールド ← Skill 単位、作者が設定


Target に Sync される Skill

評価順序:

  1. include — マッチする名前のみを残す
  2. exclude — マッチする名前を削除する
  3. targets フィールド — Target を含まない Skill を削除する

両方の層を通過する必要があります(AND 関係)。Config フィルターは常に優先されます — Skill が targets: [claude] を宣言していても、Config の exclude: [claude-*] があればその Skill は 除外されたままです。

モード横断のマッチング: targets: [claude] は、グローバルの Target claude とプロジェクトの Target claude の両方にマッチします。同じ AI CLI を指しているためです。 対応する Target を参照してください。

ヒント

利用者 がどこに何を送るかを制御したい場合は Config フィルター(include/exclude)を使い、 作者 が Skill が特定の AI CLI でのみ動作すると分かっている場合は Skill 単位の targets を 使ってください。

フィルター変更時の既存 Target エントリ

フィルターを追加または変更してから skillshare sync を実行すると:

Target 内の既存項目何が起こるか
フィルタリングで除外された Source 管理のシンボリックリンク/ジャンクション削除される(リンク解除)
フィルタリングで除外された管理下のコピー(copy モード)削除される
Target 内に作成されたローカルの非シンボリックリンクディレクトリ保持される
無関係なローカルコンテンツ保持される

skills

リモートインストールされた Skill を追跡します。skillshare installskillshare uninstall に よって自動管理されます。

skills:
- name: pdf
source: anthropics/skills/skills/pdf
- name: _team-skills
source: github.com/team/skills
tracked: true
フィールド必須説明
nameはいSkill ディレクトリ名
sourceはいGitHub URL またはローカルパス
trackedいいえ--track でインストールされた場合は true(デフォルト: false

引数なしで skillshare install を実行すると、まだ存在していないリストされたすべての Skill が インストールされます。これにより config.yaml は持ち運び可能な Skill マニフェストになります — 別のマシンにコピーして skillshare install && skillshare sync を実行するだけです。

skills: のリストは、各 installuninstall 操作後に自動的に更新されます。手動で編集する 必要はありません。

.metadata.json への移行

v0.16.2 以降、インストール済み Skill のエントリは config.yaml から別ファイルに移動しました。 現在のバージョンでは、すべてのインストールメタデータは skills/ ディレクトリ内の一元化された .metadata.json に保存されます。古いフォーマット(registry.yaml、Skill ごとの .skillshare-meta.json)からの移行は、初回実行時に自動的に行われます。

agents_source

Agent 用のカスタム Source ディレクトリ。デフォルトの ~/.config/skillshare/agents/ を上書きします。

agents_source: ~/my-agents

設定すると、すべての Agent がデフォルトの代わりにこのディレクトリから読み込まれます。~ の展開に 対応しています。

デフォルト: ~/.config/skillshare/agents/(自動検出されるため、カスタムの場所を使いたい場合を 除き明示的に設定する必要はありません)。

グローバルモードのみ

プロジェクトモードは常に .skillshare/agents/ を使用し、agents_source には対応していません。

Agent ファイルフォーマット、Sync の挙動、対応する Target の詳細は Agents を参照してください。

projects

この global config から Skill と Agent を受け取る project フォルダー。フォルダー自身に .skillshare/ は不要で、どこからでも skillshare sync を 1 回実行するだけですべてに書き込まれます。

project ごとに異なる Skill を持たせたい場合に使います。global Target はすでに同じセットをすべての project に届けており、project mode はチームメイトのために project のリポジトリ内にセットアップを保持します。多数の Project を 1 つの Config でではこの 3 つを比較しています。

projects:
<folder>: # 絶対パス、または ~ で始まるパス
name: <name> # オプション、デフォルトはフォルダー名
targets: [<target>, ...] # この project で使うツール
skills: # 存在すれば Skill を sync、空なら全部
mode: <mode>
target_naming: <flat|standard>
include: [<glob>, ...]
exclude: [<glob>, ...]
agents: # 存在すれば Agent を sync、空なら全部
mode: <mode>
include: [<glob>, ...]
exclude: [<glob>, ...]

例:

projects:
~/work/shop-web:
targets: [claude, cursor, codex]
skills:
mode: copy
include: ["frontend-*"]
agents: {}
~/work/api-server:
targets: [claude]
skills: {}

targets の各エントリは対応する Target 名です。Skillshare はそのフォルダー内にあるツールの project パスに書き込むため(claude なら .claude/skills.claude/agents など)、path を設定する必要はありません。

  • 共有フォルダーへの書き込みは1回だけ。 複数のツールが同じ project フォルダーを読む場合(cursorcodex はどちらも .agents/skills を読む)、それらは1つの sync Target にまとまります。
  • 出力での名前表記。 syncstatusdiffdoctorbackup は project の Target を <name>@<target>(例: shop-web@claude)の形で表示します。name@/\ は使えず、2つの project で同じ名前は共有できません。
  • Agent は project 用の Agent フォルダーを持つツールにのみ書き込まれます。agents があり skills がない project は Agent だけを sync します。
  • 見つからないフォルダーはスキップされます。 syncproject <folder>: folder not found, skipped と表示し、移動または削除した project を再作成することはありません。
  • targetcollect は project に触れません。 skillshare targettargets セクションのみを一覧・編集し、collect は project 自身の Skill を Source に取り込みません。編集は config.yaml を直接、またはダッシュボードの プロジェクト ページから行ってください。
  • targets フロントマターフィールドを持つ Skill はツールと照合されるため、targets: [claude]shop-web@claude に届きます。

同じフォルダーの MCP サーバーは、同じフォルダーをキーとして mcp.projects に一覧されます。手順は多数の Project を 1 つの Config でを参照してください。

extras

任意のディレクトリに Sync する非 Skill リソース(rules、commands、prompts など)。

extras_source: ~/my-extras            # オプションのグローバルデフォルト Source
extras:
- name: rules
source: ~/company-shared/rules # オプションの extra 単位の上書き
targets:
- path: ~/.claude/rules
- path: ~/.cursor/rules
mode: copy
- name: agents
targets:
- path: ~/.claude/agents
flatten: true # サブディレクトリのファイルをフラットに Sync する
- name: commands
targets:
- path: ~/.claude/commands
フィールド必須説明
nameはいExtra の識別子
sourceいいえこの Extra 用のカスタム Source ディレクトリ(extras_source とデフォルトを上書き)
targetsはいTarget パスのリスト
targets[].pathはい宛先ディレクトリ
targets[].modeいいえmerge(デフォルト)、copy、または symlink
targets[].flattenいいえtrue の場合、サブディレクトリのファイルを Target のルートに直接 Sync する(symlink とは併用不可)

extras_sourceskillshare init または最初の extras init 実行時に、デフォルトのパス (~/.config/skillshare/extras/)に自動的に設定されます。すべての Extra に対してカスタムの場所を 使うには、これを上書きしてください。

Source 解決(優先度3段階):

  1. Extra 単位の source → 正確なパス(例: ~/company-shared/rules
  2. extras_source<extras_source>/<name>/(例: ~/my-extras/rules/
  3. デフォルト → ~/.config/skillshare/extras/<name>/

Sync モード:

  • merge(デフォルト) — ファイル単位のシンボリックリンク
  • copy — ファイル単位のコピー
  • symlink — ディレクトリ全体のシンボリックリンク

Sync するには skillshare sync extras を実行するか、Skill と Extra をまとめて Sync するには skillshare sync --all を実行してください。

両モードに対応

Extras はグローバルモードとプロジェクトモードの両方で機能します。プロジェクトモードでは、Source は .skillshare/extras/<name>/ です。

使い方の詳細は sync extras を参照してください。

ignore

Sync 中にスキップするファイルの glob パターン。

ignore:
- "**/.DS_Store"
- "**/.git/**"
- "**/node_modules/**"

デフォルトのパターン:

  • **/.DS_Store
  • **/.git/**

gitlab_hosts

ネストされたサブグループを使うセルフマネージドの GitLab インスタンスのホスト名。名前に gitlab または jihulab を含むホストは自動的に検出されるため、このフィールドは他のカスタムドメインでのみ必要です。

gitlab_hosts:
- git.company.com
- code.internal.io

ホスト名がここに列挙されている場合、skillshare install は標準的な owner/repo の2セグメント分割を 仮定する代わりに、URL パス全体をリポジトリとして扱います(最大20階層のネストされたサブグループに対応)。

gitlab_hosts がない場合:

# git.company.com/team/frontend/ui → "team/frontend" を clone し、サブディレクトリ "ui"
skillshare install git.company.com/team/frontend/ui

gitlab_hosts: [git.company.com] がある場合:

# git.company.com/team/frontend/ui → "team/frontend/ui"(フルパス)を clone
skillshare install git.company.com/team/frontend/ui

Config なしでの回避策: リポジトリパスの終端を示すために .git を付加します。

skillshare install git.company.com/team/frontend/ui.git

エントリはベアなホスト名でなければなりません(スキーム、パス、ポートなし)。小文字に正規化されます。

環境変数

Config ファイルを持たない CI/CD パイプラインでは、SKILLSHARE_GITLAB_HOSTS(カンマ区切り)を 使用してください。

SKILLSHARE_GITLAB_HOSTS=git.company.com,code.internal.io skillshare install git.company.com/team/frontend/ui

Config ファイルと環境変数の両方が設定されている場合、それらの値はマージされます(重複排除)。 環境変数内の無効なエントリは黙ってスキップされます。

azure_hosts

セルフホストの Azure DevOps Server インスタンスのホスト名。dev.azure.com*.visualstudio.com の組み込みパターンは常に有効です — このフィールドは、カスタムドメインを持つ オンプレミスの Azure DevOps Server にのみ必要です。

azure_hosts:
- azuredevops.mycompany.com

ホスト名がここに列挙されている場合、/_git/ を含む URL は Azure DevOps のパースロジックを経由して 処理され、clone URL に .git を追加することなく org、project、repo を正しく抽出します。

azure_hosts がない場合:

# 汎用の HTTPS パースにフォールバックし、clone URL は
# https://azuredevops.mycompany.com/Org/Project.git になる(誤り)
skillshare install https://azuredevops.mycompany.com/Org/Project/_git/Repo

azure_hosts: [azuredevops.mycompany.com] がある場合:

# 正しくパースされ、clone URL は
# https://azuredevops.mycompany.com/Org/Project/_git/Repo になる
skillshare install https://azuredevops.mycompany.com/Org/Project/_git/Repo

エントリはベアなホスト名でなければなりません(スキーム、パス、ポートなし)。小文字に正規化されます。

環境変数

CI/CD パイプラインでは SKILLSHARE_AZURE_HOSTS(カンマ区切り)を使用してください。

SKILLSHARE_AZURE_HOSTS=azuredevops.mycompany.com skillshare install \
https://azuredevops.mycompany.com/Org/Project/_git/Repo

gitea_hosts

セルフホストの Gitea インスタンスのホスト名。gitea.comgitea.company.com のように名前に gitea を含むホストは自動的に検出されます。このフィールドは他のカスタムドメインでのみ必要です。

gitea_hosts:
- git.company.com

ホスト名がここに列挙されている場合:

  • installupdate は、そのホストでの HTTPS 認証に GITEA_TOKEN を使用する
  • install は、sparse checkout が利用できない、または失敗した場合、リポジトリ全体を clone する 代わりに Gitea Contents API を通じてサブディレクトリをダウンロードする。API 呼び出しも失敗した 場合は、完全な clone にフォールバックする

エントリはベアなホスト名でなければなりません(スキーム、パス、ポートなし)。小文字に正規化されます。

環境変数

CI/CD パイプラインでは SKILLSHARE_GITEA_HOSTS(カンマ区切り)を使用してください。

SKILLSHARE_GITEA_HOSTS=git.company.com skillshare install https://git.company.com/team/skills/review

Config ファイルと環境変数の両方が設定されている場合、それらの値はマージされます(重複排除)。

cnb_hosts

セルフホストの CNB インスタンスのホスト名。cnb.cool は自動的に検出されます。 このフィールドは、別のドメインでのプライベートデプロイメントにのみ必要です。

cnb_hosts:
- cnb.company.com

列挙されたホストは、HTTPS 認証に CNB_TOKEN を使用し、サブディレクトリのインストールは、同じフォールバック(完全な clone)を伴う CNB contents API を経由できます。

エントリはベアなホスト名でなければなりません(スキーム、パス、ポートなし)。小文字に正規化されます。

環境変数

SKILLSHARE_CNB_HOSTS=cnb.company.com skillshare install https://cnb.company.com/team/skills/review

audit

セキュリティ監査の設定。

audit:
block_threshold: CRITICAL
profile: default
dedupe_mode: global
enabled_analyzers: [static, dataflow, tier, integrity]
フィールドデフォルト説明
block_thresholdCRITICALHIGHMEDIUMLOWINFOCRITICALskillshare install をブロックする最小の深刻度
profiledefaultstrictpermissivedefault監査プロファイルのプリセット(threshold と dedupe のデフォルトを設定)
dedupe_modelegacyglobalglobal検出結果の重複排除モード
enabled_analyzersアナライザー ID の配列(すべて)実行するアナライザーの許可リスト(省略時はすべて)

プロファイル は、明示的なフィールド値で上書き可能な妥当なデフォルトを設定します。

プロファイルThresholdDedupe説明
defaultCRITICALglobal現在の挙動と同じ
strictHIGHglobalセキュリティを重視するチーム向けのより厳格なブロック
permissiveCRITICALlegacy助言のみ、最小限のブロック

アナライザー ID: staticdataflowtierintegritystructurecross-skill

優先順位: CLI フラグ → プロジェクト Config → グローバル Config → プロファイルのデフォルト。

  • block_threshold は、インストールがブロックされるタイミングのみを制御します — スキャン自体は 常に実行されます
  • 1回のインストールでスキャンをバイパスするには --skip-audit を使用してください
  • ブロックを上書きするには --force を使用してください(検出結果は引き続き表示されます)

context_budget

トークン予算の警告しきい値。syncanalyze の後、トークン数が予算を超えた場合に警告が表示されます。

context_budget:
warn_always_loaded_tokens: 10000
warn_on_demand_tokens: 100000
フィールドデフォルト説明
warn_always_loaded_tokens整数10000常時ロードされるトークンがこの値を超えた場合に警告する。0 で無効化
warn_on_demand_tokens整数100000オンデマンドのトークンがこの値を超えた場合に警告する。0 で無効化

省略した場合、デフォルトが適用されます(10K / 100K)。警告を抑制するには skillshare sync --quiet を 使用してください。出力フォーマットは sync — Context Cost を参照してください。

preserve_tilde_on_save

true の場合、config.yaml を書き込む前に $HOME プレフィックスを ~ に折りたたみます。 Config が dotfiles(stow、chezmoi、yadm、bare git リポジトリ)経由で共有されている場合に便利で、 ディスク上の Config を複数マシン間で持ち運び可能に保ちます。

preserve_tilde_on_save: true

デフォルト: false(既存の挙動は変わらず — パスは絶対パスとして保存される)

このフラグがない場合、保存のたびに ~/... パスが /home/alice/...(展開された形式)として 書き換えられます。Config がバージョン管理され複数マシン間で共有されている場合、これはノイズの多い diff を生み、持ち運び可能性を損ないます。

フラグを有効にすると、シリアライズされる YAML は $HOME 配下の任意のパスに ~ を使用します。

# 変更前(デフォルト): 絶対パス、マシン固有
source: /home/alice/.config/skillshare/skills
targets:
claude:
skills:
path: /home/alice/.claude/skills

# 変更後(preserve_tilde_on_save: true): 持ち運び可能
source: ~/.config/skillshare/skills
targets:
claude:
skills:
path: ~/.claude/skills

メモリ上の Config には影響しません — Load() は引き続き通常通り ~ を展開します。ホーム配下ではない 絶対パス(例: /opt/shared/skills)はそのまま通過します。

グローバルモードのみ

このオプションはグローバルの config.yaml にのみ適用されます。プロジェクト Config (.skillshare/config.yaml)は通常相対パスを使うため、tilde の折りたたみは不要です。

git_root

skillshare commitpushpull がどのディレクトリを操作対象にするかを選択します。

git_root: skills
バージョン管理されるディレクトリ
skills(デフォルト)Skill Source(~/.config/skillshare/skills/
agentsAgent Source(~/.config/skillshare/agents/
extrasExtras Source(~/.config/skillshare/extras/
rootConfig ルート(~/.config/skillshare/) — skills + agents + extras を1つのリポジトリに、config.yaml は自動的に無視される

デフォルト: skills

skillshare init --git-root <scope> で init 時に設定するか、init ウィザード内で対話的に設定します。

init 後にスコープを変更する

すでに初期化済みのセットアップで、対話なしにスコープを切り替えます。

skillshare init --git-root <scope>   # グローバルモード。cwd がプロジェクトの場合は -g を追加

これは新しいスコープディレクトリに git リポジトリを初期化し(すでにある場合はそれを再利用し)、 git_root を Config に永続化し、--remote を要求したりプロンプトを表示したりしません。ただし、 既存のリポジトリを移動しません — スコープの切り替えは「別のディレクトリのバージョン管理を 開始する」ことであり、「履歴を再配置する」ことではありません。

  • 新しい履歴skillshare init --git-root <scope> は新しいスコープディレクトリに空の リポジトリを初期化します。
  • 履歴を保持 — 先に mv <old-scope>/.git <new-scope>/.git を実行してから、 skillshare init --git-root <scope> を実行してスコープを記録します。

config.yaml 内の git_root を直接編集することもできます。git_root がリポジトリのないディレクトリを 指していて、別のスコープディレクトリにリポジトリがある場合、commit/push/pull は解決に必要な 正確な skillshare init / mv コマンドを含む「Git root mismatch」エラーを表示します。

グローバルモードのみ

git_root はグローバルモードにのみ適用されます。プロジェクトモードは .skillshare/ ディレクトリを 使用し、このフィールドには対応していません。


プロジェクト Config

場所: .skillshare/config.yaml(プロジェクトルート内)

プロジェクト Config はグローバル Config とは異なるフォーマットを使用します。

# yaml-language-server: $schema=https://raw.githubusercontent.com/runkids/skillshare/main/schemas/project-config.schema.json
# Target — 文字列またはオブジェクト形式
targets:
- claude # 文字列: デフォルト設定の既知の Target
- cursor
- name: custom-ide # オブジェクト: カスタムパスとモード
path: ./tools/ide/skills
mode: symlink
- name: codex # フィルター付きオブジェクト
include: [codex-*]
exclude: [codex-experimental-*]

# リモート Skill — install/uninstall で自動管理される
skills:
- name: pdf
source: anthropic/skills/pdf
- name: _team-skills
source: github.com/team/skills
tracked: true # git 履歴付きで clone された

# Audit — グローバルと同じフィールド
audit:
block_threshold: HIGH
profile: strict

targets(プロジェクト)

2つの YAML 形式に対応しています。

形式いつ使うか
文字列- claude既知の Target、デフォルトパスと merge モード
オブジェクト- name: x, path: ..., mode: ..., include: [...], exclude: [...]カスタムパス、モードの上書き、または Target 単位のフィルター

skills(プロジェクト)

グローバルの skills フィールド と同じスキーマです。skillshare install -pskillshare uninstall -p によって自動管理されます。

持ち運び可能なマニフェスト

config.yaml は、グローバルモードとプロジェクトモードの両方で持ち運び可能な Skill マニフェストです。 新しいマシンで(またはプロジェクト内で skillshare install -p を)実行して、同じセットアップを 再現するには skillshare install && skillshare sync を実行してください。


Config の管理

現在の Config を表示する

skillshare status
# Source、Target、モードを表示する

Config を直接編集する

# エディタで開く
$EDITOR ~/.config/skillshare/config.yaml

# 変更を適用するために Sync する
skillshare sync

Config をリセットする

rm ~/.config/skillshare/config.yaml
skillshare init

カスタム監査ルール

場所:

モードパス
グローバル~/.config/skillshare/audit-rules.yaml
プロジェクト.skillshare/audit-rules.yaml

ルールは 組み込み → グローバル → プロジェクト の順にマージされます。新しいルールの追加、 組み込みルールの無効化、深刻度の上書きができます。

rules:
# カスタムルールを追加する
- id: flag-todo
severity: MEDIUM
pattern: todo-comment
message: "TODO comment found"
regex: '(?i)\bTODO\b'

# 組み込みルールを無効化する
- id: insecure-http-0
enabled: false
フィールド必須説明
idはい一意のルール識別子
severityはいCRITICALHIGHMEDIUMLOWINFO
patternはいパターンのカテゴリ名
messageはい人が読める形式の検出結果の説明
regexはいマッチさせる正規表現
excludeいいえ行がこの正規表現にもマッチする場合、マッチを抑制する
enabledいいえ組み込みルールを無効化するには false を設定する

スターターファイルを生成するには:

skillshare audit --init-rules       # グローバル
skillshare audit --init-rules -p # プロジェクト

完全な詳細は audit コマンド を参照してください。


環境変数

変数説明
SKILLSHARE_CONFIGConfig ファイルのパスを上書きする
GITHUB_TOKENAPI のレート制限問題向け

例:

SKILLSHARE_CONFIG=~/custom-config.yaml skillshare status

Skill メタデータ

Skill をインストールすると、skillshare はそのメタデータを一元化された .metadata.json ファイルに 記録します。

{
"skills": [
{
"name": "pdf",
"source": "anthropics/skills/skills/pdf",
"type": "github",
"installed_at": "2026-01-20T15:30:00Z",
"repo_url": "https://github.com/anthropics/skills.git",
"subdir": "skills/pdf",
"version": "abc1234"
}
]
}

各 Skill エントリには以下が含まれます。

フィールド説明
nameSkill ディレクトリ名
source元のインストール Source の入力値
typeSource の種類(githublocal など)
installed_atインストールのタイムスタンプ
repo_urlGit clone URL(git Source のみ)
subdirサブディレクトリのパス(monorepo Source のみ)
versionインストール時の Git コミットハッシュ

これは skillshare updateskillshare check が更新の取得元を知るために使用します。

このファイルを手動で編集しないでください。


プラットフォームの違い

macOS / Linux

source: ~/.config/skillshare/skills
targets:
claude:
path: ~/.claude/skills

シンボリックリンクを使用します。

Windows

source: %AppData%\skillshare\skills
targets:
claude:
path: %USERPROFILE%\.claude\skills

NTFS ジャンクションを使用します(管理者権限不要)。


関連項目