mcpField
F
find-skills

find-skills

github.com/dan323Agent 工作流1035 次安装5 周前更新
代码仓库

关于 find-skills

find-skills 是只读的 Claude Code 技能,用于分析当前代码仓库,并从已知市场推荐相关技能。它依据项目用途和技术情况匹配建议,生成排序报告,不安装技能或修改文件。

主要功能

  1. 01分析仓库与项目概况
  2. 02查看市场目录
  3. 03仅在明确要求时在线搜索
  4. 04按相关性匹配技能
  5. 05生成排序推荐报告
  6. 06只读操作

适用场景

  1. 01为代码仓库查找适用技能
  2. 02检查本地市场目录中的项目工具
  3. 03在不修改项目的情况下生成技能建议

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/dan323/easier-life-skills --skill find-skills

安装后在 Claude Code 中输入/find-skills确认已加载。

附带文件evals/evals.json

详细介绍

查找技能

分析当前代码仓库,然后从已知市场中查找并推荐适合此项目的 Claude Code 技能。

此技能为只读。 它会生成推荐报告,不会安装任何内容,也不会修改任何文件。


任务跟踪

开始任何工作之前,请为下方各阶段调用 TaskCreate。开始某个阶段时,调用 TaskUpdate,将状态设为 in_progress;完成阶段时,调用 TaskUpdate,将状态设为 completed。

  • 确定搜索模式
  • 了解代码仓库
  • 加载已知市场
  • 在线搜索(仅在启用在线模式时创建)
  • 将技能与项目匹配
  • 编写报告

阶段 1:确定搜索模式

检查用户的提示词,确认是否明确要求在线搜索。 只有提示词中包含以下任一内容时,才在线搜索:

  • "online"
  • "search the web"
  • "search online"
  • "web search"
  • "internet"

默认仅离线搜索——只查看本地市场目录和已知市场网址。


阶段 2:了解代码仓库

收集足够的上下文,以判断技能的相关性。并行运行以下所有命令:

# Project identity
cat README.md 2>/dev/null | head -60 || true
cat package.json 2>/dev/null || cat pyproject.toml 2>/dev/null || \
  cat Cargo.toml 2>/dev/null || cat go.mod 2>/dev/null || \
  cat pom.xml 2>/dev/null || cat build.gradle.kts 2>/dev/null || \
  cat build.gradle 2>/dev/null || true

# Languages present
find . -maxdepth 4 \
  -not -path "*/.git/*" -not -path "*/node_modules/*" \
  -not -path "*/vendor/*" -not -path "*/.venv/*" -not -path "*/dist/*" \
  \( -name "*.java" -o -name "*.kt" -o -name "*.py" -o -name "*.js" \
     -o -name "*.ts" -o -name "*.tsx" -o -name "*.go" -o -name "*.rs" \
     -o -name "*.cs" -o -name "*.rb" -o -name "*.php" \) \
  | sed 's/.*\.//' | sort | uniq -c | sort -rn | head -10

# Framework signals
grep -rl "spring\|django\|fastapi\|flask\|express\|nestjs\|rails\|laravel\|gin\|axum" \
  --include="*.json" --include="*.toml" --include="*.gradle" --include="*.xml" \
  . 2>/dev/null | head -10 || true

# REST API signals
grep -rl "@RestController\|@Router\|app\.route\|router\.\(get\|post\|put\|delete\)\|@Controller\|@RequestMapping\|FastAPI\|express()" \
  --include="*.java" --include="*.kt" --include="*.py" --include="*.ts" \
  --include="*.js" . 2>/dev/null | head -5 || true

# CI/CD and automation signals
ls -la .github/workflows/ 2>/dev/null || true
ls -la .gitlab-ci.yml Jenkinsfile Makefile 2>/dev/null || true

# Git history activity
git log --oneline -20 2>/dev/null || true

# Existing installed skills / plugins
cat ~/.claude/settings.json 2>/dev/null | grep -A5 '"skills"\|"plugins"' || true
ls ~/.claude/plugins/ 2>/dev/null || true

# CHANGELOG presence
ls -la CHANGELOG.md CHANGELOG.rst changelog.md 2>/dev/null || true

# Docs presence
ls -la README.md docs/ 2>/dev/null || true

# Logging patterns
grep -rl "log\.\(info\|debug\|error\|warn\)\|logger\.\|logging\." \
  --include="*.java" --include="*.kt" --include="*.py" --include="*.ts" \
  --include="*.js" --include="*.go" . 2>/dev/null | wc -l || echo "0"

建立项目的内部概况:

  • 主要语言
  • 检测到的框架
  • 是否有 REST API
  • 是否有 CI/CD
  • 是否存在 CHANGELOG.md
  • 是否有文档以及文档是否完整
  • 日志覆盖情况(粗略统计)
  • 项目规模和复杂度
  • 项目用途和领域——根据 README、软件包描述、文件夹名称和文件内容,推断项目的功能。例如:“用于管理部署的 CLI 工具”、“图像分类机器学习流水线”、“电子商务后端”或“代码分析开发工具”。这与技术栈不同,必须在内部概况中明确说明。它决定了哪些非技术类技能(例如头脑风暴、文档编写、变更日志生成)具有相关性,也有助于发现那些价值来自项目用途而非实现细节的技能。

阶段 3:加载已知市场

始终检查以下已知市场目录(获取目录,不要安装):

市场 1 — easier-life-skills(dan323)

这是主要的已知市场。读取其目录:

# Check if it is installed locally
cat ~/.claude/plugins/easier-life-skills/.claude-plugin/marketplace.json 2>/dev/null || true

如果本地未找到,请使用 WebFetch 工具获取原始目录: https://raw.githubusercontent.com/dan323/easier-life-skills/master/.claude-plugin/marketplace.json

目录列出了所有可用插件及其名称、描述、类别和关键词。 使用它来建立候选池。

市场 2 — skills(anthropics)

这是 Anthropic 官方技能市场。读取其目录:

# Check if it is installed locally
cat ~/.claude/plugins/skills/.claude-plugin/marketplace.json 2>/dev/null || true

如果本地未找到,请使用 WebFetch 工具获取原始目录: https://raw.githubusercontent.com/anthropics/skills/master/.claude-plugin/marketplace.json

本地市场索引
# Check if there are other marketplaces registered locally
cat ~/.claude/settings.json 2>/dev/null | grep -A20 '"marketplaces"\|"pluginSources"' || true
find ~/.claude/plugins -name "marketplace.json" 2>/dev/null | head -10 || true

加载找到的其他市场目录。


阶段 4:在线搜索(仅在明确要求时)

如果用户没有明确要求在线搜索,请完全跳过此阶段。

如果用户要求在线搜索,请使用 WebSearch 查找更多 Claude Code 技能市场,以及与项目领域相关的单项技能:

要运行的搜索查询(根据检测到的项目领域调整):

  • "claude code" skill plugin marketplace {primary_language}
  • "claude code" skill plugin {framework_name}(针对检测到的每个框架)
  • site:github.com "claude-plugin" "SKILL.md" {domain_keyword}

对于找到的每个 GitHub 仓库:

  • 检查是否包含 .claude-plugin/marketplace.json 或独立的 SKILL.md 文件
  • 提取技能名称、描述和安装说明
  • 将其添加到候选池

阶段 5:将技能与项目匹配

为候选池中的每项技能评估其与此项目的相关性。 只有当技能能解决项目当前面临的实际问题,而非假设性问题时,才视为相关。

评分启发式
技术信号
条件加权
项目没有 CHANGELOG,且技能可以生成一个高
项目有 REST API,且技能能发现不兼容变更高
项目没有文档 / README 内容很少,且技能可以创建文档高
项目存在明显的日志缺失,且技能可以审查日志高
项目有 CI / 自动化任务,且技能可以自动执行 Agent 任务中
项目存在死代码迹象(代码库庞大且年代久远、存在私有方法),且技能可以发现死代码中
技能的关键词与检测到的框架 / 语言重叠较低加权
用途和领域信号

根据技能与项目用途的匹配程度来筛选,而不只是看项目的构建方式。 将每项技能目录说明视为一项价值主张,并思考:它能为从事这类项目的人带来价值吗?

条件加权
项目是开发者工具 / SDK / 库,使用者需要清晰的文档文档技能加权高
项目处于活跃开发阶段,方向不明确或仍在早期阶段,头脑风暴能带来很大价值头脑风暴技能加权高
项目是面向公众的产品,且有版本化发布,变更日志对外部使用者很重要变更日志技能加权高
项目是数据管道 / ML / 批处理系统,可观测性和日志质量至关重要日志技能加权高
项目是大型、长期维护且有多位贡献者的代码库,死代码更容易累积死代码技能加权更高
技能说明明确涵盖项目领域(例如,面向 REST 服务的“REST API”技能)中到高
技能解决了项目维护者根据项目用途可能遇到的工作流问题中
不相关信号(排除或排在最后)
  • 技能已安装(在 ~/.claude/plugins 中找到)
  • 技能涉及此代码库中不存在的领域(例如,面向没有 HTTP 层的 CLI 的 REST 不兼容变更技能)
  • 技能的用途已被已安装的技能完全涵盖

第 6 阶段:输出报告

始终按以下格式生成报告,并按相关性排序(最相关的排在前面)。 最多显示 7 项技能。如果真正相关的技能少于 3 项,请如实说明, 不要为了凑数而推荐相关性较低的技能。

## Skill Recommendations for {project name}

{One sentence describing the project, for context.}

---

### Recommended Skills

#### 1. {skill-name}  ·  {marketplace-name}  ·  Relevance: High / Medium / Low

**What it does**: {One sentence from the catalog description.}

**Why it fits this project**: {Specific reason grounded in what was observed in the repo.
  May reference technical signals ("your project has 18 REST endpoints but no CHANGELOG.md")
  OR purpose/domain signals ("as a public SDK, consumers depend on versioned release notes").
  Never generic — "Could be useful for API projects" is not acceptable.}

**Install**:
\`\`\`
/plugin marketplace add {marketplace-owner}/{marketplace-name}
/plugin install {marketplace-name}/{skill-name}
\`\`\`

---

#### 2. ...

(repeat for each recommended skill)

---

### Skills Checked but Not Recommended

| Skill | Reason skipped |
|---|---|
| {skill-name} | {One-line reason — e.g. "Already installed", "No REST APIs detected", "Docs already complete"} |

---

### Marketplaces Searched

- easier-life-skills (dan323) — {N} skills checked
- skills (anthropics) — {N} skills checked
{- any additional marketplaces found}
{- Online search: {N} results checked}  ← only if online mode was used

---

_To install any skill above, copy the install commands. Skills are read-only analysis tools
unless their description says otherwise._
如果没有相关技能
## Skill Recommendations for {project name}

No skills from the checked marketplaces are a strong fit for this project right now.

**Checked marketplaces**: easier-life-skills (dan323) — {N} skills reviewed, skills (anthropics) — {N} skills reviewed

**Reason**: {Brief explanation — e.g. "All available skills target domains not present in
this repo (REST APIs, logging, documentation), and your project is already well-covered
in those areas."}

Consider running `/find-skills online` to search for additional skill marketplaces.

评论

支持 Markdown