用途
core-dynamic-skills 用于动态管理 Rust crate 专属技能。它作为一个内部命令支持模块,负责根据当前项目的 Cargo.toml 依赖,按需在本地生成对应的技能,从而让开发者在处理 Rust 项目时获得与所用依赖相关的辅助内容。
主要概念
动态技能具有以下特征:
- 在本地 ~/.claude/skills/ 下生成
- 基于 Cargo.toml 依赖
- 使用 docs.rs 的 llms.txt 创建
- 可版本化、可更新
- 不提交到 rust-skills 仓库
触发场景
打开时提示(Prompt-on-Open)
进入包含 Cargo.toml 的目录时:
- 检测 Cargo.toml(单个或工作区)
- 解析依赖列表
- 检查哪些 crate 缺少技能
- 若缺失,提示:“Found X dependencies without skills. Sync now?”
- 确认后运行 /sync-crate-skills
手动命令
- /sync-crate-skills —— 同步全部依赖
- /clean-crate-skills [crate] —— 移除技能
- /update-crate-skill <crate> —— 更新指定技能
执行模式检测
关键在于检查 agent 与命令基础设施是否可用。
- 尝试读取 ../../agents/ 目录
- 检查 /create-llms-for-skills 和 /create-skills-via-llms 命令是否可用
Agent 模式(插件安装)
当完整插件基础设施可用时:
架构流程: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 命令流程:
- 解析 Cargo.toml 依赖
- 对每个依赖:检查 ~/.claude/skills/{crate}/ 是否存在
- 若缺失(或使用 --force):生成技能
- 报告结果
Inline 模式(仅安装技能)
当 agent/命令基础设施不可用时,手动执行:
第 1 步:解析 Cargo.toml
cat Cargo.toml | grep -A 100 '\[dependencies\]' | grep -E '^[a-zA-Z]'
或使用 Read 工具解析 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 inline 模式模板
# 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}/", "Extract API documentation overview, key types, and usage examples")
第 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 生成技能
清理命令(Inline)
# 清理指定 crate
rm -rf ~/.claude/skills/{crate_name}
# 清理全部已生成技能
rm -rf ~/.claude/skills/*
更新命令(Inline)
# 移除旧技能
rm -rf ~/.claude/skills/{crate_name}
# 重新生成(对单个 crate 与 sync 相同)
# 针对该 crate 执行上述第 3 步
本地技能目录结构
~/.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(仅 Agent 模式)
- /create-skills-via-llms —— 从 llms.txt 创建技能(仅 Agent 模式)
错误处理
| 错误 | 原因 | 解决方案 |
|---|---|---|
| Commands not found | 仅安装技能 | 使用 inline 模式 |
| Cargo.toml not found | 不在 Rust 项目中 | 导航到项目根目录 |
| docs.rs unavailable | 网络问题 | 重试或跳过该 crate |
| Permission denied | 目录问题 | 检查 ~/.claude/skills/ 权限 |
版本
版本:2.1.0 | 最后更新:2025-01-27
限制
该模块为内部命令支持,通常不直接使用,仅在 /sync-crate-skills、/clean-crate-skills 或 /update-crate-skill 等命令显式调用时使用。其使用方法依赖 agent、命令基础设施或 agent-browser、WebFetch 等外部工具;在仅安装技能的环境下需按 inline 模式手动执行。