中文 | English
一个面向 Coding Agent 的代码精简 Skill,用于功能实现或缺陷修复后的轻量审查,会让Coding Agent对新增代码的模块进行消融实验,从而去除不必要的代码模块,减少防御性编程。 它帮助 Agent 识别重复校验、重叠兜底、无当前用途的抽象,以及掩盖真实错误的处理逻辑, 在保留必要行为和错误契约的前提下,选择有证据支持的简化。
快速精简 + 按需消融:一轮快速检查,必要时验证一个复杂单元,验证充分后停止。
当前仓库包含一个 Skill,内部有两种工作方式,共用同一套保护边界:
| Skill / 工作方式 | 适用场景 | 主要输出 |
|---|---|---|
code-trim · 快速精简 |
新增或修改代码后,检查明显的冗余防御与抽象 | 有依据的代码精简,以及正常任务回复中的验证说明 |
code-trim · 按需消融 |
某个防御单元复杂度明显,必要性无法低成本判断 | 一次隔离实验;保留有证据的简化,恢复失败或不确定的改动 |
两种方式无需分别安装。普通改动先做快速检查;只有复杂单元满足消融条件时才进入实验。 如果没有明确候选,或证据不足且不值得继续验证,结束审查并保留当前实现。
当前任务的新增或修改代码
└─ code-trim
├─ 复用已有上下文、diff 与验证结果
├─ 一轮快速检查
│ ├─ 重复校验与重叠保护
│ ├─ 宽泛异常、静默默认值与多层兜底
│ └─ 无当前用途的包装、工厂与兼容分支
├─ 依据契约、调用路径或等价实现判断
│ ├─ 证据明确 → 精简
│ └─ 证据不足 → 保留
├─ 必要时做一次局部消融
│ ├─ 提出一个移除假设
│ ├─ 在隔离的本地变体中验证
│ └─ 接受有证据的改动,恢复失败或不确定的改动
└─ 纳入正常验证,简短收尾
快速检查负责定位候选并判断明显冗余;消融负责回答一个无法便宜地通过阅读解决的问题。 消融结果必须结合行为或不变量证据解释,不能把“测试绿了”直接当作删除依据。
每次接受删除后,后续判断都应基于更新后的实现。 例如,两层校验分别看都像重复,不能在两次独立判断中把它们全部删除。 组合改动后,每项必要保证仍需至少一个有效保护层。
- 根目录的 SKILL.md 是唯一执行规则来源,保留英文指令。
- 本页与 README.en.md 分别提供完整中文和英文使用说明。
- 目录名和 Skill 名统一为
code-trim,便于发现与显式调用。 - README 中的教学示例用于解释规则,不代表每次使用都要逐项检查或生成表格。
- 后续规则调整应同步更新两种语言的说明,尤其是预算、验证与停止条件。
- 只有出现实际需要时才增加脚本、引用资料或其他资源。
code-trim/
├── SKILL.md # Agent 执行规则
├── README.md # 完整中文说明
└── README.en.md # 完整英文说明
仓库是纯 Markdown Skill,不包含代码分析引擎、数据库、自动测试服务或部署流水线。 读取、编辑和运行检查由加载 Skill 的宿主 Agent 在目标项目内完成。
- 只检查本次任务新增或修改的代码。
- 仅在需要回答具体问题时读取直接依赖,复用已经获取的上下文。
- 识别所有受支持调用路径上已被保证的重复校验。
- 检查宽泛异常捕获是否掩盖缺陷,默认值是否吞掉必要错误。
- 检查多层 fallback 和 retry 是否承担相同职责。
- 识别没有当前需求、也没有实际仓库作用的兼容分支、工厂、包装与扩展点。
- 对重要候选回答:保护什么、删掉会坏什么、别处是否已有相同保证。
- 依据明确契约或调用路径精简;缺失测试不能作为“保护无用”的证据。
- 仅面向增加明显复杂度、必要性又无法低成本查明的模块或防御单元。
- 每次先提出一个具体移除假设,让实验有明确问题。
- 在隔离的本地变体中临时删除或简化目标单元。
- 选择真正覆盖受保护行为的最小相关检查。
- 综合运行行为、输入契约和不变量判断,不能仅凭测试套件通过。
- 实验失败或结论不明确时恢复该实验的改动。
- 默认每个任务最多一次;用户要求深入审查或正确性需要时才扩展。
- 不对线上数据或不可逆副作用进行实验。
这里的“消融”指移除一个单元以观察其必要性,不是反复删代码直到测试失败。 如果直接阅读已足够判断,就不必创建实验。
| 维度 | 默认规则 |
|---|---|
| 身份与权限 | 保留认证、授权;仅按任务要求或直接不变量证据调整 |
| 数据与执行 | 保留完整性、并发、幂等、资源清理保护 |
| 输入边界 | 根据真实外部输入风险保留适量验证 |
| 运行时保证 | 类型标注不能代替运行时验证;上游保证必须持续有效到使用点 |
| 读取 | 不为泛化审查重扫仓库或无理由重读文件 |
| 测试 | 复用已有结果,仅为具体未解决风险补充检查 |
| 输出 | 不生成审查文档、风险表或逐单元报告 |
| 停止 | 无明确候选、证据不足或验证已经充分时停止 |
git clone https://github.com/XIIRUAN/code-trim.git
cd code-trimSkill 本身没有运行时依赖。使用 Git 克隆需要本机已安装 Git; 目标项目自己的测试、编译器或包管理器按该项目的要求准备。
以下命令将仓库直接克隆到用户技能目录,适合希望在多个项目使用的情况。 它与上面的普通克隆是两种选择,选择一种即可。
macOS / Linux:
mkdir -p "$HOME/.agents/skills"
git clone https://github.com/XIIRUAN/code-trim.git \
"$HOME/.agents/skills/code-trim"Windows PowerShell:
$skillRoot = Join-Path $HOME '.agents\skills'
New-Item -ItemType Directory -Force -Path $skillRoot | Out-Null
git clone https://github.com/XIIRUAN/code-trim.git `
(Join-Path $skillRoot 'code-trim')Codex 的用户级技能目录为 ~/.agents/skills/,项目级技能可放入 .agents/skills/。
目录说明见 OpenAI 官方 Skills 文档。
仅在一个项目中使用时,在目标项目根目录创建
.agents/skills/code-trim/,把本仓库的 SKILL.md 复制进去。
README 可一并复制供团队阅读;无需把本仓库的 .git 目录复制进去。
其他宿主请使用其文档规定的发现目录与调用方式。
无论放在哪个目录,最终应有 code-trim/SKILL.md 这一层级。
使用克隆安装时,在安装目录运行:
git pull --ff-only手动复制安装时,更新对应的 SKILL.md,并同步需要保留的说明文件。
如果宿主没有发现 Skill,检查目录层级、文件名与技能列表,必要时重新开启会话。
安装使 Skill 可被发现;它没有注册“每次代码修改后必跑”的执行钩子。
自然语言请求:
功能已经实现,请快速检查本次新增代码里有没有重复校验、重叠兜底,
或者没有当前用途的包装层。保留必需的错误行为,不要扩展成全仓库审查。
显式调用:
使用 $code-trim 检查本次任务的代码改动。
复用现有上下文和测试结果,只做一轮快速精简。
没有明确候选就停止,把有意义的精简放进正常任务总结。
使用 $code-trim 检查本次新增的重试包装层。
先确定底层客户端是否已经覆盖相同的失败模式和错误契约。
如果阅读不能低成本得出结论,且该包装层确实增加明显复杂度,
在隔离的本地变体中对它做一次消融,运行覆盖重试行为的最小检查。
证据不充分就恢复,不要操作线上服务或真实业务数据。
修复当前解析错误,保留既有错误类型和对外接口。
完成后使用 $code-trim 做一轮精简,
将接受的调整纳入本次修复的正常验证,并说明未能执行的检查。
“本次任务”指当前需求涉及的改动,不自动等于分支全部历史、整个仓库或其他人的修改。 如果只提供 diff 而无法访问依赖,Agent 应根据已有证据工作并说明判断限制。
以下是可选的人工定位命令。Agent 已有相同信息时应直接复用。
git status --short
git diff --stat
git diff --cached --stat在输出中选择当前任务的文件,再查看其具体差异。
未跟踪的新文件不会出现在普通 git diff 中,需要结合任务上下文读取。
把实际执行过的检查及结果交给 Agent,例如“解析器相关测试已通过,尚未运行集成测试”。 不要把示例命令当成所有项目通用的测试入口;优先采用目标仓库已有约定。
使用 $code-trim。
范围是刚刚完成的解析器修改及回答具体问题所需的直接依赖。
复用本轮已有验证,只为未解决的回归风险增加检查。
| 示例情况 | 决策要点 |
|---|---|
| 私有辅助函数重复检查同一输入 | 确认所有受支持调用路径、可变状态及错误契约后再判断 |
| 公共函数可被其他调用者直接使用 | 不能仅凭一个已校验的调用路径删除边界校验 |
| 上下两层都重试同一请求 | 检查重试次数、可重试错误、幂等性与最终错误行为 |
finally 中只有一行清理 |
短小不等于多余,资源释放仍可能是必要保证 |
此表用于教学,不要求实际任务输出对应清单。默认结果仍是代码改动和简短说明。
本仓库没有需要安装或运行的应用程序,也没有 tests/verify-all.sh。
维护文档时,可从仓库根目录运行:
git diff --check它检查差异中的空白问题,不验证 Skill 的行为效果。
还应确认 README 链接、安装路径和 SKILL.md 的名称与描述对应。
当前 SKILL.md 已通过创建环境提供的结构校验;该校验器不随仓库分发。
- 将接受的精简纳入原任务的正常最终验证。
- 只有未解决的具体回归风险才需要补充针对性检查。
- 多项删除组合后,重新确认必要保证仍有有效实现。
- 保留仓库要求的必需检查;不能执行时如实说明限制。
必要行为已有足够验证,且没有新的明确风险时即可停止。 没有删除也可以是有效结果;无需为了证明 Skill 有用而寻找额外改动。 示例中的预期行为用于说明决策标准,不代表已完成跨项目基准测试或效果评测。
本项目的文档入口是 GitHub 仓库。 当前未配置 GitHub Pages 站点,也没有自动生成或发布审查报告的功能。
| 内容 | 当前位置 / 行为 |
|---|---|
| 中文使用说明 | main:README.md |
| 英文使用说明 | main:README.en.md |
| Agent 执行规则 | main:SKILL.md |
| 审查结果 | 目标项目中的代码改动与正常任务回复 |
| Pages 部署 | 未配置,无已发布的站点地址 |
若以后需要静态文档站,可以另行配置页面与部署流程。 文档网站属于仓库展示功能,不应改变 Skill 默认不生成额外报告的约定。
- 审查范围限定在当前任务及解决具体问题所需的直接依赖。
- 消融只在隔离的本地变体中进行,不对生产数据或不可逆副作用实验。
- 恢复实验改动时保留用户原有工作,不能覆盖无关修改。
- 默认保留认证、授权、数据完整性、并发、幂等及资源清理保护。
- 对外部输入和错误处理保留与实际风险相称的保障。
- 缺少测试、测试通过、类型标注和代码短小,都不能独立证明防御冗余。
A. README 面向安装和理解 Skill 的人;SKILL.md 面向执行任务的 Agent。 详细说明不意味着每轮都要读取整份 README、逐条打分或生成报告。
A. 不会。它要求识别具体需求和失败模式,只接受有依据的简化。 对于必要保障和证据不足的候选,默认保留。
A. 不会。消融有复杂度和证据门槛;补充测试应对应未解决的回归风险。 没有触发条件时,一轮快速检查加正常验证即可。
A. 规则不绑定编程语言,但实际分析能力依赖宿主 Agent、项目上下文和可用工具。 仓库没有发布语言覆盖矩阵,也没有量化的 token、耗时或代码行数收益承诺。
A. 通过 Issues 提供最小可分享的示例: 当前需求、改动范围、错误精简或过度保留的表现,以及能说明问题的验证结果。 改进应围绕真实失败案例,保持“快速精简 + 按需消融”的核心边界。