diff --git a/02_卡人(水)/水桥_平台对接/Soul创业实验/写作/写作规范.md b/02_卡人(水)/水桥_平台对接/Soul创业实验/写作/写作规范.md index 72f71850..4ab272c3 100644 --- a/02_卡人(水)/水桥_平台对接/Soul创业实验/写作/写作规范.md +++ b/02_卡人(水)/水桥_平台对接/Soul创业实验/写作/写作规范.md @@ -93,4 +93,5 @@ - 对话、细节、观点分行,避免大段堆砌 - 用 `---` 做段落分隔(与全书一致) - **分享句**:全文约 20% 处一句(≤50 字)、结尾一句(≤50 字、围绕主题);**不用「干货」二字及「干货:」等格式**,直接一句金句 +- **文件名(强制)**:第9章场次可用「第X场.md」或「第X场-短句.md」体现刺激性观点/效率;短句**不含空格、逗号、全角符号**(如 `第114场-有AI差1万倍.md`、`第115场-可控的事先做.md`),标题同步放在正文第一行,否则部分编辑器会报错。 - 写作与改写第9章文章时,**必须先读本规范**;以后写 Soul 派对场次文章都用这套 diff --git a/02_卡人(水)/水桥_平台对接/飞书管理/SKILL.md b/02_卡人(水)/水桥_平台对接/飞书管理/SKILL.md index 04f1db41..218eb4cf 100755 --- a/02_卡人(水)/水桥_平台对接/飞书管理/SKILL.md +++ b/02_卡人(水)/水桥_平台对接/飞书管理/SKILL.md @@ -34,8 +34,13 @@ python3 /Users/karuo/Documents/个人/卡若AI/02_卡人(水)/水桥_平台 python3 /Users/karuo/Documents/个人/卡若AI/02_卡人(水)/水桥_平台对接/飞书管理/脚本/auto_log.py ``` +**Token 全部命令行操作**(脚本:`脚本/feishu_token_cli.py`): +- `python3 feishu_token_cli.py get-access-token` → 刷新并获取 access_token(写入 `.feishu_tokens.json`) +- `python3 feishu_token_cli.py set-march-token ` → 将 3 月文档 node token 写入本地(`.feishu_month_wiki_tokens.json`),写日志时自动使用 +- `python3 feishu_token_cli.py get-march-token` → 输出当前 3 月 wiki token(环境变量 > 本地文件) + **自动完成**: -1. ✅ **静默Token刷新** → 优先使用refresh_token自动刷新(无需授权) +1. ✅ **静默Token刷新** → 优先使用 refresh_token 自动刷新(无需授权);也可命令行 `get-access-token` 2. ✅ **检查服务** → 自动启动后端服务 3. ✅ **月份路由** → 根据 `X月X日` 自动写入对应月份文档(避免串月) 4. ✅ **写入日志** → 倒序插入(新日期在上) @@ -56,7 +61,7 @@ python3 /Users/karuo/Documents/个人/卡若AI/02_卡人(水)/水桥_平台 ### 2) 写入中:只允许命中当月 token(强制) - 禁止固定一个 `WIKI_TOKEN` 写全年日志。 -- **每月只保持一个文档**:每个自然月对应一个飞书文档(如「2026年3月 (突破执行)」)。若已有该月文档,只在其内写入,**不自动新建**;3 月使用环境变量 `FEISHU_MARCH_WIKI_TOKEN`(飞书已有 3 月文档的 node token,从地址栏 wiki/ 后复制)。 +- **每月只保持一个文档**:每个自然月对应一个飞书文档(如「2026年3月 (突破执行)」)。若已有该月文档,只在其内写入,**不自动新建**;3 月 token 优先:环境变量 `FEISHU_MARCH_WIKI_TOKEN` 或**命令行写入**(见下「Token 命令行」)。 - **3月1日专用**:`脚本/write_0301_feishu_log.py` 写入 3 月 1 日日志到**已有** 3 月文档(继承 2 月 TNTWF 结构、不含 2 月内容),并尝试插入配图;若 API 插入图片报错,可手动将 `参考资料/3月1日日志配图.png` 拖入飞书文档。 ### 2.1) 目标与百分比(强制) diff --git a/02_卡人(水)/水桥_平台对接/飞书管理/脚本/.feishu_tokens.json b/02_卡人(水)/水桥_平台对接/飞书管理/脚本/.feishu_tokens.json index 556ecee6..15e6adce 100644 --- a/02_卡人(水)/水桥_平台对接/飞书管理/脚本/.feishu_tokens.json +++ b/02_卡人(水)/水桥_平台对接/飞书管理/脚本/.feishu_tokens.json @@ -1,6 +1,6 @@ { - "access_token": "u-e0Q048i_V21aHlAonl9XqBlh1CbxghWhogGaEM0022hU", - "refresh_token": "ur-eUOgqdPXh51GxtdCdEqCmAlh1691ghqhWgGaEQg026hF", + "access_token": "u-fW5F.d7ah1XElD2g9EqLu2lh3cb1ghojW0GaVA4027gZ", + "refresh_token": "ur-cXUl0kWhx8wUAclQajYocYlh14HxghgrUMGaIx40271V", "name": "飞书用户", - "auth_time": "2026-03-05T05:29:45.873907" + "auth_time": "2026-03-05T16:59:09.519704" } \ No newline at end of file diff --git a/02_卡人(水)/水桥_平台对接/飞书管理/脚本/feishu_token_cli.py b/02_卡人(水)/水桥_平台对接/飞书管理/脚本/feishu_token_cli.py index 664478dc..94949550 100644 --- a/02_卡人(水)/水桥_平台对接/飞书管理/脚本/feishu_token_cli.py +++ b/02_卡人(水)/水桥_平台对接/飞书管理/脚本/feishu_token_cli.py @@ -1,10 +1,10 @@ #!/usr/bin/env python3 """ -飞书 Token 命令行:获取 access_token、写入/读取月度 wiki token,全部用命令行操作。 +飞书 Token 命令行:获取 access_token、写入/读取当月 wiki token,全部用命令行操作。 用法: - python3 feishu_token_cli.py get-access-token # 刷新并输出 access_token,写入 .feishu_tokens.json - python3 feishu_token_cli.py set-march-token # 将 3 月文档 token 写入本地,供 auto_log 读取 - python3 feishu_token_cli.py get-march-token # 输出当前 3 月 wiki token(env 或本地文件) + python3 feishu_token_cli.py get-access-token # 刷新并获取 access_token(静默写入 .feishu_tokens.json) + python3 feishu_token_cli.py set-march-token # 将 3 月文档 token 写入本地,供写入日志使用 + python3 feishu_token_cli.py get-march-token # 输出当前 3 月 wiki token(环境变量 > 本地文件) """ import os import sys @@ -18,7 +18,7 @@ MONTH_TOKENS_FILE = SCRIPT_DIR / ".feishu_month_wiki_tokens.json" def _load_month_tokens(): if MONTH_TOKENS_FILE.exists(): try: - with open(MONTH_TOKENS_FILE, "r", encoding="utf-8") as f: + with open(MONTH_TOKENS_FILE, encoding="utf-8") as f: return json.load(f) except Exception: pass @@ -31,52 +31,59 @@ def _save_month_tokens(data): def cmd_get_access_token(): + """刷新并获取 access_token,写入 .feishu_tokens.json,并输出结果""" sys.path.insert(0, str(SCRIPT_DIR)) - from auto_log import get_token_silent, load_tokens + from auto_log import get_token_silent token = get_token_silent() if token: - print(token) + print("OK") + print(token[:20] + "..." if len(token) > 20 else token) return 0 - print("", file=sys.stderr) + print("FAIL") return 1 -def cmd_set_march_token(token_value): - token_value = (token_value or "").strip() - if not token_value: - print("用法: feishu_token_cli.py set-march-token ", file=sys.stderr) +def cmd_set_march_token(token: str): + """将 3 月 wiki token 写入 .feishu_month_wiki_tokens.json""" + token = (token or "").strip() + if not token: + print("FAIL: token 为空") return 1 data = _load_month_tokens() - data["3"] = token_value + data["3"] = token _save_month_tokens(data) - print(f"✅ 3 月 wiki token 已写入 {MONTH_TOKENS_FILE}") + print("OK") + print("已写入 3 月 wiki token,写今日日志将自动使用") return 0 def cmd_get_march_token(): - # 优先环境变量 - env_tok = os.environ.get("FEISHU_MARCH_WIKI_TOKEN", "").strip() - if env_tok: - print(env_tok) + """输出当前 3 月 wiki token(环境变量 > 本地文件)""" + v = os.environ.get("FEISHU_MARCH_WIKI_TOKEN", "").strip() + if v: + print(v) return 0 data = _load_month_tokens() - tok = data.get("3", "").strip() - if tok: - print(tok) + v = (data.get("3") or "").strip() + if v: + print(v) return 0 - print("", file=sys.stderr) + print("未配置 3 月 token(可用 set-march-token 写入)", file=sys.stderr) return 1 def main(): if len(sys.argv) < 2: - print(__doc__.strip(), file=sys.stderr) + print("用法: get-access-token | set-march-token | get-march-token", file=sys.stderr) return 1 - cmd = sys.argv[1].lower() + cmd = sys.argv[1].strip().lower() if cmd == "get-access-token": return cmd_get_access_token() if cmd == "set-march-token": - return cmd_set_march_token(sys.argv[2] if len(sys.argv) > 2 else None) + if len(sys.argv) < 3: + print("用法: set-march-token ", file=sys.stderr) + return 1 + return cmd_set_march_token(sys.argv[2]) if cmd == "get-march-token": return cmd_get_march_token() print(f"未知命令: {cmd}", file=sys.stderr) diff --git a/02_卡人(水)/水桥_平台对接/飞书管理/运营报表_SKILL.md b/02_卡人(水)/水桥_平台对接/飞书管理/运营报表_SKILL.md index ee26f4ae..81c99e67 100644 --- a/02_卡人(水)/水桥_平台对接/飞书管理/运营报表_SKILL.md +++ b/02_卡人(水)/水桥_平台对接/飞书管理/运营报表_SKILL.md @@ -1,17 +1,105 @@ --- name: Soul派对运营报表 -description: Soul 派对运营数据全自动写入飞书表格(按月份选 2月/3月 标签)→ 会议纪要图片入表 → 发飞书群(数据+纪要图);与智能纪要联动,一站式可执行。含 Token 自动刷新、写入校验、小程序数据。 +description: Soul 派对运营数据全自动写入飞书表格(按月份选 2月/3月 标签)→ 会议纪要图片入表 → 发飞书群(数据+纪要图);与智能纪要联动,一站式可执行。含 Token 自动刷新、写入校验、小程序数据、派对录屏链接。完整流程可复制执行,支持基因胶囊打包。 triggers: 运营报表、派对填表、派对截图填表发群、会议纪要上传、本月运营数据、全部月份统计、派对纪要、智能纪要、106场、107场、113场、114场、115场 parent: 飞书管理 owner: 水桥 group: 水 -version: "2.3" +version: "3.0" updated: "2026-03-04" --- # Soul 派对运营报表 · 基因胶囊 -> **一句话**:派对截图 + TXT → 飞书运营报表(按月份选表)→ 填数据 + 填纪要图 + 发群(文字 + 图片),与**会议纪要**联动,一站式可执行。 +> **一句话**:派对截图 + TXT → 飞书运营报表(按月份选表)→ 填数据 + 填纪要图 + 派对录屏链接 + 发群(文字 + 图片),与**会议纪要**联动,完整流程可复制执行,可打包为基因胶囊。 + +--- + +## 零、完整流程提取(可复制执行) + +以下为从「派对结束」到「报表+群消息+纪要图」全链路的**逐步清单**与**一键命令**,便于 AI 或人工按序执行。 + +### 0.1 流程图 + +```mermaid +flowchart LR + subgraph 输入 + A1[关闭页截图] --> A2[小助手弹窗] + A2 --> A3[派对 TXT] + A3 --> A4[飞书妙记链接] + end + subgraph 步骤 + B1[1. 注册场次+填数据] --> B2[2. 发群文字] + B2 --> B3[3. 生成纪要图] + B3 --> B4[4. 纪要图入表] + B4 --> B5[5. 纪要图发群] + end + subgraph 输出 + C1[飞书运营报表] + C2[飞书群消息] + end + A1 --> B1 + B1 --> C1 + B2 --> C2 + B4 --> C1 + B5 --> C2 +``` + +### 0.2 前置条件 + +| 项 | 说明 | +|:---|:---| +| Python 3 + requests | `pip3 install requests` | +| 飞书 Token | 脚本目录下 `.feishu_tokens.json`,过期时运行 `python3 auto_log.py` | +| 场次已注册 | 在 `soul_party_to_feishu_sheet.py` 中已添加 ROWS、SESSION_DATE_COLUMN、SESSION_MONTH、PARTY_VIDEO_LINKS(可选)、MINIPROGRAM_EXTRA / MINIPROGRAM_EXTRA_3(可选) | +| 派对 TXT | 如 `soul 派对 115场 20260304.txt`,用于纪要文本/纪要图 | + +### 0.3 逐步命令(以 115 场为例) + +| 步 | 动作 | 输入 | 命令 | 输出/校验 | +|:---|:---|:---|:---|:---| +| 1 | 填效果数据+小程序+派对录屏+发群 | 场次号 115 | `cd 飞书管理/脚本 && python3 soul_party_to_feishu_sheet.py 115` | 控制台见「已写入」「已同步推送到飞书群」「已写入派对录屏链接」 | +| 2 | 纪要文本入表(可选) | TXT 路径、日期列 4 | `python3 write_party_minutes_from_txt.py "/path/to/soul 派对 115场 20260304.txt" 4` | 控制台见「已写入派对智能纪要到今日总结」 | +| 3 | 生成纪要图 | 见智能纪要 Skill | JSON→HTML→截图,输出到 `卡若Ai的文件夹/报告/soul_115场_智能纪要_20260304.png` | 得到 PNG 文件 | +| 4 | 纪要图入表 | PNG 路径、sheet-id、date-col | `python3 feishu_write_minutes_to_sheet.py --party-image "卡若Ai的文件夹/报告/soul_115场_智能纪要_20260304.png" --sheet-id bJR5sA --date-col 4` | 控制台见「已上传派对智能纪要图片」 | +| 5 | 纪要图发群 | PNG 路径 | `cd 智能纪要/脚本 && python3 send_to_feishu.py --image "卡若Ai的文件夹/报告/soul_115场_智能纪要_20260304.png"` | 飞书群收到长图 | + +**路径约定**:飞书管理脚本目录 = `02_卡人(水)/水桥_平台对接/飞书管理/脚本/`;智能纪要脚本 = `02_卡人(水)/水桥_平台对接/智能纪要/脚本/`;报告输出 = `卡若Ai的文件夹/报告/`。 + +### 0.4 一键顺序命令块(复制即用) + +```bash +# 假设已配置 115 场且 TXT 与报告路径如下,按顺序执行 +FEISHU_SCRIPT="/Users/karuo/Documents/个人/卡若AI/02_卡人(水)/水桥_平台对接/飞书管理/脚本" +JIYAO_SCRIPT="/Users/karuo/Documents/个人/卡若AI/02_卡人(水)/水桥_平台对接/智能纪要/脚本" +REPORT="/Users/karuo/Documents/卡若Ai的文件夹/报告" +TXT="/Users/karuo/Documents/聊天记录/soul/soul 派对 115场 20260304.txt" + +cd "$FEISHU_SCRIPT" +python3 auto_log.py +python3 soul_party_to_feishu_sheet.py 115 +python3 write_party_minutes_from_txt.py "$TXT" 4 + +# 纪要图需先按智能纪要 Skill 生成 HTML 再截图得到 PNG,再执行: +# python3 feishu_write_minutes_to_sheet.py --party-image "$REPORT/soul_115场_智能纪要_20260304.png" --sheet-id bJR5sA --date-col 4 +# cd "$JIYAO_SCRIPT" && python3 send_to_feishu.py --image "$REPORT/soul_115场_智能纪要_20260304.png" +``` + +### 0.5 新场次从零到完成清单 + +1. **在 `soul_party_to_feishu_sheet.py` 中**:添加 `ROWS['116']`、`SESSION_DATE_COLUMN['116']`、`SESSION_MONTH['116']`,以及在 `_maybe_send_group` 的 `date_label`、`src_date` 中加 `'116'`;若需派对录屏则填 `PARTY_VIDEO_LINKS['116']`;若需小程序则填 `MINIPROGRAM_EXTRA_3['5']`(3 月 5 日)。 +2. **执行填表**:`python3 soul_party_to_feishu_sheet.py 116`。 +3. **可选**:纪要文本 `write_party_minutes_from_txt.py "" 5`;纪要图按智能纪要生成后 `feishu_write_minutes_to_sheet.py --party-image --sheet-id bJR5sA --date-col 5`,再 `send_to_feishu.py --image `。 + +### 0.6 故障排查速查 + +| 现象 | 处理 | +|:---|:---| +| 未找到日期列 | 先 `python3 auto_log.py` 再重试;确认 SESSION_DATE_COLUMN、SESSION_MONTH 与表头一致 | +| 90202 wrong range | 单格写入时 range 写成 `E29:E29` 形式 | +| 派对录屏未写入 | 检查 PARTY_VIDEO_LINKS 是否非空且格式为完整 URL | +| 小程序数据未写入 | 3 月用 MINIPROGRAM_EXTRA_3,键为当月「日期号」如 '4' | +| 飞书群未收到 | 检查 Webhook、机器人是否启用 | --- @@ -407,6 +495,21 @@ SESSION_MONTH = {..., '116': 3} --- +## 十一、基因胶囊打包入口 + +本 Skill 支持打包为基因胶囊,便于继承与分发。打包后产出位于 `卡若Ai的文件夹/导出/基因胶囊/`。 + +```bash +cd /Users/karuo/Documents/个人/卡若AI +python3 "05_卡土(土)/土砖_技能复制/基因胶囊/脚本/gene_capsule.py" pack "02_卡人(水)/水桥_平台对接/飞书管理/运营报表_SKILL.md" +# 或按技能名(在 SKILL_REGISTRY 中匹配) +python3 "05_卡土(土)/土砖_技能复制/基因胶囊/脚本/gene_capsule.py" pack "Soul派对运营报表" +``` + +打包后将生成:胶囊 JSON、基因胶囊功能流程图.md、说明文档.md(含解包命令与引用)。 + +--- + ## 版本记录 | 版本 | 日期 | 说明 | @@ -416,3 +519,4 @@ SESSION_MONTH = {..., '116': 3} | 2.1 | 2026-03-04 | 月份路由:2月/3月 工作表分离(7A3Cy9 / bJR5sA),SESSION_MONTH 防串月;支持 113~115 场;小程序批量 write_miniprogram_batch;运营报表 SKILL 与当前流程同步 | | 2.2 | 2026-03-04 | **智能纪要上传到报表**:§3.2 十步清单(txt→JSON→HTML→PNG→feishu_write_minutes_to_sheet);与智能纪要 Skill 联动;3 月用 --party-image --sheet-id bJR5sA --date-col | | 2.3 | 2026-03-04 | **会议纪要 + 运营报表 + 发群一站式**:文首新增「一站式完整流程」四步(①填数据发群 ②生成纪要图 ③填图片到报表 ④纪要图发群);飞书群统一:数据推送与纪要图发群同 Webhook,纪要图发群用智能纪要 `send_to_feishu.py --image`;§3.2 增加「发群」步骤与说明 | +| 3.0 | 2026-03-04 | **完整流程提取 + 基因胶囊**:新增「零、完整流程提取」:流程图、前置条件、逐步命令表、一键命令块、新场次清单、故障排查;派对录屏链接写入(E29:E29 范围);§十一 基因胶囊打包入口与 pack 命令 | diff --git a/运营中枢/工作台/gitea_push_log.md b/运营中枢/工作台/gitea_push_log.md index b6ea06e6..f4ea709e 100644 --- a/运营中枢/工作台/gitea_push_log.md +++ b/运营中枢/工作台/gitea_push_log.md @@ -232,3 +232,4 @@ | 2026-03-05 05:45:06 | 🔄 卡若AI 同步 2026-03-05 05:45 | 更新:水桥平台对接、运营中枢工作台 | 排除 >20MB: 11 个 | | 2026-03-05 05:46:16 | 🔄 卡若AI 同步 2026-03-05 05:46 | 更新:运营中枢参考资料、运营中枢工作台 | 排除 >20MB: 11 个 | | 2026-03-05 05:47:24 | 🔄 卡若AI 同步 2026-03-05 05:47 | 更新:Cursor规则、水桥平台对接、运营中枢工作台 | 排除 >20MB: 11 个 | +| 2026-03-05 05:50:30 | 🔄 卡若AI 同步 2026-03-05 05:50 | 更新:总索引与入口、水桥平台对接、运营中枢工作台 | 排除 >20MB: 11 个 | diff --git a/运营中枢/工作台/代码管理.md b/运营中枢/工作台/代码管理.md index b32947a3..b3c95dfa 100644 --- a/运营中枢/工作台/代码管理.md +++ b/运营中枢/工作台/代码管理.md @@ -235,3 +235,4 @@ | 2026-03-05 05:45:06 | 成功 | 成功 | 🔄 卡若AI 同步 2026-03-05 05:45 | 更新:水桥平台对接、运营中枢工作台 | 排除 >20MB: 11 个 | [仓库](http://open.quwanzhi.com:3000/fnvtk/karuo-ai) [百科](http://open.quwanzhi.com:3000/fnvtk/karuo-ai/wiki) | | 2026-03-05 05:46:16 | 成功 | 成功 | 🔄 卡若AI 同步 2026-03-05 05:46 | 更新:运营中枢参考资料、运营中枢工作台 | 排除 >20MB: 11 个 | [仓库](http://open.quwanzhi.com:3000/fnvtk/karuo-ai) [百科](http://open.quwanzhi.com:3000/fnvtk/karuo-ai/wiki) | | 2026-03-05 05:47:24 | 成功 | 成功 | 🔄 卡若AI 同步 2026-03-05 05:47 | 更新:Cursor规则、水桥平台对接、运营中枢工作台 | 排除 >20MB: 11 个 | [仓库](http://open.quwanzhi.com:3000/fnvtk/karuo-ai) [百科](http://open.quwanzhi.com:3000/fnvtk/karuo-ai/wiki) | +| 2026-03-05 05:50:30 | 成功 | 成功 | 🔄 卡若AI 同步 2026-03-05 05:50 | 更新:总索引与入口、水桥平台对接、运营中枢工作台 | 排除 >20MB: 11 个 | [仓库](http://open.quwanzhi.com:3000/fnvtk/karuo-ai) [百科](http://open.quwanzhi.com:3000/fnvtk/karuo-ai/wiki) |