--- name: omd-minimal-code-discipline description: "最小改动纪律:做最小而正确的改动——先确认存在、能复用就不新写、最短的正确修改。触发词:minimal / 最小改动 / YAGNI / 别过度设计 / 只改必要的 / 能复用就复用。" --- # oh-my-dsh · Minimal-code-discipline 最小改动纪律 用**最短的正确 diff** 达成目标:先确认已有,能复用就复用,不写投机抽象。对应 OMC 的 `minimal-code-discipline`(YAGNI-ladder 写作时纪律)。 ## 何时用 - 用户要求「最小改动」「别过度设计」「只改必要的」。 - 任何改代码的场景,作为默认写作纪律兜底。 ## 纪律阶梯 1. **存在优先**:动手前先 `grep`/`glob` 确认有没有现成实现、工具函数、约定——已存在的就不写。 2. **复用优先**:能调已有函数/类型/配置就别重写。 3. **最短正确 diff**:只改达成目标必须改的那几行,不顺手重构、不格式化无关代码。 4. **YAGNI**:不为「以后可能要」提前抽象;需要时再提炼,提炼要有第二个使用点作依据。 ## 与其它模式的关系 - `omd-execute` 的实现阶段应默认套用本纪律,避免 diff 膨胀。 - `omd-review` 要专门盯「超出必要范围的改动」。 - 与 `omd-ai-slop-cleaner` 互补:一个管「改得少」,一个管「写得干净」。 ## 收尾:HUD 用 `omd-hud` 输出改动范围:`table`(文件/改动/是否必要/能否更小)+ `stat`(净增删行数)。让「改了多少、为什么不能再小」一眼可见。 ## 反模式 - 别为了「整洁」顺手改与目标无关的代码。 - 别在没有第二个使用点时就抽象出通用层。 - 别把「最小」当成「偷懒跳过必要处理」——正确性优先于行数。