关于 skill-manager
skill-manager 是一项 Agent 技能,可检测项目技术栈,并通过 CLAUDE.md 中的受控区块停用不相关的全局技能,适合希望按项目整理技能的开发者。它支持用户覆盖设置,也可重新启用所有技能。
主要功能
- 01根据配置文件检测项目技术栈
- 02按相关性评估已安装技能
- 03保留通用技能和用户覆盖项
- 04更新 CLAUDE.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
详细介绍
Skill Manager
分析当前项目的技术栈,并通过在项目的 CLAUDE.md 中注入一个有界区段,禁用不相关的全局安装技能。
使用时机
- 用户说“管理技能”“优化技能”“skill manager”
- 用户说“禁用不相关的技能”或“我需要哪些技能?”
- 用户说“清理此项目的技能”
- 用户说“重新启用所有技能”
- 在新项目开始时减少上下文窗口浪费
快速开始
如果 Python 分析脚本可用,则运行该脚本;否则,请按照下面的手动流程操作。
步骤 1:检测项目技术栈
检查项目根目录(当前工作目录)中的以下文件:
| 文件 | 技术栈信号 |
|---|---|
package.json | Node.js — 读取其中内容以识别框架(next、react、vue、angular、svelte 等) |
Podfile 或 *.xcodeproj | iOS/macOS 原生开发 |
Package.swift | Swift Package(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-> 视频/媒体处理
Monorepo 检测:如果项目包含 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/payment 依赖时必不可少:
stripe-integrationpaywall-upgrade-crochurn-prevention
媒体/AI 生成技能 — 检测到媒体依赖时必不可少:
fal-audio、fal-generate、fal-image-edit、fal-platform、fal-upscale、fal-workflowremotion-best-practices
跨领域规则
- 在非 Web 项目中,营销技能的评分为“有用”(50)——用户有时会在任何项目中开展营销
- Stripe/支付技能的评分为“有用”(50),除非依赖中包含 stripe,此时评分为“必不可少”(90)
- 对于 iOS 项目,ASO 技能评分为“必不可少”(95);对于非移动项目,评分为“不相关”(10)
- 除非检测到媒体处理,否则 *fal- 技能**的评分为“不相关”(10)
- 对于非 Apple 项目,*asc- 技能**的评分为“不相关”(5)
- 如果依赖中包含 remotion,则 remotion-best-practices 评分为“必不可少”(90);否则评分为“不相关”(10)
第 4 步:检查覆盖设置
如果 .claude/skill-manager.json 已存在,请读取 overrides 部分:
{
"overrides": {
"forceEnable": ["seo-audit"],
"forceDisable": ["fal-audio"]
}
}
forceEnable:无论评分如何,都将这些技能移至“必不可少”层级forceDisable:无论评分如何,都将这些技能移至“不相关”层级
第 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
}
}
第 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:创建该文件,且只包含 skill-manager 代码块
重要:请勿修改 CLAUDE.md 中的任何其他内容。只能修改由标记界定的部分。
第 7 步:建议新技能(可选)
如果检测到的技术栈表明可能需要尚未安装的技能,请提及:
根据你的 Next.js 项目,你可能还需要:
npx skills find nextjs,用于查找 Next.js 专属技能npx skills find react,用于查找 React 模式
仅在存在明显缺口时才提出建议。不要列出过多建议。
第 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 输出到 stdout。使用该输出填充 .claude/skill-manager.json 和 CLAUDE.md 注入代码块。
如果无法使用 Python,请遵循上述手动步骤——结果相同。
幂等性
- 多次运行此技能是安全的
- CLAUDE.md 中的章节会被替换,不会重复
- JSON 文件会被覆盖为最新分析结果
- JSON 中的用户覆盖设置会在重新运行时保留
边缘情况
- 单体仓库:合并所有从子目录中检测到的技术栈。更多技能会保持启用。
- 空项目:保持所有技能启用。向用户发出警告:“未检测到技术栈。”
- 自上次运行后安装了新技能:重新运行时会自动纳入。
- 技能已卸载:重新运行时会从禁用列表中移除。
- CLAUDE.md 含有其他内容:只会修改由标记界定的章节。