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 的目录时:
- 检测 Cargo.toml(单个或工作空间)
- 解析依赖列表
- 检查哪些crate缺少技能
- 如果缺少:“发现X个依赖没有技能。现在同步吗?”
- 如果确认:运行
/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
└─ 加载技能
工作流程优先级
- actionbook MCP - 检查预生成的 llms.txt
- /create-llms-for-skills - 从 docs.rs 生成 llms.txt
- /create-skills-via-llms - 从 llms.txt 创建技能
同步命令
/sync-crate-skills [--force]
- 解析 Cargo.toml 依赖
- 对于每个依赖:
- 检查
~/.claude/skills/{crate}/是否存在技能 - 如果缺失(或 --force):生成技能
- 检查
- 报告结果
内联模式(仅技能安装)
当代理/命令基础设施不可用时,手动执行:
第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/ 权限 |