动态技能管理器Skill core-dynamic-skills

这是一个基于项目依赖关系自动生成特定于crate的技能的工具,支持同步、清理和更新技能,旨在提高Rust项目的开发效率。

后端开发 0 次安装 0 次浏览 更新于 2/27/2026

name: core-dynamic-skills

命令式工具 - 无描述以防止自动触发

触发方式:/sync-crate-skills, /clean-crate-skills, /update-crate-skill

argument-hint: “[–force] | <crate_name>” context: fork agent: general-purpose

动态技能管理器

版本: 2.1.0 | 最后更新: 2025-01-27

根据项目依赖关系按需生成特定于crate的技能。

概念

动态技能是:

  • ~/.claude/skills/ 生成
  • 基于 Cargo.toml 依赖
  • 使用 docs.rs 的 llms.txt 创建
  • 可版本控制和更新
  • 不会提交到 rust-skills 仓库

触发场景

打开时提示

当进入包含 Cargo.toml 的目录时:

  1. 检测 Cargo.toml(单个或工作空间)
  2. 解析依赖列表
  3. 检查哪些crate缺少技能
  4. 如果缺少:“发现X个依赖没有技能。现在同步吗?”
  5. 如果确认:运行 /sync-crate-skills

手动命令

  • /sync-crate-skills - 同步所有依赖
  • /clean-crate-skills [crate] - 移除技能
  • /update-crate-skill <crate> - 更新特定技能

执行模式检测

CRITICAL: 检查代理和命令基础设施是否可用。

尝试读取:../../agents/ 目录 检查 /create-llms-for-skills/create-skills-via-llms 命令是否工作。


代理模式(插件安装)

当完整的插件基础设施可用时:

架构

Cargo.toml
    ↓
解析依赖
    ↓
对于每个crate:
  ├─ 检查 ~/.claude/skills/{crate}/
  ├─ 如果缺失:检查 actionbook 的 llms.txt
  │     ├─ 找到:/create-skills-via-llms
  │     └─ 未找到:先执行 /create-llms-for-skills
  └─ 加载技能

工作流程优先级

  1. actionbook MCP - 检查预生成的 llms.txt
  2. /create-llms-for-skills - 从 docs.rs 生成 llms.txt
  3. /create-skills-via-llms - 从 llms.txt 创建技能

同步命令

/sync-crate-skills [--force]
  1. 解析 Cargo.toml 依赖
  2. 对于每个依赖:
    • 检查 ~/.claude/skills/{crate}/ 是否存在技能
    • 如果缺失(或 --force):生成技能
  3. 报告结果

内联模式(仅技能安装)

当代理/命令基础设施不可用时,手动执行:

第1步:解析 Cargo.toml

# 读取依赖
cat Cargo.toml | grep -A 100 '\[dependencies\]' | grep -E '^[a-zA-Z]'

或者使用读取工具解析 Cargo.toml 并提取:

  • [dependencies] 部分
  • [dev-dependencies] 部分(可选)
  • 工作空间成员(如果是工作空间项目)

第2步:检查现有技能

# 列出现有技能
ls ~/.claude/skills/

与依赖比较以找到缺失的技能。

第3步:生成缺失技能

对于每个缺失的crate:

# 1. 获取crate文档
agent-browser open "https://docs.rs/{crate}/latest/{crate}/"
agent-browser get text ".docblock"
# 保存内容

# 2. 创建技能目录
mkdir -p ~/.claude/skills/{crate}
mkdir -p ~/.claude/skills/{crate}/references

# 3. 创建 SKILL.md
# 使用 rust-skill-creator 内联模式的模板

# 4. 创建关键模块的参考文件
agent-browser open "https://docs.rs/{crate}/latest/{crate}/{module}/"
agent-browser get text ".docblock"
# 保存到 ~/.claude/skills/{crate}/references/{module}.md

agent-browser close

WebFetch备用:

WebFetch("https://docs.rs/{crate}/latest/{crate}/", "提取API文档概述、关键类型和使用示例")

第4步:工作空间支持

对于 Cargo 工作空间项目:

# 1. 解析根 Cargo.toml 以获取工作空间成员
cat Cargo.toml | grep -A 10 '\[workspace\]'

# 2. 对于每个成员,解析他们的 Cargo.toml
for member in members; do
  cat ${member}/Cargo.toml | grep -A 100 '\[dependencies\]'
done

# 3. 聚合并去重依赖
# 4. 为缺失的crate生成技能

清理命令(内联)

# 清理特定crate
rm -rf ~/.claude/skills/{crate_name}

# 清理所有生成的技能
rm -rf ~/.claude/skills/*

更新命令(内联)

# 移除旧技能
rm -rf ~/.claude/skills/{crate_name}

# 重新生成(与单个crate的同步相同)
# 按照上述第3步为特定crate操作

本地技能目录

~/.claude/skills/
├── tokio/
│   ├── SKILL.md
│   └── references/
├── serde/
│   ├── SKILL.md
│   └── references/
└── axum/
    ├── SKILL.md
    └── references/

相关命令

  • /sync-crate-skills - 主同步命令
  • /clean-crate-skills - 清理命令
  • /update-crate-skill - 更新命令
  • /create-llms-for-skills - 生成 llms.txt(代理模式仅)
  • /create-skills-via-llms - 从 llms.txt 创建技能(代理模式仅)

错误处理

错误 原因 解决方案
命令未找到 仅技能安装 使用内联模式
Cargo.toml 未找到 不在Rust项目中 导航到项目根目录
docs.rs 不可用 网络问题 重试或跳过crate
权限拒绝 目录问题 检查 ~/.claude/skills/ 权限