Claude Code Plugins

Community-maintained marketplace

Feedback

.claude/skills/command-placement-priority/SKILL.md

@mattnigh/skills_collection
0
0

|

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

name .claude/skills/command-placement-priority/SKILL.md
description コマンドの配置場所と優先順位を専門とするスキル。 プロジェクトコマンド、ユーザーコマンド、MCPプロンプトの違い、 優先順位解決、名前空間の活用を提供します。 📚 リソース参照: このスキルには以下のリソースが含まれています。 必要に応じて該当するリソースを参照してください: - `.claude/skills/command-placement-priority/resources/placement-options.md`: プロジェクト/ユーザー/MCPプロンプトの3つの配置場所の選択基準 - `.claude/skills/command-placement-priority/resources/priority-resolution.md`: 同名コマンドが複数存在する場合の実行優先順位(プロジェクト→ユーザー→MCP) - `.claude/skills/command-placement-priority/resources/namespace-strategies.md`: フラット/階層構造と機能別/ツール別/ワークフロー別名前空間設計 - `.claude/skills/command-placement-priority/resources/migration-guide.md`: ユーザー→プロジェクト移行とプロジェクト→ユーザーカスタマイズ手順 - `.claude/skills/command-placement-priority/templates/user-command-template.md`: 個人用コマンド作成のテンプレート(~/.claude/commands/) - `.claude/skills/command-placement-priority/templates/project-command-template.md`: チーム共有コマンド作成のテンプレート(.claude/commands/) - `.claude/skills/command-placement-priority/scripts/validate-placement.mjs`: コマンド配置の適切性検証と優先順位競合・名前空間重複の検出スクリプト 使用タイミング: - コマンドをどこに配置するか決定する時 - 同名コマンドの優先順位を理解したい時 - 名前空間を活用したい時 Use proactively when deciding command placement, understanding priority resolution, or utilizing namespaces.
version 1.0.0

Command Placement & Priority

概要

このスキルは、Claude Codeコマンドの配置場所と優先順位を提供します。 プロジェクトコマンド、ユーザーコマンド、MCPプロンプトの違いと優先順位解決により、 効率的で柔軟なコマンド管理を実現できます。

主要な価値:

  • 配置場所の適切な選択
  • 優先順位の完全理解
  • 名前空間の効果的な活用
  • スコープの明確化

対象ユーザー:

  • コマンドを作成するエージェント(.claude/agents/command-arch.md)
  • コマンド配置を決定したい開発者
  • プロジェクトとユーザーコマンドを使い分けたいチーム

リソース構造

command-placement-priority/
├── SKILL.md                                    # 本ファイル
├── resources/
│   ├── placement-options.md                   # 配置オプション詳細
│   ├── priority-resolution.md                 # 優先順位解決ルール
│   ├── namespace-strategies.md                # 名前空間戦略
│   └── migration-guide.md                     # 配置変更ガイド
└── templates/
    ├── project-command-template.md            # プロジェクトコマンドテンプレート
    └── user-command-template.md               # ユーザーコマンドテンプレート

リソース種別

  • 配置詳細 (resources/placement-options.md): 各配置オプションの詳細
  • 優先順位ルール (resources/priority-resolution.md): 解決ロジック詳細
  • 名前空間戦略 (resources/namespace-strategies.md): 活用方法
  • 移行ガイド (resources/migration-guide.md): 配置変更手順
  • テンプレート (templates/): 配置別のテンプレート

いつ使うか

シナリオ1: コマンド配置の決定

状況: 新しいコマンドをどこに配置すべきか判断したい

適用条件:

  • プロジェクト vs ユーザーの選択が不明
  • 共有すべきか個人用か不明
  • スコープが不明確

期待される成果: 適切な配置場所の決定

シナリオ2: 優先順位の理解

状況: 同名コマンドの優先順位を理解したい

適用条件:

  • 複数の場所に同名コマンドがある
  • どれが実行されるか不明
  • オーバーライドしたい

期待される成果: 優先順位の完全理解

シナリオ3: 名前空間の設計

状況: 複数のコマンドを論理的に組織化したい

適用条件:

  • 多数のコマンドがある
  • カテゴリ別に整理したい
  • 命名衝突を避けたい

期待される成果: 効率的な名前空間構造

配置オプション

オプション1: プロジェクトコマンド

場所: .claude/commands/

.claude/commands/
├── review.md
├── test.md
└── deploy/
    ├── staging.md
    └── production.md

特徴:

  • スコープ: プロジェクトメンバー全員
  • 共有: Gitでバージョン管理
  • 識別子: /project:command または /project:namespace:command
  • 表示: /help で "(project)" 表示

用途:

✓ チーム全体で使用するコマンド
✓ プロジェクト固有のワークフロー
✓ 標準化されたプロセス
✓ バージョン管理したいコマンド

例:
- /project:deploy:staging
- /project:test:e2e
- /project:db:migrate

メリット:

  • チーム全体で一貫性
  • Git履歴で追跡可能
  • コードレビュー可能
  • CI/CDで使用可能

デメリット:

  • 個人的なカスタマイズが困難
  • チームの承認が必要

オプション2: ユーザーコマンド

場所: ~/.claude/commands/

~/.claude/commands/
├── personal-review.md
├── quick-commit.md
└── utils/
    └── cleanup.md

特徴:

  • スコープ: ユーザー個人
  • 共有: 個人のみ
  • 識別子: /user:command または /user:namespace:command
  • 表示: /help で "(user)" 表示

用途:

✓ 個人的なワークフロー
✓ 実験的なコマンド
✓ プロジェクト非依存のユーティリティ
✓ カスタマイズされたショートカット

例:
- /user:quick-commit
- /user:my-review-style
- /user:personal-notes

メリット:

  • 個人的なカスタマイズ自由
  • チームへの影響なし
  • 即座に作成・変更可能
  • すべてのプロジェクトで利用可能

デメリット:

  • チーム共有不可
  • バージョン管理されない(個別対応必要)
  • プロジェクト固有の設定が困難

オプション3: MCPプロンプト

場所: MCPサーバーが提供

# MCPサーバーから自動提供
/mcp__github__create_pr
/mcp__jira__create_issue
/mcp__slack__send_message

特徴:

  • スコープ: MCPサーバー接続時
  • 共有: MCP経由
  • 識別子: /mcp__servername__promptname
  • 表示: MCPサーバー名付き

用途:

✓ 外部サービス統合
✓ 動的に提供されるコマンド
✓ プラグイン形式の機能

例:
- /mcp__github__create_pr
- /mcp__database__query
- /mcp__api__test

メリット:

  • 外部サービスとの統合
  • プラグイン形式で追加可能
  • サービス固有の機能

デメリット:

  • MCPサーバー依存
  • カスタマイズが制限される
  • 接続が必要

優先順位解決

基本ルール

同名コマンドが複数存在する場合:

1. .claude/commands/review.md          (プロジェクト) ← 最高優先度
2. ~/.claude/commands/review.md        (ユーザー)
3. /mcp__server__review                (MCP)            ← 最低優先度

→ 1 が実行される

詳細な優先順位

優先度: 高 → 低

1. プロジェクトコマンド(名前空間付き)
   /project:namespace:command
   例: /project:git:commit

2. プロジェクトコマンド(ルート)
   /project:command
   例: /project:test

3. ユーザーコマンド(名前空間付き)
   /user:namespace:command
   例: /user:utils:cleanup

4. ユーザーコマンド(ルート)
   /user:command
   例: /user:quick-commit

5. MCPプロンプト
   /mcp__server__prompt
   例: /mcp__github__create_pr

オーバーライドパターン

パターン1: プロジェクトをユーザーでオーバーライド

プロジェクトのデフォルトコマンドを個人用にカスタマイズ:

# プロジェクトのデフォルト
.claude/commands/commit.md → /project:commit

# ユーザーのカスタマイズ
~/.claude/commands/commit.md → /user:commit

# 実行時
/commit → プロジェクト版が優先
/user:commit → ユーザー版を明示的に実行

パターン2: MCPをプロジェクトでオーバーライド

MCPのデフォルト動作をプロジェクト固有にカスタマイズ:

# MCPデフォルト
/mcp__github__create_pr

# プロジェクトのカスタマイズ
.claude/commands/github/create-pr.md → /project:github:create-pr

# 実行時
/project:github:create-pr → プロジェクト版を使用
/mcp__github__create_pr → MCP版を使用

名前空間戦略

フラット vs 階層

フラット構造(小規模):

.claude/commands/
├── commit.md       # /project:commit
├── test.md         # /project:test
├── build.md        # /project:build
└── deploy.md       # /project:deploy

利点: シンプル
欠点: スケールしない

階層構造(推奨):

.claude/commands/
├── git/
│   ├── commit.md      # /project:git:commit
│   ├── push.md        # /project:git:push
│   └── pr.md          # /project:git:pr
├── test/
│   ├── unit.md        # /project:test:unit
│   ├── integration.md # /project:test:integration
│   └── e2e.md         # /project:test:e2e
└── deploy/
    ├── staging.md     # /project:deploy:staging
    └── production.md  # /project:deploy:production

利点: スケーラブル、組織化
欠点: 階層が増える

名前空間設計パターン

パターン1: 機能別

.claude/commands/
├── auth/          # 認証関連
│   ├── login.md
│   └── logout.md
├── api/           # API関連
│   ├── test.md
│   └── docs.md
└── ui/            # UI関連
    ├── component.md
    └── theme.md

パターン2: ツール別

.claude/commands/
├── git/           # Git操作
│   └── ...
├── docker/        # Docker操作
│   └── ...
└── pnpm/           # npm操作
    └── ...

パターン3: ワークフロー別

.claude/commands/
├── dev/           # 開発ワークフロー
│   ├── setup.md
│   └── start.md
├── test/          # テストワークフロー
│   └── ...
└── release/       # リリースワークフロー
    └── ...

選択ガイド

プロジェクト vs ユーザー

プロジェクトコマンドを選ぶべき時:

  • チーム全体で使用する
  • プロジェクト固有のロジックを含む
  • 標準化が必要
  • バージョン管理したい
  • CI/CDで使用する

ユーザーコマンドを選ぶべき時:

  • 個人的なワークフロー
  • 実験的な機能
  • プロジェクト非依存
  • 頻繁に変更する
  • 他のメンバーには不要

判断フローチャート

コマンドを作成したい
│
├─ チーム全体で使うか?
│  │
│  ├─ Yes → プロジェクトコマンド
│  │        (.claude/commands/)
│  │
│  └─ No  → 個人用か?
│     │
│     ├─ Yes → ユーザーコマンド
│     │        (~/.claude/commands/)
│     │
│     └─ No  → 外部サービス統合か?
│        │
│        └─ Yes → MCPプロンプト
│                 (MCPサーバー)

移行ガイド

ユーザー → プロジェクト

状況: 個人用コマンドをチーム共有したい

手順:

# 1. コマンドをコピー
cp ~/.claude/commands/my-command.md \
   .claude/commands/my-command.md

# 2. レビューと調整
# - プロジェクト固有のパスを確認
# - ハードコードされた個人設定を削除
# - ドキュメントを充実

# 3. Git追加
git add .claude/commands/my-command.md
git commit -m "Add my-command to project commands"

# 4. ユーザー版を削除(オプション)
rm ~/.claude/commands/my-command.md

プロジェクト → ユーザー(カスタマイズ)

状況: プロジェクトコマンドを個人用にカスタマイズしたい

手順:

# 1. プロジェクトコマンドをベースにコピー
cp .claude/commands/commit.md \
   ~/.claude/commands/commit.md

# 2. カスタマイズ
# - 個人的な設定を追加
# - ショートカットを追加
# - デフォルト値を変更

# 3. 名前空間を変更(オプション)
# description に "user:" プレフィックスを追加

# 4. 使い分け
/commit          # プロジェクト版
/user:commit     # カスタマイズ版

ベストプラクティス

1. 明確なスコープ

✓ 良い:
- プロジェクト: チーム標準のデプロイ
- ユーザー: 個人的なショートカット

✗ 悪い:
- プロジェクト: 個人的な設定を含む
- ユーザー: チーム全体で必要な機能

2. ドキュメンテーション

プロジェクトコマンド:
- 詳細なドキュメント必須
- 使用例を豊富に
- トラブルシューティング

ユーザーコマンド:
- 最小限のドキュメント
- 自分が理解できればOK

3. バージョン管理

プロジェクトコマンド:
- .gitignore に含めない
- コードレビュー実施
- 変更履歴を残す

ユーザーコマンド:
- 個別にバックアップ
- 必要に応じてGist等で共有

詳細リソースの参照

配置オプション詳細

詳細は resources/placement-options.md を参照

優先順位解決ルール

詳細は resources/priority-resolution.md を参照

名前空間戦略

詳細は resources/namespace-strategies.md を参照

移行ガイド

詳細は resources/migration-guide.md を参照

テンプレート

  • プロジェクトコマンド: templates/project-command-template.md
  • ユーザーコマンド: templates/user-command-template.md

コマンドリファレンス

このスキルで使用可能なリソース、テンプレートへのアクセスコマンド:

リソース読み取り

# 配置オプション詳細
cat .claude/skills/command-placement-priority/resources/placement-options.md

# 優先順位解決ルール
cat .claude/skills/command-placement-priority/resources/priority-resolution.md

# 名前空間戦略
cat .claude/skills/command-placement-priority/resources/namespace-strategies.md

# 移行ガイド
cat .claude/skills/command-placement-priority/resources/migration-guide.md

テンプレート参照

# プロジェクトコマンドテンプレート
cat .claude/skills/command-placement-priority/templates/project-command-template.md

# ユーザーコマンドテンプレート
cat .claude/skills/command-placement-priority/templates/user-command-template.md

他のスキルのスクリプトを活用

# 知識ドキュメントの品質検証
node .claude/skills/knowledge-management/scripts/validate-knowledge.mjs .claude/skills/command-placement-priority/resources/placement-options.md

# トークン見積もり
node .claude/skills/context-optimization/scripts/estimate-tokens.mjs .claude/skills/command-placement-priority/SKILL.md

# ドキュメント構造分析
node .claude/skills/documentation-architecture/scripts/analyze-structure.mjs .claude/skills/command-placement-priority

関連スキル

  • .claude/skills/command-structure-fundamentals/SKILL.md - ファイル構造
  • .claude/skills/command-naming-conventions/SKILL.md - 名前空間設計

更新履歴

  • v1.0.0 (2025-11-24): 初版作成