Skip to main content

work-notes

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

الانتقال إلى التثبيت

معلومات المصدر

المستودع
llm011/ethan-agent
آخر نشاط في المصدر
٨ أغسطس ٢٠٢٦ في ١٤:٥٦
لغة SKILL.md المكتشفة
الصينية
النجوم
٨
التفرعات
٠

خيارات التثبيت

يُحدَّد 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