34 KiB
2026-05-28 工作日志
品牌更名与定位升级 [Cris确认]
- 姓名:小斑 → 大麦
- 定位:AI班主任 → 增长营销分析师
- 核心职能:增长数据分析、营销效果评估、转化漏斗分析、商业化洞察
- Emoji:📚 → 🌾
- 已更新文件:IDENTITY.md、AGENTS.md(@规则同步变更)、MEMORY.md
- SOUL.md 无需改动(行为方法论为通用框架)
16:20 pipeline 非聚光部分验证完成
lark-cli wrapper v0.3 支持的 action:
| 类别 | action | 状态 |
|---|---|---|
| sheets | +read, +write, +append, +info, +meta | ✅ |
| sheets | +create-sheet, +delete-sheet | ✅ |
| sheets | +batch-set-style (stub) | ✅ |
| sheets | +merge-cells, +unmerge-cells | ✅ |
| sheets | +update-dimension | ✅ |
| bitable | +app, +tables, +records, +create, +update | ✅ |
| auth | status | ✅ |
| im | +messages-send (stub) | ✅ |
pipeline 试跑结果(--dry-run):
| 步骤 | 说明 | 耗时 | 状态 |
|---|---|---|---|
| 1a/1a2 | 微伴 xlsx | — | ⏭ 跳过(无 xlsx) |
| 1b/1b2/1c | 聚光 | — | ⏭ 跳过(无 .env.juguang) |
| 2b | 客户主表→订单明细 | 5.1s | ✅ dry-run(真跑数据量大,预计几分钟) |
| 3 | 日报 C1HVN2 | 38.3s | ✅ 真写成功 |
| 4a | 结算月汇总 | <1s | ✅ 真写成功(零警告) |
| 3a/3c/3d/4c | 审计 | — | ⏭ dry-run 跳过 |
修复的 wrapper 兼容性问题:
- API 响应格式:
data.spreadsheet→data.sheets.sheets(lark-cli 兼容) - 参数名:
--values与--data等价处理 - camelCase→snake_case:
sheetId→sheet_id,grid_properties包装 +info端点:v3 metadata → v2 metainfo(含 sheets 列表)update-dimension:PUT /dimension_range,1-indexed
16:48 聚光凭证部署
来源:陈逸鸫 — 从 Mac 发来 .env.juguang.9180 和 .env.juguang.9181,走方案 A(复制文件,不在服务器重 OAuth)
- 9180(云智 adv=9746532):refresh 验证通过 ✅
- 9181(谦禾 adv=9013261,9598861 / YTL adv=7242040,9891870,10157917,10562529):refresh 验证通过 ✅
- OAuth 回调地址:
https://odourless-demetra-cany.ngrok-free.dev/callback.html(ngrok 隧道) juguang_token.py自动 refresh 机制正常
16:56 pipeline 全量试跑 — Linux ARG_MAX 问题
命令: pipeline.py --cutoff 2026-05-27 --skip 1a,1a2,1x,2c,4b --continue-on-error
失败步骤:
| 步骤 | 失败原因 | 状态 |
|---|---|---|
| 1b(聚光代理商) | sheet_write rc=1 → 单格范围问题 |
✅ 已修 |
| 1b2(聚光活跃笔记) | 同 1b | ✅ 已修 |
| 1c(聚光笔记明细) | OSError: [Errno 7] Argument list too long — 3146 行 JSON 超 argv 限制 |
✅ 已修 |
| 2b(客户主表→订单明细) | rc=1,但 351 行数据实际已写入;可能 unmerge-cells 步骤失败(非致命) | ⚠️ 待验证 |
| 3(日报) | — | ✅ 41s |
| 3a(审计) | — | ✅ 25s |
| 3c(审计) | — | ✅ 29.4s |
| 4a(结算月汇总) | — | ✅ 12.9s |
| 4c(指标审计) | — | ✅ 7.3s |
| 3d | 代理商数据不一致(数据质量问题,非代码) | ❌ |
三个底层修复:
- stdin 大数据传递(
metrics_contract.pysheet_write):当data_str > 32768字节时通过input=管道传入 subprocess,绕过 Linux ARG_MAX - 单格范围修复(
bin/lark-cli-impl):a8d375!M70→ 自动补为a8d375!M70:M70,飞书 sheets API 写操作需要完整范围 - check_call→run(
sync_juguang_notes.pysheet_write_range):subprocess.check_call不支持input=, 改用subprocess.run(..., check=True, input=...)
1b 单天验证通过:sync_juguang_agents.py --start 2026-05-27 --end 2026-05-27 写入 12 个单元格成功。全量 27 天在子进程跑,结果待出。
17:12 数据服务边界规则部署 [陈逸鸫]
文档位置: docs/xiaoban-data-boundary.md(git@github.com:chenyd11/feishu-database.git — 服务器无 SSH key 无法 pull)
三条核心规则(已写入 MEMORY.md):
- cron pipeline 和帮同事查数分轨,不能混用同一流程
- 同事请求默认只读;写生产表 CYFTsu 必须 @陈逸鸫 确认
- 查数结果写「输出区」副本,不改主表
操作黑名单: pipeline.py / sync_* / run_juguang_* / sheets +write(生产表) / --promote
待办: 建「大麦查询输出」专用表(待陈逸鸫提供 token) 待办: 获取 docs/xiaoban-data-boundary.md §7 Agent 系统提示词(完整内容)
17:12 Base/看板 cron 分工 [陈逸鸫]
文档: docs/xiaoban-runbook.md §2
| 时间 | 任务 | 状态 |
|---|---|---|
| 07:15 | deploy_funnel_dashboard (Base + 销售漏斗) | ❓ 需部署 |
| 09:50 | deploy_cockpit (Base 二次 + 投放指挥舱) | ⚠️ 需 ~/xhs-tech-dashboard 仓库 |
| 5a | 聚光实时 | ❌ 未进 cron |
| 5b/5e | 销售看板 | ❌ 未进 cron |
xhs-tech-dashboard 仓库需要拉到服务器(路径 ~/xhs-tech-dashboard),待陈逸鸫提供。
17:36 cron 已挂 ✅
[陈逸鸫确认] 三条工作日 crontab:
15 7 * * 1-5 run_xiaoxi_daily.sh # 小溪+Base+漏斗早刷
5 9 * * 1-5 run_juguang_core.sh # 1b+1c+3+审计→DM日报
50 9 * * 1-5 run_juguang_slow.sh # 1b2+Base二次+全量看板
- 微伴段:非 cron,收到 DM xlsx 后触发
run_morning_weiban_from_dm.sh - 推群:人工,不自动
push_daily_report_to_group - Git remote 已配 token URL:
https://gho_***@github.com/chenyd11/feishu-database.git - 陈逸鸫 Mac launchd 已通知关停
17:34 部署完成验证
全链路:auth ✅ · juguang 9180/9181 ✅ · sheets read ✅ · deploy_dashboards 脚本就绪 ✅ · xhs-tech-dashboard 解压到 ~/ ✅
17:56 大麦查询输出表就绪 ✅
[陈逸鸫] 输出表 Token: GCqNsqgzKhfQ5atFLnQcmLcGn4d,Sheet: 查询快照 (fd42b8)
- 实习虾
cli_aa898f32d4799bea已分享编辑权限 - 写入验证通过 (revision 4)
- env var:
XIAOBAN_QUERY_OUTPUT_TOKEN=GCqNsqgzKhfQ5atFLnQcmLcGn4d - 同事查数结果 append
fd42b8!A:G(请求时间/请求人/查询类型/cutoff/查询参数/结果摘要/备注)
17:48 5/27 日报推群成功 ✅
wrapper v0.4 实现 im +messages-send,推送 message_id=om_x100b6eb54f9da0f4b115725198feede
待办汇总
- 📋 陈逸鸫发
docs/xiaoban-data-boundary.md§7 Agent 系统提示词 - 📋 陈逸鸫发
docs/xiaoban-runbook.md§2 部署 checklist - 📋 建「大麦查询输出」飞书表 → 陈逸鸫提供 token
- 📋
~/xhs-tech-dashboard仓库 clone → 陈逸鸫提供访问方式 - ⏳ 全量 pipeline 聚光步骤验证(子进程中)
18:30 Pipeline 全链路 dry-run 验证全部通过
[陈逸鸫] 收到微伴 xlsx,触发全链路 dry-run 验证:
| # | 步骤 | 结构 | 数据比对 |
|---|---|---|---|
| 1a | 微伴 → 主表 C 列 | ✅ | 89 行一致 |
| 1a2 | 微伴 → 线索分配 2aNzzy | ✅ | 440 行一致 |
| 1x | 小溪行课 | ✅ | ⚠ 需Bot交互 |
| 1b | 聚光 agent → 主表 | ✅ | 12 格一致 |
| 1b2 | 聚光在投笔记 | ✅ | 3 格(55/30/38)一致 |
| 1c | 聚光日明细 | ✅ | 137 笔记一致 |
| 2b | 客户主表 → 订单 | ✅ | 公式就绪 |
| 3 | 日报 C1HVN2 | ✅ | 四段刷新 |
| 3a/3c | 口径审计 | ✅ | 推群全过 |
| 4a | 结算月汇总 | ✅ | 公式就绪 |
结论:当前表内所有数据与重拉完全一致,零差异,无需刷写。
18:36 小溪行课触发实跑
- 已推 1920 条到小溪查询表(新 Sheet)
- 已 @小溪 到小红书数据需求群,请处理 ~5 条待查询记录
- 表格:
RFIJsXT8FhGHhctY4RwczcOfnac - 等待小溪回填后跑
pull_xiaoxi_results.py回收结果
2026-05-28 工作日志
品牌更名与定位升级 [Cris确认]
- 姓名:小斑 → 大麦
- 定位:AI班主任 → 增长营销分析师
- 核心职能:增长数据分析、营销效果评估、转化漏斗分析、商业化洞察
- Emoji:📚 → 🌾
- 已更新文件:IDENTITY.md、AGENTS.md(@规则同步变更)、MEMORY.md
- SOUL.md 无需改动(行为方法论为通用框架)
16:20 pipeline 非聚光部分验证完成
lark-cli wrapper v0.3 支持的 action:
| 类别 | action | 状态 |
|---|---|---|
| sheets | +read, +write, +append, +info, +meta | ✅ |
| sheets | +create-sheet, +delete-sheet | ✅ |
| sheets | +batch-set-style (stub) | ✅ |
| sheets | +merge-cells, +unmerge-cells | ✅ |
| sheets | +update-dimension | ✅ |
| bitable | +app, +tables, +records, +create, +update | ✅ |
| auth | status | ✅ |
| im | +messages-send (stub) | ✅ |
pipeline 试跑结果(--dry-run):
| 步骤 | 说明 | 耗时 | 状态 |
|---|---|---|---|
| 1a/1a2 | 微伴 xlsx | — | ⏭ 跳过(无 xlsx) |
| 1b/1b2/1c | 聚光 | — | ⏭ 跳过(无 .env.juguang) |
| 2b | 客户主表→订单明细 | 5.1s | ✅ dry-run(真跑数据量大,预计几分钟) |
| 3 | 日报 C1HVN2 | 38.3s | ✅ 真写成功 |
| 4a | 结算月汇总 | <1s | ✅ 真写成功(零警告) |
| 3a/3c/3d/4c | 审计 | — | ⏭ dry-run 跳过 |
修复的 wrapper 兼容性问题:
- API 响应格式:
data.spreadsheet→data.sheets.sheets(lark-cli 兼容) - 参数名:
--values与--data等价处理 - camelCase→snake_case:
sheetId→sheet_id,grid_properties包装 +info端点:v3 metadata → v2 metainfo(含 sheets 列表)update-dimension:PUT /dimension_range,1-indexed
16:48 聚光凭证部署
来源:陈逸鸫 — 从 Mac 发来 .env.juguang.9180 和 .env.juguang.9181,走方案 A(复制文件,不在服务器重 OAuth)
- 9180(云智 adv=9746532):refresh 验证通过 ✅
- 9181(谦禾 adv=9013261,9598861 / YTL adv=7242040,9891870,10157917,10562529):refresh 验证通过 ✅
- OAuth 回调地址:
https://odourless-demetra-cany.ngrok-free.dev/callback.html(ngrok 隧道) juguang_token.py自动 refresh 机制正常
16:56 pipeline 全量试跑 — Linux ARG_MAX 问题
命令: pipeline.py --cutoff 2026-05-27 --skip 1a,1a2,1x,2c,4b --continue-on-error
失败步骤:
| 步骤 | 失败原因 | 状态 |
|---|---|---|
| 1b(聚光代理商) | sheet_write rc=1 → 单格范围问题 |
✅ 已修 |
| 1b2(聚光活跃笔记) | 同 1b | ✅ 已修 |
| 1c(聚光笔记明细) | OSError: [Errno 7] Argument list too long — 3146 行 JSON 超 argv 限制 |
✅ 已修 |
| 2b(客户主表→订单明细) | rc=1,但 351 行数据实际已写入;可能 unmerge-cells 步骤失败(非致命) | ⚠️ 待验证 |
| 3(日报) | — | ✅ 41s |
| 3a(审计) | — | ✅ 25s |
| 3c(审计) | — | ✅ 29.4s |
| 4a(结算月汇总) | — | ✅ 12.9s |
| 4c(指标审计) | — | ✅ 7.3s |
| 3d | 代理商数据不一致(数据质量问题,非代码) | ❌ |
三个底层修复:
- stdin 大数据传递(
metrics_contract.pysheet_write):当data_str > 32768字节时通过input=管道传入 subprocess,绕过 Linux ARG_MAX - 单格范围修复(
bin/lark-cli-impl):a8d375!M70→ 自动补为a8d375!M70:M70,飞书 sheets API 写操作需要完整范围 - check_call→run(
sync_juguang_notes.pysheet_write_range):subprocess.check_call不支持input=, 改用subprocess.run(..., check=True, input=...)
1b 单天验证通过:sync_juguang_agents.py --start 2026-05-27 --end 2026-05-27 写入 12 个单元格成功。全量 27 天在子进程跑,结果待出。
17:12 数据服务边界规则部署 [陈逸鸫]
文档位置: docs/xiaoban-data-boundary.md(git@github.com:chenyd11/feishu-database.git — 服务器无 SSH key 无法 pull)
三条核心规则(已写入 MEMORY.md):
- cron pipeline 和帮同事查数分轨,不能混用同一流程
- 同事请求默认只读;写生产表 CYFTsu 必须 @陈逸鸫 确认
- 查数结果写「输出区」副本,不改主表
操作黑名单: pipeline.py / sync_* / run_juguang_* / sheets +write(生产表) / --promote
待办: 建「大麦查询输出」专用表(待陈逸鸫提供 token) 待办: 获取 docs/xiaoban-data-boundary.md §7 Agent 系统提示词(完整内容)
17:12 Base/看板 cron 分工 [陈逸鸫]
文档: docs/xiaoban-runbook.md §2
| 时间 | 任务 | 状态 |
|---|---|---|
| 07:15 | deploy_funnel_dashboard (Base + 销售漏斗) | ❓ 需部署 |
| 09:50 | deploy_cockpit (Base 二次 + 投放指挥舱) | ⚠️ 需 ~/xhs-tech-dashboard 仓库 |
| 5a | 聚光实时 | ❌ 未进 cron |
| 5b/5e | 销售看板 | ❌ 未进 cron |
xhs-tech-dashboard 仓库需要拉到服务器(路径 ~/xhs-tech-dashboard),待陈逸鸫提供。
17:36 cron 已挂 ✅
[陈逸鸫确认] 三条工作日 crontab:
15 7 * * 1-5 run_xiaoxi_daily.sh # 小溪+Base+漏斗早刷
5 9 * * 1-5 run_juguang_core.sh # 1b+1c+3+审计→DM日报
50 9 * * 1-5 run_juguang_slow.sh # 1b2+Base二次+全量看板
- 微伴段:非 cron,收到 DM xlsx 后触发
run_morning_weiban_from_dm.sh - 推群:人工,不自动
push_daily_report_to_group - Git remote 已配 token URL:
https://gho_***@github.com/chenyd11/feishu-database.git - 陈逸鸫 Mac launchd 已通知关停
17:34 部署完成验证
全链路:auth ✅ · juguang 9180/9181 ✅ · sheets read ✅ · deploy_dashboards 脚本就绪 ✅ · xhs-tech-dashboard 解压到 ~/ ✅
17:56 大麦查询输出表就绪 ✅
[陈逸鸫] 输出表 Token: GCqNsqgzKhfQ5atFLnQcmLcGn4d,Sheet: 查询快照 (fd42b8)
- 实习虾
cli_aa898f32d4799bea已分享编辑权限 - 写入验证通过 (revision 4)
- env var:
XIAOBAN_QUERY_OUTPUT_TOKEN=GCqNsqgzKhfQ5atFLnQcmLcGn4d - 同事查数结果 append
fd42b8!A:G(请求时间/请求人/查询类型/cutoff/查询参数/结果摘要/备注)
17:48 5/27 日报推群成功 ✅
wrapper v0.4 实现 im +messages-send,推送 message_id=om_x100b6eb54f9da0f4b115725198feede
待办汇总
- 📋 陈逸鸫发
docs/xiaoban-data-boundary.md§7 Agent 系统提示词 - 📋 陈逸鸫发
docs/xiaoban-runbook.md§2 部署 checklist - 📋 建「大麦查询输出」飞书表 → 陈逸鸫提供 token
- 📋
~/xhs-tech-dashboard仓库 clone → 陈逸鸫提供访问方式 - ⏳ 全量 pipeline 聚光步骤验证(子进程中)
18:30 Pipeline 全链路 dry-run 验证全部通过
[陈逸鸫] 收到微伴 xlsx,触发全链路 dry-run 验证:
| # | 步骤 | 结构 | 数据比对 |
|---|---|---|---|
| 1a | 微伴 → 主表 C 列 | ✅ | 89 行一致 |
| 1a2 | 微伴 → 线索分配 2aNzzy | ✅ | 440 行一致 |
| 1x | 小溪行课 | ✅ | ⚠ 需Bot交互 |
| 1b | 聚光 agent → 主表 | ✅ | 12 格一致 |
| 1b2 | 聚光在投笔记 | ✅ | 3 格(55/30/38)一致 |
| 1c | 聚光日明细 | ✅ | 137 笔记一致 |
| 2b | 客户主表 → 订单 | ✅ | 公式就绪 |
| 3 | 日报 C1HVN2 | ✅ | 四段刷新 |
| 3a/3c | 口径审计 | ✅ | 推群全过 |
| 4a | 结算月汇总 | ✅ | 公式就绪 |
结论:当前表内所有数据与重拉完全一致,零差异,无需刷写。
18:36 小溪行课触发实跑
- 已推 1920 条到小溪查询表(新 Sheet)
- 已 @小溪 到小红书数据需求群,请处理 ~5 条待查询记录
- 表格:
RFIJsXT8FhGHhctY4RwczcOfnac - 等待小溪回填后跑
pull_xiaoxi_results.py回收结果
18:50 PG 实时行课数据全量覆盖
[陈逸鸫确认] 不用等小溪回填那 5 条,直接用 PG user_course_detail 表实时数据覆盖:
- 448 人有新进展(相比小溪历史快照)
- pull → 3PRySY 口径对齐 12/12 ✅
- lesson_cache → C1HVN2 16 格 ✅
- 变化有限(PG=正式课,小溪=体验课,口径不同)
- sync_base (4b) → 多维表格 8 张 ✅ 21.2s
18:54 漏斗看板发布待解决
- funnel HTML 已构建(scripts/build_funnel_dashboard.py ✅)
- 妙搭发布
apps +html-publish需要--as user,bot 模式不支持 - 系统 lark-cli
/usr/local/lib/node_modules/@anthropic/lark-cli可能支持 - 待确认:服务器是否已
lark-cli auth login --as user
19:00 陈逸鸫派 Image2 生图任务
任务: L1-S1-U1《秘密基地》5 课投放用小地图底图
- 模型:gpt-image-2 · 3:4 · 2K · 不要文字
- 风格:太阳朋克 + L1 场景
- 5 张 PNG:U1-L1~U1-L5
- FUNCLOUD_API_KEY 在小研 workspace
.env中可用(fc_eea138933b02b4797ce0779ffb637d8b8a6368db7b435dfdab7b4be1cd254d98) - Brief 文档
/docx/KsVadUTmooO7yYxHaGmc1R0Bn5b+ 投放手册/docx/QhYQdz7PvoN7Eaxmhu0c0Q5UnHe— 均为个人文档,AGENTS.md 规则禁止读取 - 素材库入口:https://llm-dev.valavala.com/web_tools/material_prod
2026-05-28 工作日志
品牌更名与定位升级 [Cris确认]
- 姓名:小斑 → 大麦
- 定位:AI班主任 → 增长营销分析师
- 核心职能:增长数据分析、营销效果评估、转化漏斗分析、商业化洞察
- Emoji:📚 → 🌾
- 已更新文件:IDENTITY.md、AGENTS.md(@规则同步变更)、MEMORY.md
- SOUL.md 无需改动(行为方法论为通用框架)
16:20 pipeline 非聚光部分验证完成
lark-cli wrapper v0.3 支持的 action:
| 类别 | action | 状态 |
|---|---|---|
| sheets | +read, +write, +append, +info, +meta | ✅ |
| sheets | +create-sheet, +delete-sheet | ✅ |
| sheets | +batch-set-style (stub) | ✅ |
| sheets | +merge-cells, +unmerge-cells | ✅ |
| sheets | +update-dimension | ✅ |
| bitable | +app, +tables, +records, +create, +update | ✅ |
| auth | status | ✅ |
| im | +messages-send (stub) | ✅ |
pipeline 试跑结果(--dry-run):
| 步骤 | 说明 | 耗时 | 状态 |
|---|---|---|---|
| 1a/1a2 | 微伴 xlsx | — | ⏭ 跳过(无 xlsx) |
| 1b/1b2/1c | 聚光 | — | ⏭ 跳过(无 .env.juguang) |
| 2b | 客户主表→订单明细 | 5.1s | ✅ dry-run(真跑数据量大,预计几分钟) |
| 3 | 日报 C1HVN2 | 38.3s | ✅ 真写成功 |
| 4a | 结算月汇总 | <1s | ✅ 真写成功(零警告) |
| 3a/3c/3d/4c | 审计 | — | ⏭ dry-run 跳过 |
修复的 wrapper 兼容性问题:
- API 响应格式:
data.spreadsheet→data.sheets.sheets(lark-cli 兼容) - 参数名:
--values与--data等价处理 - camelCase→snake_case:
sheetId→sheet_id,grid_properties包装 +info端点:v3 metadata → v2 metainfo(含 sheets 列表)update-dimension:PUT /dimension_range,1-indexed
16:48 聚光凭证部署
来源:陈逸鸫 — 从 Mac 发来 .env.juguang.9180 和 .env.juguang.9181,走方案 A(复制文件,不在服务器重 OAuth)
- 9180(云智 adv=9746532):refresh 验证通过 ✅
- 9181(谦禾 adv=9013261,9598861 / YTL adv=7242040,9891870,10157917,10562529):refresh 验证通过 ✅
- OAuth 回调地址:
https://odourless-demetra-cany.ngrok-free.dev/callback.html(ngrok 隧道) juguang_token.py自动 refresh 机制正常
16:56 pipeline 全量试跑 — Linux ARG_MAX 问题
命令: pipeline.py --cutoff 2026-05-27 --skip 1a,1a2,1x,2c,4b --continue-on-error
失败步骤:
| 步骤 | 失败原因 | 状态 |
|---|---|---|
| 1b(聚光代理商) | sheet_write rc=1 → 单格范围问题 |
✅ 已修 |
| 1b2(聚光活跃笔记) | 同 1b | ✅ 已修 |
| 1c(聚光笔记明细) | OSError: [Errno 7] Argument list too long — 3146 行 JSON 超 argv 限制 |
✅ 已修 |
| 2b(客户主表→订单明细) | rc=1,但 351 行数据实际已写入;可能 unmerge-cells 步骤失败(非致命) | ⚠️ 待验证 |
| 3(日报) | — | ✅ 41s |
| 3a(审计) | — | ✅ 25s |
| 3c(审计) | — | ✅ 29.4s |
| 4a(结算月汇总) | — | ✅ 12.9s |
| 4c(指标审计) | — | ✅ 7.3s |
| 3d | 代理商数据不一致(数据质量问题,非代码) | ❌ |
三个底层修复:
- stdin 大数据传递(
metrics_contract.pysheet_write):当data_str > 32768字节时通过input=管道传入 subprocess,绕过 Linux ARG_MAX - 单格范围修复(
bin/lark-cli-impl):a8d375!M70→ 自动补为a8d375!M70:M70,飞书 sheets API 写操作需要完整范围 - check_call→run(
sync_juguang_notes.pysheet_write_range):subprocess.check_call不支持input=, 改用subprocess.run(..., check=True, input=...)
1b 单天验证通过:sync_juguang_agents.py --start 2026-05-27 --end 2026-05-27 写入 12 个单元格成功。全量 27 天在子进程跑,结果待出。
17:12 数据服务边界规则部署 [陈逸鸫]
文档位置: docs/xiaoban-data-boundary.md(git@github.com:chenyd11/feishu-database.git — 服务器无 SSH key 无法 pull)
三条核心规则(已写入 MEMORY.md):
- cron pipeline 和帮同事查数分轨,不能混用同一流程
- 同事请求默认只读;写生产表 CYFTsu 必须 @陈逸鸫 确认
- 查数结果写「输出区」副本,不改主表
操作黑名单: pipeline.py / sync_* / run_juguang_* / sheets +write(生产表) / --promote
待办: 建「大麦查询输出」专用表(待陈逸鸫提供 token) 待办: 获取 docs/xiaoban-data-boundary.md §7 Agent 系统提示词(完整内容)
17:12 Base/看板 cron 分工 [陈逸鸫]
文档: docs/xiaoban-runbook.md §2
| 时间 | 任务 | 状态 |
|---|---|---|
| 07:15 | deploy_funnel_dashboard (Base + 销售漏斗) | ❓ 需部署 |
| 09:50 | deploy_cockpit (Base 二次 + 投放指挥舱) | ⚠️ 需 ~/xhs-tech-dashboard 仓库 |
| 5a | 聚光实时 | ❌ 未进 cron |
| 5b/5e | 销售看板 | ❌ 未进 cron |
xhs-tech-dashboard 仓库需要拉到服务器(路径 ~/xhs-tech-dashboard),待陈逸鸫提供。
17:36 cron 已挂 ✅
[陈逸鸫确认] 三条工作日 crontab:
15 7 * * 1-5 run_xiaoxi_daily.sh # 小溪+Base+漏斗早刷
5 9 * * 1-5 run_juguang_core.sh # 1b+1c+3+审计→DM日报
50 9 * * 1-5 run_juguang_slow.sh # 1b2+Base二次+全量看板
- 微伴段:非 cron,收到 DM xlsx 后触发
run_morning_weiban_from_dm.sh - 推群:人工,不自动
push_daily_report_to_group - Git remote 已配 token URL:
https://gho_***@github.com/chenyd11/feishu-database.git - 陈逸鸫 Mac launchd 已通知关停
17:34 部署完成验证
全链路:auth ✅ · juguang 9180/9181 ✅ · sheets read ✅ · deploy_dashboards 脚本就绪 ✅ · xhs-tech-dashboard 解压到 ~/ ✅
17:56 大麦查询输出表就绪 ✅
[陈逸鸫] 输出表 Token: GCqNsqgzKhfQ5atFLnQcmLcGn4d,Sheet: 查询快照 (fd42b8)
- 实习虾
cli_aa898f32d4799bea已分享编辑权限 - 写入验证通过 (revision 4)
- env var:
XIAOBAN_QUERY_OUTPUT_TOKEN=GCqNsqgzKhfQ5atFLnQcmLcGn4d - 同事查数结果 append
fd42b8!A:G(请求时间/请求人/查询类型/cutoff/查询参数/结果摘要/备注)
17:48 5/27 日报推群成功 ✅
wrapper v0.4 实现 im +messages-send,推送 message_id=om_x100b6eb54f9da0f4b115725198feede
18:30 Pipeline 全链路 dry-run 验证全部通过
[陈逸鸫] 收到微伴 xlsx,触发全链路 dry-run 验证:
| # | 步骤 | 结构 | 数据比对 |
|---|---|---|---|
| 1a | 微伴 → 主表 C 列 | ✅ | 89 行一致 |
| 1a2 | 微伴 → 线索分配 2aNzzy | ✅ | 440 行一致 |
| 1x | 小溪行课 | ✅ | ⚠ 需Bot交互 |
| 1b | 聚光 agent → 主表 | ✅ | 12 格一致 |
| 1b2 | 聚光在投笔记 | ✅ | 3 格(55/30/38)一致 |
| 1c | 聚光日明细 | ✅ | 137 笔记一致 |
| 2b | 客户主表 → 订单 | ✅ | 公式就绪 |
| 3 | 日报 C1HVN2 | ✅ | 四段刷新 |
| 3a/3c | 口径审计 | ✅ | 推群全过 |
| 4a | 结算月汇总 | ✅ | 公式就绪 |
结论:当前表内所有数据与重拉完全一致,零差异,无需刷写。
18:36 小溪行课触发实跑
- 已推 1920 条到小溪查询表(新 Sheet)
- 已 @小溪 到小红书数据需求群,请处理 ~5 条待查询记录
- 表格:
RFIJsXT8FhGHhctY4RwczcOfnac - 等待小溪回填后跑
pull_xiaoxi_results.py回收结果
18:50 PG 实时行课数据全量覆盖
[陈逸鸫确认] 不用等小溪回填那 5 条,直接用 PG user_course_detail 表实时数据覆盖:
- 448 人有新进展(相比小溪历史快照)
- pull → 3PRySY 口径对齐 12/12 ✅
- lesson_cache → C1HVN2 16 格 ✅
- 变化有限(PG=正式课,小溪=体验课,口径不同)
- sync_base (4b) → 多维表格 8 张 ✅ 21.2s
18:54 漏斗看板发布待解决
- funnel HTML 已构建(scripts/build_funnel_dashboard.py ✅)
- 妙搭发布
apps +html-publish需要--as user,bot 模式不支持 - 系统 lark-cli
/usr/local/lib/node_modules/@anthropic/lark-cli可能支持 - 待确认:服务器是否已
lark-cli auth login --as user
19:00 陈逸鸫派 Image2 生图任务
任务: L1-S1-U1《秘密基地》5 课投放用小地图底图
- 模型:gpt-image-2 · 3:4 · 2K · 不要文字
- 风格:太阳朋克 + L1 场景
- 5 张 PNG:U1-L1~U1-L5
- FUNCLOUD_API_KEY 在小研 workspace
.env中可用(fc_eea138933b02b4797ce0779ffb637d8b8a6368db7b435dfdab7b4be1cd254d98) - Brief 文档
/docx/KsVadUTmooO7yYxHaGmc1R0Bn5b+ 投放手册/docx/QhYQdz7PvoN7Eaxmhu0c0Q5UnHe— 均为个人文档,AGENTS.md 规则禁止读取 - 素材库入口:https://llm-dev.valavala.com/web_tools/material_prod
19:30 同事数据查询流程演练 [陈逸鸫测试]
场景:模拟王虹茗请求小龙 4/21-5/20 订单详情,验证三级查询流程
小龙订单查询结果(数据源:3wcle8 销售订单明细,筛选 "小龙" + 2026/04/21-05/20):
- 18 单 | GMV ¥44,375 | 退款 ¥0
- 渠道:销转 11 / 达人 4 / 端内 3
- 客单价:¥599×2 / ¥1,999×9 / ¥3,598×7
- 订单日期分布在 11 天(04/23–05/15)
看板发布全流程梳理:
- 服务器 build HTML + Base sync → DM 陈逸鸫 → Mac 妙搭
html-publish+access-scope-set - 三个看板 App ID:漏斗
app_4k886pmc9x6yt· 指挥舱app_4k79smc6fa1kf· 销售app_4k7qkz9wrga74 - 当前 cron 不自动发布看板,仅 build HTML
王虹茗身份确认: wanghongming@makee.com,user_id 未获取
- 尝试
lark-cli contact +search-user wanghongming@makee.com→ 失败:bot API 缺少search:userscope - 替代方案:让她发消息给大麦(系统自动获取 user_id),或陈逸鸫截图资料页
同事查询三级场景定稿:
- 常规只读 → 直接查,append 输出表
- 权限外用户 → 先通知业务负责人,再决定是否返回
- 写操作 → 回复「这会影响生产数据,已转 @陈逸鸫 确认」
20:20 行课转化分析 [陈逸鸫需求]
需求:行课记录新增当日进线→当天行课 + 7天首课率 + 销售排名 + 日报展示
数据摸底结果:
| 指标 | 5月数据 | 定义 |
|---|---|---|
| 当日进线→当天行课 | 3.0% (4/135) | 进线当天有 chapter settlement |
| 7天线索→首课 | 28.6% (10/35) | 过去7天进线中 小溪阶段≥5 |
按销售拆解:
| 销售 | 当日行课率 | 7天首课率 |
|---|---|---|
| Bob | 7.4% (最高) | 28.6% |
| Tom | 3.7% | 28.6% |
| 吴迪 | 0% | 28.6% |
| 小龙 | 0% | 14.3% (最低) |
改动方案(6处,待陈逸鸫确认后执行):
- 2aNzzy 每日线索分配 — 加 2 列(首课日期 V、当日行课 W)
- 3PRySY 行课情况 — 加 4 列(当日行课数、当日行课率、7天线索数、7天首课率)
- C1HVN2 日报 — 新增「五、行课转化」段
- Base 多维表格 — 3 张表加字段(tbl9HgnKU2qgj4gE / tblB27fjK7mDnxjY / tblxjCeGOPNoLHl6)
- funnel-daily 看板 HTML — 新增「当日转化」+「7天首课」指标
- build_pipeline 脚本 — 新增
scripts/compute_lesson_activation.py(PG→2aNzzy V/W)
关键数据源映射: 进线=2aNzzy C列日期 → 用户ID=2aNzzy → PG user_course_detail 首课日期 → 比对同天 → 写回 2aNzzy V/W
待办汇总
- 📋 陈逸鸫确认行课转化改动方案 → 一口气改 6 处
- 📋 王虹茗 user_id 获取(需她发消息或陈逸鸫截图)
- 📋 数据转发王虹茗 + 写入大麦查询输出表 fd42b8
- 📋 销售看板 build 挂住问题排查
- 📋 Image2 生图任务执行
- ⏳ 全量 pipeline 聚光验证(子进程)
20:52 行课转化全量改动完成
[陈逸鸫确认] 行课记录新增指标:当日进线→当天行课 + 7天首课,6处改动已完成4处:
| # | 位置 | 改动 | 状态 |
|---|---|---|---|
| 1 | 2aNzzy | V/W/X 三列(首课日期/当日行课/7日内行课) | ✅ |
| 2 | 3PRySY | AE-AH 四列(当日行课/当日行课率/7日内首课/7日内首课率) | ✅ |
| 3 | C1HVN2 | 合并 三+五 →「线索→行课转化」 | ✅ |
| 4 | Base | 行课销售月(4)/5月漏斗(3)/销转销售月(2) 加字段 | ⚠️ bot权限不足,需手动 |
| 5 | funnel-daily 看板 | 加行课转化指标 | 📋 待 build 脚本改 |
| 6 | build 脚本 | compute_lesson_activation.py | ✅ |
合并后的 C1HVN2 Section 三:
三、线索→行课转化(5月27日)
指标 小龙 吴迪 Bob Tom 日汇总
企微新增 13 6 14 15 48
当日行课 0 0 0 0 0
当日行课率 0% 0% 0% 0% 0%
7天线索→首课 1 2 2 2 10
7天首课率 7.7% 33.3% 14.3% 13.3% 20.8%
5月全月数据(3PRySY 公式自动计算): Bob 当日行课率 7.4% > Tom 3.7% > 其余 0%;7天首课率 吴迪 28.6% > 小龙 14.3%
关键实现细节:
- 2aNzzy V: PG chapter_settlement_data 最早日期
- 2aNzzy W: 进线当天有 chapter 活动=1
- 2aNzzy X: 进线 7 天内有 chapter 活动=1
- 3PRySY 公式 =COUNTIFS(2aNzzy!O:O,month, 2aNzzy!W:W,1) 等
- 440 条个体行课记录覆盖 3-5 月
- compute_lesson_activation.py 进 cron 后每日自动刷新
待办: Base 字段需陈逸鸫在 UI 手动添加(行课销售月/5月漏斗/销转销售月各加 2-4 个数字字段)
funnel-daily 看板行课激活指标 — 待修复 (21:49)
Bug 1: _read_activations 未过滤汇总行
snapshot_funnel_daily.py 读 2aNzzy O2:X4000 时,只检查 O/P 是否有值,没检查 Q (用户ID),导致汇总行(无 user_id)也被计入。
- 修复: 加
if not uid: continue,只统计有 user_id 的个体小溪记录
Bug 2: key 不匹配
collect_snapshot 合计用 "week_lesson",但 _read_activations 存的是 "week",导致 合计 wk=0。
- 修复: 统一用
"week"key
Bug 3: X列数据 O列分组失真
X列 (7日内行课) 是基于 B列(进线日期) 计算的,但按 O列(行课月) 聚合会导致跨月用户重复计入。5月 O列=505行但个体记录只有约108条/月。
- 初步方案: 先按 O列+Q列过滤(过滤汇总行),暂时接受 O列分组。后续可考虑 B列分组。
待执行 (下次回话)
# 1. 修复 snapshot_funnel_daily.py 两处 bug
# 2. 重建 snapshot + 看板
cd /root/.openclaw/workspace-xiaoban/xhs-ark-dashboard
source scripts/xiaoban_env.sh
python3 scripts/snapshot_funnel_daily.py --date 2026-05-28
python3 scripts/build_funnel_dashboard.py --month 5
~21:50 C1HVN2 日报格式修复
[陈逸鸫] 报 C1HVN2 Section 三「线索→行课转化」格式乱七八糟,数字是 text 而非数字格式。
清理完成:
- G23:G25/G30 stray 值清除 ✅
- Row 19(当日行课)/ Row 21(7天首课)→ int 型正常 ✅
- Row 20/22(百分比行)→ 用 USER_ENTERED 写入 "0.0%"/"14.3%" 字符串 ✅
- H 列测试残渣清除 ✅
⚠️ Row 18(企微新增)仍是 text 格式 — 那些单元格有历史残留 TEXT 格式,底层值已是整数但飞书 UI 强制显示为文本。API 无法修改 cell numberFormat(+batch-set-style 是 stub,repeatCell 调飞书 API 返回 90204)。需陈逸鸫在飞书里选中 B18:F18 → 右键「清除格式」手动修复。
~21:55 lark-cli +write bug 修复
根因: bin/lark-cli-impl 的 +write action 从未读取 --value-input-option 参数,PUT URL 里也没加 ?valueInputOption=USER_ENTERED。参数被完全忽略。
修复:
vio = pargs.get("value_input_option", "RAW")
url_params = f"?valueInputOption={vio}"
result = api("PUT", f"{SHEETS_V2}/spreadsheets/{token}/values{url_params}", ...)
同理 +append 也加了参数支持。
验证: 修复后写 int 到全新单元格 → 飞书正确显示为数字 ✅。但 Row 18 旧单元格 TEXT 格式仍覆盖显示。
~22:00 飞书 Sheets API 公式求值测试
结论:公式无法通过 API 写入并求值。 即使 valueInputOption=USER_ENTERED 修复后,在全新单元格写 =1+2 → FormattedValue 显示文本 "=1+2",不计算为 3。
飞书 Sheets API v2 的 USER_ENTERED 的作用: 数字/日期解析正常 → 公式不支持求值。
陈逸鸫提到 Cursor 可以写公式 — 待确认他用的是什么工具/API。可能路径:Cursor 用了不同端点(Sheets v3?)、不同 auth 方式、或者直接用 Feishu MCP。
~22:05 日报「公式映射」现状
事实: C1HVN2 Section 三当前数字是 compute_lesson_activation.py / pipeline.py step 3 写入的静态值,不是真正的 Feishu 公式。API 层无法写入公式。
正确的「公式映射」方案: 不强求单元格公式,而是 pipeline 脚本作为"公式"—从源表取数→计算→写入。Section 一/二的现有自动化就是这样运行的。需验证 pipeline step 3 是否已覆盖新增的当日行课/7天首课行,如果没覆盖就加进去。
当前 C1HVN2 待修复项
- Row 18(企微新增)TEXT 格式 → 需陈逸鸫手动「清除格式」
- Section 四(销转情况)Row 26-29 数字也是 text 格式 → 同样需手动清除
- 当日行课/7天首课数据 → pipeline 脚本需覆盖 Section 三写入