ai_member_xiaoban/memory/2026-05-28.md
2026-05-29 08:00:01 +08:00

717 lines
34 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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` 等价处理
- camelCasesnake_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=9746532refresh 验证通过
- 9181谦禾 adv=9013261,9598861 / YTL adv=7242040,9891870,10157917,10562529refresh 验证通过
- 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 | 代理商数据不一致数据质量问题非代码 | |
**三个底层修复:**
1. **stdin 大数据传递**`metrics_contract.py` `sheet_write` `data_str > 32768` 字节时通过 `input=` 管道传入 subprocess绕过 Linux ARG_MAX
2. **单格范围修复**`bin/lark-cli-impl``a8d375!M70` 自动补为 `a8d375!M70:M70`飞书 sheets API 写操作需要完整范围
3. **check_call→run**`sync_juguang_notes.py` `sheet_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**
1. cron pipeline 和帮同事查数分轨不能混用同一流程
2. 同事请求默认只读写生产表 CYFTsu 必须 @陈逸鸫 确认
3. 查数结果写输出区副本不改主表
**操作黑名单:** `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`
### 待办汇总
1. 📋 陈逸鸫发 `docs/xiaoban-data-boundary.md` §7 Agent 系统提示词
2. 📋 陈逸鸫发 `docs/xiaoban-runbook.md` §2 部署 checklist
3. 📋 大麦查询输出飞书表 陈逸鸫提供 token
4. 📋 `~/xhs-tech-dashboard` 仓库 clone 陈逸鸫提供访问方式
5. 全量 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.mdAGENTS.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` 等价处理
- camelCasesnake_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=9746532refresh 验证通过
- 9181谦禾 adv=9013261,9598861 / YTL adv=7242040,9891870,10157917,10562529refresh 验证通过
- 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 | 代理商数据不一致数据质量问题非代码 | |
**三个底层修复:**
1. **stdin 大数据传递**`metrics_contract.py` `sheet_write` `data_str > 32768` 字节时通过 `input=` 管道传入 subprocess绕过 Linux ARG_MAX
2. **单格范围修复**`bin/lark-cli-impl``a8d375!M70` 自动补为 `a8d375!M70:M70`飞书 sheets API 写操作需要完整范围
3. **check_call→run**`sync_juguang_notes.py` `sheet_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**
1. cron pipeline 和帮同事查数分轨不能混用同一流程
2. 同事请求默认只读写生产表 CYFTsu 必须 @陈逸鸫 确认
3. 查数结果写输出区副本不改主表
**操作黑名单:** `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`
### 待办汇总
1. 📋 陈逸鸫发 `docs/xiaoban-data-boundary.md` §7 Agent 系统提示词
2. 📋 陈逸鸫发 `docs/xiaoban-runbook.md` §2 部署 checklist
3. 📋 大麦查询输出飞书表 陈逸鸫提供 token
4. 📋 `~/xhs-tech-dashboard` 仓库 clone 陈逸鸫提供访问方式
5. 全量 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 PNGU1-L1U1-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.mdAGENTS.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` 等价处理
- camelCasesnake_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=9746532refresh 验证通过
- 9181谦禾 adv=9013261,9598861 / YTL adv=7242040,9891870,10157917,10562529refresh 验证通过
- 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 | 代理商数据不一致数据质量问题非代码 | |
**三个底层修复:**
1. **stdin 大数据传递**`metrics_contract.py` `sheet_write` `data_str > 32768` 字节时通过 `input=` 管道传入 subprocess绕过 Linux ARG_MAX
2. **单格范围修复**`bin/lark-cli-impl``a8d375!M70` 自动补为 `a8d375!M70:M70`飞书 sheets API 写操作需要完整范围
3. **check_call→run**`sync_juguang_notes.py` `sheet_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**
1. cron pipeline 和帮同事查数分轨不能混用同一流程
2. 同事请求默认只读写生产表 CYFTsu 必须 @陈逸鸫 确认
3. 查数结果写输出区副本不改主表
**操作黑名单:** `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 PNGU1-L1U1-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/2305/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.comuser_id 未获取
- 尝试 `lark-cli contact +search-user wanghongming@makee.com` 失败bot API 缺少 `search:user` scope
- 替代方案让她发消息给大麦系统自动获取 user_id或陈逸鸫截图资料页
**同事查询三级场景定稿:**
1. 常规只读 直接查append 输出表
2. 权限外用户 先通知业务负责人再决定是否返回
3. 写操作 回复这会影响生产数据已转 @陈逸鸫 确认
### 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处待陈逸鸫确认后执行**
1. **2aNzzy 每日线索分配** 2 首课日期 V当日行课 W
2. **3PRySY 行课情况** 4 当日行课数当日行课率7天线索数7天首课率
3. **C1HVN2 日报** 新增行课转化
4. **Base 多维表格** 3 张表加字段tbl9HgnKU2qgj4gE / tblB27fjK7mDnxjY / tblxjCeGOPNoLHl6
5. **funnel-daily 看板 HTML** 新增当日转化」+「7天首课指标
6. **build_pipeline 脚本** 新增 `scripts/compute_lesson_activation.py`PG2aNzzy V/W
**关键数据源映射:** 进线=2aNzzy C列日期 用户ID=2aNzzy PG user_course_detail 首课日期 比对同天 写回 2aNzzy V/W
### 待办汇总
1. 📋 陈逸鸫确认行课转化改动方案 一口气改 6
2. 📋 王虹茗 user_id 获取需她发消息或陈逸鸫截图
3. 📋 数据转发王虹茗 + 写入大麦查询输出表 fd42b8
4. 📋 销售看板 build 挂住问题排查
5. 📋 Image2 生图任务执行
6. 全量 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列分组。
### 待执行 (下次回话)
```bash
# 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 217天首课→ 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`。参数被完全忽略。
**修复:**
```python
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 待修复项
1. Row 18企微新增TEXT 格式 → 需陈逸鸫手动「清除格式」
2. Section 四销转情况Row 26-29 数字也是 text 格式 → 同样需手动清除
3. 当日行课/7天首课数据 → pipeline 脚本需覆盖 Section 三写入