上一会话(9-03 夜 ~ 9-04 凌晨)交出。新会话开局按第 0 节顺序读,别跳。
新会话"变傻"的真因不是记性差,是 没查就说。下面每条都配了判据。
| 场景 | ❌ 错误做法 | ✅ 正确做法 |
|---|---|---|
| 长官问"X 存在吗/是不是这样" | 凭印象答 | 先 command grep + 带对照组(查个已知存在的串证明查法有效),再答 |
| 记忆里写着某结论 | 直接当事实用 | memory 只是参考。判断前必 grep 物理代码。冲突时物理代码胜 |
| 要说"已验证/已完成" | 说了但没跑命令 | 必须贴真实终端输出。跑不了就明说"我跑不了,这是推断,可能错" |
| 判断 test 上没上线 | 看云效流水线红绿 | 只认 sudo test-inspect deploy。流水线红绿全无意义 |
| 加个 UI 组件 | 直接写原生控件 | 先 grep 项目里有没有现成的。9-04 就栽在这(详见第七节) |
| 派 agent 干活 | 一个 worktree 派两个并行 | 同 worktree 只能串行,并行会互相覆盖(8-28 两次真实事故) |
| agent 被 hook 拦 | 让它再派一层 | 只许一层。收回来自己换派法 |
| 主会话(Opus/Fable)想自己撸代码 | 连续 Bash/Edit/Read | 超 8 次/10 分钟被物理锁。想清楚 → 派 sonnet/haiku 执行 → 只审结果 |
| 报数字(耗时/条数/token) | 把多次汇报加总 | subagent 报的 token 是累计值,加起来=虚报三倍 |
| 给长官链接 | 包进反引号/代码块 | 裸写 URL,包起来在 claude.ai 里点不动 |
| 线 | 状态 |
|---|---|
| A 线 · Phase 76 | 已发生产(MR #581)。无待办 |
| B 线 · 视光档案 stage2 整改 | 全部只在 test。🔴 长官亲自验收前,一次都不许发生产 |
worktree: /home/dev2/doctor-ai-brain/.claude/worktrees/s2-rework
分支: feature/stage2-rework-vf-ui2
HEAD: b52fcd9b(已合入 test · 工作区干净)
远程名: origin(指向 /srv/git/outbox.git)· 不叫 codeup
| MR | 内容 | 长官验了吗 |
|---|---|---|
| #591 | AI 分析四个硬错 + 历次对比三档窗口 + 加粗渲染 + 门店结论框脏 JSON 转人话 | ⬜ 未验 |
| #592 | 检查日期改滚轮弹层 + 平板端日期滚轮绿改蓝 | ⬜ 未验 |
已部署 commit = fce1b0be(= MR #592 合并 commit),坏提交无、失败计数无。
ai_comparison key 永久缺失、GET 只读不重算 → 长官第 5 次检查看到「暂无历史可对比」。reason=same_day,不再复用「暂无历史可对比」。**xxx** 渲染成真 <strong>,星号不再露出来。⚠️ 第 1、2、3 项要新生成一次分析才看得到,老数据是改之前生成的,长官要点「重算」。
<input type="date"> → VisitDateField(新文件,内嵌 DateWheel 年/月/日三列滚轮)DateWheel 加可选 accent prop(默认仍是绿,家长端零影响)+ maxDate(选不到未来){border:"#2563eb", bg:"#e8f1fb"}:visit-date-field.tsx:99、birth-date-field.tsx:92h5/family 2 处不传 accent,保持绿色(已 grep 对照组验证 0 处串色)WheelColumn 早支持 ariaPrefix 但 DateWheel 从未透传,读屏一直念成「出生年/月/日」长官具体说的:「现在在裸眼曲线,点击眼轴,曲线变化有点慢,动画不够高级」
要做的(上一会话已想好方案,未实施):
- 切换指标时不 remount(现在是整个重建,所以闪)
- 300ms 缓动过渡
- 三按钮改分段控件 + 滑动指示条
- 平滑曲线 + 更深的渐变填充
- 悬停光晕点
- 网格线改浅色虚线
- 首次进入的画线动画
文件:web/app/h5/tablet/pane/panes/refractive-record/trend-chart-dialog.tsx
图表库:recharts(全局政策:非大屏一律 recharts,禁 echarts)
上一会话提的设计(长官还没拍板,别当已批准):
- 只显示变化项,不显示没变的
- 颜色跟结论走(好转/持平/进展)
- 一句话摘要,取自门店结论
- 家长端是绿色主题,别把平板端的蓝色搬过去
| 事项 | 我的判断 | 要改的话怎么改 |
|---|---|---|
| 滚轮上下两行年月日文字偏淡 | 建议不动。是 iOS 式滚轮景深标准做法,家长端同款 | 同目录现成深色令牌 #43617a |
10000000「测试机构名称」 生产残留行 |
不在白名单,别动,要清需长官另点名 | — |
| 11 个 unreachable shells(org 5/83) | 等长官 | — |
死代码 openParent() / record-canvas.tsx / module state |
等长官 | — |
| 「看完视频出方案」阈值 | 等长官 | — |
sudo test-inspect deploy
release-pipeline-status 的红绿判部署 —— 云效流水线触发暂未退,每次 push 它还会自己跑一遍,红≠没部署,绿≠是它部的deploy/deploy.sh 已改成执行即报错的弃用桩,别碰,也别去"修复"时间预期:
| 改了什么 | 多久 |
|---|---|
| 合并后被发现 | 1 分钟内 |
| 只改 docs/deploy 类 | 十几秒 |
| 改了 app/ web/app/ migrations/ | 4~10 分钟 |
新增保护:部署要过五条实证才算数(无假绿灯);构建失败重试 3 轮后标坏提交、老版本继续跑(修好发新 MR 即自动恢复,不用找 root);挂站自动回滚。
云机 curl 100.68.51.72:8080 返 403(出网代理拦的)。后果:AI 分析改完,模型实际写出来什么话在云机验不了。只能验提示词内容 + 代码逻辑。要验效果只能上 test 真机。
已向 root 提过白名单需求,未处理。
机器级 /etc/claude-code/managed-settings.json,全局生效,原值备份 .bak-400k-0904。
后果:会话到 40 万 tokens 才自动压缩,被压缩次数减半。
⚠️ 但本机仅 3.4G 内存,历史有会话 67 万 tokens 被 earlyoom 击杀 —— 「上下文过 60% 主动存档重开」的老规矩不取消。
⚠️ root 消息写「两点说明」但只给了第一点,第二点未知。
dev-fable-grunt-guard.py 阈值仍是 8 次/10 分钟,决策层模型(Fable/Opus)触发即锁。
解锁:派一个显式 model:"sonnet" 或 "haiku" 的 agent。
⚠️ 四步 verify 本身就占 4 次,所以主会话别自己撸代码,想清楚就派。
command grepgrep -c 返 0 会非零退出 → 末尾加 || truesleep 某些场景被拦git push origin 只到 outbox,60 秒轮询才到 codeup。没等同步完就发版,release-to-test 会假报「跟 test 一致 · 无需发版」(exit=1)git ls-remote /srv/git/mirror.git | command grep -q <sha>,别用单 ref 的 ls-remote codeup(查不到)# 发 test(唯一路径)
sudo release-to-test --yes "标题" # 必须带 --yes,无 TTY 下没它会静默退出、MR 不建
# ❌ 禁止 printf 'y\n' | 管道喂确认(会被分类器拦)
# ❌ 禁止直接跑 scripts/release*.sh
# ❌ 禁止 git push codeup test/main(服务端保护分支,拒)
# 发生产(B 线现在不许发)
sudo release-to-prod --mr <MR编号> # 必须点名 MR,禁止整条 test 推 main
长官令:发版少发,攒几个功能一起发。别一 commit 一 MR。
ExplorePlangeneral-purposesonnet/haiku),不指定会被 hook 拦git status --short / git diff --stat HEAD / git diff --cached --name-only / grep 红线符号npx vitest run 有约 21 个既有失败(跨 worktree node_modules 提升所致,与改动无关)→ 用带路径过滤的 scoped 跑法取可信信号if [ -x venv/bin/python ]; then PYTHON_BIN=venv/bin/python; else PYTHON_BIN="$(command -v python3)"; fi,先验 import fastapi, josesudo db-query test "SQL"(只读)sudo db-prod "SQL" —— 改前必先 SELECT、UPDATE 必带 WHERE、一条命令一句 SQL、禁分号反斜杠、无 DELETE 权限、必须长官点头以下只在会话里用,禁止落进 ~/reports/ 或仓库:
- test 后台账号密码、test 门店席位账号密码 → 临时用放 /tmp,用完 rm
- 公网下载页密码 → 只在对话里给
| 规矩 |
|---|
| 称呼 长官 |
| 简洁清晰,多用表格少用大段文字 |
| 带 emoji ⚠️ 上一会话被批评过忘记加 |
| 长官没听懂时 → 举具体例子,别重复术语 |
| 一次只问一个简单问题 |
| 派 agent 跑长任务时 中途要汇报(被批评过"你怎么不给我回复了") |
给链接:内网 http://100.113.74.62:8812/reports/文件名.md · 公网 https://dev-tokyo.tail3912a6.ts.net/文件名 |
| 链接裸写,禁止包进反引号/代码块 |
交付双投递:正本 ~/reports/ + 拷一份进 worktree 的 reports-out/ |
| 状态声明必须点名环境(已实装/已部署/已合并 都要说清是 test 还是生产) |
| 术语:只说「发测试」「发生产」,禁说模糊的「发版」「上线了」 |
| 口语「门店」= 正式「机构」 |
| 错 | 教训 |
|---|---|
检查日期直接写了原生 <input type="date"> |
项目里早有两个为同一诉求做的自定义组件,其中一个注释白纸黑字写着「原生 input type=date 长官反馈『不好看不好点』,重做为弹出月历」。加 UI 组件前必须先 grep 有没有现成的,同一个意见让长官提了第二次 |
| 说「重算按钮不重算历次对比」 | 凭印象说的。agent grep 查出只有一个调用点,首次生成和重算走同一条路。说"X 是这样实现的"前必须 grep |
| 说「后端 build_ai_comparison 支持 days 三档」 | 也是凭印象。真实签名 (db, org_id, rec, eyes) 根本没 days 参数 |
| 派 agent 跑 35 分钟一声不吭 | 长官问「你怎么不给我回复了」。长任务中途必须汇报 |
| 建议 root 退掉流水线部署步骤时,一口气抛出三个顾虑 | 其中两个查完发现不成立(8-27 root 早已官方退役该步骤;部署按分支不按人)。提顾虑前先自己查 |
| 回复忘了加 emoji | 长官点名批评 |
# 1. 确认 worktree 和分支
cd /home/dev2/doctor-ai-brain/.claude/worktrees/s2-rework
git branch --show-current # 期望 feature/stage2-rework-vf-ui2
git status --short # 期望干净
git log --oneline -3 # 期望顶上是 b52fcd9b
# 2. 确认 test 部署态
sudo test-inspect deploy # 期望已部署 commit = fce1b0be(或更新)· 坏提交=无
# 3. 别忘了 hook 自检
[ -x .git/hooks/pre-commit ] && echo "✅ hook 已装" || echo "⚠️ 需装"
交接人:9-03 夜班会话
下一步:等长官验收 #591 #592;同时可以开工曲线高级化(第二节第 1 项,方案已想好,直接派 sonnet 实施)