add-tool SKILL.md skillA

add-tool from riot-org/riot is an agent skill: a SKILL.md folder an AI agent loads when a task calls for it.

Install it, pinned
mdr add riot-org/riot/add-tool@git:20261011.281dcd7

Pins git:20261011.281dcd7 in mdr.lock. Pin the fingerprint instead.

Audit grade
A, 17 of 17 checks passed
Kind
SKILL.md skill
Repository
riot-org/riot
Path
.riot/skills/add-tool/SKILL.md
Versions recorded
2
Latest version
git:20261011.281dcd7, committed Oct 11, 2026
First version recorded
Aug 17, 2026
Size
5,901 bytes
Repository stars
22
License
a license file GitHub does not identify

给 Riot 加一个模型能调的工具时用。Tool trait 的必答项、fail-closed 默认值的判据、注册位置、以及几条写错了不报错只是行为悄悄降级的规则。.

Collected from public GitHub. Every version is saved exactly as it was and never changes. Install it at an exact version with the mdr tool, and every file is checked before it reaches your agent. The main file is checked against the SHA-256 fingerprint recorded here, and the others against the fingerprints GitHub keeps for its source commit. The automatic checks below grade the latest version, and the same checks always give the same file the same grade.

What the file says

# 加一个工具

工具定义在 `crates/riot-protocol/src/tool.rs` 的 `Tool` trait,实现放
`crates/riot-tools/src/tools/<名字>.rs`。

## 1. 五个必须实现的

没有默认实现,漏一个编译不过:

| 方法 | 给谁看 | 注意 |
|---|---|---|
| `name` | API + 权限规则的键 | 返回 `&str` 而非 `&'static str`(MCP 工具的名字来自运行时) |
| `input_schema` | API | `schemars::schema_for!(Input)` |
| `prompt` | **模型** | 进 `tools[].description` 的完整说明。要写清和其它工具的分工、以及 NEVER 列表 |
| `describe` | **界面** | 一句话,如「读取 src/main.rs」 |
| `call` | — | 返回 `ToolOutcome`,**不是** `Result` |

`prompt` 和 `describe` 是两条独立的路,不要让其中一个凑合另一个。同理
`ToolOutcome::Ok` 里 `model_content`(模型看的)和 `ui_payload`(界面看的
**结构化数据**,不是渲染好的字符串)也是分开的。

## 2. `call` 里不许把错误抛出去

失败是正常返回值:`ToolOutcome::failed("...")`。函数内部可以自由用 `?`,
但必须在边界把 `Result` 转成 `Failed`。类型系统由此保证「工具错误不会抛穿
主循环」。

错误文本是**给模型的纠错指令**,用祈使句,不要贴原始错误:

```rust
// 好:告诉它下一步做什么
ToolOutcome::failed("`pattern` 不能为空。要列出文件请用 Glob。")
// 坏:把内部诊断甩给它
ToolOutcome::failed(format!("{e:?}"))
```

## 3. fail-closed 默认值:判据是什么

漏写不会造成危险行为,但**写错方向会**。逐条的判据:

- **`is_read_only`** —— 判据不是「感觉安不安全」,是**会不会执行任意代码
  或改变任何状态**。`Diagnostics` 跑 `cargo check`,而它会执行 `build.rs`
  和过程宏,所以它**不是**只读的。标错的后果是这个工具在所有权限模式下
  自动放行(`mode_default` 里只读一律 Allow)。
…

Read the whole file at its exact version.

How to install

The exact contents, by fingerprint
mdr add riot-org/riot/add-tool@sha256:cb3946f683e1a7a3

The line at the top of this page pins the label git:20261011.281dcd7, which is what most people want. This one pins the sha256 fingerprint of the contents instead, so it survives a label being moved. Either way the exact version is written to mdr.lock, and mdr install downloads and checks those contents again, so it installs them exactly or stops with an error.

Badge

mdr badge

[![mdr](https://markdownregistry.com/badge/art_fya4gvzm3iwjql2w.svg)](https://markdownregistry.com/a/art_fya4gvzm3iwjql2w)

4 badge image fetches in 30 days. What the badge shows.

Versions

The registry has recorded 2 versions of this file, between Aug 17, 2026 and Oct 11, 2026, about one every 55 days.

versioncommittedcommitsizeaudit
git:20261011.281dcd7 latest2026-10-11 281dcd7 5,901 BA view · diff
git:20260817.d00a4702026-08-17 d00a470 5,839 BA view

Audit of the latest version

A  17 of 17 checks passed. Fixed automatic checks with no AI involved, so the same checks give the same answer every run.
  • pass: Frontmatter block present
  • pass: Frontmatter declares a name
  • pass: Frontmatter declares a description
  • pass: Size between 200 bytes and 200 KB (5901 bytes)
  • pass: No zero-width or bidi control characters
  • pass: No instruction hidden inside an HTML comment
  • pass: No link to an exfiltration or paste host
  • pass: No credential-shaped string
  • pass: No instruction to send local credentials anywhere
  • pass: No text hidden with inline styles
  • pass: No prompt-injection phrasing
  • pass: No curl or wget piped into a shell
  • pass: No recursive delete of root, home or parent
  • pass: No instruction to read or print local credentials
  • pass: No base64 blob over 200 characters
  • pass: No link to a raw IP address
  • pass: No script tag

Source

GitHub

riot-org/riot · 22 stars · license a license file GitHub does not identify · pushed 2026-10-29 · branch master

API

GET https://markdownregistry.com/api/v1/artifacts/art_fya4gvzm3iwjql2w
GET https://markdownregistry.com/api/v1/resolve?ref=riot-org/riot/add-tool
GET https://markdownregistry.com/api/v1/blob/cb3946f683e1a7a34b2db58febf32838eaa454308cbd4d7c4cac0d77946f5c1a

Your AI assistant does the legwork. You hear about the deals worth your word. Hand yours the standing instructions at modelranch.com and it joins the network that reads files like this one.

Guides: the SKILL.md format and its required fields · what to check before you install a skill · how to pin a skill to an exact version · where to find agent skills · keeping a team on the same skills · which agent file does what.

More from riot-org/riot

add-command SKILL.md skill
riot-org/riot · .riot/skills/add-command/SKILL.md · 给前端加一个 Tauri 命令时用。要改五处,漏了其中三处只表现为运行时「command not found」;权限文件还有个先后顺序的坑会让 build.rs 直接 panic。
git:20260817.d00a470 · audit A · 22 stars
commit-batch SKILL.md skill
riot-org/riot · .riot/skills/commit-batch/SKILL.md · 工作区堆了多个不相关主题的改动、要整理成提交时用。按主题切分而不是拆成一堆小提交,并照这个仓库的消息风格写。
git:20260817.d00a470 · audit A · 22 stars
mutate SKILL.md skill
riot-org/riot · .riot/skills/mutate/SKILL.md · 动过权限决策链、Bash 分析、路径围栏、安全检查、文件工具或进程执行器之后用。跑变异测试,并正确解读存活的变异。
git:20260817.d00a470 · audit A · 22 stars
protocol-change SKILL.md skill
riot-org/riot · .riot/skills/protocol-change/SKILL.md · 改了 crates/riot-protocol 里的类型之后用。重新生成绑定,并检查 serde tag 撞名这类 Rust 类型层面看不出来的问题。
git:20260817.d00a470 · audit A · 22 stars
review SKILL.md skill
riot-org/riot · .riot/skills/review/SKILL.md · 审查一批改动时用。缺陷优先,并按这个仓库特有的失效方式去找问题——那些编译通过、类型正确、看起来合理的写法。
git:20260817.d00a470 · audit A · 22 stars
verify SKILL.md skill
riot-org/riot · .riot/skills/verify/SKILL.md · 改完代码要验证时用。按这个仓库的分层防线依次跑,并说明每一层拦的是什么。别只跑 cargo build 就当验证过了。
git:20260817.d00a470 · audit A · 22 stars
add-mcp SKILL.md skill
riot-org/riot · crates/riot-kernel/builtin/skills/add-mcp/SKILL.md · 用户想加、改、排查 MCP 服务器,或从 Cursor / Claude Desktop / VS Code 搬 MCP 配置过来时用。用户级只认 stdio(远程走 mcp-remote 桥)、config.json…
git:20261014.9c3854a · audit B · 22 stars
commit SKILL.md skill
riot-org/riot · crates/riot-kernel/builtin/skills/commit/SKILL.md · 要把改动提交成 git commit 时用。先看清工作区里有几件事、按主题分组、只暂存这一组,以及消息里该写什么不该写什么。
git:20261014.9c3854a · audit A · 22 stars
create-plugin SKILL.md skill
riot-org/riot · crates/riot-kernel/builtin/skills/create-plugin/SKILL.md · 用户想写一个 Riot 插件、把已有的技能/命令/hooks/MCP 打包分发、或把 Claude Code / Cursor 插件搬到 Riot 时用。目录布局、三种清单格式、dev.riot 扩展字段、本地链接调试流程和市场发布。
git:20261014.9c3854a · audit A · 22 stars
debug SKILL.md skill
riot-org/riot · crates/riot-kernel/builtin/skills/debug/SKILL.md · 排查 bug 时用。顺序是硬的:先复现、再让证据淘汰假设、修根因、用原始复现路径验证。不要看到第一个可疑点就动手改。
git:20260817.d4dfa41 · audit A · 22 stars
extend-riot SKILL.md skill
riot-org/riot · crates/riot-kernel/builtin/skills/extend-riot/SKILL.md · 用户想加技能、斜杠命令、hook、项目约定(AGENTS.md),或要给命令配 API key、密码这类机密时用。各扩展点的目录、格式限制和优先级规则。MCP 服务器转 add-mcp,打成可分发的插件转 create-plugin。
git:20261014.9c3854a · audit B · 22 stars
retro SKILL.md skill
riot-org/riot · crates/riot-kernel/builtin/skills/retro/SKILL.md · 任务磕磕碰碰才做成、被纠正了好几次之后用;用户说「复盘」「总结经验」「记下来」时也用。回顾这次会话的纠错轨迹,筛出下次还会犯的错,沉淀进 AGENTS.md 或技能,同类任务下次不用再教一遍。
git:20261014.9c3854a · audit A · 22 stars

Every file in riot-org/riot

Other files named add-tool

add-tool SKILL.md skill
26zl/cybersec-toolkit · .claude/skills/add-tool/SKILL.md · Use when adding a new cybersecurity tool to this installer. Walks through editing the right module file, adding to…
git:20260924.45dd683 · audit A · 87 stars
add-tool SKILL.md skill
yelmuratoff/agent_sync · .ai/src/skills/add-tool/SKILL.md · Add support for a new AI coding tool to Exuno's sync engine — create the tool YAML, configure targets and converters…
git:20261007.95b1395 · audit A · 17 stars
add-tool SKILL.md skill
yelmuratoff/exuno · .ai/src/skills/add-tool/SKILL.md · Add support for a new AI coding tool to Exuno's sync engine — create the tool YAML, configure targets and converters…
git:20261007.95b1395 · audit A · 17 stars

Browse by kind, by grade A, or by owner.