mcpField
I
improve

improve

github.com/alleneubankAgent 工作流5090 次安装18 周前更新
代码仓库

关于 improve

一种代码审查技能,根据当前会话中的具体观察提出改进建议。它帮助 Agent 按用户影响排序可执行建议,并区分有依据的发现与推测。

主要功能

  1. 01建议须基于会话证据
  2. 02区分有依据的发现与推测
  3. 03按用户影响确定优先级
  4. 04检查正确性、安全性和性能
  5. 05集成 Ralph 循环与交接

适用场景

  1. 01完成工作前审查近期修改的代码
  2. 02在工作阶段结束后找出可执行问题
  3. 03为 Agent 交接准备改进记录

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/alleneubank/claude-code --skill improve

安装后在 Claude Code 中输入/improve确认已加载。

详细介绍

改进

基于本次会话中的观察,进行结构化改进检查。

原则(始终适用)

  • 每条建议都必须引用具体观察——文件路径、看到的错误、发现的模式或已验证的行为。“我看到了 X”胜过“常见做法建议 Y”。
  • 区分有依据的建议和推测性建议。明确标记推测性建议。
  • 按对用户的影响排序,而非按描述难易程度排序。
  • 未标明高风险时,不要建议更改公共 API 契约、认证边界或数据架构。
  • 简单本身就是一种优势。除非增加复杂度能避免本次会话中观察到的具体问题,否则不要建议增加复杂度。

适用时机

  • 用户询问“现在了解了这些之后,你觉得有哪些可以改进的地方?”或类似问题
  • 在 ralph 循环中宣称完成之前(自检)
  • 生成交接之前
  • 完成一大块工作之后
  • 审查刚编写或修改的代码时

不适用时机

  • 在会话开始、尚未完成有意义的工作时
  • 用户明确要求跳过审查并直接交付时
  • 进行架构重新设计时(改用规范/计划流程)

维度

从以下维度进行分析。没有有依据的内容时,跳过该维度。

正确性

错误处理缺口、未处理的边缘情况、类型安全问题、竞态条件、系统边界缺少验证。

简洁性

不必要的间接层、死代码、模糊意图的命名、过度设计的抽象、不值得其复杂度的实现。实现时参考 simplify 技能。

安全性

在已修改代码中观察到的认证边界缺口、输入验证漏洞、密钥处理问题、OWASP 风险。

测试覆盖率

本次会话中观察到的未测试代码路径、缺少的测试层(单元/集成/E2E)、测试夹具不够真实、断言无法验证有意义的行为。

性能

本次会话中观察到的瓶颈(慢查询、N+1 模式、不必要的重复计算)。只指出实际观察到的问题,不要提出假设性问题。

开发者体验

API 易用性问题、非显而易见行为缺少文档、CLI 使用不便、应当提取的配置。

工作流程

  1. 收集上下文:回顾本次会话中发生的事情——修改的文件、运行的命令、遇到的错误、编写的测试、确立的模式。

  2. 分析各个维度:逐一检查会话观察中是否有具体问题。没有内容可写的维度可跳过。

  3. 按以下结构组织每条建议:

[IMP-N] effort/gate: summary
  Observation: what was seen (file:line, error message, test gap, etc.)
  Suggestion: concrete change
  Grounded: yes/no

其中:

  • effort:trivial(< 5 分钟)| small(< 30 分钟)| medium(数小时)
  • gate:该建议强化的交付关卡:TDD | DEV | E2E | REVIEW | CI
  1. 按影响排序(从高到低),而非按维度排序。

  2. 以可执行清单的形式呈现。如果处于 ralph 循环中,在宣称完成前,直接处理微小/小型改进。将中型改进记录为供用户确定优先级的决策。

与 Ralph 循环的集成

在 ralph 循环中运行时(存在 .rl/state.json):

  • 在执行 .rl/rl done 之前进行改进检查
  • 直接处理 trivial 改进——立即修复
  • 如果 small 改进属于当前里程碑的范围,则予以处理
  • 记录 medium 改进:.rl/rl log decision "IMP-N deferred: [reason]"
  • 对于中型改进,不要将范围扩展到任务里程碑之外

与交接的集成

生成交接时,将尚未处理的改进写入 <next_steps> 部分。使用相同的 [IMP-N] 格式,以便接手的 Agent 引用。

输出格式

## Improvements

N suggestions (X grounded, Y speculative)

[IMP-1] trivial/DEV: Extract magic number to config constant
  Observation: `src/server.ts:42` uses hardcoded port 3000, but other services read from env
  Suggestion: Read from `PORT` env var with 3000 as default
  Grounded: yes

[IMP-2] small/TDD: Add boundary test for empty input
  Observation: `processItems([])` path untested — saw it handle non-empty arrays only in test suite
  Suggestion: Add test case for empty array input in `process-items.test.ts`
  Grounded: yes

[IMP-3] medium/E2E: Add timeout handling for external API calls
  Observation: Catalog search took 1.2s avg in profiling — no timeout configured
  Suggestion: Add configurable timeout with bounded retry
  Grounded: yes

危险信号

  • 提出建议却没有观察依据——如果无法指出具体问题,就不要提出建议
  • 建议超过 10 条——优先关注影响最大的 5–7 条
  • 提出的建议超出改动范围——仅关注当前工作的影响范围
  • 泛泛地说“增加更多测试”,却没有说明哪些路径尚未测试

评论

支持 Markdown