SuperAPI AI 工具集

core-dynamic-skills

编程与开发

查看项目

更新于 10-15 08:18

技能介绍

用途

core-dynamic-skills 用于动态管理 Rust crate 专属技能。它作为一个内部命令支持模块,负责根据当前项目的 Cargo.toml 依赖,按需在本地生成对应的技能,从而让开发者在处理 Rust 项目时获得与所用依赖相关的辅助内容。

主要概念

动态技能具有以下特征:

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

触发场景

打开时提示(Prompt-on-Open)

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

  1. 检测 Cargo.toml(单个或工作区)
  2. 解析依赖列表
  3. 检查哪些 crate 缺少技能
  4. 若缺失,提示:“Found X dependencies without skills. Sync now?”
  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 → 解析依赖 → 对每个 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 命令流程:

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

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 模式手动执行。