|
|
@@ -1,6 +1,6 @@
|
|
|
---
|
|
|
name: feishu-data-publisher
|
|
|
-description: 将本地 CSV、XLS 或 XLSX 数据文件上传并导入为飞书在线电子表格,把链接权限设置为“互联网获得链接的任何人可编辑”,并通过指定飞书机器人将表格卡片发送到目标群聊。用于数据查询完成后发布结果、查找机器人可见群聊、按群名解析 chat_id,或排查飞书上传、导入、权限与群消息问题。
|
|
|
+description: 将本地 CSV、XLS 或 XLSX 数据文件上传并导入为飞书在线电子表格,把链接权限设置为“互联网获得链接的任何人可编辑”,并通过指定飞书机器人将 AI 生成的数据概要和表格卡片发送到目标群聊。用于数据查询完成后发布结果与结论、查找机器人可见群聊、按群名解析 chat_id,或排查飞书上传、导入、权限与群消息问题。
|
|
|
---
|
|
|
|
|
|
# 飞书数据表发布
|
|
|
@@ -9,7 +9,7 @@ description: 将本地 CSV、XLS 或 XLSX 数据文件上传并导入为飞书
|
|
|
|
|
|
## 运行环境
|
|
|
|
|
|
-依赖 `httpx`。脚本只读取 `FEISHU_APP_ID`、`FEISHU_APP_SECRET`、`FEISHU_TARGET_CHAT_ID` 和可选的 `FEISHU_TARGET_CHAT_NAME`。不得把凭证写入 Skill、命令参数、输出文件或回复。
|
|
|
+依赖 `httpx`。脚本只读取当前进程中的 `FEISHU_APP_ID`、`FEISHU_APP_SECRET`、`FEISHU_TARGET_CHAT_ID` 和可选的 `FEISHU_TARGET_CHAT_NAME`,不会自动解析 `.env`。项目使用 `.env` 时,执行脚本前先在该项目目录运行 `source .env`。不得把凭证写入 Skill、命令参数、输出文件或回复。
|
|
|
|
|
|
首次使用或权限报错时阅读 [configuration.md](references/configuration.md)。
|
|
|
|
|
|
@@ -17,22 +17,30 @@ description: 将本地 CSV、XLS 或 XLSX 数据文件上传并导入为飞书
|
|
|
|
|
|
1. 确认用户明确要求上传并发送飞书;仅查询数据时不得自动产生外部副作用。
|
|
|
2. 确认结果文件存在,且后缀为 `.csv`、`.xls` 或 `.xlsx`。
|
|
|
-3. 确认目标群。优先使用用户本次给出的 `chat_id` 或群名,其次使用环境变量。群名不唯一时必须停止并列出候选,不得猜测。
|
|
|
-4. 如需只读检查机器人可见群聊:
|
|
|
+3. 发布数据报表前,读取校验后的聚合结果或复用上游查询 Skill 的分析,按“群卡片概要规则”准备 `summary_message`。无法解释业务指标时只陈述可验证事实,不得编造结论。
|
|
|
+4. 确认目标群。优先使用用户本次给出的 `chat_id` 或群名,其次使用环境变量。群名不唯一时必须停止并列出候选,不得猜测。
|
|
|
+5. 如需只读检查机器人可见群聊:
|
|
|
|
|
|
`python3 "$SKILL_DIR/scripts/publish_table.py" --list-chats --name '前端组'`
|
|
|
|
|
|
-5. 先执行无副作用预检:
|
|
|
+6. 先执行无副作用预检,并传入实际概要:
|
|
|
|
|
|
- `python3 "$SKILL_DIR/scripts/publish_table.py" report.xlsx --dry-run`
|
|
|
+ `python3 "$SKILL_DIR/scripts/publish_table.py" report.xlsx --message "$summary_message" --dry-run`
|
|
|
|
|
|
-6. 用户确认目标和上传意图后执行发布:
|
|
|
+7. 用户确认目标和上传意图后执行发布:
|
|
|
|
|
|
- `python3 "$SKILL_DIR/scripts/publish_table.py" report.xlsx --title '产品效率日报' --message '今日产品效率查询结果'`
|
|
|
+ `python3 "$SKILL_DIR/scripts/publish_table.py" report.xlsx --title '产品效率日报' --message "$summary_message"`
|
|
|
|
|
|
临时覆盖目标群可使用 `--chat-id` 或 `--chat-name`。不要把群 ID 硬编码进 Skill。
|
|
|
-7. 检查 JSON 结果中的 `url`、`permission` 和 `message_sent`。完整成功顺序必须是:上传临时素材、导入在线表格、设置任何人可编辑、发送群卡片。权限失败时不得继续发送链接。
|
|
|
-8. 回复中只给出在线表格链接、目标群名称或 ID、权限结果和消息发送结果;不得输出 access token、app secret、临时上传 token 或完整 API 响应。
|
|
|
+8. 检查 JSON 结果中的 `url`、`permission` 和 `message_sent`。完整成功顺序必须是:上传临时素材、导入在线表格、设置任何人可编辑、发送含概要的群卡片。权限失败时不得继续发送链接。
|
|
|
+9. 回复中只给出在线表格链接、目标群名称或 ID、权限结果和消息发送结果,并说明概要已随群卡片发送;不要重复整段结论,不得输出 access token、app secret、临时上传 token 或完整 API 响应。
|
|
|
+
|
|
|
+## 群卡片概要规则
|
|
|
+
|
|
|
+- 对数据查询报表,`--message` 必须传入实际数据概要;禁止沿用脚本的通用默认文案。
|
|
|
+- 优先复用上游查询 Skill 基于已校验聚合结果生成的结论,确保群卡片和报表口径一致。
|
|
|
+- 概要建议不超过 800 个中文字符,使用简洁 Lark Markdown,包含查询口径、3 至 6 个核心指标、正负向判断和必要的样本或时效风险。
|
|
|
+- 只写报表可验证的事实;基线为零、数据未收全或分组不均衡时明确提示,不夸大因果。
|
|
|
|
|
|
## 权限规则
|
|
|
|