黑客松十天实录(下):从"太AI"到能演示——打磨、踩坑与交付
接上篇。时间:9.26 – 9.30 | 作品:UniOps · semester-operations-planner(学期节点规划工作台)
Day 6(9.26):代码只在一个人电脑上,以及一个被漏掉的环节
周六,本来以为能歇一天,结果还是遇到了一些问题
版本不同步。9.24 前端跑通之后,代码一直留在写前端的队友自己电脑上。我们准备开始录演示了,才发现:"前端的事都没同步,怎么开工?"几个人在群里互相核对——"你电脑上那个和我电脑上这个,是不是最终版?"确认一致之后,把最终压缩包重新发了一遍群里,所有人对齐。
这一天也把项目 README 整理到了 v0.3.0,把最终形态写清楚:六角色流水线、91 个节点 / 339 条待办、13 项评测全绿、778 条教务处官网通知语料、六条自校验、以及明确的"不做什么"边界。
Day 7(9.27):"太 AI 了",以及一次范围蔓延被拦下
周日,开始对着界面挑毛病。负责体验的队友看完直接来一句:"太 AI。"
这个评价我们太熟了。之前给学院行政老师看项目书,她也是这个反应——看不懂、像 AI 写的。
于是 UI 方向定了:加大圆角、往液态玻璃质感靠、多加交互动画、前面加一个介绍页。写代码的队友还在抠细节:T-1/T+1 这种时间措辞要不要改、待办里具体通知能不能点开预览、今天和明天的事怎么突出。
当天还发生了一次很典型的"范围蔓延"。队友提需求:"要不要加个自动发通知的功能?学校发了个文件,我们直接生成通知群里发出去。"
讨论了一圈,我们把它否了,理由写得很直白:
首先这个工具的面向用户是任课教师本人,不是教务处;
其次教师群公告是我们的输入,不是输出;
最后,如果真要替老师发消息,就要碰账号权限、已读回执、误发追责,这不是十天能兜住的责任。
最后守住了 README 里那条负向边界:不发任何消息、不统计回执、不判定毕业资格、不写入教务系统。Demo 看起来克制,但评委问"你们为什么不做发送"的时候,这个边界本身就是答案。
晚上后端收口,完整工程打包发群里,在群里发了部署说明,让每个人都能在本地把整条流程跑通。然后明确之后就只剩下录屏和项目书的任务了。"
Day 8(9.28):项目书被要求"写成简单的需求和痛点"
这天主要在磨文字材料。
学院负责提交申请的行政老师反馈:项目书太复杂、看不懂,要把它明确成很简单的需求和解决的痛点。
于是团队几个版本横评,我们把原来好几页的东西一路删:删掉技术名词、删掉流程图、删掉"产品定位""创新点"这种大词,最后只留六块——解决什么痛点、项目需求、亮点、用了什么工具、怎么用、最后效果怎样。从五六页砍到两页,又压到接近一页。
下午写代码的队友改了一版功能按钮和交互,发了一段 2 分 11 秒的操作录屏,群里互相提意见。
Day 9–10(9.29–9.30):录交付视频,发开发日志
最后两天就是收尾:按交付清单录项目演示视频、整理材料、把这两篇开发日志写出来,发出来。
你要问我这套东西最后到底做出来了什么,请看:
输入三样:校历图片(必选)、教师群公告文本(可选)、教务处官网"教学通知"栏目的历史通知(可选推荐);
模型只干一件事:看图,把校历网格抄成文字。周次换算、日期区间、逾期判定、优先级排序,全部是确定性脚本,可重复、可回归;
实测:识别 91 个节点(校历 17 + 群公告 7 + 官网通知 67),展开 339 条待办,六桶分桶,六条学期自校验 0 失败;
语料:从教务处官网按时间抓了 778 条带发文日期的通知(2024.08–2026.09,761 篇有正文),这样群公告里"下周五前反馈"这种相对时间,才能锚定成绝对日期;
评测:13 项确定性评测全绿,三个学年关键节点命中率 100%;
一个被实验打脸的细节:分辨率是这条链路的第一变量。同模型同提示词,1024px 的旧图会把国庆读成"放假 8 天"、还凭空编出节日;改成等比缩放到 4096px 再送模型,三份校历 156 列逐格全对。单张校历转写 59–63 秒。
十天最大的体会
1. AI 是把快刀,但刀得有人握。 PRD 一天能吐 60KB,前端一天能搓出来,但砍方向、定边界、对数字、写人话——这些事 AI 替不了,而且恰恰是比赛最加分的部分。
2. "不做什么"比"做什么"难写。 拦掉自动发通知、拦掉毕业预警、拦掉三个 Skill 的宏伟蓝图,每一刀都疼,但每一刀都让最后 demo 更稳。
3. 给非技术的人看,就要说人话。行政老师一句"看不懂",比十句技术亮点都有用。
十天结束,代码在仓库里,视频在硬盘里,项目书压到了两页。感谢 DGX Spark、StepFun,也感谢那个第一天就敢把自己写的 PRD 吐槽成"不像人话"的队友——那是我们没走歪的开始。