skill-manager について
skill-managerは、プロジェクトの技術スタックを検出し、CLAUDE.mdの管理対象セクションを使って無関係なグローバルスキルを無効化するエージェントスキルです。プロジェクトごとにスキルを整理したい開発者向けで、個別設定と一括再有効化に対応します。
主な機能
- 01設定ファイルから技術スタックを検出
- 02インストール済みスキルの関連度を評価
- 03共通スキルとユーザー設定を保持
- 04CLAUDE.mdの指定セクションを更新
- 05全スキルの再有効化に対応
活用シーン
- 01プロジェクト開始時に無関係なスキルを減らす
- 02プロジェクトに合うスキルを確認
- 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.json | Node.js — フレームワークを確認します(next、react、vue、angular、svelte など) |
Podfile または *.xcodeproj | iOS/macOS ネイティブ |
Package.swift | Swift パッケージ(iOS/macOS) |
Cargo.toml | Rust |
go.mod | Go |
requirements.txt / pyproject.toml / setup.py | Python |
Gemfile | Ruby |
composer.json | PHP |
build.gradle / build.gradle.kts | Android/JVM |
pubspec.yaml | Flutter/Dart |
Dockerfile / docker-compose.yml | コンテナ化 |
vercel.json / netlify.toml | Jamstack デプロイ |
tsconfig.json | TypeScript |
ルートまたは Sources 内の .swift ファイル | Swift CLI/サーバー |
package.json の依存関係を読み、フレームワークを特定します。
next-> Next.jsreact-> Reactvue-> Vue@angular/core-> Angularsvelte-> Sveltestripe-> 決済処理express/fastify/hono-> Node サーバーtailwindcss-> Tailwind CSSremotion-> 動画/メディア処理
モノレポの検出:プロジェクトに packages/、apps/、または package.json のワークスペース設定がある場合は、サブディレクトリもスキャンし、検出したスタックをすべて統合します。
空のプロジェクト:認識できるファイルが見つからない場合は、ユーザーに警告し、すべてのスキルを有効のままにします。
ステップ 2:インストール済みスキルを読み込む
~/.agents/.skill-lock.json を読み込み、グローバルにインストールされているすべてのスキルの一覧を取得します。各スキルについて、次の項目を確認します。
name(キー)source(GitHub リポジトリ)skillPath(SKILL.md の場所)
ステップ 3:各スキルを評価する
検出した技術スタックに基づいて、各スキルをティアに分類します。
ティアの定義
| ティア | スコア範囲 | 意味 |
|---|---|---|
| essential | 80-100 | 検出したスタックに直接関連 |
| useful | 40-79 | クロスプラットフォームのユーティリティで、使用される可能性があります |
| irrelevant | 0-39 | プラットフォーム/分野がまったく異なる |
| universal | N/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-crocopywriting、copy-editing、content-strategyseo-audit、programmatic-seo、schema-markupanalytics-tracking、ab-test-setupemail-sequence、social-contentmarketing-ideas、marketing-psychologyfree-tool-strategy、launch-strategypaid-ads、referral-programpricing-strategy、competitor-alternativesaudit-website
決済スキル — stripe/決済の依存関係が検出された場合に必須です:
stripe-integrationpaywall-upgrade-crochurn-prevention
メディア/AI 生成スキル — メディア関連の依存関係が検出された場合に必須です:
fal-audio、fal-generate、fal-image-edit、fal-platform、fal-upscale、fal-workflowremotion-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 を更新する
「すべて再有効化」がリクエストされた場合:
- CLAUDE.md から
...ブロックを削除します。 .claude/skill-manager.jsonを削除します。- ユーザーに「すべてのスキルを再有効化しました。」と伝えます。
- ここで終了します。
通常のフロー:
挿入ブロックを作成します:
## 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
挿入ルール:
- 現在の CLAUDE.md を読み取ります(または、存在しないことを確認します)。
- マーカーがある場合:
との間(両端を含む)を新しいブロックに置き換えます。 - マーカーがない場合:空行を挟んで、ブロックを CLAUDE.md の末尾に追加します。
- 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に他の内容がある場合:マーカーで囲まれたセクションのみが変更されます。