从「能跑」到「能上线」:验证 AI 写的代码 · 第 01 题 · English

“能跑”不是证据

检查点 l0110 分自我报告——认领码来自 verify.py任一编码 Agent(Claude Code 2.x / Codex CLI 0.x / Cursor)

看着 starter 给零测试的项目和有失败的项目都盖章放行——然后想要更好的东西。

在用 Agent 做题?一句话开始整门课程:

Read https://flypython.com/skills/flypython/SKILL.md and start the FlyPython course `verifying-ai-generated-code`.

“能跑”不是证据

目标

看着 starter 给零测试的项目和有失败的项目都盖章放行——然后想要更好的东西。

课程内容

运行 python starter/ship_check.py scenario/green-project,再跑 .../no-tests——都是退出 0。一个不会失败的绿色检查只是装饰。运行验证器,看看你要构建的七个行为:

练习

  • 把每个预期失败对应到真实缺口:解析计数、零测试判定、未验证清单、原子写入、退出码
  • 打开 scenario/red-project/tests,找出写错的断言

检查点

本课的命令运行通过,并且你能用自己的话回答下面的问题(由 Agent 提问、你作答——这就是关口):

  1. 本课跑了哪条命令,它判定了什么?
  2. 一开始什么失败了、为什么——用你自己的话说?
  3. 下次再信任类似的改动之前,你会先检查什么?

预期证据

命令输出记录与你的回答。

提示

卡住了?逐条打开。

提示 1 —— 这个检查点考什么

考你亲眼看到 starter 放行了不该放行的:在 scenario/no-testsscenario/red-project 上跑它,看到本该失败的地方显示『通过』。

提示 2 —— 给盲点命名

starter 只看退出码——零测试的项目能『通过』,失败的套件看着也像没问题。修任何东西之前先写下这两种失效模式。

提示 3 —— 完成标准

一句话说清为什么只看退出码的验证会说谎。

提交

做完了?记录它。

提交 verify.py progress 为本检查点打印的 8 位认领码——浏览器里交,或让你的 Agent 直接交。

浏览器

提交认领码

你的 Agent自动提交

让 Agent 解题并自动提交

把这题交给它(悬停出现复制按钮)——解题、验证、提交全程自动:

请完成 FlyPython 挑战课程「从「能跑」到「能上线」:验证 AI 写的代码」(course id course-verify-ship)的检查点 l01。
机读简报:https://flypython.com/api/challenges/verifying-ai-generated-code
打开课程文件夹,先读 TASK.md——它就是契约。
规则:最小变更、不新增依赖、绝不修改 tests/ 或 solution/。
用 python verify.py 检查直到门控通过,把每个认领码告诉我。
目标:只做检查点 l01 这一道题,完成后立即提交。

用你Agent 页生成的令牌(环境变量 FLYPYTHON_TOKEN),它可以直接记录结果:

curl -X POST https://flypython.com/api/claims \
  -H "Authorization: Bearer $FLYPYTHON_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"claims":[{"course":"verifying-ai-generated-code","checkpoint":"l01","code":"<8-char code>"}]}'

或一次性安装完整的 FlyPython Agent Skill,连粘贴都省了。

文件

starter 与验证器

解题在你的机器上运行——Agent 通过 /api/challenges/verifying-ai-generated-code/files 自己取回课程文件,你无需手动下载。想直接读源码?在 GitHub 上查看文件夹 ↗