mcpField
S
skill-manager

skill-manager

github.com/egebeseAgent 工作流39115 次安装36 周前更新
代码仓库

关于 skill-manager

skill-manager 是一项 Agent 技能,可检测项目技术栈,并通过 CLAUDE.md 中的受控区块停用不相关的全局技能,适合希望按项目整理技能的开发者。它支持用户覆盖设置,也可重新启用所有技能。

主要功能

  1. 01根据配置文件检测项目技术栈
  2. 02按相关性评估已安装技能
  3. 03保留通用技能和用户覆盖项
  4. 04更新 CLAUDE.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

详细介绍

Skill Manager

分析当前项目的技术栈,并通过在项目的 CLAUDE.md 中注入一个有界区段,禁用不相关的全局安装技能。

使用时机

  • 用户说“管理技能”“优化技能”“skill manager”
  • 用户说“禁用不相关的技能”或“我需要哪些技能?”
  • 用户说“清理此项目的技能”
  • 用户说“重新启用所有技能”
  • 在新项目开始时减少上下文窗口浪费

快速开始

如果 Python 分析脚本可用,则运行该脚本;否则,请按照下面的手动流程操作。

步骤 1:检测项目技术栈

检查项目根目录(当前工作目录)中的以下文件:

文件技术栈信号
package.jsonNode.js — 读取其中内容以识别框架(next、react、vue、angular、svelte 等)
Podfile 或 *.xcodeprojiOS/macOS 原生开发
Package.swiftSwift Package(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 -> 视频/媒体处理

Monorepo 检测:如果项目包含 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/payment 依赖时必不可少:

  • 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/支付技能的评分为“有用”(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

如果用户要求“重新启用所有技能”:
  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:创建该文件,且只包含 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 含有其他内容:只会修改由标记界定的章节。

评论

支持 Markdown