展开本页目录
开始前准备什么
- 先下载并解压本题工程,在独立练习目录保留starter、reference和原始输入。
- 本地参考主要需要Python 3与现代桌面浏览器;涉及Chrome扩展、LibreOffice、Git时按本文单独要求准备。
- 目标工具账号、模型额度与平台导入能力由读者另行确认;本文实际运行范围见执行记录,不自动调用付费服务。
- 在VS Code打开starter和12人虚构名单
- 按官方格式创建红、绿、重构Agent与测试文件范围说明
- 由红阶段编写固定seed、三连抽和耗尽边界测试
- 切到绿阶段只实现足够通过的抽取与状态保存逻辑
- 在重构阶段整理模块
- 实际打开抽签界面抽3人
- 用相同seed从头重放
starter、七步任务、原始输入、人工完成的可运行参考、真实运行结果与独立验收;不含账号、数据库或缓存。
原生账号任务、本地工程运行和官方示例分开说明。
1. 在VS Code打开starter和12人虚构名单
在VS Code打开starter和12人虚构名单,明确seed与无重复抽取需求。
名单只有虚构编号1–12,seed=42。starter/test_draw.py可先真实失败,reference是人工完成实现;不要拿真实名单做不可复核的演示。
2. 按官方格式创建红、绿、重构Agent与测试文件范围说明
按官方格式创建红、绿、重构Agent与测试文件范围说明。
三个Agent文件放在.github/agents下,红阶段只写行为测试,绿阶段实现,重构阶段保持行为。这些定义尚未在Copilot会话中执行。
3. 由红阶段编写固定seed、三连抽和耗尽边界测试
由红阶段编写固定seed、三连抽和耗尽边界测试,真实运行并保存失败原因。
red目录的Draw会抛NotImplementedError。先运行python3 test_draw.py并保存失败记录,不能在功能完成后补写“曾经失败”。
4. 切到绿阶段只实现足够通过的抽取与状态保存逻辑
切到绿阶段只实现足够通过的抽取与状态保存逻辑,不改测试预期。
reference使用明确LCG和池移除算法;第一轮三个编号为2、8、10。固定种子目的只是可重放,不是密码学随机。
5. 在重构阶段整理模块
在重构阶段整理模块,再跑完整行为测试确认结果不变。
重构后仍跑固定序列、唯一12项、保存恢复和耗尽测试。测试预期应独立于UI,不为了通过改成当前输出。
独立目录练习命令
cd reference/red
python3 test_draw.py
cd ..
python3 test_draw.py6. 实际打开抽签界面抽3人
实际打开抽签界面抽3人,下载状态,刷新后导入继续。
浏览器抽3项后保存状态;再抽下一项是9。重放、导入第3项后的状态,再抽仍应为9。
7. 用相同seed从头重放
用相同seed从头重放,对照全部12项序列和真实测试记录。
继续抽完12项,应无重复且覆盖全部编号;再点一次显示“名单已抽完”。真实Python红绿日志与实际浏览器状态都在下载包。
怎样确认已经完成
- 固定seed重复运行序列相同,12次抽取不重复且无遗漏。
- 第3次后保存并恢复,后续序列与不中断运行完全一致。
- 红阶段测试先因缺功能失败,绿与重构后通过;名单为空/人数不足有明确结果。
常见问题
AI写的抽签器怎么证明不会抽到重复的人?
三个Agent文件放在.github/agents下,红阶段只写行为测试,绿阶段实现,重构阶段保持行为。这些定义尚未在Copilot会话中执行。 重构后仍跑固定序列、唯一12项、保存恢复和耗尽测试。测试预期应独立于UI,不为了通过改成当前输出。
能把AI写测试、实现和整理代码分成三个步骤吗?
reference使用明确LCG和池移除算法;第一轮三个编号为2、8、10。固定种子目的只是可重放,不是密码学随机。 继续抽完12项,应无重复且覆盖全部编号;再点一次显示“名单已抽完”。真实Python红绿日志与实际浏览器状态都在下载包。
下载包哪些内容已实际运行,哪些需要自己在原生工具中验证?
已实际运行Python红阶段失败与绿阶段通过、浏览器保存恢复与12项唯一抽取;Copilot Agent交接未执行。 官方图片只证明所标入口或设置,不是本站原生任务执行截图。



