protocol-change SKILL.md skillA

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

改了 crates/riot-protocol 里的类型之后用。重新生成绑定,并检查 serde tag 撞名这类 Rust 类型层面看不出来的问题。.

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

# 改协议类型之后

`riot-protocol` 是宿主、内核、前端共享的契约,也是依赖图的叶子。Rust 那
两侧的一致性由**编译器**保证;TypeScript 那侧不行,它靠生成。

## 1. 重新生成

```bash
pnpm gen
```

产物 `schemas/protocol.json` 和 `src/bridge/generated.ts` **都进版本库**,
不要手改。CI 跑 `pnpm gen && git diff --exit-code`,忘了生成直接红。

## 2. tag 撞名检查

`pnpm gen` 里带了这个检查,但要看懂它在说什么:

serde 的 internally-tagged 表示下,newtype variant 会把内层字段**摊平**。
内外层 tag 同名时,产物是一份重复 key 的 JSON —— 反序列化直接失败,而这
在 Rust 类型层面**完全看不出来**。

真实案例:`StreamDelta` 和 `AgentEvent` 的 tag 撞名,后果是前端一个 token
都收不到。抓到它的是 roundtrip 测试,不是 review。

## 3. 加字段要能读旧数据

`[约束]` 缺字段不能让整份配置/transcript 解析失败。那表现为用户升级之后
"我配的东西全没了"。

新字段一律带 `#[serde(default)]`,或者给一个 `default_xxx()` 函数。加完之后
补一个"老格式也能读"的测试 —— `config.rs` 里有现成的写法可以照抄
(搜 `老配置缺`)。

## 4. 枚举加 variant 要顺着编译器走一遍

穷举 match 比通配安全:加了新 variant,所有该重审的地方会被编译器点名。
如果某处确实想忽略新情况,写明理由,不要图省事改成 `_ => {}`。

## 5. 验证

跑 `verify` 技能的全部五层。协议改动会同时波及 Rust 两侧和前端,
只跑一边不够。

Read the whole file at its exact version.

How to install

The exact contents, by fingerprint
mdr add riot-org/riot/protocol-change@sha256:5ae4fa31e610fead

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_usylsg62ojqieggi.svg)](https://markdownregistry.com/a/art_usylsg62ojqieggi)

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 1,848 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 (1848 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_usylsg62ojqieggi
GET https://markdownregistry.com/api/v1/resolve?ref=riot-org/riot/protocol-change
GET https://markdownregistry.com/api/v1/blob/5ae4fa31e610feadcc8c71531eb31c4875af9bd46e0a3865c7a8c33abbf23577

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
mutate SKILL.md skill
riot-org/riot · .riot/skills/mutate/SKILL.md · 动过权限决策链、Bash 分析、路径围栏、安全检查、文件工具或进程执行器之后用。跑变异测试,并正确解读存活的变异。
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.