学习 Cue · 基于任务的教程
使用 Cue 语音与 Codex 审查代码变更
向审查者说明该变更的预期目标以及必须保持不变的行为。然后索取证据,而不是一份令人安心的代码概述。
由 Cue 产品团队 (English) 编写 · 更新于 。基于产品源码审查撰写。练习和输出仅作说明之用,并非录制自 Cue 的实际运行。请遵循您安装版本中显示的控件。
快速解答
使用 Cue 记录审查目标,在 Codex 中确认仓库和 diff 范围,然后请求只读审查。对照修改行和预期行为逐项核对审查发现。批准修复是独立于请求审查的单独步骤。
前提条件:配置好用于 Dictation 的 Cue、Codex 访问权限、一个 Git 项目,以及已明确识别的变更及其预期行为。预期成果:一份按优先级排序、链接证据的审查报告以及关于下一步修复内容的决策,而非自动合并或安全认证。
第一次使用 Cue? 设置 Dictation 语音输入 用于输入您说的话;若要提出任务请求,请 设置 Agent 模式。开始前,请核对安装版本的权限提示与快捷键。
选择输入方式
当审查问题来自其他应用时,可以用 Cue 收集。你可能在阅读规格说明、查看 Issue 或试用修改后的界面时发现风险。把预期行为与必须保持不变的条件口述到临时笔记中,核对文字后再交给 Codex。Cue 在这里适合跨应用整理审查简报;具体的 diff 仍需在审查环境中选定。
如果相关项目、diff 和审查问题都已在 Codex 中准备好,直接继续即可。键入或粘贴简短请求,并使用下文介绍的审查控件。不使用 Cue 也能完成这项练习。当口述或从任务外收集上下文有助于把审查问题说清楚时,加入 Cue 才有意义。审查质量仍取决于提供的证据与审查者的核对。
用 Cue Dictation 向外部应用输入
下文练习采用这种方式。Cue 将你说的话输入已聚焦的临时笔记或受支持的文本输入框。核对措辞后,再明确把简报发送给 Codex,要求只读审查。无需配置 Cue 连接器。交接只包含你提供的材料,其他会话、文件和权限不会自动随之转移。
使用 Cue 内的 Codex 连接器
这是从 Cue 使用外部 Agent 的另一种方式。先核对这条路径的连接、登录状态、项目与权限,并确认账户和计费方式。看到 Codex 选项不代表它已经就绪。下文介绍的 Codex 应用审查面板和菜单,不是 Cue 内连接器的操作说明。
为 Cue Agent 选择托管模型
请 Cue Agent 把你提供的来源材料整理成审查简报草稿,再根据这些材料核对简报。为 Cue Agent 选择 OpenAI 模型不会启动 Codex,也不会让另一个 Codex 任务获得代码仓库访问权限。托管模型的使用资格与计费取决于你的 Cue 账户;外部 Agent 的访问权限需要单独确认。
试做小补丁审查练习:先用 Dictation 输入,再明确交接文字。口述审查目标,然后原样附上 R-01 至 R-03 的材料。要求提出审查发现,不要编辑。当你能把每条发现追溯到确切的表达式与触发输入,并分清示例发现和实际运行过的检查时,练习才算完成。
在发现风险之处记录审查问题
当审查聚焦于单个问题时,往往更容易付诸行动。“审查所有内容”可能会产生代码风格建议,却遗漏了您关心的行为逻辑。更有用的口述请求是:“此补丁使计数为 0 时可见。检查缺失的计数是否仍使用旧的空状态标签。先不要编辑任何内容。”
- 保持规范或受影响的屏幕处于可见状态,然后将焦点置于草稿备忘录或预期的任务输入框中。调用 Cue Settings 中显示的 Dictation 快捷键,确认开始录音,说出审查目标,停止录音,并在处理完成后检查插入的文本。
- 通过从源文件复制来保留确切的标识符。在发送前审查数字、否定词和分支名称的转录内容。如果您希望 Cue Agent 整理备忘录,可以请求一份简报草稿并显式提供所需的摘录。
- 在 Codex 中打开正确的 Git 项目。其审查窗格会显示仓库的各项变更,其中可能包含您的编辑以及其他工具所作的修改,而不仅仅是 Codex 的上一轮回复。在请求审查前,请确认哪些内容归属于该任务。
- 显式传递检查过的简报。这可以是一份粘贴的备忘录,也可以是向已聚焦的文本编写器口述的后续内容。Cue 的模型选择器不会为独立的 Codex 任务选择运行时或授予访问权限。
采用这种手动流转方式时,您无需 Cue 到 Codex 的连接器。如果您改在 Cue 内部选择外部 Agent,请先核验该流程的连接状态、登录情况、项目归属以及权限设置。不要假定它具备 Codex 桌面应用的菜单或能自动接收早先的聊天记录。相关区别请参阅 结合使用 Cue 与编程 Agent。
在索取审查发现前选定确切的 diff
对于 Codex 应用,OpenAI 的代码审查文档介绍了编辑器中的 /review,并提供了针对未提交变更或针对基准分支审查的选项。审查窗格还区分了暂存、未暂存、提交、分支和上一轮视图。这些是 Codex 应用的控件,而非 Cue 命令,其可用性取决于所安装的版本。
- 未提交的工作:检查已暂存和未暂存的文件。告知审查者哪些文件属于本次范围,哪些现有变更是其他人所做的。不要假定“上一轮”涵盖了您计划交付的所有内容。
- 分支变更:选择实际预期的基准分支,而不是仅仅看着眼熟的名称。如果您后续需要该审查具备可复现性,请记录基准和 head 提交 ID。
- 单个提交或提供的补丁:指明提交名称或附上补丁,并提供足够的上下文实现以便对其进行解读。如果您只粘贴了代码片段,请将该审查标注为仅限片段。
对于定制任务,请粘贴下方的简报并请求针对该确切范围进行只读审查。内置审查与自由形式提示词是不同的入口;不要假定在其他地方输入的约束条件会自动附加到审查中。请检查审查任务的上下文。切勿仅仅为了让审查运行而关闭权限。
实操:在看似合理的微小补丁中查找回归问题
这个虚构的练习提供了一段极小的 diff 和一份行为契约。它可以作为纯文本练习进行审查;它不是录制自 Codex 的实际运行,也不需要访问生产仓库。
源 R-01 — 契约:计数为 0 时必须显示 0 results。null 和 undefined 表示缺失,必须显示 No count。正数计数必须保持可见。其他输入验证和单数语法不在本任务范围内。
源 R-02 — 提议在 result-label.mjs 中的 diff:
export function resultLabel(count) {
- return count ? `${count} results` : 'No count';
+ return count !== null ? `${count} results` : 'No count';
}
源 R-03 — 补丁作者的主张:“这修复了计数为 0 的情况,并保持缺失值不变。”应将该陈述视为待核查的主张,而非测试已运行的证据。
提问方式:“对照 R-01 审查 R-02。针对每个具体的回归问题,给出触发条件、变更后的表达式、实际行为与预期行为对比,以及能够证实该问题的最小检查方案。将未解答的问题分开列出。不要实现修复方案。”
一份说明性审查发现如下:“新增的条件排除了 null,但接受了 undefined。使用 undefined 调用修改后的函数会产生 undefined results,而 R-01 要求为 No count。表达式 count !== null 是相关的变更代码。在检查 0、null 和正数计数的同时,增加针对 undefined 的检查。”该结论推导自所提供的 JavaScript;它并不是断言 Codex 已经发现或测试了它。
注意该审查发现并未捏造任何内容:没有客户受影响人数、没有生产故障、没有来自未见仓库的行号,也没有不相关的安全风险。在真实的 diff 上,应包含核验过的文件和行号范围。而在这一片段中,指出确切的表达式比凭空编造源码位置更为诚实。
复制一份聚焦的审查简报
在发送给 Codex 之前,请替换括号中的字段,包括确切的范围。
任务:审查此变更。不要修改文件,也不要发布审查结果。
项目:[已确认的仓库]
Diff 范围:[未提交的文件,或 base/head 提交 ID]
预期行为:[变更必须实现的目标]
不变性条件:[必须保持不变的行为]
来源:[规范 ID、复现步骤、相关文件或补丁]
优先级:此范围内的正确性与回归问题,而非风格清理。
针对每个发现返回:
- 核验过的文件/行号或提供的确切表达式
- 触发输入或用户操作
- 实际结果与预期结果对比
- 来自变更及其调用路径的证据
- 最小复现或回归检查方案
- 影响与不确定性,不要捏造发生频率或严重程度
将存疑问题和未核验的假设放在单独的小节中。
如果有检查未运行,请直接说明。提议的测试不是测试证据。
如果没有剩余的已确认问题,请陈述审查范围和残留风险。
请勿修复、提交、推送、合并或部署。等待我的下一步指令。
将审查发现转化为明确决策,而非全盘批准
结合来源仔细阅读每一项审查发现。针对 R-02,核对修改后的函数是否仍能处理 0 和 null,然后测试 undefined。关于未改动辅助函数的审查发现应当解释补丁是如何调用到它的;否则它可能只是不相关的积压待办事项。冗长的报告并不一定是一份有用的审查。
用通俗易懂的语言对结果进行归类:
- 已确认的回归:由契约和可复现的用例提供支持。决定是否授权在限定范围内进行修复,然后重新运行相关检查。
- 存疑问题:某个假设需要依据,例如在实际应用中 undefined 是否可能传递给该函数。通过调用路径或规范来解决它,而不是凭审查者的自信程度。
- 超出范围:有益的清理工作可以单独记录。它不应当在未告知的情况下扩大当前补丁的范围。
- 无已确认发现:被审查的范围没有经证实的问题。但这并不等同于正确性证明、测试套件已完全通过或安全保证。
如果您批准了某项修复,请重申被接纳的审查发现和不变性条件。检查新的 diff 和实际的测试输出,然后审查发生变化的任何行为。不要将最初的审查视为已涵盖其后所做的修改。本地测试通过并不证明生产构建产物已包含该变更。
若要进行独立审查,请在提供补丁作者的解释之前,先提供预期行为和确切代码。这为审查者提供了一份可供测试的具体契约,而不是一个供其盲从附和的答案。如果您需要完整的回归测试练习,请参阅 Claude Code 微小修复教程。
在审查模棱两可时进行补救
Codex 审查了错误的文件或基准分支
停止操作,记录实际审查的内容,并选择正确的项目和范围。在预期的 diff 上重新运行审查。在未重新核验之前,不要将审查发现直接套用到不同的修订版本上。
审查者声称运行了测试但未给出输出
索取实际命令、结果和相关输出。如果它无法提供,请将该检查标记为未核验。通过您正常的授权环境运行限定范围的测试;不要将建议的命令当做执行证据。
我的审查请求导致了代码编辑
暂停并检查工作区,然后再采取进一步行动。保留无关的工作并审查更改的内容。取消并不是撤销。在恢复操作之前,先澄清只读范围和权限。
对于由讨论驱动的审查,请使用链接到源的记录上下文以保留决策及其注意事项。仅传递已获授权的摘录,不要传递整个私密会议内容或仓库凭证文件。
在 Cue 中试用
使用您配置好的快捷键,并在 Cue Settings 中核实当前活动模式。可用的应用上下文和操作取决于权限、版本和账户。在提供机密材料之前,请阅读隐私政策 (English);本指南并未承诺所有处理均保留在您的设备本地。
获取适用于您电脑的 Cue · 当前方案 (English)
需要帮助或发现错误?联系 Cue 支持团队 (English)或发送邮件至 eli@sophoninc.com。请附上您的 Cue 版本、平台、模式以及去除了敏感信息的示例。请勿发送密码、令牌或私密会议资料。