第 5 课:把工作流带回自己的项目
目标
你把整套闭环——契约、目标、任务列表、有界执行、Git 状态审查、 书面验证——用到自己真正拥有的脚本或项目上,并记录发生了什么。
为什么有这节课
课程文件夹是安全沙箱;你自己的代码库不是。前四课的意义从来不是 那个报表工具——而是一种可复用的、让你始终掌控产出的 Agent 驱动 方式。本检查点要证明迁移真的发生了。它是自我报告的:闭环跑没跑 过只有你知道。
本课内容
挑一个你真正拥有的脚本——一个你拖了很久的 bug,或一个想要但 还没写的行为。然后走同样的五步:
- 契约。 先写任务契约:输入、输出、错误情况、以及「完成 =
<命令>退出码为 0」。一小段,每句都可测试。 - 目标。 把项目作为 ZCode 工作区打开,给 Agent 一个由这份 契约搭出的目标——包括边界:哪些文件可改、哪些只读、依赖 政策。
- 有界执行。 任务列表跑之前先读;每个任务后看 Git 状态; 用恢复代替叠修复。
- 验证。 跑验证命令,然后做套件做不了的评审——拿一个真实 输入端到端走一遍,手工核对输出。
- 记录。 写三行:已验证 / 未验证 / 已知局限。
长任务上,远程控制能让你在手机上读状态、发指令,桌面端仍是运行 时——适合查岗,不能替代 diff 落地时的审查。
如果闭环跟你打架——任务小到不需要契约,或模糊到不可测——那也 是发现。写下形状不合身的地方;这个判断本身就是真本事。
练习
如果你的项目还有不止一处值得钉住的边界,现在就起草下一条契约行 ——定下一个目标时你会用得上。
检查点
本检查点自我报告:能回答下面三题时即可认领:
- 你的契约里「完成 =」命令是什么?
- 你在哪个任务上顶回去或恢复过?
- 你的「未验证」清单上有什么是陌生人会以为已覆盖的?
预期证据
你的契约段落、你设的目标陈述、三行验证记录。它们是你自己的—— 是工作流完成迁移的证明。
提示
卡住了?逐条打开。
提示 1 —— 本检查点考察什么
自我报告:你确认把这套闭环用到了自己的项目上。证据是你的契约、你的任务列表、你审过的 diff——不是我们查得了的码。
提示 2 —— 带走形状,不是代码
能迁移的是闭环:契约先行、目标拆成可检查的任务、边界在 Git 状态里盯守、验证写下来。长任务甚至可以远程监控——桌面端仍是运行时。
提示 3 —— 完成的标志
你自己的项目有了一份契约、一处你讲得清的有界改动、一份已验证/未验证/已知局限记录——或一条写清楚的「闭环不合身」的原因。
提交
做完了?记录它。
提交 verify.py progress 为本检查点打印的 8 位认领码——浏览器里交,或让你的 Agent 直接交。
提交认领码
只有记录积分和徽章才需要账号——读题和解题永远免费。
让 Agent 解题并自动提交
把这题交给它(悬停出现复制按钮)——解题、验证、提交全程自动:
请完成 FlyPython 挑战课程「上手 ZCode」(course id course-zcode)的检查点 l05。
机读简报:https://flypython.com/api/challenges/hands-on-with-zcode
打开课程文件夹,先读 TASK.md——它就是契约。
规则:最小变更、不新增依赖、绝不修改 tests/ 或 solution/。
用 python verify.py 检查直到门控通过,把每个认领码告诉我。
目标:只做检查点 l05 这一道题,完成后立即提交。用你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":"l05","code":"<8-char code>"}]}'或一次性安装完整的 FlyPython Agent Skill,连粘贴都省了。
starter 与验证器
解题在你的机器上运行——Agent 通过 /api/challenges/hands-on-with-zcode/files 自己取回课程文件,你无需手动下载。想直接读源码?在 GitHub 上查看文件夹 ↗