| name | upaseo-simplify |
| description | 本地极致代码精简技能。融合极简主义核心主张 (Surgical Changes, Simplicity First) 与 ponytail 精简阶梯,用于在提交 PR 前对代码进行脱水、去杂质和极致优化,并登记延迟债务。 |
Upaseo Simplify (本地极致代码精简技能)
在代码合并、PR 提交前,必须强制加载并调用此技能,对所有的 git diff 更改进行全面脱水,确保交付的代码极度干净、凝练,符合 Senior 工程师的最高标准。
Scope Boundary
- 精简范围默认限定为当前
git diff。只删除或收缩本次改动引入的冗余、过度抽象、废弃导入和多余注释。
- 不把"更喜欢另一种写法"当成精简理由;不重写未参与本次任务的旧代码。
- 如果发现旧代码存在明显坏味道但不影响本次交付,只在报告中记录,不顺手处理。
黄金法则
-
Simplicity First (最简实现):
- 拒绝一切非必要的抽象。如果一个类、函数或配置只在单一场景下使用,绝对不为它做通用包装。
- 绝不夹带私货:只实现用户明确要求的特性,对于任何"未来可能有用"的代码,必须全部无情删去。
- "如果本次 diff 中 200 行代码的功能可以用 50 行实现,请立即收缩它。"该原则只适用于当前改动范围,不授权重写无关旧代码。
-
Surgical Changes (手术刀式改动):
- 不乱改无关代码:只修改实现本迭代目标所必须修改的行。禁止顺便整理相邻无关文件的格式、拼写或重构。
- 打扫自己的战场:仅清理由于"你自己的修改"而产生的废弃导入 (orphan imports)、未使用变量 (unused variables) 或废弃函数。
- 尊重历史遗留:不要随意删除历史已有的死代码(除非用户明确指示),防止产生潜在的破坏性影响。
前置避障读取
执行标准避障前置读取,见 upaseo/references/learnings-precheck.md。本技能相关 category 为 command_error|tool_misuse。在精简审查过程中,若某段代码的存在正是为了遵守某条避障规则,则禁止将其视为冗余代码删除。
精简阶梯前置门 (Simplification Ladder Gate)
实现/精简前,对照 upaseo/references/simplify-ladder.md 的 6 级阶梯自检(按项目类型条件启用:diff 含代码扩展名走完整 6 级;纯文档/配置降级为一句话 YAGNI 自检)。把"本可停在更高 rung 却写多了"的实现挡在交付之前。阶梯判定结论一句话写入自审报告(如"用了 stdlib 的 X,跳过 5/6")。
安全红线:信任边界校验、防数据丢失、安全、可访问性、避障规则要求保留的防御性代码永不入删除清单,无论阶梯判定它多"多余"。
精简执行规程 (Simplify Checklist)
在提交 PR 之前,加载此技能的 Agent 必须启动自检并完成以下工作:
-
删除清单 (Delete-List):对当前 git diff 逐 hunk 重跑阶梯(见 upaseo/references/simplify-ladder.md §2),产出删除清单,对每条决定:
[cut] 整段删除(预测性代码、未使用的通用包装)。
[shrink] 收缩为更短形态(50 行 → 标准库 1 行)。
[keep] 保留并说明为何不能上移 rung。
- 应用
[cut] / [shrink] 后必须重新跑验证(测试/日志/validate.sh),确认未破坏行为。
-
精简死代码 (Trim Orphans):
- 检查本次提交中是否有未使用的
import、声明了但未被调用的 const/let/var、已经无用的内部 helper。
- 检查是否有由于重构而留下的多余注释。
-
可读性审查 (Readability & Logic Shrinking):
- 是否存在过长、嵌套过深的
if-else 或循环?能否用早期 return (early exit) 或更扁平的逻辑来平铺?
- 确保风格与原项目保持 100% 绝对一致。即使你个人的品味更喜欢另外一种写法,也必须屈从于项目已有风格。
-
延迟债务登记 (Deferred Debt):
- 当为求简而取捷径(主动落到更低 rung)或刻意保留某条捷径时,必须登记为延迟债务,避免"以后"变成"永不"。
- 登记到
.paseo/todos.md 的 ## Active 桶,条目带 type: debt 字段(格式见 upaseo-todo/SKILL.md):捷径描述 + 被推迟的"正确做法" + 关联文件:行 + source: simplify。
- 不登记捷径 = 静默欠债,禁止。
-
确认最简形态 (Lock Minimum Shape):
- 确保改动后的代码在不破坏原有功能的前提下,行数和复杂度达到了"Senior 工程师看后无懈可击的极简程度"。
- 将删除清单摘要(
[cut] N / [shrink] M / [keep] K)与新增 debt 条目数写入 commit message 或 PR 自审日志。
强度挂靠执行模式
simplify 强度不另起独立参数轴,直接挂靠 using-upaseo 执行模式:
- 完整仪式模式:完整 6 级阶梯 + 完整删除清单 + 债务登记。
- 快速模式:diff 扫描级轻量删除清单(聚焦 orphan/死代码),阶梯自检可选,债务登记仍强制。
- 微改快速通道:跳过 simplify(微改判定已保证无行为风险);若微改意外引入冗余,在交付报告标注即可。