第 3 课:有界改动,逐任务盯守
目标
starter 通过一串有界改动让九个测试全绿,工作区 Git 状态证明没有 动过别的东西,并且不看 solution,你也讲得清每一处编辑。
为什么有这节课
这节课最容易被跳过——也恰恰是长本事的那节。放任 Agent 一次重写 整个文件,什么也学不到,只留下一份你没底气审查的改动。监督一连串 小改动、各自钉在一条契约行上,才能让 AI 写的代码仍然是你的。 ZCode 把 Git 状态放在执行旁边——每个任务之后你都能直接看到动了 什么,「有没有越界」变成看一眼,而不是猜。
本课内容
第 2 课的目标与任务列表批准后,开始执行——一次一个任务,任务
之间按计划跑 python verify.py starter。
守住契约边界:
- 只动
starter/report_tool.py。每个任务后看 Git 状态:tests/、solution/、scenario/动过就停掉目标,用它的恢复倒回去, 而不是往上叠修正。 - 标准库之外不加 import。
- 每个任务朝一条契约行推进。顺手重构(「我顺便重命名了……」) 一律拒绝。
- Agent 想改测试,答案是不行。测试是契约;动的是代码。
任务之间认真审。Git 状态给出 diff;读 hunk,不只读任务的自我 汇报。讲不清的改动就用恢复倒回去——Goal 模式管的正是这件事: 用更紧的指令重启这一步,而不是在坏状态上叠修复。
预期失败数逐任务下降:7 → 5 → 4 → 3 → 2 → 0。
练习
挑 Agent 的一处改动——最好是「无效行隔离」那步——在 Git diff 里找到它,讲回来:「这个 hunk 做了 X,满足契约行 Y」。讲不清就 让它走读那个 hunk,再跑下一个任务。
检查点
运行 python verify.py。本检查点的码只在 starter 套件
全绿时出现。不看材料能回答即算通过:
- 这次有界改动走了几个任务,是什么让每个任务保持有界?
- 你拒绝或恢复掉过哪处改动,为什么?
- 指出实现「无效行带原因隔离」的那个 hunk——它在 diff 的哪里?
预期证据
一次全绿的 python verify.py starter 运行、一份只含
starter/report_tool.py 的 Git diff,和你的逐块讲解。
提示
卡住了?逐条打开。
提示 1 —— 本检查点考察什么
starter 通过你监督的改动让九个测试全绿——python verify.py 只在 starter 套件变绿后显示本检查点的码。
提示 2 —— Git 状态就是边界
工作区把 Git 状态放在执行旁边——每个任务完成后,工作区立刻显示改了什么。动错文件的任务一眼可见;用目标恢复倒回去,而不是叠补丁。
提示 3 —— 完成的标志
每处改动都能对上一条契约行,Git 状态显示 starter/report_tool.py 之外没动过任何东西,而且不看 solution/ 你也讲得清每处编辑。
提交
做完了?记录它。
提交 verify.py progress 为本检查点打印的 8 位认领码——浏览器里交,或让你的 Agent 直接交。
提交认领码
只有记录积分和徽章才需要账号——读题和解题永远免费。
让 Agent 解题并自动提交
把这题交给它(悬停出现复制按钮)——解题、验证、提交全程自动:
请完成 FlyPython 挑战课程「上手 ZCode」(course id course-zcode)的检查点 l03。
机读简报:https://flypython.com/api/challenges/hands-on-with-zcode
打开课程文件夹,先读 TASK.md——它就是契约。
规则:最小变更、不新增依赖、绝不修改 tests/ 或 solution/。
用 python verify.py 检查直到门控通过,把每个认领码告诉我。
目标:只做检查点 l03 这一道题,完成后立即提交。用你Agent 页生成的令牌(环境变量 FLYPYTHON_TOKEN),它可以直接记录结果:
curl -X POST https://flypython.com/api/claims \
-H "Authorization: Bearer $FLYPYTHON_TOKEN" \
-H "Content-Type: application/json" \
-d '{"claims":[{"course":"hands-on-with-zcode","checkpoint":"l03","code":"<8-char code>"}]}'或一次性安装完整的 FlyPython Agent Skill,连粘贴都省了。
starter 与验证器
解题在你的机器上运行——Agent 通过 /api/challenges/hands-on-with-zcode/files 自己取回课程文件,你无需手动下载。想直接读源码?在 GitHub 上查看文件夹 ↗