Week Report System 是一个面向工作场景的、以素材为核心的 AI 周报工作流技能,主要处理工作对话、文档以及近期代码仓库活动,并将这些内容沉淀为可复用的周报素材,最终生成周报。
用途 该技能用于把日常工作中的讨论、文档和仓库提交等活动记录下来,形成结构化的周报素材库,再基于这些素材生成周报。它强调“素材优先”:生成周报时必须先检查结构化素材,而不是仅凭旧的文本日志。
主要能力
- 素材采集:支持三种素材类型——conversation(对话)、document(文档)、repo_activity(仓库活动)。
- Git 后端存储:将工作素材捕获到由 Git 支撑的周知识库中。
- 周报生成:从结构化素材生成周报,并以旧版对话日志作为回退方案。
- 结构化素材优先:materials/.jsonl 是事实来源,.txt 摘要仅作为兼容/调试产物。
- 环境检查:首次使用时检查 WEEK_REPORT_GIT_USERNAME、WEEK_REPORT_GIT_PERSONAL_TOKEN、WEEK_REPORT_GIT_REPO 三个环境变量。
- 本地可观测性:采集失败时保留本地状态证据,不打断用户响应。
使用方式 首次使用需先运行环境检查命令,确认三个环境变量是否已设置;若缺失,则阅读 references/setup_guide.md 并按指引完成配置。 根据用户意图执行不同动作:
- 用户说“写周报”“生成周报”“本周总结”“上周周报”时,进入周报生成流程(references/report_generation.md)。
- 用户说“把这个纳入周报素材”“记录这次讨论”时,必须执行素材采集(references/material_ingestion.md)。
- 用户要求总结某个 plan/experiment 文档并纳入周报时,作为 document 素材采集。
- 用户要求查看某个 repo 最近几天提交并纳入周报时,作为 repo_activity 素材采集。
- 用户询问“周报系统怎么用”“怎么设置”“skill 介绍”时,展示指南(references/user_guide.md)。
- 其他工作相关消息正常回答后,尽力采集一条 conversation 素材。 素材采集流程:构建包含 source_type、project、title、summary、evidence、tags、outcome、next_actions 的结构化素材事件,使用 scripts/material_ingestor.py 或 scripts/conversation_logger.py 持久化,materials/.jsonl 作为事实来源,.txt 摘要仅作兼容/调试视图,并更新本地同步状态文件。 周报生成流程:从 Git 拉取最新数据,优先检查 {year}/week{WW}/materials/ 下的 materials/*.jsonl;若存在结构化素材则以其为基础,仅在结构化素材缺失或不可读时回退到旧版 .txt 日志;按项目/工作流分组,提取证据和成果后渲染报告;可选保存到 {year}/week{WW}/report-{YYYYMMDD}-{HHmmss}.md。
适用场景 适用于需要定期撰写周报、希望把工作对话、文档和代码仓库活动自动沉淀为素材并生成周报的个人或团队。尤其适合重视素材可追溯性、需要结构化记录工作成果的场景。
限制
- 该技能只能在宿主 agent 实际调用它时进行尽力而为的自动采集;技能描述本身不是系统级的回合后钩子,不能声称对每段对话都保证记录。
- 若用户关注完整性,应通过 scripts/material_ingestor.py 显式摄入素材。
- 采集失败不得打断用户响应,但需在本地留下状态线索。
- 对高置信度的敏感内容(如密码、私钥、PAT 或明确表示“不要记录”)应跳过记录。
- 若一次会话跨越午夜,采集的素材必须按日历日期在文件命名中拆分。
- 若采集尝试后 Git 同步失败,必须保留本地状态证据。
- 生成周报时,若存在结构化素材,不得仅依据 *.txt 生成报告。
参考文件与脚本 参考文件:references/setup_guide.md(环境变量缺失时)、references/material_ingestion.md(采集对话/文档/仓库素材时)、references/conversation_tracking.md(尽力而为的对话采集与本地可观测性)、references/report_generation.md(生成报告时)、references/user_guide.md(用户询问如何使用系统时)。 脚本:scripts/git_operations.py(克隆/拉取/推送报告仓库)、scripts/conversation_logger.py(采集对话素材并维护摘要文件)、scripts/material_ingestor.py(显式摄入对话、文档或仓库活动素材)。