关于 duck-simplify
duck-simplify 是用于代码评审、设计和调试场景的简化分析技能,面向希望降低复杂度并避免语义分歧的开发者。它优先考虑删除、复用或使用标准能力,并将最终实现决定留给用户。
主要功能
- 01识别复杂度热点
- 02核实调用与配置使用情况
- 03最多提出三项高影响简化
- 04优先删除、复用或采用标准能力
- 05检查语义重复与分歧风险
适用场景
- 01评估代码方案中的复杂层次
- 02查找可能逐渐分歧的重复逻辑
- 03审查是否需要新增抽象或配置
- 04比较复用与自定义实现
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ sprngr/ rubber-duck --skill duck-simplify安装后在 Claude Code 中输入/duck-simplify确认已加载。
附带文件references/GUARDRAILS.md
详细介绍
简化 🦆。形状更小,行为不变。防止语义偏离,而不只是消除重复。
目的
找出价值最高的简化方案,同时不削弱安全性、正确性或明确要求。
理念护栏(技能专属)
继承 references/GUARDRAILS.md 中的共享护栏。
技能专属差异:
- 仅提供复杂度精简指导;最终实现决策仍由用户做出。
激活
在评审、设计、调试场景中,从复杂度最小化的角度审视问题,包括语义重复/偏离评审。
方法
1. 明确范围(如不清楚)
- 上下文不完整时,提出 1–3 个有针对性的澄清问题
- 证据不足时,明确说明假设
必需:
- 代码/提案范围
干运行模式必需:
- 两个或更多存在语义重复嫌疑的候选范围
可选:
- 约束(截止日期、可读性规范、团队偏好)
约束不清楚时,提出一个有针对性的澄清问题。
2. 评审是否可简化
- 找出复杂度热点(层级、分支、配置面、间接层)。
- 提出建议前核实证据(调用方、分支数量、配置使用情况)。
- 最多提出 3 个影响最大的简化建议。
- 优先选择删除、复用、标准库/原生功能,而不是新增抽象。
- 对 DRY 模式:确认是语义重复(而非仅语法重复),包含
Diverges when+Extract start,并优先选择最小的安全抽取边界。 - 如果简化会削弱信任边界、无障碍性或明确要求,则拒绝并建议安全替代方案。
- 不要指出为提升可读性而保留的微小重复,也不要指出风险低的字面量/常量。
3. 输出发现
标准模式:
每项发现一行:
<前缀> <路径[:行号|范围]> — <复杂度成本>。修复:<更精简的形式>。
前缀:
🪶 yagni:尚无充分理由的抽象/配置📚 stdlib:可由标准库替代的自定义代码🧱 native:可由平台功能替代的依赖/自定义层✂️ shrink:用更少代码实现相同行为🗑️ delete:可删除且无需替代的死代码/推测性代码❓ question:意图缺失,无法判断
最后一行:
totals: <n> findings, <n> questions.
net: -<N> lines possible.
干运行模式(聚焦 DRY/去重/语义偏离):
每项发现一行:
<前缀> <路径[:行号|范围A<->范围B]> — <重复行为 + 偏离风险>。Diverges when: <未来的变更触发条件>。Extract start: <路径:行号>。Fix: <抽取边界>。
干运行模式前缀:
🟡 risk:有意义的重复,可能导致偏离🔵 nit:值得清理的轻微重复❓ question:上下文缺失,无法确定抽取方案
干运行模式最后一行:
totals: <n> findings, <n> questions.
coverage: semantic-dup=<checked|partial|missing>; extraction-start=<provided|missing>.
边界
- 不负责安全性/回滚严重性(
duck-risk/duck-review)。 - 不负责测试缺口(
duck-triage)。 - 不负责最终 PR 讨论串格式(
duck-review)。
评论
支持 Markdown