mcpField
R
reflect

reflect

github.com/anorth开发112 次安装今天更新
代码仓库

关于 reflect

用于在首轮实现后重新审视代码,在用户细看前提升质量。它会直接处理不依赖产品决策的改进,并汇报仍需决定的问题。

主要功能

  1. 01结合上下文重读变更
  2. 02直接落实非产品决策改进
  3. 03检查架构与一致性
  4. 04汇报尚未解决的决策

适用场景

  1. 01复查已完成的首轮实现
  2. 02调整进行中的工作
  3. 03在正式审查前发现改进点

安装

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

$npx skills add https://github.com/anorth/agent-skills --skill reflect

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

详细介绍

反思

初次实现只是一个草稿。现在代码已经写好,请重新审视并思考是否有更好的实现方式。对代码和上下文提出疑问。对于不依赖产品决策的改进,直接落实。其余问题留待反馈。

目标:在用户仔细查看之前,先交付质量更高的初稿。这不是代码审查,正式审查稍后进行。

“最好”意味着:

  • 用最简单的方案解决问题
  • 清晰表达领域模型
  • 与现有代码库协调一致
  • 适时复用现有对象、辅助函数和惯例
  • 不为了适配那些未针对新需求构建的现有代码而扭曲实现
  • 注释解释代码的意图和依据
  • 提升代码库的整体质量,为他人树立可借鉴的示例
  • 采用正确的长期架构,而非只做最小改动

何时使用

  • 用户说“反思”“再看看”“再过一遍”或“调整一下”
  • 隐含地,在完成初次实现后使用,包括对进行中的工作进行增量修改后
  • 不要在规划期间、等待设计问题答复时,或将其用作正式审查的替代

工作流程

1. 查看代码

重新阅读改动,就像第一次看到它们一样。阅读新增或修改的文件,以及它们所接入的周边模块。目标是形成高质量的最终方案,而不是最小化差异。

2. 排查并落实

逐一考虑下方的问题。对于每个不依赖产品决策的改进,直接落实。不要请求许可来改进刚写好的代码。

以下情况留待报告:

  • 需要放宽、修改或移除某项需求
  • 存在两种符合产品需求的路径,且无法明确判断哪种更好
  • 实现过程中悄然作出了产品决策
  • 需要对现有代码进行重大重构
3. 重复

每次迭代都会出现新的问题和改进机会。 重复反思和改进流程,直到问题稳定下来,或只剩下需要用户输入的产品或设计决策。

4. 报告

简要说明改了什么,然后按编号列出剩余的观察事项和决策。

等待用户回复。

问题

主要依靠自己的判断。

现在看到了代码:这是解决需求最简单、最好的方式吗?能否更简单、更直观?

针对刚写的代码,思考以下问题:

  • 哪些需求导致了复杂性?是否对某些需求作了过于严格的解释?哪些需求是隐含的?对这些需求向用户提出质疑。
  • 现在看到了代码,能否重新组织,让它更连贯?
  • 出现了哪些简化或改进的机会?
  • 核心概念是否只表达了一次,并且能够复用?
  • 有没有笨拙或令人意外之处?原因是什么?
  • 新代码是否在绕过代码库的缺陷?是否有直接的修复方式?
  • 出现了哪些耦合?是否合理?
  • 这部分内容应该放在这里,还是应该经过此处,放到更接近使用位置的地方?
  • 我是否在回退或内省原本应该构建并传入的内容?
  • 类似的路径或结构是否适合统一?
  • 是否有两种不同方式在做同一件事?直接选一种。
  • 每段代码都放在了正确的位置吗?
  • 这部分内容有必要吗?它有实际作用吗?
  • 可选项真的可选吗?
  • 存在哪些代码异味?
  • 名称是否仍然恰当,能否准确描述当前概念?
  • 对整个问题而言,正确的架构是什么?
  • 如果从头开始,我会采用这种方式来构建吗?
  • 这是不是一种权宜之计?

未明确确认的产品决策

即使代码本身没有问题,也要报告这些决策。用户尚未确认。

  • 在两种面向用户的行为中选择了一种
  • 编码了某项应用规则
  • 自行设定了门槛、上限、空状态或文案路径
  • 选择了用户可能希望调整的默认值

不要

  • 悄悄删除或放宽要求
  • 臆造基类或潜在的第二个调用方
  • 重命名已落地的 API 字段
  • 保留变通方案
  • 将其视为评审差异或提交门槛

评论

支持 Markdown