技术文章

Codex 工作流:从缺陷复现到验证交付

以本站任务检查工具的规则修复为例,说明怎样定义修改范围、检查差异、运行回归测试,并用仓库规范保留经验。

从一个会误导读者的结果开始

本站旧版 AI 工作流体检有 20 道题,每题 0–3 分。复现时,把“凭据与敏感信息边界”设为 0,其余 19 题设为 3,总分仍为 95,界面给出“可验证”。关键风险虽然另列,但总分会掩盖这个尚未解决的问题。

这次修改的目标是让每个未确认项都能被看见。工具改为围绕一次任务填写状态和依据,读者可以使用AI 编程任务说明与检查。这里的案例来自本站代码;它说明一次交互与规则修订的过程,不是对 Codex 编码能力的基准测评。

先把问题写成可观察的验收条件

目标:取消综合分数,导出逐项状态与待处理事项。
输入:任务类型、目标、修改范围、限制、检查状态和证据位置。
状态:已确认 / 待补充 / 不适用 / 待核实。
验收:即使其他项已确认,凭据边界待核实时仍在报告中出现。
补充:已确认但没有依据,需要补充;不适用需要写原因。
边界:不上传填写内容,不调用模型,不把填写记录当作自动审计。

这份说明足以定位需要变动的规则、页面和导出功能。一般的缺陷修复还应附最小复现输入、错误结果和预期结果;不必先建立一整套规则目录。

把规则与界面分开,检查差异是否符合目标

任务数据、可用状态、待处理项和 Markdown 导出放在 task-checklist.js。界面模块负责读写输入、会话保存和复制下载。这样的边界使规则能够在 Node 中直接验证,也让存储失效时的界面行为单独可查。

// 缩写示例:未写依据时,“已确认”也不能悄悄消失。
if (!entry.evidence.trim()) {
  return [{ ...check, reason: '补充依据或证据位置' }];
}
if (['待补充', '待核实'].includes(entry.status)) {
  return [{ ...check, reason: entry.status }];
}

检查 diff 时关注行为变化:是否仍在计算分数;导出是否包含待处理项;切换任务类型是否误删已填写内容;是否出现新的网络请求。仅把按钮文案换成“检查”并没有修复原来的规则问题。

用会失败的案例验证规则,再走一遍真实页面

本次新增测试覆盖五类行为:空任务导出缺口、单个凭据边界未解决、无依据的确认与不适用、任务切换后的记录保留,以及损坏或过长的会话数据。它们检查使用者会遇到的结果,不依赖界面文字逐字相同。

node --test tests/task-checklist.test.mjs
npm run check

规则测试通过后,还需要在浏览器完成填写、切换、刷新恢复、复制失败回退和下载。浏览器禁止保存、无法访问剪贴板、手机窄屏和键盘导航都是不同路径;Node 测试通过并不证明这些交互已经正常。

验证记录应包括实际命令、结果、检查环境和未覆盖项。如果模型只描述“应该通过”,仍需运行命令或把未运行原因写出来。提交前再次查看工作区差异,保留原先已有的改动。

哪些经验适合写入 AGENTS.md 或 Skill

本站把内容和发布规范链接放在 AGENTS.md,例如生成页面要修改数据源、发布前执行哪条检查命令。一次任务的详细计划放在任务记录中;只有反复适用的规则才进入仓库指导文件。

OpenAI 官方将 Skills 定义为可复用的工作流程,包含 SKILL.md 及可选脚本和参考资料。本站环境中的 playwright 等名称来自已安装的本地技能;不能据此断言每个 Codex 安装都自带相同能力。使用某项技能前应核对来源、触发条件、依赖及权限。参见OpenAI 自定义说明

有并行改动时可以使用独立分支或 worktree,但一次小修复不必增加额外编排。真正需要交接的是目标、变更、测试证据和剩余问题。

来源与复现入口

本站完整仓库目前未公开。本文涉及的规则模块和回归案例已单独提供下载:将下面两个文件放在同一目录,用 Node.js 22 运行 node --test task-checklist.test.mjs,即可复现规则测试。界面交互可直接在任务工具中验证。