Skip to main content

work-notes

工作过程记录与沉淀助理(聚焦"事")。把零散的工作信息按结构沉淀进知识库,五件事: ① 项目进展 — 按业务+项目记录进展,含时间节点; ② 业务范围 — 维护业务方向和关注仓库; ③ 文档收藏 — 解析链接自动收藏,保留原文 source; ④ 工作沉淀整理 — 把文档按分类整理进知识库; ⑤ 每日例行 — 每天固定要有产品体验/文档阅读/工作梳理三类日程(不固定时间), 由 heartbeat 心跳在工作日白天范围内检查状态、决定是否提醒,支持飞书通知和跳过记录。 进展中的时间节点转交 task-and-schedule-manager 识别并建提醒;涉及人时同步到 people-kb 档案。 与 team-manager 分工:本技能记录"事"的工作过程,team-manager 记录"人"的工作结果。

跳到安装

来源信息

仓库
llm011/ethan-agent
最近来源活动
2026年8月8日 14:56
检测到的 SKILL.md 语言
中文
星标
8
分支
0

安装方式

默认使用会先检查来源的 Prompt;你也可以切换为直接命令,或下载本地副本。

检查来源文件

决定是否安装前,请先阅读 SKILL.md,以及 SkillsMP 当前展示的配套文件。

文件资源管理器
3 个文件

正在显示 SKILL.md

SKILL.md
来源说明 · 只读预览
name
work-notes
version
1.1.0
description
工作过程记录与沉淀助理(聚焦"事")。把零散的工作信息按结构沉淀进知识库,五件事: ① 项目进展 — 按业务+项目记录进展,含时间节点; ② 业务范围 — 维护业务方向和关注仓库; ③ 文档收藏 — 解析链接自动收藏,保留原文 source; ④ 工作沉淀整理 — 把文档按分类整理进知识库; ⑤ 每日例行 — 每天固定要有产品体验/文档阅读/工作梳理三类日程(不固定时间), 由 heartbeat 心跳在工作日白天范围内检查状态、决定是否提醒,支持飞书通知和跳过记录。 进展中的时间节点转交 task-and-schedule-manager 识别并建提醒;涉及人时同步到 people-kb 档案。 与 team-manager 分工:本技能记录"事"的工作过程,team-manager 记录"人"的工作结果。
trigger
工作进展|项目进展|业务范围|工作沉淀|收藏文档|收藏链接|每日例行|配置每日例行|产品体验|文档阅读|工作梳理|每日回顾|今天不做|每天需要|每天安排|每天固定|每天习惯|每天阅读|每天梳理|固定时间
author
Ethan Agent
license
MIT
platforms
["linux","macos","windows"]
metadata
{"ethan":{"tags":["Work","Project","Document","Knowledge","Routine","Daily"]}}
# Work Notes(工作过程记录与沉淀) > 把项目进展、业务范围、文档收藏、工作沉淀、每日例行结构化写入知识库(`scene` 区分 work/life)。 > 时间节点交 `task-and-schedule-manager`;涉及人时同步 `people-kb`。 > **定位**:记录"事"的工作过程。团队成员的工作结果(绩效、CR、表现)归 `team-manager`。 ## 🚫 硬规则 ### R1:写知识库只用 knowledge_* 工具 所有写入通过 `knowledge_add` / `knowledge_edit`。禁止 `file_write` / `shell`,禁止自己拼 vault 路径。 - 新建 → `knowledge_add(title, content, tags, scene, frontmatter)` - 追加 → `knowledge_edit(source, content, mode="append", scene)` - 整篇替换 → `knowledge_edit(source, content, mode="replace", scene, frontmatter)` ### R2:外部来源必传 frontmatter={"source": ...} 内容派生自外部网页/飞书文档/链接时(用户给了 URL,或你用 lark-cli / web_fetch 拉过原文),必传 `frontmatter={"source": "{原始 URL}"}`。固定字段(title/type/tags/created/updated)由后端管理,不重复传;可按需追加 `author`/`published`。 ### R3:scene 区分 工作向(项目、业务、工作沉淀)→ `work`;生活向(个人收藏、生活文档)→ `life`。拿不准默认 `work`。 ### R4:title 命名规范 title 决定文件名。禁止 `/`、`\`、连续 `-`、连续空格、前后空格。外部长标题精简后再填(`文档收藏 - Coze插件协议PRD` 而非塞入原始多层标题)。版本号/日期紧凑:`W28`、`Q2`、`0715`。英文小写。 ## 📇 条目类型 | 类型 | 标题格式 | tags | scene | 写入方式 | |---|---|---|---|---| | 项目进展 | `项目进展 - {业务名} - {项目名}` | `["project", "{业务名}", "{项目名}"]` | work | knowledge_edit(append) | | 业务范围 | `业务范围 - {业务名}` | `["scope", "{业务名}"]` | work | knowledge_edit(replace) | | 文档收藏 | `文档收藏 - {文档标题}` | `["doc", "{业务名}", "{分类}"]` | work/life | knowledge_add | | 工作沉淀 | `{姓名}工作沉淀 - {分类名}` | `["doc", "people", "{姓名}", "{分类名}"]` | work | knowledge_add | | 产品体验 | `产品体验 - {YYYY-MM}` | `["routine", "product", "{YYYY-MM}"]` | work | knowledge_edit(append) | | 工作梳理 | `工作梳理 - {YYYY-MM}` | `["routine", "reflection", "{YYYY-MM}"]` | work | knowledge_edit(append) | | 每日回顾 | `每日例行回顾 - {YYYY-MM}` | `["routine", "daily-review", "{YYYY-MM}"]` | work | knowledge_edit(append) | ## ⚡ 快速路径 ### 业务进展 / 工作进展 **触发**:「更新业务进展」「更新工作进展」,或发文档/链接要求更新进展。只要意图是"把某些项目进展记下来",即使没精确命中 trigger 也走此路径。 1. 读文档/上下文,提取每个项目的关键进展(精简) 2. `knowledge_edit`(append,scene="work")追加到 `项目进展 - {业务名} - {项目名}`: ```markdown ## {YYYY-MM-DD} - {进展条目}(@{姓名}) ``` 3. **涉及具体人的进展** → 同步一条到 people-kb 的 `人物 - {姓名}` 档案(格式见 people-kb 的 `references/profile-format.md`) 4. **含时间节点**(如"8.15 完成")→ 转交 `task-and-schedule-manager` 走定时信号识别 5. 回复:更新了哪些项目、哪些人 ### 项目进展格式 追加到 `项目进展 - {业务名} - {项目名}`: ```markdown ## 2026-07-21 - xxx 开发中(@小王) - xxx 已提测(@小李) ## 2026-07-15 - xxx 已完成上线(@小王) > 路线:7.25 前基础功能,8.15 实现 xxx,8.24 完成 xxx ``` - 每次追加一个 `## {YYYY-MM-DD}` 日期标题 - `>` 引用块写路线/checkpoint(含时间节点,触发 task-and-schedule-manager 识别) - 涉及人时注明 `(@{姓名})` ### 文档 / 链接收藏 **触发**:用户发文档链接、说「收藏这个」「存一下」,或 Agent 处理中解析了任何文档/链接时**自动追加收藏**。 1. 解析:标题、链接、一句话摘要、作者(可选)、日期 2. 判断归属业务(不确定用"未分类") 3. `knowledge_add`(scene 按内容判断): - 标题:`文档收藏 - {文档标题}` - tags:`["doc", "{业务名}", "{分类}"]` - frontmatter:`{"source": "{url}"}`(R2) - 内容: ```markdown - 链接:{url} - 一句话介绍:{摘要} - 作者:{作者} - 日期:{YYYY-MM-DD} ``` > 注:如果用户消息里带 URL,先走 `url-process` 技能做平台识别与抓取,再回到这里做收藏落库。 ### 工作沉淀整理 / 分类写入 **触发**:「整理下 XX 的工作沉淀」「按类别整理进来」。 1. 拉原文(飞书 docx 用 `lark-cli docs +fetch`;网页用 `url-process` / `web_fetch`) 2. 按内容结构分类(技术沉淀、项目复盘、方法论、踩坑总结、团队协作等,由内容决定) 3. **每类一个独立条目**,`knowledge_add`(scene="work"): - 标题:`{姓名}工作沉淀 - {分类名}` - tags:`["doc", "people", "{姓名}", "{分类名}"]` - frontmatter:`{"source": "{原始 URL}"}`(R2) - 内容: ```markdown # {分类名} > 原文:{url} > 作者:{姓名} > 整理日期:{YYYY-MM-DD} {保留关键观点、数据、方法,去口水话} ``` 4. **同步一条到 people-kb** 的 `人物 - {姓名}` 档案(mode=append,scene="work"): ``` ## {MM-DD} - [亮点] 整理了工作沉淀({分类数} 个分类),原文:{url}({HH:MM}) ``` 5. 回复:创建了多少分类、各自标题、原文链接已写 front matter ### 每日例行(产品体验 / 文档阅读 / 工作梳理) **触发**:「每日例行」「配置每日例行」「产品体验」「文档阅读」「工作梳理」「每日回顾」「今天不做 XX」。 **核心理念**:每天固定要有这三类日程,但不固定执行时间。由 heartbeat 心跳在时间范围内检查状态、决定是否提醒,而非 cron 定时触发。 #### 三类例行内容 | 例行 | 建议时段 | 时长 | 做什么 | |---|---|---|---| | 产品体验 | 上午 | 20-30 分钟 | 真实使用自家产品,发现可用性/功能/性能问题与灵感 | | 文档阅读 | 午后/下午 | 20-30 分钟 | 读一篇技术/业务文档,提取观点+启发 | | 工作梳理 | 下午尾声/傍晚 | 15-20 分钟 | 挑 1-2 个核心事项,梳理状态/思考/下一步 | 建议时段只是参考,用户可在时间范围内任意时间执行。可跳过、可合并、可调整。 #### 驱动机制:heartbeat + 状态文件 **不使用 cron 定时**。通过 heartbeat 心跳驱动,心跳每次触发时检查状态文件决定是否提醒。 **1. 配置(首次使用)** 用户说「配置每日例行」时,Agent 询问并写入配置文件 `{workspace}/system/routine-config.json`: ```json { "enabled": true, "workdays": [1, 2, 3, 4, 5], "time_range": {"start": "09:00", "end": "19:00"}, "suggest_windows": { "product": ["09:00", "12:00"], "reading": ["13:00", "16:00"], "reflection": ["16:00", "19:00"] }, "max_reminds_per_day": 2, "notify_channel": null } ``` - `workdays`:工作日(1=周一 … 7=周日),默认周一到周五 - `time_range`:心跳处理例行的时间范围,范围外不提醒 - `suggest_windows`:各类例行的建议时段(提醒只在这些时段内触发) - `max_reminds_per_day`:每类每日最多提醒次数(默认 2 次:开始时 1 次+临近结束 1 次) - `notify_channel`:通知渠道,`null` 表示未配置 **通知渠道配置**:Agent 主动询问「要不要配置飞书通知?每天到点提醒你」。用户同意后: - 询问飞书账号(open_id 或姓名),用 `lark-cli contact +search` 解析成 open_id - 写入 `notify_channel: {"type": "lark", "open_id": "ou_xxx"}` - **每次用户使用每日例行功能时,若 `notify_channel` 为 null,都提醒一次**「还没配置通知渠道,要配置吗?」 **2. heartbeat 指令** 配置完成后,Agent 调用 `heartbeat_add` 工具注册心跳任务(工具自动分配编号、去重、保证格式): ``` heartbeat_add(task_type="agent", task="work-notes") ``` > 工具会在 heartbeat.md 追加一行如 `1 [agent:work-notes]`。具体心跳检查流程在本 SKILL.md 的「心跳检查流程」中定义。 > 若要移除:`heartbeat_remove(task_id=<编号>)`,编号用 `heartbeat_list()` 查。 **3. 状态文件**:`{workspace}/system/routine-state.json` ```json { "date": "2026-08-03", "routines": { "product": {"done": false, "remind_count": 0, "skip_reason": null, "last_remind": null, "last_done_time": null}, "reading": {"done": false, "remind_count": 0, "skip_reason": null, "last_remind": null, "last_done_time": null}, "reflection": {"done": false, "remind_count": 0, "skip_reason": null, "last_remind": null, "last_done_time": null} } } ``` **4. 心跳检查流程**(heartbeat 触发时 Agent 执行) ``` 1. 读 routine-config.json,若 enabled=false 或当前不在 workdays/time_range 内 → 跳过 2. 读 routine-state.json: a. 若 date != 今天 → 先归档昨天的状态(写入知识库「每日例行回顾」),再初始化今天的新状态 b. 遍历三类例行,对每一类: - 若 done=true 或 skip_reason!=null → 跳过 - 若当前时间不在 suggest_windows 内 → 跳过 - 若 remind_count >= max_reminds_per_day → 跳过 - 否则 → 发提醒,remind_count++,last_remind=当前时间 3. 提醒发送: - 若 notify_channel 已配置 → 通过 lark-cli im +send 发飞书消息给主人 - 若未配置 → 不发通知,但下次用户交互时提醒配置 4. 更新 routine-state.json ``` **提醒消息格式**(飞书): ``` 【每日例行提醒】{YYYY-MM-DD} 还没做:产品体验 建议时段:上午 09:00-12:00 回复「产品体验」开始记录,或回复「今天不做产品体验,因为...」跳过 ``` **5. 用户执行例行** 用户说「产品体验」/「文档阅读」/「工作梳理」时: 1. 走下文的执行路径 2. 执行完成后,更新 routine-state.json:`done=true`,`last_done_time=当前时间` 3. 若 notify_channel 未配置,提醒一次「要配置飞书通知吗?」 **6. 跳过处理** 用户说「今天不做 XX,因为 YY」: - 更新 routine-state.json:`skip_reason="YY"` - 之后当天不再提醒该类 - 跳过原因会记入每日回顾 **7. 每日回顾** 触发:「每日回顾」/「今天的例行总结」/ 心跳在 time_range 结束前最后一次触发 1. 读 routine-state.json,汇总今日三类完成情况(done / skip_reason / 未做无原因) 2. `knowledge_edit`(append,scene="work")追加到 `每日例行回顾 - {YYYY-MM}`: ```markdown ## {MM-DD} - 产品体验:✅ {一句话} / ❌ 跳过({原因})/ ❌ 未做 - 文档阅读:✅ {一句话} / ❌ 跳过({原因})/ ❌ 未做 - 工作梳理:✅ {一句话} / ❌ 跳过({原因})/ ❌ 未做 - 明日重点:{1-2 件要跟进的事} ``` 条目不存在时先 `knowledge_add`(tags: `["routine", "daily-review", "{YYYY-MM}"]`) **8. 跨天重置** 心跳在新的一天首次触发时: 1. 归档昨天的状态到知识库(走「每日回顾」流程,若昨天没做回顾) 2. 重置 routine-state.json:`date=今天`,所有 routines 恢复初始状态 #### 三类例行的执行路径 **1. 产品体验** 1. 选择一个功能点或使用路径(建议轮换覆盖,不要每天都走同一条路径) 2. 实际走一遍核心流程——是真实使用,不是测试用例执行 3. 记录发现:问题、痛点、灵感、对比竞品的差异 4. `knowledge_edit`(append,scene="work")追加到 `产品体验 - {YYYY-MM}`: ```markdown ## {MM-DD} - 体验路径:{功能/路径名} - 发现:{问题描述或灵感} - 感受:{一句话感受} ``` 条目不存在时先 `knowledge_add`(tags: `["routine", "product", "{YYYY-MM}"]`) 5. 严重问题(影响主流程/数据安全)同步到任务跟踪系统(如已配置 `lark-task`) 6. 更新 routine-state.json:`product.done=true` **2. 文档阅读** 文档来源(任选):技术 spec / 设计文档 / 架构说明 / 业务 PRD / 需求文档 / 行业报告 / 技术博客 / 论文 / 开源项目 README。 1. 读取原文(网页用 `web_fetch`;飞书文档用 `lark-cli docs +fetch`;本地文件用 `file_read`) 2. 提取三层信息:核心观点 / 关键数据 / 对自己工作的启发 3. 走「文档/链接收藏」快速路径创建收藏条目(tags 加 `daily-reading`),内容追加: ```markdown - 关键观点: - {观点1} - {观点2} - 启发:{对自己工作的启发} ``` 4. 若文档中含时间节点或待办,触发 `task-and-schedule-manager` 的定时信号识别 5. 更新 routine-state.json:`reading.done=true` **3. 工作梳理** 事项来源:近期项目进展中未关闭的事项 / 待办清单中优先级最高的 1-2 项 / 用户口述的"最近在忙的" / 阻塞超过 2 天的事项(优先梳理)。 1. 识别 1-2 个核心事项(多了反而散,聚焦才有深度) 2. 对每个事项梳理三件事: - **当前状态**:进度到哪了 / 是否阻塞 / 是否已完成 - **关键思考**:做了什么决策、为什么、有没有更好的选择 - **下一步**:具体动作 + 时间节点(不是"继续推进"这种废话) 3. `knowledge_edit`(append,scene="work")追加到 `工作梳理 - {YYYY-MM}`: ```markdown ## {MM-DD} ### {事项标题} - 状态:{进度/阻塞/已完成} - 思考:{关键决策或反思} - 下一步:{具体动作}(@{时间节点}) ``` 条目不存在时先 `knowledge_add`(tags: `["routine", "reflection", "{YYYY-MM}"]`) 4. 时间节点触发 `task-and-schedule-manager` 识别流程 5. 更新 routine-state.json:`reflection.done=true` ### 业务范围维护 **触发**:「更新业务范围」「记一下我们业务方向」。 `knowledge_edit`(replace,scene="work")整篇维护 `业务范围 - {业务名}`:业务方向、关注仓库、核心项目、关键指标。作为 team-manager CR 分析和绩效汇总的背景。 ## 🔗 关联技能 | 技能 | 联动 | |---|---| | `url-process` | 消息含 URL 时先走它做平台识别与抓取 | | `task-and-schedule-manager` | 进展中的时间节点转交它建提醒 | | `people-kb` | 涉及人的进展/沉淀同步到人物档案 |
在 GitHub 查看
这个 SKILL.md 很大,SkillsMP 这里只预览前一段内容。 在 GitHub 查看