mcpField
S
skill-manager

skill-manager

github.com/egebeseエージェントワークフロー39115 回インストール36 週間前に更新
リポジトリ

skill-manager について

skill-managerは、プロジェクトの技術スタックを検出し、CLAUDE.mdの管理対象セクションを使って無関係なグローバルスキルを無効化するエージェントスキルです。プロジェクトごとにスキルを整理したい開発者向けで、個別設定と一括再有効化に対応します。

主な機能

  1. 01設定ファイルから技術スタックを検出
  2. 02インストール済みスキルの関連度を評価
  3. 03共通スキルとユーザー設定を保持
  4. 04CLAUDE.mdの指定セクションを更新
  5. 05全スキルの再有効化に対応

活用シーン

  1. 01プロジェクト開始時に無関係なスキルを減らす
  2. 02プロジェクトに合うスキルを確認
  3. 03作業後にスキルを再有効化

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/egebese/skill-manager --skill skill-manager

インストール後、Claude Code で/skill-managerを入力して読み込まれたか確認します。

同梱ファイルreferences/tech-domains.mdscripts/analyze_project.py

詳細

スキルマネージャー

現在のプロジェクトの技術スタックを分析し、プロジェクトの CLAUDE.md に範囲を限定したセクションを挿入して、関係のないグローバルインストール済みスキルを無効にします。

使用するタイミング

  • ユーザーが「スキルを管理」「スキルを最適化」「スキルマネージャー」と言ったとき
  • ユーザーが「関係のないスキルを無効にして」「必要なスキルはどれ?」と言ったとき
  • ユーザーが「このプロジェクトのスキルを整理して」と言ったとき
  • ユーザーが「すべてのスキルを再度有効にして」と言ったとき
  • コンテキストウィンドウの無駄を減らすため、新しいプロジェクトを始めるとき

クイックスタート

利用可能な場合は Python 分析スクリプトを実行し、そうでない場合は以下の手動ワークフローに従います。

ステップ 1:プロジェクトの技術スタックを検出する

プロジェクトのルート(現在の作業ディレクトリ)に次のファイルがあるか確認します。

ファイルスタックのシグナル
package.jsonNode.js — フレームワークを確認します(next、react、vue、angular、svelte など)
Podfile または *.xcodeprojiOS/macOS ネイティブ
Package.swiftSwift パッケージ(iOS/macOS)
Cargo.tomlRust
go.modGo
requirements.txt / pyproject.toml / setup.pyPython
GemfileRuby
composer.jsonPHP
build.gradle / build.gradle.ktsAndroid/JVM
pubspec.yamlFlutter/Dart
Dockerfile / docker-compose.ymlコンテナ化
vercel.json / netlify.tomlJamstack デプロイ
tsconfig.jsonTypeScript
ルートまたは Sources 内の .swift ファイルSwift CLI/サーバー

package.json の依存関係を読み、フレームワークを特定します。

  • next -> Next.js
  • react -> React
  • vue -> Vue
  • @angular/core -> Angular
  • svelte -> Svelte
  • stripe -> 決済処理
  • express / fastify / hono -> Node サーバー
  • tailwindcss -> Tailwind CSS
  • remotion -> 動画/メディア処理

モノレポの検出:プロジェクトに packages/、apps/、または package.json のワークスペース設定がある場合は、サブディレクトリもスキャンし、検出したスタックをすべて統合します。

空のプロジェクト:認識できるファイルが見つからない場合は、ユーザーに警告し、すべてのスキルを有効のままにします。

ステップ 2:インストール済みスキルを読み込む

~/.agents/.skill-lock.json を読み込み、グローバルにインストールされているすべてのスキルの一覧を取得します。各スキルについて、次の項目を確認します。

  • name(キー)
  • source(GitHub リポジトリ)
  • skillPath(SKILL.md の場所)

ステップ 3:各スキルを評価する

検出した技術スタックに基づいて、各スキルをティアに分類します。

ティアの定義
ティアスコア範囲意味
essential80-100検出したスタックに直接関連
useful40-79クロスプラットフォームのユーティリティで、使用される可能性があります
irrelevant0-39プラットフォーム/分野がまったく異なる
universalN/Aスタックに関係なく無効にしません
ユニバーサルスキル(絶対に無効にしない)
find-skills, skill-creator, writing-skills, brainstorming,
writing-plans, test-driven-development, dispatching-parallel-agents,
subagent-driven-development, using-superpowers, agentation, skill-manager
ドメインマッピング

iOS/macOS ネイティブスキル — Swift/Xcode が検出された場合に必須です:

  • mobile-ios-design(iOS UI/SwiftUI)
  • asc-xcode-build(Xcode のビルド/アーカイブ)
  • asc-metadata-sync(App Store のメタデータ)
  • asc-localize-metadata(App Store のローカライズ)
  • asc-subscription-localization(IAP のローカライズ)
  • asc-ppp-pricing(地域別価格設定)
  • asc-shots-pipeline(スクリーンショットの自動化)
  • asc-notarization(macOS の公証)
  • app-store-optimization(ASO)
  • aso-full-audit、aso-optimize、aso-competitor、aso-prelaunch、aso

Web/SaaS マーケティングスキル — Web フレームワークが検出された場合に必須です:

  • page-cro、signup-flow-cro、onboarding-cro、popup-cro、form-cro
  • copywriting、copy-editing、content-strategy
  • seo-audit、programmatic-seo、schema-markup
  • analytics-tracking、ab-test-setup
  • email-sequence、social-content
  • marketing-ideas、marketing-psychology
  • free-tool-strategy、launch-strategy
  • paid-ads、referral-program
  • pricing-strategy、competitor-alternatives
  • audit-website

決済スキル — stripe/決済の依存関係が検出された場合に必須です:

  • stripe-integration
  • paywall-upgrade-cro
  • churn-prevention

メディア/AI 生成スキル — メディア関連の依存関係が検出された場合に必須です:

  • fal-audio、fal-generate、fal-image-edit、fal-platform、fal-upscale、fal-workflow
  • remotion-best-practices
ドメイン横断ルール
  • マーケティングスキルは、Web 以外のプロジェクトでも「有用」(50)と評価されます。ユーザーはどのプロジェクトからでもマーケティングを行うことがあるためです。
  • Stripe/決済スキルは、依存関係に stripe が含まれていない場合は「有用」(50)、含まれている場合は「必須」(90)です。
  • ASO スキルは、iOS では「必須」(95)、モバイル以外では「無関係」(10)です。
  • *fal- スキル**は、メディア処理が検出されない限り「無関係」(10)です。
  • *asc- スキル**は、Apple 以外のプロジェクトでは「無関係」(5)です。
  • remotion-best-practicesは、依存関係に remotion が含まれている場合は「必須」(90)、それ以外の場合は「無関係」(10)です。

Step 4: オーバーライドを確認する

.claude/skill-manager.json がすでに存在する場合は、overrides セクションを読み取ります:

{
  "overrides": {
    "forceEnable": ["seo-audit"],
    "forceDisable": ["fal-audio"]
  }
}
  • forceEnable:スコアにかかわらず、これらのスキルを「必須」ティアに移動します。
  • forceDisable:スコアにかかわらず、これらのスキルを「無関係」ティアに移動します。

Step 5: .claude/skill-manager.json を生成する

.claude/ ディレクトリが存在しない場合は作成します。分析ファイルを書き込みます:

{
  "version": 1,
  "generatedAt": "2026-02-23T12:00:00Z",
  "detectedStack": {
    "primary": "Next.js",
    "languages": ["TypeScript", "JavaScript"],
    "frameworks": ["Next.js", "React", "Tailwind CSS"],
    "platforms": ["Web"],
    "signals": {
      "package.json": true,
      "tsconfig.json": true,
      "next.config.ts": true
    }
  },
  "skills": {
    "page-cro": { "tier": "essential", "score": 95, "reason": "Web CRO directly applicable" },
    "mobile-ios-design": { "tier": "irrelevant", "score": 5, "reason": "No iOS stack detected" }
  },
  "disabled": ["mobile-ios-design", "asc-xcode-build"],
  "enabled": ["page-cro", "stripe-integration"],
  "universal": ["find-skills", "brainstorming"],
  "overrides": {
    "forceEnable": [],
    "forceDisable": []
  },
  "stats": {
    "total": 53,
    "essential": 20,
    "useful": 10,
    "irrelevant": 12,
    "universal": 11
  }
}

Step 6: CLAUDE.md を更新する

「すべて再有効化」がリクエストされた場合:
  1. CLAUDE.md から ... ブロックを削除します。
  2. .claude/skill-manager.json を削除します。
  3. ユーザーに「すべてのスキルを再有効化しました。」と伝えます。
  4. ここで終了します。
通常のフロー:

挿入ブロックを作成します:


## Disabled Skills

The following skills are **not relevant** to this project and should be **ignored** (do not invoke them):

- `mobile-ios-design` — No iOS stack detected
- `asc-xcode-build` — No Xcode project detected
- ...

**Stack**: Next.js / TypeScript / React / Tailwind CSS
**Last analyzed**: 2026-02-23
**Re-run**: Say "manage skills" or "/skill-manager" to re-analyze
**Re-enable all**: Say "re-enable all skills" to remove this section

挿入ルール:
  1. 現在の CLAUDE.md を読み取ります(または、存在しないことを確認します)。
  2. マーカーがある場合:と の間(両端を含む)を新しいブロックに置き換えます。
  3. マーカーがない場合:空行を挟んで、ブロックを CLAUDE.md の末尾に追加します。
  4. CLAUDE.md がない場合:スキルマネージャーのブロックのみを含むファイルを作成します。

重要:CLAUDE.md の他の内容は変更しないでください。範囲がマーカーで区切られたセクションのみを編集してください。

Step 7: 新しいスキルを提案する(任意)

検出されたスタックに、インストールされていないスキルが適している場合は、それらに言及します:

Next.js プロジェクトに基づき、次のスキルも役立つ可能性があります:

  • Next.js 固有のスキルを探すには npx skills find nextjs
  • React のパターンを探すには npx skills find react

明確な不足がある場合にのみ提案してください。提案が多くなりすぎないようにしてください。

Step 8: 概要を報告する

概要テーブルを出力します:

Skill Manager Analysis Complete

Stack: Next.js / TypeScript / React
Total skills: 53
  Essential: 20 (kept active)
  Useful: 10 (kept active)
  Irrelevant: 12 (disabled in CLAUDE.md)
  Universal: 11 (always active)

Disabled skills written to CLAUDE.md
Full analysis: .claude/skill-manager.json

自動モード(Python スクリプト)

Python 3.9 以降が利用可能な場合は、分析スクリプトを実行して、より高速で決定的な結果を得られます:

python3 skills/skill-manager/scripts/analyze_project.py --analyze "$(pwd)"

または、スタックの検出のみを実行します:

python3 skills/skill-manager/scripts/analyze_project.py --detect-stack "$(pwd)"

スクリプトのパスは、スキルがインストールされている場所からの相対パスです。次の方法で確認してください:

# The skill is installed at ~/.agents/skills/skill-manager/
python3 ~/.agents/skills/skill-manager/scripts/analyze_project.py --analyze "$(pwd)"

スクリプトは JSON を標準出力に出力します。その出力を使って .claude/skill-manager.json と CLAUDE.md の挿入ブロックを作成します。

Python が利用できない場合は、上記の手動手順に従ってください。同じ結果が得られます。

冪等性

  • このスキルは複数回実行しても安全です
  • CLAUDE.md のセクションは置き換えられ、重複しません
  • JSON ファイルは新しい分析結果で上書きされます
  • JSON 内のユーザーによる上書き設定は、再実行後も保持されます

エッジケース

  • モノレポ:サブディレクトリで検出されたすべてのスタックを統合します。有効な状態を保つスキルが増えます。
  • 空のプロジェクト:すべてのスキルを有効なままにします。ユーザーに「スタックが検出されませんでした」と警告します。
  • 前回の実行以降に新しいスキルがインストールされた場合:再実行時に自動的に取り込まれます。
  • スキルがアンインストールされた場合:再実行時に無効化リストから削除されます。
  • CLAUDE.md に他の内容がある場合:マーカーで囲まれたセクションのみが変更されます。

コメント