Logs
把隐含结构翻成明规则
这一天的推进重点不是某个项目突然冲出去,而是在多个方向上持续把隐含前提翻成更明确的结构和规则。
4 月 15 日真正的推进,不在于哪个项目突然大幅前进,而在于不断把那些原本靠默契、靠经验、靠“模型大概会懂”的隐含前提,硬生生翻译成更清楚的结构。当天能确认的主证据来自本地 Claude、本地 Codex、ChatGPT 导出和几个工作仓库;remote Codex 这一天是空的,所以整条叙事更多只能靠本地链路自己闭合。回头看,最稳定的动作其实只有一个:不再接受“差不多成立”,而是逼每条路径说明自己到底怎么成立。
凌晨到白天,openword 先把这件事做得最彻底。连续的对齐工作已经把仓库拖进一种很容易失真的状态:原始素材、分析笔记、重建代码、几何基线和临时工具混在一起,项目越改越难判断什么是证据、什么是推论、什么只是旧噪声。于是这一天先把逆向工程结构重新拉开,明确 reverse、analysis、reconstruction、corpus 这些层次各自承担什么,再把对齐目标继续从“page count 过了没”往下压,确认 page count 只能算遥测,真正要追的是 geometry、text model 和 layout 行为的一致。后半段的推进也没有回到大而泛的修补,而是继续盯住 nested table、textbox 宽度、gov-005 这类具体失配点,把“完整对齐 WPS”拆成能定位、能复验的小块。
同样的收紧动作,很快也出现在法律和表单相关的工作里。lvshe-be 这边,早上还是“法条引用为什么会错”,到了中午已经变成更尖锐的执行申请书 bug:原文里本该留空的 执行人(自然人),为什么会被系统自动填出内容。顺着 Claude 和 Codex 的调查看下去,问题并不像是文档根本没解析出来,而更像是 prompt 和 schema 没把角色边界讲清楚,导致模型把公司主体、法定代表人之类的信息顺手推断成了另一个本不该出现的自然人字段。当天实际落地的改动也印证了这一点,补的是 paper-template-prompt.ts 里 sub group 的语义和输出规则,而不是另起一套提取器。那条简短的“被执行人是谁”对话,在这里反而像一个侧面回声:关键从来不是模型认不认识名字,而是系统有没有把“谁算主体、谁只是关联角色”讲清楚。
下午以后,这种把真实结构显化的倾向开始往产品交互和工作流本身延伸。lvshe-fe 没做一轮大改版,而是去对齐用户眼里的上传入口和组件内部真正的上传路径,把 AI input drawer 的文件区域和发送区关系理顺。另一边,关于 Claude Code 和 Codex 如何协作的思考,也不再停留在“两个强模型怎么一起用”的泛话题上,而是压到 workspace + session、PLAN.md 交接、/delegate 这种可执行边界上。bclaw 则把这条线再往前推了一步:不只是想象一个“手机上能用的编程助手”,而是开始用 Android-first 的方式,把远程 Codex 会话、连接屏、URL 解析、测试启动和端到端流转逐渐做成真的产品骨架。到晚上真机体验结束后,下一步最该补什么也变得很具体,不再是抽象的“体验还能优化”,而是 deep link、session continuity 这类真正决定可用性的节点。
夜里那条关于 Cloudflare Mesh、Tailscale、Headscale 的长讨论,表面上像是另起一摊网络选型,实际上和白天的工作连得很紧。白天反复处理的是结构层面的歧义:逆向工程目录怎么分层,法律字段该不该跳过,上传到底是谁在接手,移动端远程编码的核心对象到底是 workspace 还是 chat;到了晚上,这个问题被推进到网络实现底层,变成控制面和数据面能不能拆开、直连性能和边缘策略能不能同时成立。换句话说,这一天不是单纯“做了很多不同项目”,而是在多个方向上同时练同一个动作:把隐藏在系统里的默认假设,一层一层翻译成明规则。这样做的代价,是很多事情看起来都还没有一个轻松的完成态;但好处也很明确,后面该继续改哪里、哪些东西只是幻觉、哪些边界必须先立起来,已经比前一天清楚得多了。