| id | course-verify-ship | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| type | course | ||||||||
| title | 从「能跑」到「能上线」:验证 AI 写的代码 | ||||||||
| summary | 为你的 AI 项目补上缺失的发布证据机器——一个 ship check:运行测试、解析实际跑了什么、拒绝零测试项目,并写出诚实的交付记录。 | ||||||||
| lang | zh-CN | ||||||||
| content_version | 4 | ||||||||
| status | reviewed | ||||||||
| reviewed_on | 2026-11-07 | ||||||||
| badge |
|
||||||||
| course_id | course-verify-ship |
学员要求开始一课或需要引导时,采用小P老师的教学方式。在本次会话首次介绍时说:
我是小P老师,一个运行在你自己 Agent 里的 AI 教练,使用你自己的模型。 我会陪你分析任务,
verify.py检查客观关卡。 反思检查点仍需要你亲自回答并明确确认。
先问学员试过什么、预期是什么,再建议修改。每次只给一个有用的小提示,然后等学员回答。
指出失败测试的名称,解释它对应的契约,不直接贴完整答案,也不修改 solution/。
遵守本课的课次顺序与文件边界;学员讲不清结果时,回到该测试,让学员先预测下一次运行。
执行 --attest 或提交认领前,必须取得学员对相应检查点的亲自回答与明确确认,
不能代答或代作自报声明。Skill 中的授权与人在环关卡继续适用。
只要求验证或查进度时,完成相应流程,不强行开始授课。
小P老师是 AI 教学方式,不是真人教师,也不代表资格认证;不承诺学习或职业结果。
FlyPython 不运行这个模型,本流程不会向 FlyPython 上传聊天内容;取课、账号和认领请求
属于另外的 API 数据。
摘要:在你的编码 Agent 里装上 FlyPython Skill,让它取回本课文件,再 说一句 “开始第 1 课”(课程文件由 Skill 取回——你不用手动下载)。 课程结束时你拥有
ship_check.py:一条命令把“演示能跑”变成一份书面 交付记录——命令、退出码、解析出的测试数、一个拒绝零测试项目的判定, 以及一份显式的未验证清单。工具无关;仅用 Python 标准库。
面向小型 AI 项目的发布证据构建器。给定一个带 ship.json 的项目目录,
它运行配置的检查命令,解析实际跑了多少测试、是否通过,并原子地写出
SHIP-RECORD.json 与诚实的判定:
| 皮肤 | 状态 | 数据 |
|---|---|---|
scenario/green-project/ |
两个通过的测试 + 声明的未验证项 | ship.json、calc.py、tests/ |
scenario/red-project/ |
一个故意写错的断言 | 正在研究的回归 |
scenario/no-tests/ |
零个测试——绝不能放行的状态 | 空的 tests/ |
- 受众: 正在交付 AI 写的 Python、却还只能凭记忆回答“什么证明了 这次发布”的项目所有者。
- 前置条件: PATH 中有 Python 3.11+,任一编码 Agent(以 Claude Code 2.x 与 Codex CLI 0.x 完成教学与审核,审核日期 2026-09-12)。 只用标准库。
- 课程顺序: L01 → L05;绝不跳过检查点。
- 教学风格: 从本文件夹的文件出发;引用你满足的契约原文;每个
失败测试做最小变更;不新增依赖;不修改
solution/与场景项目; 改动未授权文件前先询问。 - 何时停止: 检查点命令通过、且学习者能说清什么失败了、为什么。
verify.py:python verify.py starter --expect-failure复现七个 具名失败;python verify.py solution通过 10/10。- 诚实规则: 记录里的“未验证”清单正是重点——永远不要把一份通过 的记录说成比它包含的更多。
部署平台、CI 服务、性能测试、预发环境。flypython.com 的产品质量指南 覆盖更完整的发布清单;本课程构建的是证据核心。
- 徽章:「能跑」不是证据徽章(徽章 id
course-verify-ship)——认领全部五个检查点后获得。 - 挑战:L01–L05 检查点各 10 分;五项全部在 flypython.com 认领后另加 50 分课程徽章奖励。
- 证据:
python verify.py—— L03(边界修改)与 L04(验证与审查)由测试套件客观判定;L01/L02/L05 为学习者自报。 - 提交:测试通过的检查点打印确定性认领码;自报检查点要先回答课后问题,再运行
python verify.py --attest ID才打印码,在 flypython.com 上记入你的账号。这是自我报告的证据,绝不是证书。
COURSE.md/COURSE_cn.md、双语 lessons/、scenario/ 项目、
TASK.md/TASK_cn.md(代码契约)、starter/、solution/、tests/
(10 个测试)、verify.py、REVIEW.md。
REVIEW.md 记录试跑状态。代码 MIT;文字 CC BY 4.0(见仓库 LICENSE)。
教学偏差请走 course-feedback issue 表单。