AgentStack
SKILL verified MIT Self-run

Cc Master Skillsmith

skill-nemori-ai-cc-master-cc-master-skillsmith · by nemori-ai

当你创建、编辑或审查一个 cc-master skill 时用——尤其是那种纪律型(discipline-enforcing)skill(master-orchestrator-guide、authoring-workflows、本 skill),它的规则 agent 在压力下能合理化掉。Triggers: 新建/修改/审查本仓 skill、加 Rationalization Table / Red Flags / 决策程序、改 SKILL.md 的纪律段或 description;或当你发现自己正打算先动手写 skill 正文、却没先看一个 agent 失败。Do NOT use when 你只是要判断要不要建一个 skill / 这块该 skill 还是 reference / 两个 skill 重不重叠(那是 curating-skill-portfolios);Do NOT us…

No reviews yet
0 installs
10 views
0.0% view→install

Install

$ agentstack add skill-nemori-ai-cc-master-cc-master-skillsmith

✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

Are you the author of Cc Master Skillsmith? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

cc-master-skillsmith — cc-master skill 纪律的 TDD

> 这是项目自用的 dev 工具,不是分发给插件用户的 skill。 它住在 > .claude/skills/(cc-master 自己的贡献者用),不在 skills/(那才会 ship 给 > 插件用户)。终端用户装 cc-master 永远看不到它;它只为锻造本仓的 skill 存在。

这是 meta-skill:cc-master 怎么写、怎么改自己的 skill。它之所以存在,是因为一个 强制纪律 的 skill——「指挥永不演奏」「没有失败测试就没有生产代码」「只信端点、 不信绿闸」——它本身就是一段处于测试之下的行为。你无法知道这段 prose 到底有没有真正 改变 agent 的行为,除非你已经亲眼看过一个 agent 在没有它的情况下失败

写一个纪律型 skill,就是把 test-driven development 应用到 prose 上。 压力场景就 是测试。agent 逐字的合理化就是那个失败的输出。杀掉那条合理化的 skill 段落就是生产 代码。

> REQUIRED BACKGROUND: 本 skill 改编自 superpowers:test-driven-development 的 > RED-GREEN-REFACTOR 循环,以及 superpowers:writing-skills 的 subagent 压力测试格式。 > 如果你还没把这两者内化,先读它们——本 skill 假设你已经懂了,只在其上补 cc-master > 特有的契约。


铁律(The Iron Law)

NO DISCIPLINE SKILL — NEW OR EDITED — WITHOUT A FAILING PRESSURE BASELINE FIRST
(任何纪律型 skill——新建或编辑——都不许在没有一个失败的压力 baseline 之前动笔)

和 TDD 同一条铁律,映射到 prose 上。在你写或改一条 agent 能合理化掉的规则之前,你必须 先把一个压力场景跑过一个没有该 skill(或没有该新段落)的 subagent,看它选错那个。 没有记录在案的失败 → 不许改 skill。

在跑 baseline 之前就写好了 skill 段落?删掉它。从 baseline 重新开始。

没有例外:

  • 「这条规则显然是对的」不算例外。
  • 「我只是加一行 Rationalization Table」不算例外。
  • 「这只是给纪律段落改个措辞」不算例外。
  • 别在跑场景时把没 baseline 的草稿「留着当参考」——你会去 adapt 它,那就是 writing-after。

删除就是删除。

违背铁律的字面就是违背它的精神。 「我知道 agent 会说什么,所以我跳过 baseline 直接 写反驳」正是本 skill 禁止的那条合理化。你不知道它们会说什么。你以为你知道。baseline 正是你发现自己想错了的途径。

合法的 RED 证物目录(证据驱动变异)

铁律要的「记录在案的失败」是一个目录,不只合成 baseline 一种形态——以下任一都是 合法的 RED 证物:

| 证物 | 来源 | |------|------| | pressure-test RED(合成失败) | 本文循环 + references/pressure-testing.md | | dogfood finding(实战失败条目) | design_docs/dogfood-findings.md(AGENTS.md §9 台账) | | Track A miss(触发失败的具体 query) | scripts/eval-trigger.sh 输出 | | 真 session 失败 transcript | 真实编排 / dev session 的逐字记录 |

每次 prose 改动必须锚定目录中一个具体失败证物——后三种是「已经在现实里跑完的 RED」,与合成 baseline 同权。目录之外没有合法入口:尤其「我读完觉得它能更好」这种 审美判断,零证物 = 零改动理由。证物只给你 RED;GREEN 的验证(带新 prose 重跑场景) 不因证物形态而免除。

这条铁律 gate 什么、不 gate 什么

这条铁律 gate 的是判断型、强制纪律的 prose——agent 在压力下能把自己说服绕过去的 规则。它 gate:

  • 纯 reference / how-to 内容(API 签名、workflow 范式树、TOC、固定格式的表格)。这些靠

使用来验证,不靠压力。如果一条约束是机械可检的(regex、plugin validate、一个测试), 就自动化它——别写成一条规则再去压力测它。

  • 没有行为主张的机械编辑(修一条死链、给索引里的文件改名、更新一个计数)。content

contract(见下)会接住结构性破损。

如果你拿不准一次编辑是「纪律」还是「reference」:这次编辑有没有对一个 agent 在被诱惑不 照做时该选什么作出主张?如果有,它就是纪律——给它跑 baseline。


循环(RED → GREEN → REFACTOR)

| 阶段 | 你做什么 | cc-master 产物 | |-------|-------------|--------------------| | RED | 把一个 3 压场景跑过一个没有该 skill/段落的 subagent。 | 逐字捕获到的合理化。 | | Verify RED | 确认 agent 确实选错了,以及为什么(那个借口)。 | 借口原文——逐字抄录。 | | GREEN | 写出恰好杀掉那些借口的最小 skill prose。 | 新建/编辑的 SKILL.md 段落 + 每个借口一行 Rationalization Table。 | | Verify GREEN | 把同一场景带着 skill 重跑。agent 现在合规了。 | agent 引用该段落,选了对的那个。 | | REFACTOR | 冒出新的合理化?加一条反驳 + 表格行。重跑。 | 漏洞堵上,仍 GREEN。 |

完整的压力场景配方(三压、固定的 prompt 脚手架、怎么捕获借口、怎么回填表格)在 [references/pressure-testing.md](references/pressure-testing.md)。跑你的第一个 baseline 之前先读它。

三压(永远叠加 3+ 条)

单一一条压力是学院派的——agent 只会背诵规则。真实的失败需要 time pressure + sunk cost + exhaustion 叠在一起,逼出一个明确的 A/B/C 选择,且没有「我会去问用户」的逃生口。 配方文件里有确切措辞;短版本:

  • Time(时间)——部署窗口正在关闭、用户在等、deadline 就是现在。
  • Sunk cost(沉没成本)——已经投入了几小时/几行;删掉「感觉很浪费」。
  • Exhaustion(疲惫)——一段长跑的尾声,「只想把这个搞完」。

然后逐字捕获 agent 的借口,回填进目标 skill 的 Rationalization Table(借口 → 现实, 两列)和 Red Flags 列表。这张表不是凭你想象编的——它是真实失败的 transcript。这正是 跑 baseline 的全部意义。


本 skill 与 eval 的关系(定性 vs 定量)

cc-master 沿两条互补的轴测试它的 skill。别把它们混为一谈。

| | 本 skill(压力 baseline) | Eval(design_docs/eval/) | |---|---|---| | 种类 | 定性——浮现出哪些合理化存在 | 定量——给触发率/行为率打分 | | 输出 | 逐字借口 → Rationalization Table 行 | precision/recall 数字、mean±stddev | | 回答 | 「prose 必须堵哪个漏洞?」 | 「这次改动帮了还是害了,幅度多大?」 | | 何时 | 写/改任何纪律规则之前 | Track A 在每次 description 改动;Track B 围绕行为改动 |

  • Track A —— 触发准确率design_docs/eval/README.md):description 有没有让 Claude

恰好在该读时读这个 skill。任何 description 编辑前后各跑一遍。压力 baseline 测的是 body;Track A 测的是 frontmatter 触发

  • Track B —— 行为 benchmarkdesign_docs/eval/track-b-benchmark.md):with-skill vs

without-skill 在 transcript 上的行为断言,以 codex 当第二评委。压力 baseline 找到漏洞; Track B 度量堵上它有没有移动整体行为。

流程是:压力 baseline(找到漏洞,定性)→ 写/改 prose → eval(确认有用,定量)。 它们 是顺序的,不是替代——一个绿的 Track-A 数字背后没有压力 baseline,意味着你为一个从未在压力 下测过的 body 优化了它的触发器。


content contract 是权威的结构闸

行为是你拿 baseline 去守的;结构是 harness 拿来强制的。 别手检闸门已经查的东西。

./run-tests.sh                 # node "content" 套件断言 skills/(分发)和
                               # .claude/skills/(项目自用,含本 skill)下每个 SKILL.md
                               # 都有带 name + description 的 YAML frontmatter
claude plugin validate .       # 校验 plugin manifest、分发的 skill、command

run-tests.sh 必须以 ALL TESTS PASSED 收尾。content 套件同时 iterate skills/*/SKILL.md.claude/skills/*/SKILL.md,所以这个 skill 本身就处在它所宣讲的同一道结构闸之下——把 frontmatter 写对它就过。claude plugin validate . 校验的是分发的插件(manifest + skills/ + command);它看不到 .claude/skills/(那些不属于 ship 出去的插件),这正是 为什么 content 套件要覆盖它们。

Frontmatter YAML 引号(Finding #1,血泪)

一个含 :"description 必须加引号,否则 YAML parser 会误读它, plugin validate / content 测试以非显然的方式失败。整个值用单引号包起来(像本 skill 自己 的 frontmatter 那样)。这是本仓最常见的 skill-authoring footgun——见 AGENTS.md §6。拿不准 就加引号。

description 是路由器,不是摘要

description 决定 agent 什么时候会读这个 skill。它必须保留何时用 / Triggers / Do NOT use / 职责边界这些路由信息,且中文为主。不要把它改成英文短摘要,也不要因为某个 host adapter 是 stubpartial 就写成维护者说明(例如“Codex adapter stub for X”)。

adapter partial/ 的 description 要从 canonical description 做语义 delta:保留触发条件和排除 条件,只替换 host-specific 能力边界。adapter stub/ 也不是空壳摘要:它要告诉 agent 何时触发 这个 stub、正在阻止误用哪套 host 机制、缺哪类能力才能解除 stub。


写 body 前先跑 craft 两轴诊断(强制前置)

压力 baseline 回答的是「这条纪律规则有没有被堵住」;它回答「这整个 skill 的 body 该长什么形状」。这两件事正交:你可以把每条规则都堵得密不透 风,却把一个本该是心智模型的 skill 写成一串编号步骤——形状错配,规则再 严也教错了 substrate。

所以:写 body 的第一行之前,先对这个 skill 跑一遍 craft 两轴诊断,定下它 是哪一种 craft,再按那种 craft 的形状落笔。两轴各 5 题、每题 yes +1、≥3=strong, 组合成 4 象限:

| | cognitive 弱 | cognitive 强 | |---|---|---| | process 强 | Craft A 机械配方(编号步骤) | Craft C 纪律级(命名锚 + 流程 + 硬规则 backstop) | | process 弱 | (弱,弱) 反模式 → 拒绝建 | Craft B 心智模型(命名锚为主) |

完整的两轴 10 题(每题带 yes-trigger 例子)+ 4 象限决策表在 [references/craft-axis-diagnosis.md](references/craft-axis-diagnosis.md)。诊断 定下 craft 之后,body 只装四类内容(触发 / 命名锚 / 流程骨架 / 硬约束),4 层 写作分配 + progressive-disclosure 阈值在 [references/body-content-types.md](references/body-content-types.md)。

craft 诊断必做,不是可选的开场白。 跳过诊断默认会落进「Step 1 做 X、Step 2 做 Y」的编号清单形状——那是模型见得最多的写法,它只贴合两轴里的一个极端 (process 强 / cognitive 弱)。住在网格别处的 skill 一旦这么写,要等到 baseline 跑出形状不对才发现,那时已经是整篇重写。诊断本身就是预防。

craft 诊断的 Rationalization Table

| 借口 | 现实 | |------|------| | 「我一看就知道这是纪律级,不用跑两轴。」 | 「一看就知道」正是默认落进编号清单的那条路。10 题花两分钟,重写花两小时。 | | 「先按编号步骤写出来,形状不对再调。」 | 形状是 substrate,不是排版。写成编号清单再改成心智模型 = 整篇重写,不是局部调。 | | 「(弱,弱) 也写出来看看,万一有用呢。」 | 弱弱象限既不给步骤也不给心智模型,是占位 prose。它一旦发布就永久和更密的 sibling 抢注意力。拒绝建 / 折进别的 skill / 重审 scope。 | | 「诊断和压力 baseline 是一回事,跑了一个就够。」 | 不是。baseline 测「规则有没有被堵」(定性堵漏),诊断测「body 形状对不对」(craft 选型)。互补,不替代。 |

> 违背字面就是违背精神。 「我跑了压力 baseline,相当于诊断过了」——没有。 > 你堵了规则的漏,没定 body 的形。当你开始论证「这个 skill 太明显不用诊断」, > 那套论证本身就是症状:最明显的 skill 恰是最容易被默认写成编号清单的那个。


改既有 skill:delta-only,永不整篇重写

改一个已存在的 skill / reference 时,只产出条目级 delta——定点的小节增、表格 加行、半句补、删掉指得出的具体某几处——绝不重生成整个文件。这条规则堵的是同一次 baseline 暴露的双侧悬崖(一个强模型受试在三压 + 「优化它」下默认整篇重生成了 reference:123→95 行、7 小节并成 5、合并小节「减目录噪声」):

  • 整篇重写 → context collapse:每次重生成都在重新采样全文,来之不易的细节——

Finding 条目、引号 footgun 警告、回退留痕——正是最容易被「顺手精简」掉的那批。 重写几轮,洞察就蒸发了。

  • 过度压缩 → brevity bias:以「更精炼」为目标的迭代压缩系统性地丢领域洞察——

行数降了,substrate 没了。

「太长」的合法收敛只有两种,且都是 delta:下沉细节到 references/(主文件留 一句指针)+ 删真正重复的那几处(指得出具体哪两段重复)。不是重生成、不是合并 小节、不是砍行数。改多快、怎么回退(演化频率分层 + git 谱系)归 grounding-skill-evalsreferences/track-ab-discipline.md §7——本节只管「怎么改」,那里管「改多快 + 怎么 回退」。

证物前置步:judgment 子集静态自查

动 delta 之前先做一遍静态自查。机械子集(frontmatter 引号 / 必备字段 / description 路由密度 / adapter payload 唯一性 / 死链)已由 scripts/skill-lint.sh 覆盖——跑它,别手检。这里只查 lint 查不了的 judgment 子集

  • [ ] 自相矛盾——同一概念在文内是否两种口径(Finding #9:wip_limit 在 board.md

里 pinned vs flexible 前后打架,处置 = 统一口径)。

  • [ ] 与 SSOT 漂移——这段是否复述了别处的 SSOT 且口径已漂(红线 3 / Finding #7)。
  • [ ] prose-实现脱节——描述的行为是否已与实现不符(Finding #28:把已 live 的 hook

标作 TODO)。

自查逮到的矛盾本身就是合法证物(文内失败,可直接锚 delta);什么都没逮到、也没有 证物目录里的其它失败——那就没有改的理由。

delta-only 的 Rationalization Table

| 借口 | 现实 | |------|------| | 「它臃肿 / 目录噪声多,整篇重写压缩、合并小节更干净。」 | 整篇重写是 context collapse 的头号入口,合并小节 / 砍行数是 brevity bias。冗余只删具体那几处重复(delta),臃肿靠下沉 references/——绝不重生成整个文件。 | | 「我读完觉得这段啰嗦 / 能更好,所以改了它。」 | 审美判断不是证据。没有具体失败证物 = 没有改的理由,哪怕你「觉得」更好——强模型尤其会诚实地「觉得」然后照改(见 baseline)。 |

演化闭环总览(pointer-only 地图)

skill prose 的演化是一个闭环;本节只给地图 + 每步的落地处,不复述任何一步:

  1. 证据 artifact——锚定一个具体失败 → 本文铁律段「合法的 RED 证物目录」。
  2. 反思——从证物里抄录出要堵的那条合理化 → 本文循环(RED→GREEN→REFACTOR)+

references/pressure-testing.md

  1. delta——条目级增删改,绝不整篇重写 → 本节。
  2. eval / 定性门——改前后量一遍(通道死时降级定性)→ grounding-skill-evals

references/track-ab-discipline.md §7。

  1. 成败双向蒸馏——成功与失败同权回流台账 + skill → AGENTS.md §9 +

references/pressure-testing.md §6(回填)。


Pointers

  • references/craft-axis-diagnosis.md — 写 body 前的 craft 两轴诊断:

process-control 轴 5 题 + cognitive-override 轴 5 题(每题带 yes-trigger 例子)

  • 4 象限决策表(强强→Craft C / 强弱→Craft A / 弱强→Craft B / 弱弱→拒绝建)。
  • references/body-content-types.md — body 只装的 4 类内容(触发 / 命名锚 /

流程骨架 / 硬约束)+ 4 层写作分配表(SKILL.md / references / scripts / templates 各装什么)+ progressive-disclosure 阈值(≤500 行 / ≥100 行拆 reference / 一层深 / no orphan)+ 分发 skill 的受众 / 自包含两条额外纪律 (写给用户 agent 的第二人称 prompt·无维护者自留物·无代号·repo-无关 self-contain; dev meta-skill 豁免)。

  • references/pressure-testing.md — 完整配方:三压场景模板、固定的 real-scenario

prompt 脚手架、逐字捕获合理化、GREEN 守不住时的 meta-testing、以及回填目标 skill 的 Rationalization Table / Red Flags。

  • superpowers:test-driven-development — 本 skill 所仿照的 RED-GREEN-REFACTOR 循环和

铁律。REQUIRED background。

  • superpowers:writing-skills — 通用的(非 cc-master)skill-authoring 纪律、TDD↔skill

映射表、subagent 测试方法论。

  • skill-creator — Anthropic 官方的 skill,用来 scaffold 一个 skill、优化 description

跑 eval。用它来创建文件并跑 Track A/B;用 skill 来知道你究竟在什么时候才被允许写 纪律 prose(压力 baseline 闸)。

  • design_docs/eval/README.md + design_docs/eval/track-b-benchmark.md — 定量的那一半

(Track A 触发准确率、Track B 行为 benchmark)。

  • .claude/skills/grounding-skill-evals/references/track-ab-discipline.md §7 — 演化频率

分层(评估成本定节奏)+ git 谱系 / 回滚安全网。本文 delta-only 管「怎么改」,那里管 「改多快 + 怎么回退」。

  • AGENTS.md §6 — 仓库层面的 skill 创作/维护纪律(两 skill 不重叠、YAML 引号反模式、

content-contract 指针)。


Red Flags — STOP,你跳过了 baseline

  • 正打算写一条纪律规则,而你没有为它捕获到任何失败
  • 「我晚点再 baseline / 等草稿写完再说。」
  • 「我已经知道 agent 会怎么合理化。」
  • 加一行你编出来而不是抄录下来的 Rationalization Table。
  • 改一段纪律段落的措辞却不重跑场景。
  • 「这只是一个小措辞改动,铁律在这里不太适用。」
  • 把一个绿的 Track-A eval 当成 body 有效的证明(它只测触发器)。
  • 准备写 body 第一行了,却没先跑 craft 两轴诊断(默认就会写成编号清单)。
  • 「这个 skill 太明显,跳过诊断 / 跳过 baseline」——最明显的恰是最容易写错形状的。
  • 诊断落进 (弱,弱) 象限了,却还想「先写出来看看」——弱弱象限是拒绝建,不是写出来。
  • 你正要重新生成整个 skill 文件 / 把 N 个小节并成更少 / 以「更精炼」为由大幅砍行——

那是 context collapse / brevity bias 的入口,停,回到条目级 delta。

  • 改 prose 的全部理由是「我读完觉得它臃肿 / 能更好」——证物目录里锚不出任何一个具体

失败。

所有这些都意味着:停。先把压力 baseline 跑过一个 subagent。再写。 craft 诊断同理—— 写 body 前先跑两轴,定下形状再落笔。

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet — be the first.

Versions

  • v0.1.0 Imported from the upstream source.