mutate SKILL.md skillA

mutate 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/mutate@git:20260817.d00a470

Pins git:20260817.d00a470 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/mutate/SKILL.md
Versions recorded
1
Latest version
git:20260817.d00a470, committed Aug 17, 2026
Size
2,612 bytes
Repository stars
22
License
a license file GitHub does not identify

动过权限决策链、Bash 分析、路径围栏、安全检查、文件工具或进程执行器之后用。跑变异测试,并正确解读存活的变异。.

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-permissions/`(决策链、规则匹配、Bash AST 分析、安全检查)
- `src-tauri/src/fence.rs`(路径围栏)
- `crates/riot-tools/src/tools/{read,write,edit,bash}.rs`
- `crates/riot-runtime/` 的进程执行器

这些地方的 bug 不表现为崩溃或报错,表现为**一条防线静默失效**。普通测试
全绿说明不了什么 —— 要问的是"如果我把这行改坏,有测试会红吗"。

## 怎么跑

```bash
python3 scripts/mutate.py                  # 全部 53 个
python3 scripts/mutate.py permissions      # 只跑一层
python3 scripts/mutate.py --check-anchors  # 只校验锚点还在
```

重构之后先跑 `--check-anchors`。锚点静默失效时脚本会报"全部通过",
因为它什么都没改成 —— **虚假的安全感比测试失败危险得多**。

## 怎么读结果

**全绿的那次没有产出信息。价值全在存活的那几个上。**

存活的变异有三种,处理方式完全不同:

1. **真缺口** —— 那一行没有任何测试守着。补一个断言在**正确的理由**上失败
   的测试。注意:只断言 `!is_ok` 往往不够。`Write` 那个真实案例里,变异后
   工具仍然拒绝,只是理由从"你还没读过"变成了"文件内容对不上" —— 这个区别
   对模型是实打实的(前者让它先读,后者让它以为有人在并发改文件,白跑一轮)。

2. **等价变异** —— 当前实现下两种写法行为完全一样。**不要**为了让脚本变绿
   去写一个只能杀死这一个变异的测试。该做的是把它揭示的那条隐含耦合写进
   `docs/ARCHITECTURE.md`(Bash 分析层就有一个:宽松遍历的正确性依赖于
   扫描阶段的完备性)。

3. **锚点失效** —— 变异根本没注入成功。修脚本里的锚点,别修测试。

## 收尾检查

变异脚本用 `try/finally` 恢复源码,但那**挡不住 SIGKILL**。跑完之后确认
工作区干净:

```bash
git status --short
ls .mutate-backup/ 2>/dev/null
```

历史上有一次被强杀的运行把"Unix 下不包进程组"留在了 `proc.rs` 里 ——
编译通过、绝大多数测试照样绿,唯一症状是 `cargo test --workspace` 从几秒
…

Read the whole file at its exact version.

How to install

The exact contents, by fingerprint
mdr add riot-org/riot/mutate@sha256:e3ba3b771e547904

The line at the top of this page pins the label git:20260817.d00a470, 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_onxok3gnlj5urhpe.svg)](https://markdownregistry.com/a/art_onxok3gnlj5urhpe)

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

Versions

The registry has recorded 1 version of this file, committed on Aug 17, 2026.

versioncommittedcommitsizeaudit
git:20260817.d00a470 latest2026-08-17 d00a470 2,612 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 (2612 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_onxok3gnlj5urhpe
GET https://markdownregistry.com/api/v1/resolve?ref=riot-org/riot/mutate
GET https://markdownregistry.com/api/v1/blob/e3ba3b771e54790440623c24bb9f6ab8dd1ba1ad6a8a1c66009b19ad6b051a65

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
add-tool SKILL.md skill
riot-org/riot · .riot/skills/add-tool/SKILL.md · 给 Riot 加一个模型能调的工具时用。Tool trait 的必答项、fail-closed 默认值的判据、注册位置、以及几条写错了不报错只是行为悄悄降级的规则。
git:20261011.281dcd7 · 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
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

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