关于 core-dynamic-skills
根据 Rust 项目依赖生成和维护本地 Crate 专属技能的管理器。它支持 Cargo 工作区,并可根据现有基础设施采用 Agent 辅助或手动内联模式。
主要功能
- 01扫描 Cargo.toml 依赖
- 02检测缺失的 Crate 技能
- 03根据 docs.rs 内容生成技能
- 04支持工作区依赖
- 05同步、更新和移除技能
适用场景
- 01为 Rust 项目依赖创建技能
- 02更新生成的 Crate 文档技能
- 03清理不再需要的 Crate 技能
MCP 相关
README 将 actionbook MCP 列为生成技能时获取预生成 llms.txt 的优先来源,但未说明向 MCP 客户端提供的工具或资源。
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ actionbook/ rust-skills --skill core-dynamic-skills安装后在 Claude Code 中输入/core-dynamic-skills确认已加载。
附带文件agents/openai.yaml
详细介绍
动态技能管理器
版本: 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>- 更新指定技能
执行模式检测
关键:检查 Agent 和命令基础设施是否可用。
尝试读取:../../agents/ 目录
检查 /create-llms-for-skills 和 /create-skills-via-llms 命令是否可用。
Agent 模式(插件安装)
完整插件基础设施可用时:
架构
Cargo.toml
↓
Parse dependencies
↓
For each crate:
├─ Check ~/.claude/skills/{crate}/
├─ If missing: Check actionbook for llms.txt
│ ├─ Found: /create-skills-via-llms
│ └─ Not found: /create-llms-for-skills first
└─ Load skill
工作流优先级
- 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):生成技能
- 检查
- 报告结果
内联模式(仅安装技能)
Agent/命令基础设施不可用时,手动执行:
步骤 1:解析 Cargo.toml
# Read dependencies
cat Cargo.toml | grep -A 100 '\[dependencies\]' | grep -E '^[a-zA-Z]'
或者使用 Read 工具解析 Cargo.toml 并提取:
[dependencies]部分[dev-dependencies]部分(可选)- 工作区成员(如果是工作区项目)
步骤 2:检查现有技能
# List existing skills
ls ~/.claude/skills/
与依赖项进行比较,找出缺少的技能。
步骤 3:生成缺少的技能
对于每个缺少的 crate:
# 1. Fetch crate documentation
agent-browser open "https://docs.rs/{crate}/latest/{crate}/"
agent-browser get text ".docblock"
# Save content
# 2. Create skill directory
mkdir -p ~/.claude/skills/{crate}
mkdir -p ~/.claude/skills/{crate}/references
# 3. Create SKILL.md
# Use template from rust-skill-creator inline mode
# 4. Create reference files for key modules
agent-browser open "https://docs.rs/{crate}/latest/{crate}/{module}/"
agent-browser get text ".docblock"
# Save to ~/.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. Parse root Cargo.toml for workspace members
cat Cargo.toml | grep -A 10 '\[workspace\]'
# 2. For each member, parse their Cargo.toml
for member in members; do
cat ${member}/Cargo.toml | grep -A 100 '\[dependencies\]'
done
# 3. Aggregate and deduplicate dependencies
# 4. Generate skills for missing crates
清理命令(内联)
# Clean specific crate
rm -rf ~/.claude/skills/{crate_name}
# Clean all generated skills
rm -rf ~/.claude/skills/*
更新命令(内联)
# Remove old skill
rm -rf ~/.claude/skills/{crate_name}
# Re-generate (same as sync for single crate)
# Follow Step 3 above for the specific 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(仅 Agent 模式)/create-skills-via-llms- 根据 llms.txt 创建技能(仅 Agent 模式)
错误处理
| 错误 | 原因 | 解决方案 |
|---|---|---|
| 未找到命令 | 仅安装了技能 | 使用内联模式 |
| 未找到 Cargo.toml | 不在 Rust 项目中 | 导航到项目根目录 |
| docs.rs 不可用 | 网络问题 | 重试或跳过该 crate |
| 权限被拒绝 | 目录问题 | 检查 ~/.claude/skills/ 的权限 |
评论
支持 Markdown