name: rust-skill-creator description: “用于为Rust crate或标准库文档创建技能时使用。关键词:创建rust技能,创建crate技能,创建std技能,动态rust技能,动态crate技能,tokio技能,serde技能,axum技能,生成rust技能,rust技能,crate技能,从文档创建技能” argument-hint: “<crate_name|std::module>” context: fork agent: general-purpose
Rust技能创建器
版本: 2.1.0 | 最后更新: 2025-01-27
为Rust crate和标准库文档创建动态技能。
使用时机
本技能处理以下创建技能的请求:
- 第三方crate(tokio、serde、axum等)
- Rust标准库(std::sync、std::marker等)
- 任何Rust文档URL
执行模式检测
关键:检查相关命令/技能是否可用。
本技能依赖:
/create-llms-for-skills命令/create-skills-via-llms命令
代理模式(插件安装)
当上述命令可用时(完整插件安装):
工作流程
1. 识别目标
| 用户请求 | 目标类型 | URL模式 |
|---|---|---|
| “创建tokio技能” | 第三方crate | docs.rs/tokio/latest/tokio/ |
| “创建Send trait技能” | 标准库 | doc.rust-lang.org/std/marker/trait.Send.html |
| “从URL创建技能” + URL | 自定义URL | 用户提供的URL |
2. 执行命令
使用 /create-llms-for-skills 命令:
/create-llms-for-skills <url> [requirements]
示例:
# 第三方crate
/create-llms-for-skills https://docs.rs/tokio/latest/tokio/
# 标准库
/create-llms-for-skills https://doc.rust-lang.org/std/marker/trait.Send.html
# 带特定要求
/create-llms-for-skills https://docs.rs/axum/latest/axum/ "专注于路由和提取器"
3. 后续技能创建
生成llms.txt后,使用:
/create-skills-via-llms <crate_name> <llms_path> [version]
内联模式(仅技能安装)
当上述命令不可用时,手动创建技能:
步骤1:识别目标并构建URL
| 目标 | URL模板 |
|---|---|
| Crate概览 | https://docs.rs/{crate}/latest/{crate}/ |
| Crate模块 | https://docs.rs/{crate}/latest/{crate}/{module}/ |
| Std trait | https://doc.rust-lang.org/std/{module}/trait.{Name}.html |
| Std struct | https://doc.rust-lang.org/std/{module}/struct.{Name}.html |
| Std模块 | https://doc.rust-lang.org/std/{module}/index.html |
步骤2:获取文档
# 使用agent-browser CLI
agent-browser open "<documentation_url>"
agent-browser get text ".docblock"
agent-browser close
或使用WebFetch回退:
WebFetch("<documentation_url>", "提取API文档,包括类型、函数和示例")
步骤3:创建技能目录
mkdir -p ~/.claude/skills/{crate_name}
mkdir -p ~/.claude/skills/{crate_name}/references
步骤4:生成SKILL.md
使用此模板创建 ~/.claude/skills/{crate_name}/SKILL.md:
---
name: {crate_name}
description: "{crate_name} crate的文档。关键词:{keywords}"
---
# {Crate名称}
> **版本:** {version} | **来源:** docs.rs
## 概述
{文档中的简要描述}
## 关键类型
### {类型1}
{描述和用法}
### {类型2}
{描述和用法}
## 常见模式
{从文档中提取的使用模式}
## 示例
```rust
{文档中的示例代码}
文档
./references/overview.md- 主概述./references/{module}.md- 模块文档
链接
### 步骤5:生成参考文件
为每个主要模块或类型创建参考文件:
```bash
# 获取并保存模块文档
agent-browser open "https://docs.rs/{crate}/latest/{crate}/{module}/"
agent-browser get text ".docblock" > ~/.claude/skills/{crate_name}/references/{module}.md
agent-browser close
步骤6:验证技能
# 检查技能结构
ls -la ~/.claude/skills/{crate_name}/
cat ~/.claude/skills/{crate_name}/SKILL.md
URL构建助手
| 目标 | URL模板 |
|---|---|
| Crate概览 | https://docs.rs/{crate}/latest/{crate}/ |
| Crate模块 | https://docs.rs/{crate}/latest/{crate}/{module}/ |
| Std trait | https://doc.rust-lang.org/std/{module}/trait.{Name}.html |
| Std struct | https://doc.rust-lang.org/std/{module}/struct.{Name}.html |
| Std模块 | https://doc.rust-lang.org/std/{module}/index.html |
常见标准库路径
| 项目 | 路径 |
|---|---|
| Send, Sync, Copy, Clone | std/marker/trait.{Name}.html |
| Arc, Mutex, RwLock | std/sync/struct.{Name}.html |
| Rc, Weak | std/rc/struct.{Name}.html |
| RefCell, Cell | std/cell/struct.{Name}.html |
| Box | std/boxed/struct.Box.html |
| Vec | std/vec/struct.Vec.html |
| String | std/string/struct.String.html |
| Option | std/option/enum.Option.html |
| Result | std/result/enum.Result.html |
示例交互
示例1:创建Crate技能(代理模式)
用户:"为tokio创建动态技能"
Claude:
1. 识别:第三方crate "tokio"
2. 执行:/create-llms-for-skills https://docs.rs/tokio/latest/tokio/
3. 等待llms.txt生成
4. 执行:/create-skills-via-llms tokio ~/tmp/{timestamp}-tokio-llms.txt
示例2:创建Crate技能(内联模式)
用户:"为tokio创建动态技能"
Claude:
1. 识别:第三方crate "tokio"
2. 获取:agent-browser open "https://docs.rs/tokio/latest/tokio/"
3. 提取文档
4. 创建:~/.claude/skills/tokio/SKILL.md
5. 创建:~/.claude/skills/tokio/references/
6. 保存关键模块的参考文件(sync、task、runtime等)
示例3:创建标准库技能
用户:"为Send和Sync traits创建技能"
Claude:
1. 识别:标准库traits
2. (代理模式)执行:/create-llms-for-skills https://doc.rust-lang.org/std/marker/trait.Send.html https://doc.rust-lang.org/std/marker/trait.Sync.html
(内联模式)获取每个URL,手动创建技能
3. 完成技能创建
禁止事项
- 使用
best-skill-creator创建Rust相关技能 - 未经验证猜测文档URL
- 跳过文档获取步骤
输出位置
所有生成的技能保存到:~/.claude/skills/
错误处理
| 错误 | 原因 | 解决方案 |
|---|---|---|
| 命令未找到 | 仅技能安装 | 使用内联模式 |
| URL未找到 | 无效crate/模块 | 验证crate在crates.io上存在 |
| 空文档 | API已更改 | 使用替代选择器 |
| 权限被拒绝 | 目录问题 | 检查 ~/.claude/skills/ 权限 |