Skip to content

RLCR 方法论改进:7 条基于实际开发会话的建议 #207

Open

Description

@WosunOO

RLCR 方法论改进建议

基于一次 6 轮 RLCR 会话的方法论分析。会话最终产出质量高(所有 AC 满足,审查者零误报),但轮次消耗比最优多 2-3 轮。

会话概要

指标 数值
总轮次 6
实现轮 4
纯审查轮 2
AC 完成率轨迹 4/7 → 4/7 → 5/7 → 7/7
审查误报率 0%
实现者过声明率 75%(4 轮中 3 轮过度声称完成)
有效轮占比 57%(理想 70-80%)

建议 1:提交前自检协议

模式:实现者在每轮结束时声称所有 AC 完成,但审查者总能发现未完成的合约。过声明率 75%。

建议:在标记轮次完成前,要求实现者执行结构化自检:

  1. 对每个 AC,运行审查者会运行的精确命令/测试,而非仅跑 build/lint
  2. 涉及行为合约的 AC,必须包含具体输入/输出示例证明合约满足
  3. 记录验证环境与生产环境的差异(如模拟环境与真实行为的差异)

预期影响:实现轮次减少约 50%(4 轮 → 2 轮)。


建议 2:审查轮范围预过滤

模式:纯审查轮(无代码改动)处理了重复或超出分支范围的发现项,消耗 2 轮无实质进展。

建议:进入完整审查轮前执行快速范围预过滤:

  1. 检查每个发现项引用的文件是否在当前分支 diff 中
  2. 检查是否重复已知 queued 项
  3. 过滤后若无新可操作发现项,跳过审查轮直接进入 finalize

预期影响:每次会话消除 1-2 个冗余审查轮。


建议 3:负面测试充分性门禁

模式:实现者编写的测试通过但未验证所需行为(静默跳过、过于宽松的断言、错误期望值)。审查者每轮都能捕获此类问题。

建议:在标记任务完成前增加测试质量门禁:

  1. 每个测试断言必须引用具体可验证的合约要求
  2. 错误/失败路径的测试必须断言精确错误条件
  3. 测试不得在环境不支持完整验证时静默跳过
  4. 对超时期望 exitCode=0 的测试是反模式,应被识别

预期影响:更早捕获问题,减少重做轮次。


建议 4:合约优先实现顺序

模式:实现者将所有子任务视为同等粒度完成,即使部分子任务有更严格的验收标准。脚手架被当作合约完成。

建议:当任务涉及行为合约(特定输入→特定输出)时:

  1. 先识别任务服务的 AC 和精确行为合约
  2. 隔离实现并验证合约(如手动测试精确预期输出)
  3. 然后才接入更广泛的系统(构建配置、测试框架等)
  4. 区分"脚手架完成"和"合约验证完成"两种状态

预期影响:提高首轮实现质量。


建议 5:轮次预算感知

模式:无机制标识轮次消耗在重做 vs 新进展上。

建议:跟踪简单指标:"每轮实际验证(非声称)的 AC 数"。若连续 2 个实现轮此指标不增长,触发暂停-重新规划而非继续迭代。

预期影响:更早检测系统性问题。


建议 6:模拟环境行为前置文档化

模式:实现者对模拟环境行为做出错误假设(如"sleep 是模拟的/即时的"),导致基于错误假设编写测试和声明完成。

建议:在涉及模拟环境的会话开始时,明确文档化什么是模拟的 vs 真实的。遇到"看似错误但无法在模拟环境中验证"的行为时,先验证模拟环境的实际行为再做判断。

预期影响:避免假设驱动的重做。


建议 7:扩展 BitLesson 触发条件

模式:BitLesson 仅捕获实现者主动发现的学习。审查者发现的、实现者本应捕获的缺陷未被记录为 BitLesson,但这些往往是最高价值的学习机会。

建议:BitLesson 触发条件扩展至审查者识别的缺陷。当审查者发现实现者遗漏的问题时,记录为"审查者发现的学习"。

预期影响:更好的知识保留和跨会话学习。


总体评估

RLCR 核心反馈循环(实现→审查→修复→验证)健全且收敛。审查者质量是方法论的强项。主要改进方向:

  1. 实现者侧:自检准确度(建议 1, 3, 4, 6)
  2. 流程侧:冗余轮次消除(建议 2, 5)
  3. 知识侧:学习捕获扩展(建议 7)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions