下载地址
https://www.zhengdianxue.com/wp-content/uploads/skills/cloudhub--cloudhub-weekly-report.zip将提示词发送给你的 AI 安装该 skills
请根据 https://skillhub.cn/install/skillhub.md,安装 @cloudhub/cloudhub-weekly-report。- 云之家工作周报生成技能。当用户说"
- 写周报 / 总结上周工作 / 生成工作周报 / 周报 / weekly report / 云之家周报"
- 时使用:通过 yzj-cli(cloudhub 云之家套件)只读采集上一自然周(周一~周日)的日程、IM 消息、审批、知识库文档等工作痕迹,对照上期周报的"
- 下周工作计划"
- 总结进展,按"
- 核心概要 / 关键工作事项进展(解决方案·项目售前·产品市场·其他)/ 下周计划"
- …(完整说明见下方「阅读全文」)
阅读全文 (展开查看完整说明)
概述
云之家工作周报
技能目录:~/.workbuddy/skills/cloudhub-weekly-report/
目标
自动采集上一自然周云之家内的工作痕迹,对照上期周报的工作计划,生成三段式周报草稿,经用户补充确认后定稿归档,并使每期周报的"下周工作计划"成为下期"进展总结"的对照基准(周报链闭环)。
配置
读取本技能目录下的 config.json(缺失时按默认值创建):
| 字段 | 默认 | 说明 |
|---|---|---|
archive_kb_id | null | 云之家归档知识库 ID(首次定稿时引导用户选择后写回) |
archive_parent_doc_id | null | 知识库内"工作周报"父文档节点 ID |
im_recent_groups | 20 | IM 采集扫描的最近活跃会话数 |
im_first_batch | 20 | 每群首轮拉取消息条数(上限 20,CLI 限制 1~20,超出报 invalid value for --limit) |
im_group_msg_limit | 200 | 每群消息累计上限(防失控) |
attendance_enabled | false | 是否采集考勤打卡流水 |
当前实际值(已配置好,无需重复询问):归档知识库 6a5cc3026d7c9d16929e4e31,父文档 6acccdd604fc5f34a259ca57。
执行流程
Phase 0 前置检查
yzj-cli whoami- 期望返回
success: true且含name/openId/department(如"解决方案部")。 - 返回
credentials_missing/tokenStatus非 valid → 引导用户执行yzj-cli auth login后重试;未登录时不得继续,更不得凭空编内容。 - 记下返回的
openId,Phase 3 采集 IM 时用于判断"哪些消息是我发的/与我相关"。
注意:
contact user get必须带--open-id,不能用来验证登录态;验证登录态一律用whoami。
Phase 1 周界计算
运行周界脚本(确定性逻辑,禁止手工心算替代):
python ~/.workbuddy/skills/cloudhub-weekly-report/scripts/week_range.py输出 JSON 字段:
- 报告周:
report_start/report_end/report_range - 计划周("下周工作计划"对应的一周):
plan_start/plan_end/plan_range - 归档标识:
iso_week/filename(如2026-W41.md)
规则:今天为周日 → 报告周 = 本周一~今天;否则 → 上一个完整周一~周日。计划周 = 报告周结束日次日起 7 天。
Phase 2 读取周报链
- 列出
~/.workbuddy/weekly-reports/*.md,取最近一期(按文件名 ISO 周号判断,排除与本期filename相同的文件)。 - 读取其"三、下周工作计划"章节,逐条提取任务作为本期"关键工作事项进展"的对照基准。
- 无历史周报 → 进入"无基准模式":第二部分直接从采集数据归纳,并在草稿中注明"无上期计划对照,请补充上周计划"。
Phase 3 并行只读采集
所有命令均为只读。参数不确定时先跑 yzj-cli <command> --help 确认,禁止凭印象猜参数。 某数据源报错或无权限 → 跳过并在草稿头部"数据覆盖说明"中注明,不得中断整体流程。
读命令支持 -q/--jq 过滤(如 yzj-cli im group recent -q '.data.list | length'),大输出优先用 --jq 裁剪。
| # | 数据源 | 命令 | 加工要求 |
|---|---|---|---|
| 1 | 本周日程 | yzj-cli calendar event list --start <report_start> --end <report_end> | 提取会议/客户交流/评审事件:时间、标题、地点、参与人(personName、actors;actors 为 null 时用 calendar event participants --id <EVENT_ID> 补) |
| 2 | 下周日程 | yzj-cli calendar event list --start <plan_start> --end <plan_end> | 用于充实"下周工作计划" |
| 3 | IM 活跃群 | yzj-cli im group recent --limit <im_recent_groups> --page 1 | 取 groupId 与群名,识别工作相关群 |
| 4 | IM 消息 | 逐工作群 yzj-cli im message list --group-id <GID> --type newest --limit <im_first_batch>;若最早一条仍在报告周内且群工作相关,用最早 msgId 续翻 --type old --msg-id <MSG_ID> --limit <im_first_batch>,累计不超过 im_group_msg_limit 条。每页 20 条,单次调用翻页不超过 10 页 | 过滤时间在报告周内的消息;提炼与用户本人相关的工作讨论、结论、交办事项。自己主动发起的视为自己负责的项目;群中自己既未发送也未被 @ 的消息,不算本人参与,不计入周报 |
| 5 | IM 精准补捞(可选) | yzj-cli im message search --keyword "<关键词>" --start <report_start> --end <report_end> [--sender-open-id <我的openId>] [--group-id <GID>] | 群消息量大导致时间跨度覆盖不全时,用关键词(如客户名、产品名、项目名)补捞报告周内相关讨论;--sender-open-id 用 Phase 0 的 openId 可直接捞自己发出的全部消息 |
| 6 | 审批 | yzj-cli approval flow list --type myflow --start <report_start> --end <report_end>;必要时补 --type done(同一时间区间) | 支持 --start/--end,时间维度随 --type 变化:myflow 筛单据创建时间、done 筛办理时间、todo 筛接收时间。记录标题、发起时间、状态 |
| 7 | 知识库文档 | yzj-cli doc recent --limit 50(参数不确定先 --help) | 取报告周内新建/更新的文档标题,识别本周产出;也可用 doc search --keyword "<关键词>" 定位特定产出 |
| 8 | 考勤(可选) | yzj-cli attendance record list --start <report_start> --end <report_end>,仅 attendance_enabled=true 时执行 | 仅用于出差/外勤时间线佐证;仅支持查本人打卡流水 |
Phase 4 归纳草稿
- 读取
references/template.md,严格按其模板、四分类语境映射与写作规则生成周报草稿。 - 对上期计划的每一条任务标注进展状态(✅已完成 / 🔄进行中 / ⏸未启动)并附一句话进展说明(必要时简要概括参与人、关键执行记录);计划外的重要工作以 ➕ 标记归入对应类目。
- 概要部分提炼 3~5 条最简要点,只写有结果的重要事项。
- "下周工作计划"按自己负责关键工作相关性顺序平铺编号,不分类、不加类目标题;来源 = 本期未完成事项 + 下周日程 + 采集到的明确交办。
- 同类内容必须合并到同一处,全文不出现重复事项。
- 草稿头部附"数据覆盖说明"(各数据源采集情况)与"待补充清单"(证据不足、需用户口述补充的事项)。
Phase 5 用户确认
将草稿完整输出给用户,等待修改、补充、删减。未经确认不得定稿归档。
Phase 6 定稿归档(本地 + 云之家双写)
仅在用户明确确认定稿后执行:
- 本地:写入
~/.workbuddy/weekly-reports/<filename>(如2026-W41.md),目录不存在则先创建。若文件已存在,先确认是覆盖还是另存。 - 云之家:
config.json中archive_kb_id为空 →yzj-cli doc workspace list(可加--type enterprise)展示知识库列表,请用户选择归档库,写回 config.json。archive_parent_doc_id为空或已失效 →yzj-cli doc list --workspace <KB_ID> --parent-id <父ID>逐层查找标题为"工作周报"的文档;不存在则yzj-cli doc create --workspace <KB_ID> --title "工作周报",节点 ID 写回 config.json。- 创建本期文档并直接挂到父节点下:
yzj-cli doc create --workspace <KB_ID> --title "工作周报(<report_range>)" --parent-id <archive_parent_doc_id>。 - 写入内容:
yzj-cli doc write --id <DOC_ID> --content "<周报 markdown 全文>" --mode overwrite。内容较长时先把 markdown 写入临时文件,再用$(cat <file>)传入,避免命令行转义问题。 - 写入后必须校验:
yzj-cli doc get --id <DOC_ID>只返回元数据(fileSize/version),正文必须用yzj-cli doc block list --id <DOC_ID>读取并抽查关键词。注意:不存在doc read子命令,正确的是doc get。
- 回报归档结果:本地路径 + 云之家文档位置。
Phase 7 收尾(可选)
询问是否需要把周报发送到指定 IM 会话。默认不发送;仅当用户明确指定目标群/联系人后才执行 im message send --group-id <GID> --msg-type text --content "...",发送前展示最终内容摘要。
安全与数据红线
- Phase 0~4 全程只读:不发送 IM、不写/删云之家任何内容、不执行审批操作。
- 云之家写入(doc create/write)与 IM 发送仅在用户明确确认后执行。
- 禁止编造:云之家查不到的工作内容只能列入"待补充清单",不得虚构进展或数据。
- 归属边界:群消息中自己既未发送也未被 @ 的讨论,不计入本人周报。
- 周报内容仅输出给用户本人,不主动共享、不抄送他人。
错误处理
credentials_missing/tokenStatus非 valid → 引导yzj-cli auth login重新授权后重试。- errorCode 43001 → 提示应用 API 权限不足,跳过该数据源并注明。
invalid value for --limit: must be between 1 and 20→ IM 拉取条数超限,必须降到 ≤20 并分页。- IM 翻页异常或超限 → 截断于当前深度,在数据覆盖说明中注明实际拉取条数。
- 本地文件已存在 → 停止写入并询问用户,不静默覆盖。
- 云之家写入失败 → 保留本地归档成功的结果,向用户报告失败原因,重试不超过 2 次。
CLI 速查(已实测校验,0.1.7)
| 用途 | 命令 |
|---|---|
| 登录态/我的身份 | yzj-cli whoami |
| 最近群组 | yzj-cli im group recent --limit 20 --page 1 |
| 群历史消息 | yzj-cli im message list --group-id <GID> --type newest --limit 20 |
| 消息关键词补捞 | yzj-cli im message search --keyword <K> --start <S> --end <E> |
| 日程 | yzj-cli calendar event list --start <S> --end <E> |
| 日程参与人 | yzj-cli calendar event participants --id <EVENT_ID> |
| 我发起的审批 | yzj-cli approval flow list --type myflow --start <S> --end <E> |
| 知识库列表 | yzj-cli doc workspace list |
| 知识库文档列表 | yzj-cli doc list --workspace <KB> [--parent-id <ID>] |
| 建文档(可挂父节点) | yzj-cli doc create --workspace <KB> --title <T> --parent-id <PID> |
| 写文档正文 | yzj-cli doc write --id <ID> --content <MD> --mode overwrite |
| 读文档元数据/正文 | yzj-cli doc get --id <ID> / yzj-cli doc block list --id <ID> |
| 考勤打卡 | yzj-cli attendance record list --start <S> --end <E> |
| 发 IM 消息 | yzj-cli im message send --group-id <GID> --msg-type text --content "..." |
资源
scripts/week_range.py— 周界计算(报告周/计划周/ISO 周号/归档文件名),输出 JSON。references/template.md— 周报模板、四分类语境映射、进展状态标记、写作规则。config.json— 运行配置(知识库 ID、采集参数),由技能自身读写维护。