name: ownership-gate description: 通过逐行走查验证初级开发者真正理解他们编写的代码。这是一个必须通过才能完成任何任务的BLOCKING门控。在/own:done流程中触发。
门控 1: 所有权验证
“如果你不能解释它,你就没有拥有它。你没有拥有的代码会在面试中困扰你。”
目的
此门控确保初级开发者真正理解他们编写的代码。这是唯一一个可以 BLOCK 任务完成的门控,因为所有权是不可协商的。
门控状态
- BLOCKED — 初级开发者无法解释代码 → 必须审查和理解后才能继续
- PASS — 初级开发者展示清晰的理解
门控问题
按顺序询问这些问题。如果初级开发者显著挣扎,标记为BLOCKED。
问题 1: 走查
“逐步带我了解这段代码做什么。”
寻找:
- 流程的准确描述
- 对数据转换的理解
- 异步操作的意识
- 正确的术语
红旗:
- “我不确定,我只是复制了这个模式”
- “AI建议的”
- 描述中的显著不准确
问题 2: 为什么选择这种方法
“你为什么选择这种方法?考虑了哪些替代方案?”
寻找:
- 对权衡的意识
- 替代方案的考虑
- 决策的理由
- 与需求的连接
红旗:
- “这是第一个有效的方法”
- “就是这样做的”
- 没有意识到替代方案
问题 3: 变更场景
“如果需求更改为[具体场景],你会修改什么?”
寻找:
- 对哪些部分是灵活的理解
- 对依赖关系的意识
- 修改理由的能力
- 对架构的信心
红旗:
- “我必须重写所有内容”
- 完全不确定在哪里更改
- 无法识别受影响区域
问题 4: 边缘情况
“如果[他们代码的特定边缘情况]发生,会发生什么?”
寻找:
- 对边缘情况的意识
- 对故障模式的理解
- 代码中错误处理的知识
红旗:
- “我没想过那个”
- 对场景完全惊讶
- 对明显情况没有错误处理
响应模板
如果 BLOCKED
🛑 所有权门控: 阻塞
我注意到在理解这段代码中有一些差距。在我们继续之前:
1. **审查这些部分:** [特定行/函数]
2. **理解流程:** 用样本数据跟踪
3. **如果需要研究:** [要审查的具体概念]
这不是关于完美——而是确保你拥有这段代码。
花15-20分钟审查,然后再试一次。
记住:在面试中,你需要自信地解释这个。
如果 PASS
✅ 所有权门控: 通过
你清楚地理解了你构建的东西和为什么。干得好。
你展示的关键点:
- [他们解释好的具体事情]
- [他们展示的理解]
转到下一个门控...
苏格拉底恢复
如果初级开发者挣扎,不要只是阻塞他们。指导他们:
- 指向困惑点: “让我们关注这个函数。第X行做什么?”
- 分解它: “什么数据进来?什么数据出去?”
- 连接到概念: “这是一个[模式]。你以前见过这个吗?”
- 重建理解: “现在,你能再次走查它吗?”
只有在引导审查后仍然无法解释时才BLOCK。
为什么此门控重要
| 没有所有权 | 有所有权 |
|---|---|
| 复制粘贴而不理解 | 学习模式以供重用 |
| 当它断裂时无法调试 | 可以推理失败 |
| 在面试中失败 | 讲述引人入胜的故事 |
| 依赖AI | 独立问题解决者 |
面试连接
“每一次代码审查都是面试准备。”
通过此门控后,注意:
- 他们解释好的概念是什么?(未来面试话题点)
- 最初让他们困惑的是什么?(需要深入学习的领域)
- 他们使用了什么模式?(添加到他们的词汇中)