spec-role-contract SKILL.md skillA

spec-role-contract from chenweil/skillcaddy is an agent skill: a SKILL.md folder an AI agent loads when a task calls for it.

Install it, pinned
mdr add chenweil/skillcaddy/spec-role-contract@git:20260930.87567b6

Pins git:20260930.87567b6 in mdr.lock. Pin the fingerprint instead.

Audit grade
A, 17 of 17 checks passed
Kind
SKILL.md skill
Repository
chenweil/skillcaddy
Path
skills/spec-pipeline/spec-role-contract/SKILL.md
Versions recorded
1
Latest version
git:20260930.87567b6, committed Sep 30, 2026
Size
6,378 bytes
Repository stars
30
License
MIT

技术方案文档的角色契约。把作者 / 实施者 / 验证者三个文档生命周期位置写成显式参数,规定每个位置的可做与不可做,并用落盘的角色记录让边界可核验。与模型品牌解耦——换模型不改变角色边界,同一模型跑不同角色也照样受约束。用于"这份文档现在归谁负责、谁不能做什么"的判定。.

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

# 文档生命周期角色契约

原件库的技能按**任务**分工(research / review / implement),不按**文档生命周期位置**分工。所以"作者不能自己批准方向""实施者不能改方向""验证者要对照文档而不是对话"这些约束,没有任何一个技能在管。

这个技能管。它不分配模型,只声明位置和边界。

## 三个位置

| 位置 | 负责 | 明确不能做 |
| --- | --- | --- |
| **author** 作者 | 写 `TECH.md`、补研究、接外部草稿 | **不自我批准方向**。草稿的作者不能同时是批准方向的人 |
| **implementer** 实施者 | 按已批准文档写实现 | **不改方向**。发现方向有问题必须回到 `spec-direction-gate`,不能自己改 |
| **verifier** 验证者 | 对照文档验收 | **不对照对话验收**。判定依据是 `TECH.md` 本身,不是"当初说过什么" |

这三个位置可以由同一个模型担任,但**不能由同一次会话兼任 author 和 verifier**。这是唯一不可让步的一条。

## 硬性约束

1. **角色是显式参数,不是隐含的会话假设。** 每一格都要显式声明当前是谁在做。默认角色是 author。
2. **不绑定模型品牌。** 0036 第 110 行已记录"固定模型品牌也没有成为必要条件"。角色边界与用哪个模型无关,反过来也一样。
3. **验证者必须新会话。** 沿用 0035 第 3.2 节已定做法。这条是硬约束,理由见下。
4. **边界靠落盘记录核验,不是靠自觉。** 角色写进 `specs/<id>/ROLE.md`,验收时读文件。

## 为什么验证者必须换会话

author 在写文档时看过所有的权衡、放弃过的方案、对问题的理解。带着这些上下文去验收自己的实现,等于用出题人的答案去判卷。0035 缝二的判断在这里成立:**skill 只能告诉你"这一格跑什么",保证不了"不是同一个会话"**。

需要说清楚的是,库里现有的跨会话机制**不是**会话隔离。`planning-with-files` 靠的是磁盘上的持久 markdown 文件——它能让你在第二次会话里恢复上下文,但它恢复的恰恰是 author 的上下文。恢复得越顺,污染越彻底。所以本技能不依赖它做隔离,只依赖它做持久化;隔离由"换会话"这个动作本身承担。

`code-review` 的并行 sub-agent 是另一个可借的机制:它把 Standards 和 Spec 两条轴分开跑以免互相污染。author 与 verifier 需要的正是这类隔离,只是要跨会话而不是跨 sub-agent。

## 流程

### 第 1 步:声明角色
…

Read the whole file at its exact version.

How to install

The exact contents, by fingerprint
mdr add chenweil/skillcaddy/spec-role-contract@sha256:0a1922fdbd6ff9f6

The line at the top of this page pins the label git:20260930.87567b6, 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_csgq7i6wo2bstnrn.svg)](https://markdownregistry.com/a/art_csgq7i6wo2bstnrn)

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

Versions

The registry has recorded 1 version of this file, committed on Sep 30, 2026.

versioncommittedcommitsizeaudit
git:20260930.87567b6 latest2026-09-30 87567b6 6,378 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 (6378 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

chenweil/skillcaddy · 30 stars · license MIT · pushed 2026-10-30 · branch main

API

GET https://markdownregistry.com/api/v1/artifacts/art_csgq7i6wo2bstnrn
GET https://markdownregistry.com/api/v1/resolve?ref=chenweil/skillcaddy/spec-role-contract
GET https://markdownregistry.com/api/v1/blob/0a1922fdbd6ff9f6fee06d628af565c05e3c3f41ce743453383ad2c4b24544d1

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 chenweil/skillcaddy

AGENTS.md AGENTS.md file
chenweil/skillcaddy · AGENTS.md
git:20261023.7e5866f · audit A · 30 stars
skillcaddy-manager SKILL.md skill
chenweil/skillcaddy · skills/skillcaddy-manager/SKILL.md · Manage Skillcaddy source acquisition, source updates, migrations, project skill links, and the Web/TUI CLI. Use for…
git:20260817.a910e91 · audit B · 30 stars
spec-direction-gate SKILL.md skill
chenweil/skillcaddy · skills/spec-pipeline/spec-direction-gate/SKILL.md · 技术方案文档的方向确认关卡。在 specs/<id>/TECH.md 草稿完成、进入实施之前,先确认方向、再确认内容,两次确认分开且有序;把关卡结论写回 TECH.md…
git:20260930.87567b6 · audit A · 30 stars
spec-draft-intake SKILL.md skill
chenweil/skillcaddy · skills/spec-pipeline/spec-draft-intake/SKILL.md · 外部模型草稿的摄入关卡。把下载的外部技术方案草稿当作不可信输入,逐条与仓库实际状态对账,产出一份经审的 specs/<id>/TECH.md。草稿是候选不是权威:不因草稿存在而跳过研究,也不把草稿的断言直接升格为文档结论。用于"外部模型写了…
git:20260930.87567b6 · audit A · 30 stars

Every file in chenweil/skillcaddy

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