Borrowing it
Nothing to install: this file belongs to LUKAWI/super-plumber. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/LUKAWI/super-plumber/master/.pi/skills/plumber-tdd/SKILL.mdgit clone --depth 1 https://github.com/LUKAWI/super-plumberWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/lukawi/super-plumber/plumber-tdd)<a href="https://agentmods.dev/skills/lukawi/super-plumber/plumber-tdd"><img src="https://agentmods.dev/badge/skills/lukawi/super-plumber/plumber-tdd/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/lukawi/super-plumber/plumber-tdd"><img src="https://agentmods.dev/badge/skills/lukawi/super-plumber/plumber-tdd.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00174 | $0.01450 |
| Opus 5 | $0.00087 | $0.00725 |
| Sonnet 5 | $0.00035 | $0.00290 |
| Haiku 4.5 | $0.00017 | $0.00145 |
Grade A, and why
plumber-tdd scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 47 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Plumber TDD — 纪律技能:节点内的测试先行(红 → 绿循环)
Overview
- 定位:SP 自带纪律技能族成员(DEC-6,adr_0005)——服务图中节点的测试先行纪律:当节点 plan 点名本技能、或节点产物含新测试/缺陷修复时,本页约定测试怎么立、循环怎么转。无节点归属的自由开发不适用本页(防蔓延:纪律技能只服务图中节点)。
- 纪律族不发 command(DEC-6 ②):触达靠触发语自动命中与节点 plan 指针,无斜杠命令、无入口编排。
- 节点 plan 是规格:
graph_get_node {id}取 plan/DoD 全文,DoD 是行为验收判据。本页不替代 plan,只约束把 DoD 变成测试的过程。
Seam:先约定,后写测试
**Seam(接缝)**是被测的公共边界:一条只观察行为、不伸进内部的接口——CLI 子命令的 stdout/退出码、MCP 工具的返回字段、导出纯函数的输入输出。
只在预约定 seam 上写测试。 写第一个测试之前,先落定本节点的 seam 清单:
- plan 已写明测哪些 seam → 以 plan 为准,不私自扩表;
- plan 未写明 → 向派单方/用户逐条确认后再动第一行测试,确认结果记进执行报告 notes。
没有 seam 清单不开工:测试精力必须落在 DoD 的关键路径与复杂逻辑上,而不是随手能测的边角。约定外的 seam 一律不测——要扩表先回 plan(小修走执行上报出口,结构修订归 designer)。
三大反模式(每个测试过一遍安检)
- 实现耦合:mock 内部协作者、测私有函数、绕接口从旁路验证(直查存储/内部状态而不走 seam)。判据:重构后测试红了而行为没变——测试钉住的是结构,不是 DoD 承诺的行为。
- 同义反复:断言把期望值按实现同一套算法重算一遍(
expect(add(a, b)).toBe(a + b)、按同样推导手工得出的快照、常量等于自身),构造上恒真,永远不可能反对代码。期望值必须来自独立事实源:已知正确的字面量、手推的实例、plan/DoD 原文。 - 水平切片:先写完全部测试再写全部实现。批量测试验证的是想象中的行为,还在理解实现之前就锁死了测试结构。改用垂直切片:一个测试 → 一段刚好让它变绿的实现 → 重复;每个测试是曳光弹,回应上一循环学到的东西。
循环规则
- 先红后绿:先看到新测试失败(且确认因预期原因失败),再写刚好让它通过的实现;不为未来的测试预写代码、不加投机功能。
- 一次一片:一个 seam、一个测试、一次最小实现为一个循环。
- 重构不在循环里:红 → 绿只管让测试通过。结构整理归复核阶段——若本环境存在 plumber-review 技能,按其约定交交叉复核;缺失则静默降级,把重构点记进执行报告 notes 即可。
- 随做随报:一个垂直切片约等于一个 checkpoint 粒度,每完成一个立即
graph_update_checkpoint(无 MCP 用node .pi/skills/plumber-execute/scripts/sp.mjs checkpoint <node_id> <cp_id> <status> [--graph <name>]),绝不攒批;旧sp-checkpoint.mjs已退役,不得作为主路径引用。 - 产物不越界:测试与实现只落在节点 plan 的文件边界内;测试是节点 artifact,路径如实写进
graph_update_execution_report。 - 测试名说领域语言:命名与仓库 CONTEXT.md 及节点所属 context 顶点的 glossary(
graph_get_node可读)对齐,让测试读起来像 DoD 的规格化复述。
完成判据(纪律层):每条可测的 DoD 至少有一个绿色测试佐证、无约定外 seam 的测试、每个测试过完三大反模式安检。节点的其他验收仍以 DoD 与三层验收为准(→ 手册 §8)。
指针惯例(DEC-6)
节点 plan 引用纪律技能的写法是条件式建议:「若本环境存在 plumber-tdd 技能,按其约定执行本节点」。两条约束对全纪律族生效:只指 SP 自带技能(借鉴风格、不做外部运行时依赖,绝不指向外部技能库);存在才建议、缺失静默降级——指针命中不了时执行者直接按 plan/DoD 干活,不另找替代、不阻塞、不报错。本页同理:是纪律参照,不是执行的先决条件。
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 2d ago Changed 3f47da8f527a
- 3d ago First seen · 47 lines · 174 tokens per session scan A c1a20f7d6f33
plumber-tdd is a skill published in the GitHub repository LUKAWI/super-plumber (3 stars, last pushed yesterday), licensed MIT. It adds 174 tokens to every session and 1,450 once invoked, about $0.0009 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-05.
Other skills, from other repositories
engram-testing-coverage
TDD and coverage standards for Engram. Trigger: When implementing behavior changes in any package.
nw-fp-clojure
Clojure language-specific patterns, data-first modeling, REPL-driven development, and spec.
strict-tdd
Strict RED->GREEN->REFACTOR test-driven development with enforcement. Never write production code before a failing test. Atomic commits per TDD cycle.
mobiai-mobile-tdd
You MUST use this before writing any implementation code for a mobile feature, bug fix, refactor, or behavior change. Tests come before implementation — no exceptions.
tdd
This skill should be used when the user wants to implement features or fix bugs using test-driven development. Enforces the RED-GREEN-REFACTOR cycle with vertical slicing, context isolation between test writing and implementation, human checkpoints, and auto-test feedback loops. Uses multi-agent orchestration with the…
conductor-implement
Execute tasks from a track's implementation plan following TDD workflow.