Coding philosophy cce
Claude Code 自我提升计划
npx -y skills add luochang212/cc-enhance --skill coding-philosophy-cceAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 6 stars6 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
编程哲学与决策框架。当需要写新功能、改bug、重构代码、审查代码、或做架构决策时,使用此技能。包含开发(熵增)和审查(熵减)两套思维。从第一性原理推理,核心问题永远是「收益是否大于副作用」。
SKILL.md
4.5 KB, as published. Nobody here has run it
来自 cc-enhance。
-cce后缀表示此技能由 cc-enhance 项目安装,避免与本地同名技能冲突。
哲学
代码有两种运动方向。写新代码是熵增——向系统添加新东西。审代码是熵减——在添加之前阻止劣质增量,在添加之后清理冗余。
两者共享一个根基:收益必须大于副作用。
开发(熵增)
写新代码的核心张力:每行代码都是负债。它今天解决问题,明天就要被维护、理解、调试。
做 vs 不做
| 做 | 不做 |
|---|---|
| 从第一性原理推理 | 盲目跟随惯例 |
| 陈述假设和权衡 | 默默选择一种理解 |
| 三行相似代码放原地 | 为一个用途建抽象 |
| 匹配已有代码风格 | 沿途「顺手」重构 |
| 一致地修改全局模式 | 只修一个实例制造不一致 |
| 验证完再声称完成 | 假装运行过 |
核心原则
- 用最少代码解决问题。不要加没人要的功能。不要为单次使用建抽象。不要为不可能发生的场景写错误处理。
- 依赖尽量用最新稳定版。代码会逐渐腐化,一开始就是最新版,可以让代码保质期更长一些。
- 只碰必须碰的。不改相邻代码。不修不是你搞坏的东西。只删你的改动导致不再需要的 import。
- 从第一性原理出发。把问题剥到可验证的事实。「大家都这么做」不是事实。
- 一致性是承重结构。设计决策改变时,找到每个假设旧方案的地方——旧代码是还没暴露的 bug。
- 识别局部最优。当增量改动暴露出更彻底的解决方案时,停下来和用户讨论,不要默默把小任务变成大规模重构。
- 测试跟着代码走。在同一轮改动中写好测试。「不重要所以不用测」的代码才是最容易出 bug 的。
审查(熵减)
代码审查的核心张力:不是所有问题都值得修。每次修改都有引入 bug、破坏一致性、让代码变复杂的风险。
永远值得修
- lint/typecheck 错误
- 未使用的 import
- 死代码分支(相同分支的三元表达式、不可达代码)
- 误导性命名
- 无意义包装(只转发给另一个函数的
useCallback、和另一个函数完全相同签名的函数体)
值得评估(收益 > 副作用?)
- 重复逻辑——相同的非平凡表达式出现在 2+ 处
- 重复的 JSX 结构
- 近乎相同的函数
- 跨文件的重复样板
通常不值得修
- 会分别演化的两处重复
- 简单 HTML 外壳的重复
- 单次使用的抽象机会
- 有语义差异的机械重复——不同层职责的相同字段 struct、含义不同的相同值
- 项目级模式的半修复——修一个留一个制造不一致
- 不减少重复的「提取到文件」
判断启发式
| 原则 | 说明 |
|---|---|
| 显式 > 短 | 一组相似函数共享平凡结构,不值得用工厂函数包装。可见的重复好于不可见的意图 |
| 语义重复 ≠ 机械重复 | 两层有相同字段但属于不同契约——这是隔离,不是浪费 |
| 不要为假想的未来设计 | 没有辅助函数、抽象层、配置开关,除非现在就有第二个调用方 |
| 修复规模和问题规模匹配 | 两行 bug 不值得重构整个模块。测试标准:只修问题本身,下一个人还能理解吗?能→补丁,不能→重构 |
| 遵循已有模式,要么全改 | 有问题模式要么是项目级惯例要么是项目级问题。没造成实际 bug 别碰,造成了单独一个 commit 全改 |
审查流程
结构:Summary → Critical(bug/安全/破坏性)→ Improvements → Nitpicks → Conclusion(Approve / Request Changes)
并行读,顺序写。审查时并行读所有文件收集发现。修复时顺序写——两个 agent 同时编辑同一文件会静默覆盖。
参考
更详细的示例和论证:
- references/dev.md — 开发哲学完整版
- references/review.md — 审查哲学完整版,含审查流程和语调建议
环境依赖
| 依赖 | 用途 | 安装方式 | 磁盘 | 必需 |
|---|---|---|---|---|
| 无 | — | — | — | — |