devbooks-coder:以 Coder 角色严格按 tasks.md 实现功能并跑闸门,禁止修改 tests/,以测试/静态检查为唯一完成判据。用户说"按计划实现/修复测试失败/让闸门全绿/实现任务项/不改测试",或在 DevBooks apply 阶段以 coder 执行时使用。
Install with Tessl CLI
npx tessl i github:Darkbluelr/dev-playbooks-cn --skill devbooks-coderOverall
score
17%
Does it follow best practices?
If you maintain this skill, you can automatically optimize it using the tessl CLI to improve its score:
npx tessl skill review --optimize ./path/to/skillValidation for skill structure
目标:明确本 Skill 的核心产出与使用范围。 输入:用户目标、现有文档、变更包上下文或项目路径。 输出:可执行产物、下一步指引或记录路径。 边界:不替代其他角色职责,不触碰 tests/。 证据:引用产出物路径或执行记录。
适用:需要细化策略、边界或风险提示时补充。
适用:需要与外部系统或可选工具协同时补充。
我的职责:
evidence/green-final/执行前必须按以下顺序查找配置(找到后停止):
.devbooks/config.yaml(如存在)→ 解析并使用其中的映射dev-playbooks/project.md(如存在)→ Dev-Playbooks 协议project.md(如存在)→ template 协议关键约束:
agents_doc(规则文档),必须先阅读该文档再执行任何操作AI行为规范:~/.claude/skills/_shared/references/AI行为规范.md
代码实现提示词:references/代码实现提示词.md
测试运行策略:references/测试运行策略.md
完成状态与路由:references/完成状态与路由.md
热点感知与风险评估:references/热点感知与风险评估.md
低风险改动技术:references/低风险改动技术.md
编码风格细则:references/编码风格细则.md
日志规范:references/日志规范.md
错误码规范:references/错误码规范.md
每次开始前必须执行:
<change-root>/<change-id>/tasks.md,识别已勾选 - [x] 的任务[x]"后的第一个 - [ ]检测到 T1-T6 已完成(6/10),从 T7 继续。核心原则:完成一个任务,立即勾选一个。不要等到全部完成再批量勾选。
勾选时机:
| 时机 | 操作 |
|---|---|
| 代码编写完成 | 暂不勾选 |
| 编译通过 | 暂不勾选 |
| 相关测试通过 | 立即勾选 |
| 多个任务一起完成 | 逐个勾选,不要批量 |
严格按 references/代码实现提示词.md 执行。
# 开发过程中:频繁运行 @smoke
npm test -- --grep "@smoke"
# 准备提交前:运行 @critical
npm test -- --grep "@smoke|@critical"
# 提交后:CI 自动运行 @full(Coder 不等待)
git push # 触发 CI参考 references/完成状态与路由.md。
| 允许 | 禁止 |
|---|---|
修改 src/** 代码 | ❌ 修改 tests/** |
勾选 tasks.md 任务项 | ❌ 修改 verification.md |
记录偏离到 deviation-log.md | ❌ 勾选 AC 覆盖矩阵 |
运行快轨测试(@smoke/@critical) | ❌ 设置 verification.md Status 为 Verified/Done |
触发 @full 测试(CI/后台) | ❌ 等待 @full 完成(可以开始下一个变更) |
| 模式 | 检测命令 | 原因 |
|---|---|---|
test.only | rg '\.only\s*\(' src/ | 会跳过其他测试 |
console.log | rg 'console\.log' src/ | 调试代码残留 |
debugger | rg 'debugger' src/ | 调试断点残留 |
// TODO 无 issue | rg 'TODO(?!.*#\d+)' src/ | 无法追踪的待办 |
any 类型 | rg ': any[^a-z]' src/ | 类型安全漏洞 |
@ts-ignore | rg '@ts-ignore' src/ | 隐藏类型错误 |
# 1. 编译检查(强制)
npm run compile || exit 1
# 2. Lint 检查(强制)
npm run lint || exit 1
# 3. 测试检查(强制)
npm test || exit 1
# 4. test.only 检查(强制)
if rg -l '\.only\s*\(' tests/ src/**/test/; then
echo "error: found .only() in tests" >&2
exit 1
fi
# 5. 调试代码检查(强制)
if rg -l 'console\.(log|debug)|debugger' src/ --type ts; then
echo "error: found debug statements" >&2
exit 1
fi防止大量输出污染 context:
| 场景 | 处理方式 |
|---|---|
| 命令输出 > 50 行 | 只保留首尾各 10 行 + 中间摘要 |
| 测试输出 | 提取关键失败信息,不要全量贴入对话 |
| 日志输出 | 落盘到 <change-root>/<change-id>/evidence/,对话中只引用路径 |
| 大文件内容 | 引用路径,不要内联 |
*Green 证据必须保存:
<change-root>/<change-id>/evidence/green-final/正确的路径示例:
# Dev-Playbooks 默认路径
dev-playbooks/changes/<change-id>/evidence/green-final/test-$(date +%Y%m%d-%H%M%S).log
# 使用脚本
devbooks change-evidence <change-id> --label green-final -- npm test参考:~/.claude/skills/_shared/references/偏离检测与路由协议.md
在实现过程中,必须立即将以下情况写入 deviation-log.md:
| 情况 | 类型 | 示例 |
|---|---|---|
| 添加了 tasks.md 中没有的功能 | NEW_FEATURE | 新增 warmup() 方法 |
| 修改了 design.md 中的约束 | CONSTRAINT_CHANGE | 超时改为 60s |
| 发现设计未覆盖的边界情况 | DESIGN_GAP | 公共接口与设计不一致 |
检测规则参考:~/.claude/skills/_shared/上下文检测模板.md
| 模式 | 触发条件 | 行为 |
|---|---|---|
| 首次实现 | tasks.md 全部为 [ ] | 从 MP1.1 开始 |
| 断点续做 | tasks.md 有部分 [x] | 从最后 [x] 后的第一个 [ ] 继续 |
| 闸门修复 | 测试失败需要修复 | 优先处理失败项 |
tasks.md 存在verification.md 存在tests/** 有测试文件If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.