自动建多件,默认全选
店里真实习惯是先一堆一起拍;重拍会打断收衣节奏。
0.2.0 · items[] · 真机OPENCODE × YIERSA / BUILD LOG 2026
SHIPPED · 2026-10-22
45 场含 18 场子代理;197 次提交含代码、文档与部署记录;30 条为 CHANGELOG 中标记“已部署”的版本记录。
THE START
2026 年 9 月 5 日,第一句话不是“帮我写个系统”,而是:
“这个项目之前是 codex 开发的,当前正在进行的是一个周报日报的微信功能,你遍历项目文档,确保可以接续开发。”
先读,不先写。45 场会话里,27 场是主会话,18 场是子代理(多为只读侦察)。它们先把 .NET 老系统、报表链路、门店流程、支付通道读了一遍,然后才动第一行代码。
所以这不是一个“从零生成”的故事,而是一个“把老系统重新做一遍”的故事:从 Windows/IIS 到 Linux/.NET 10,从管理后台为中心到店员 Pad 优先,从人工作业到 AI 收衣。
AI 可以写得很快,但“能不能上线”是另一回事。
这个页面记录的,是后面那件事。
THE LOOP
不是“给个需求,等它写完”。是把 AI 放进一条有闸门、有证据、有回滚的流水线。
读文档、读代码、读生产日志。只读侦察先行,禁止边猜边改。
45 场会话 / 18 场子代理① 文档核对 ② 框架对照 ③ 候选方案 ④ 可行性验证 ⑤ 结论。你确认,才动第一行代码。
每案一张,证据可指认一次只改一个可验证的变量。版本号、CHANGELOG、commit 一起走。
0.2.0 → 0.4.3,一天七个关键版本构建通过不算完。真机、截图、灰度、对账,至少过一遍。
3 次刷脸 94.5+;条码 090→705050090备份、哈希、tag、回滚命令,缺一不发。发布后公网终验。
30 条上线记录,关键批次留锚每一步都有证据;没有证据的“应该可以”,不算完成。
说明:本页的“决策轨迹”不是原始思维链的逐字复述,而是从会话记录还原的判断链;每个分支都对应一次真实的文档核对、工具输出或线上验证。
开始给每次更新编写版本号,
新需求:
1、现状当识别多件衣物的时候,要求重新扫,但当订单过多的时候,店员是习惯先一堆一起拍,后续补足信息或干脆不补。我的想法是识别多件衣物的时候,就自动创建多件,ui 上可以通过拆开多个小图,默认全选,然后允许店员点选去掉。比如识别出 5 个衣物,就是 5 个上传图片上的高亮圈,或取出 5 个图,店员操作选择取消一个后,变成 4 个,然后一件确认,就是 4 个衣物。然后在下一步,支持每件补充细节图。
开始给每次更新编写版本号,
新需求:
1、现状当识别多件衣物的时候,要求重新扫,但当订单过多的时候,店员是习惯先一堆一起拍,后续补足信息或干脆不补。我的想法是识别多件衣物的时候,就自动创建多件,ui 上可以通过拆开多个小图,默认全选,然后允许店员点选去掉。比如识别出 5 个衣物,就是 5 个上传图片上的高亮圈,或取出 5 个图,店员操作选择取消一个后,变成 4 个,然后一件确认,就是 4 个衣物。然后在下一步,支持每件补充细节图
2、调研一下,支付同时支持店员扫用户的支付码如何实现?扫支付宝和微信是一个按钮唤起最好。
3、先给我可行性方案及必要的交互 demo
这条需求本身就是完整的产品设计:自动建多件、默认全选、点选剔除、逐件补细节图。剩下的工作,是把它变成店员手指能操作的东西。
从 0.2.0 到 0.4.3,一个交互改了七次关键版本。最关键的两次纠偏,都不是“加功能”,而是“减冲突”。
一图多件自动建清单;主图高亮圈 + 裁剪小图;默认全选
店员习惯先一堆一起拍缩略图即时显示;手动补选连续圈选;编辑改浮窗
第一次真机,发现首卡和遮挡框选裁剪图作为订单项主图
订单详情不能显示全图取消“单独拍一件”;品类可修改
“再拍一批”覆盖单件场景品类改为下拉选择
自由输入会乱补选只认拖画出框;单点、滑动不算
手指一点就出框,误操作太多按住 0.35 秒才画框;直接滑动 = 原生翻页
画框和页面滚动打架决策轨迹 / DECISION TRAIL
店里真实习惯是先一堆一起拍;重拍会打断收衣节奏。
0.2.0 · items[] · 真机旧行为。订单多时店员不会重拍,只会漏信息。
旧版 · 被真机反馈淘汰和页面滚动冲突;改成按住 0.35 秒才接管,直接滑动仍然翻页。
0.4.1 · 手势 v2
一条经验把“例外”变成“同一条流程”,系统才不会越做越复杂。
验证一下,当拍照识别的时候,图片本身有条形码的时候,可否直接识别填入到条码框,这样店员就不用单独特写拍摄了。
分布验证单件和多件的效果,给我方案,我确认后执行。
先别改代码,先量:同一个标签,在不同分辨率、不同裁切下,到底能不能读对。结果比预想的更直接——不是模型不认识条码,是 1600 压缩后标签数字只剩约 20 像素。
结论:整图多码只能返回 1 个码;整件裁切会让标签占比太小;只有“标签特写”级别才稳定。于是最终方案变成三步:逐件裁 2560 → 多码定位 → 标签 bbox 二次裁切复核 → 只回填 9 位。
决策轨迹 / DECISION TRAIL
多件图只返回 1 个码;088/089 还会来回跳。省调用量,但不可用。
4 次实测 · 只出 1 码毛衣整件裁切读成 705050690,错;标签在整件衣服里占比太小。
整件裁切 · 误读先多码定位,再按标签 bbox 裁一刀,单码复核;每件 2 次调用,换准确率。
090 / 089 / 088 全对发布时 rsync --delete 删掉了 systemd 需要的 Log 目录,API 重启循环约 2 分钟;加 --exclude Log 后恢复。见翻车博物馆 →
一条经验:错码比空码更糟。 宁可让店员多扫一次,也不能让收银台扫不出来。
评估一下,让账号同时支持刷脸登录的方案(利用阿里云的接口)。
“1、iPad 和 android,不是说要唤起锁屏,是系统锁屏后唤醒,我们洗衣系统要重新刷脸;2、120 秒吧……”
真正的难点不在“调通接口”,在“共用一台 iPad 的六个店员,怎么确保下一次拿起它的人,是账号本人”。
这件事最后变成了一串边界:浏览器做不到什么、iPad 会伪装什么、刷新会误触发什么、日志会泄露什么。
边界清单 / CONSTRAINTS
visibilitychange / pagehide,靠设备系统锁屏配合。varbinary 展开进 journal;脱敏并清掉 250.8MB 日志。
工作中:店员在工作台处理订单。
系统锁屏 / 切后台
pagehide / visibilitychange
清 token,回 /#/face-login
1:1 比对,进工作台
演示数据 · 截图来自产品官网
一条经验:功能是明面上的,边界才是工作量。
INCIDENT LOG
五次真实事故。没有它们,这个页面就只是广告。
症状:钱收了,单没推进。
[UnitOfWork] 是 MVC 动作过滤器,对服务内部调用不生效。留下的规则:框架的糖,要先证明它真的生效。
症状:服务器日志里出现人脸照片的 SQL。
varbinary 参数展开进日志。留下的规则:隐私数据不能靠日志级别兜底。
症状:API 起不来,重启循环约 2 分钟。
rsync --delete 删掉 systemd ReadWritePaths 需要的大写 Log 目录。--exclude Log + mkdir -p Log/logs/wwwroot,20:40 恢复。留下的规则:发布脚本要懂运行时的目录契约。
症状:admin 选品类为空,前端筛选不到。
900000000000000201 超过 Number.MAX_SAFE_INTEGER,JSON 解析四舍五入。880000000000001-017,同步引用。留下的规则:数据库主键也会撞上前端的数字精度。
症状:一个 UI 改动,构建一直卡住。
picomatch 4.0.4 缺少 parse.fastpaths,Vite 6.4.2 构建失败。picomatch 4.0.2;先用可构建基线发 UI,构建链单独修。留下的规则:构建链也是生产的一部分。
ORIGINAL VOICE
10 条提示词,和它们改变了什么。原文未美化;脏话用 ×× 弱化。
“这个项目之前是 codex 开发的……你遍历项目文档,确保可以接续开发。”
它改变了什么:先读再写。27 场主会话,从读懂旧系统开始。
“坚持原则,对 windows 的任何修改都要经过我确认。”
它改变了什么:生产变更闸门。之后每一次上线,都留备份、哈希和回滚锚。
“我不会部署,你通过云助手自行部署。”
它改变了什么:AI 接管部署,但人保留“发不发”的签字权。
“手动补一件和单独拍一件后面的流程应该是一个……”
它改变了什么:两条路合成一条单件识别流;补框是裁一张图,单独拍是新拍一张图。
“1、滑动对于页面的滑动操作,你应该保留啊。”
它改变了什么:按住 0.35 秒才画框,直接滑动仍然是原生翻页。
“不接受,我还是认为实现方式过于复杂!”
它改变了什么:放弃“全员超管”,改角色级 DataScope;现网账号默认行为零变化。
“你××的干嘛呢?不就是改个 UI 吗,你说说,你在干嘛!”
它改变了什么:先发已改好的 UI,构建链单独修;不再让一个依赖问题拖住整个交付。
“你不用特意去找方案吧,你先看看当前补条码是怎么实现拍条形码录入的,直接复用能力不就行了?”
它改变了什么:复用现有 identifyBarcode 链路,不引新库、不新增接口。
“最终要等我明确让你部署,你再进行部署,在此之前,不要动生产环境。”
它改变了什么:发布权在人的手里。AI 可以准备到 99%,最后一步必须等人。
“8:30 统一发!”
它改变了什么:门店下班后的统一发布窗口;多条改动合成一个批次,减少中断。
显示 10 / 10
DELIVERY
不是“做完了”,是“验过了,而且知道哪一部分还没验”。
npm run build 通过;后端 dotnet build 0 error。items[];刷脸 3 次。不把黄灯藏起来,是这套交付的一部分。
一图多件 / bbox / items[]
tag v0.2.0 · DLL 0620a0c9 · staff BmiWU1Iq补选手势 v2 / 提示文字瘦身
tag v0.4.1 · 70 处文案员工业绩页 / 我的
staff CXxU-Ddv · 34 项算法自测刷脸登录灰度
3 次真机 94.5+ · sys_user_face逐件上挂 / 取送
DLL 854de0ed · 回填 227,189 行条码回填 / 逐件 / 登录态自愈
tag prod/2026-10-22-2215 · staff BD4lnSZA“交付不是宣布完成,
是知道哪一部分还没验。”
TIMELINE
九月先摸清系统;10 月 16 日到 22 日,把门店端和基础设施集中重做了一遍。
第一句话是“遍历项目文档,确保可以接续开发”。27 场主会话从读懂开始。
日报 / 周报 / 月报走 OSS 中转,微信推送与邮件分发解耦。
机器调用有只读钥匙;支付宝当面付 + 微信 Native 双通道跑通。
52 次提交;一图多件、手动补选、批次累加、手势 v2。
提成口径进报表与“我的”;角色级 DataScope,现网默认行为零变化。
CloudAuth 1:1 + 活体;.NET 10 上 Linux,systemd + nginx 接管。
订单内每件衣物单独上挂、取走、送达;分类四级联动。
条码 9 位回填;产品官网上线;7 天累计 181 次提交。
REPLAY
能。前提是你别把 AI 当“许愿池”,把它当“施工队”。
先让 AI 读,不要先让它写。不读懂你的系统,它只能猜;猜出来的东西,上线就是事故。
先出方案卡,再动第一行代码。文档核对、框架对照、候选方案、可行性验证、结论,缺一项都不开工。
一次只改一个可验证的变量。版本号、CHANGELOG、commit 一起走;出问题能定位到哪一版。
每条结论都要有证据,每个上线都要有回滚。构建、冒烟、真机、哈希、备份、tag,少一样都不算交付。
允许 AI 说“未验证”,但不容忍“应该可以”。黄灯比假绿灯值钱。
AI 可以写得很快,
但签字的人必须很慢。