mcpField
C
core-dynamic-skills

core-dynamic-skills

github.com/actionbookAgent 工作流1.6k1.9k 次安装9 周前更新
代码仓库

关于 core-dynamic-skills

根据 Rust 项目依赖生成和维护本地 Crate 专属技能的管理器。它支持 Cargo 工作区,并可根据现有基础设施采用 Agent 辅助或手动内联模式。

主要功能

  1. 01扫描 Cargo.toml 依赖
  2. 02检测缺失的 Crate 技能
  3. 03根据 docs.rs 内容生成技能
  4. 04支持工作区依赖
  5. 05同步、更新和移除技能

适用场景

  1. 01为 Rust 项目依赖创建技能
  2. 02更新生成的 Crate 文档技能
  3. 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 的目录时:

  1. 检测 Cargo.toml(单个文件或工作区)
  2. 解析依赖项列表
  3. 检查哪些 crate 缺少技能
  4. 如果缺少:“发现 X 个依赖项没有对应技能。现在同步吗?”
  5. 如果确认:运行 /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
工作流优先级
  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. 报告结果

内联模式(仅安装技能)

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