个人知识工作台 · personal-knowledge-workbench
一、这份 Skill 是干什么的
一句话:把散落在你脑子、聊天窗口、文档和会议里的想法、待办、笔记、摘录、目标,收进一条统一的本地流水线,产出可直接用的清单、计划、纪要、报告、卡片与复盘。
什么时候用:
- 你说"帮我整理一下这段笔记 / 这份会议记录 / 今天的工作"——提取结构、行动项、要点。
- 你要写日报、周报、月报、复盘、项目简报,但不想从空白页开始。
- 你在读书、听课、看文章,想顺手沉淀成可检索的卡片和术语表。
- 你有零散想法,需要落成待办、排程、思维导图大纲或 OKR 拆解。
- 你要把一段长文改写成摘要、FAQ、检查清单或另一种风格的正文。
- 你想把常用输出格式(纪要、复盘、日报、笔记)固化成自己的模板反复复用。
什么时候不要用:需要实时联网查资料、需要调用外部 API、需要操作真实日历或任务系统、需要执行代码或访问文件系统之外的任何事情——本 Skill 一概不做。它是纯文本加工与结构化工具,不联网、不执行、不外传内容。
二、设计原则
- 输入宽、输出严:输入可以是随手打的一段话、一个 JSON、一个 Markdown 片段、一个文件路径;输出永远是同一个 JSON 骨架,字段可预测,下游程序能直接消费。
- 零依赖、零联网:不调用任何外部 API,不访问网络,不执行 shell 命令,不读取环境变量。所有"模板"都是字符串,所有"渲染"都是字符串替换。可离线运行,可放进任何 Agent 环境。
- 无敏感权限:不读写系统目录,不修改 PATH,不读取密钥/凭据,不跨进程通信,不下载/上传任何东西。它只会给你一段结构化文本建议。
- 可组合、可串联:24 项功能都挂在同一入口下,上一功能的
data可直接作为下一功能的输入。例如:会议纪要 → 行动项 → 待办排序 → 时间块排程 → 日报。 - 可扩展:加一个新功能 = 在下方 modes 表登记一行 + 写一个纯函数。不改骨架,不改协议。
- 中文优先、命名规范:目录名小写连字符;模式名小写连字符;产物文件名 ASCII 安全;所有输出 UTF-8。
三、通用输入输出契约
3.1 调用格式
调用方把请求写成一个 JSON 对象,字段如下(全部可选,至少给 mode 或自然语言原文):
{
"mode": " meeting-minutes | action-items | todo | schedule | daily-report | weekly-report | monthly-report | review | goal | milestone | note | cornell | zettel | excerpt | idea | mindmap | outline | title | draft | rewrite | summary | glossary | faq | checklist | decision | one-pager | retrieve | template-save | template_load",
"input": "原始文本、笔记、会议记录等(字符串)",
"title": "可选,产出标题",
"date": "可选,YYYY-MM-DD,缺省不填",
"author": "可选,作者署名",
"state": "可选,上一个 mode 返回的 data,用于串联",
"options": {
"template": "可选,已保存模板的名称",
"style": "可选,draft/rewrite 用:正式|口语|精简|生动",
"max_items": "可选,摘要/要点条数上限,默认 7",
"due": "可选,待办截止日期 YYYY-MM-DD"
}
}
如果调用方只给一段自然语言、不带 mode,按以下启发式自动判定(只看关键词,不做语义推理):
| 关键词迹象 | 自动选 mode |
|---|---|
| 会议、纪要、参会、讨论了 | meeting-minutes |
| 待办、要做、todo、下一步 | todo |
| 排程、时间表、几点、时间块 | schedule |
| 日报、今天做了 | daily-report |
| 周报、本周 | weekly-report |
| 月报、本月 | monthly-report |
| 复盘、回顾、反思 | review |
| 目标、想达成、打算 | goal |
| 拆解、里程碑、子任务 | milestone |
| 笔记、整理一下 | note |
| 康奈尔、线索栏 | cornell |
| 卡片、笔记卡、zettel | zettel |
| 读书、摘录、金句 | excerpt |
| 灵感、想法、idea | idea |
| 思维导图、脑图 | mindmap |
| 大纲、提纲、目录 | outline |
| 标题、起个名 | title |
| 正文、帮我写、扩写 | draft |
| 改写、换种说法、润色 | rewrite |
| 摘要、总结、提炼 | summary |
| 术语、词汇、名词解释 | glossary |
| 问答、常见问题、FAQ | faq |
| 清单、checklist、检查表 | checklist |
| 决策、该不该、利弊 | decision |
| 简报、one pager、一页纸 | one-pager |
| 检索、找一下、关联 | retrieve |
| 存模板、保存模板 | template-save |
| 用模板、加载模板 | template-load |
3.2 统一输出骨架
{
"skill": "personal-knowledge-workbench",
"zh_name": "个人知识工作台",
"version": "1.0.0",
"status": "ok",
"mode": "<本次使用的 mode 名>",
"timestamp": "<生成时的 ISO 时间戳,缺省留空字符串>",
"data": { "<mode 专属字段,见第四章>" },
"artifacts": [
{
"kind": "markdown | json | text",
"name": "<建议保存的文件名,ASCII 安全,含 .md/.json/.txt 后缀>",
"content": "<完整可保存的文本>"
}
],
"next_actions": [
"<建议的下一步 mode,例如 'schedule'、'daily-report'>"
],
"warnings": []
}
status:成功为"ok",输入不足以产出时为"need_input",内容疑似包含凭证/密钥等敏感信息时返回"refused"并清空data(见 §6)。artifacts至少一项;name必须 ASCII 安全(可用[a-zA-Z0-9._-]),中文标题放进content的标题行,而不是文件名。warnings:仅记录无害提示,例如"未提供日期,已省略时间线"。
四、24 项功能与字段契约
每项给出:功能名(mode)、一句话用途、输入期望、data 字段、artifacts[0].content 的建议结构。模板正文以字符串形式给出,替换占位符 {{title}}、{{date}}、{{author}}、{{items}} 等。
4.1 todo — 待办清单与优先级排序
把零散事项整理成有序清单。
data:{ "title": str, "items": [ { "task": str, "priority": "P0|P1|P2|P3", "estimate": "分钟数或空", "due": "YYYY-MM-DD 或空", "tag": str, "done": false } ], "group_by": "priority|due|tag|none" }
优先级规则(确定性,不做主观判断):显式给出"今天/尽快/立刻/紧急"→P0;有具体截止日期且距今 ≤2 天→P1;有截止日期 >2 天或无截止但有明确目标→P2;无截止无目标→P3。估算只认原文里出现的数字。
4.2 schedule — 时间块排程
把一组待办铺成一天的时间块。
data:{ "date": str, "blocks": [ { "start": "HH:MM", "end": "HH:MM", "task": str, "source_task": str } ], "rest_blocks": int, "work_start": "HH:MM", "work_end": "HH:MM" }
算法:P0/P1 优先排在上午精力段(默认 09:00–11:30,可通过 options 指定 work_start/work_end);每块默认 45 分钟,块间留 5–10 分钟过渡;每天最多安排 6 个深度工作块,其余为浅层任务与休息,绝不为"休息"编造具体分钟数以外的信息。
4.3 daily-report — 日报
data:{ "date": str, "sections": { "today_done": [str], "in_progress": [str], "blockers": [str], "tomorrow": [str] }, "metrics": { "completed_count": int, "in_progress_count": int, "blocker_count": int } }
模板:
# 日报 · {{date}}
## 今日完成
{{today_done}}
## 进行中
{{in_progress}}
## 阻塞与风险
{{blockers}}
## 明日计划
{{tomorrow}}
---
由 个人知识工作台 生成 · personal-knowledge-workbench v1.0.0
4.4 weekly-report — 周报
data:{ "week_range": str, "highlights": [str], "done": [str], "metrics": [ { "name": str, "value": str } ], "next_week": [str], "risks": [str] }
4.5 monthly-report — 月报
data:{ "month": str, "summary": str, "achievements": [str], "data_points": [ { "name": str, "value": str } ], "reflection": str, "next_month_focus": [str] }
4.6 meeting-minutes — 会议纪要结构化
data:{ "title": str, "date": str, "attendees": [str], "duration": str, "agenda": [str], "discussion": [ { "topic": str, "points": [str], "owner": str } ], "decisions": [str], "action-items": [ { "task": str, "owner": str, "due": str } ] }
模板:标题 → 时间/参会人/时长 → 议题与讨论要点 → 结论 → 行动项表格(任务|负责人|截止|状态)。未识别到参会人时不要编造,写"未提供"。
4.7 action-items — 行动项提取
从任意文本抽取可执行动作。
data:{ "items": [ { "raw": "原文片段", "task": "改写后的动作", "owner": str, "due": str, "priority": "P0|P1|P2|P3", "verified": false } ], "count": int, "unresolved": [str] }
判定标准:动词开头且动作主体可识别 → 行动项;纯讨论/结论 → 进入 unresolved 而非强行派单。
4.8 review — 复盘(KPT / ORID / GROW 四模板)
data:{ "template": "KPT|ORID|GROW|AUTO", "topic": str, "period": str, "sections": { "<四段键>": [str] } }
- KPT:
Keep(继续做)、Problem(问题)、Try(尝试改)。 - ORID:
Objective(事实)→Reflective(感受)→Interpretive(意义)→Decisional(决定)。 - GROW:
Goal→Reality→Options→Will(行动与承诺)。 - AUTO:原文明显含情绪词(累/挫败/开心等)→ ORID;明显含目标与障碍 → GROW;否则 KPT。
4.9 goal — 目标设定(SMART / OKR)
data:{ "method": "SMART|OKR", "goal": str, "specific": str, "measurable": str, "achievable": str, "relevant": str, "time_bound": str, "objective": str, "key_results": [ { "kr": str, "baseline": str, "target": str, "current": str } ] }
SMART 五问由输入直接填充,缺失字段显式标"待补充",绝不代填。
4.10 milestone — 里程碑与子任务拆解
data:{ "goal": str, "milestones": [ { "name": str, "date": str, "depends_on": [str], "tasks": [str] } ], "critical_path": [str], "total_tasks": int }
拆解深度默认两层(里程碑 → 子任务),每层 3–7 项。依赖关系只基于原文明确陈述的先后,不推测。
4.11 note — 笔记整理
data:{ "title": str, "tags": [str], "summary": str, "key_points": [str], "details": [ { "subheading": str, "body": str } ], "questions": [str] }
输出三段式:要点(bullet)→ 细节(小标题分段)→ 遗留问题。
4.12 cornell — 康奈尔笔记法
data:{ "title": str, "cue_column": [str], "note_column": [str], "summary": str }
左右两栏列数与行数严格对应;末尾固定一段 2–4 句摘要。
4.13 zettel — 卡片盒笔记(Zettelkasten)
data:{ "id": "YYYYMMDD-HHMM 或原文指定", "title": str, "tags": [str], "content": str, "links": [ { "to_id": str, "to_title": str, "relation": str } ], "source": str }
编号规则:原文给定则沿用;否则建议 YYYYMMDD-HHMM 并提示调用方可覆盖。链接关系只填原文中明确出现的关联,不虚构卡片。
4.14 excerpt — 读书摘录与金句卡
data:{ "book": str, "author": str, "chapter": str, "quote": str, "page": str, "my_note": str, "tags": [str] }
my_note 若未提供则留空,不要替用户"理解"并代写感想。
4.15 idea — 灵感捕获与 idea 池
data:{ "ideas": [ { "id": str, "title": str, "raw": str, "category": str, "next_step": str, "status": "raw|exploring|parked" } ], "count": int }
分类取:产品|内容|技术|生活|研究|其他(仅当原文无可识别迹象时用"其他")。
4.16 mindmap — 思维导图大纲
data:{ "root": str, "nodes": [ { "level": int, "text": str, "children": int } ], "depth": int, "leaf_count": int }
输出同时给"缩进文本版"(每级两个空格)和"Markdown 无序列表版",二者节点一一对应。
4.17 outline — 文章/文档大纲
data:{ "title": str, "audience": str, "structure": [ { "level": int, "heading": str, "summary": str, "estimated_words": int } ], "total_estimated_words": int }
每节给出一句话 summary 与建议字数,总字数在用户给定范围内;未给范围则不输出估计。
4.18 title — 标题生成
data:{ "topic": str, "titles": [ { "text": str, "style": "直述|疑问|数字|对比|故事", "reason": str } ], "recommendation": str }
固定产出 5 条,每条附生成理由,最后给出推荐。
4.19 draft — 正文扩写
data:{ "title": str, "outline_ref": str, "paragraphs": [ { "heading": str, "text": str, "word_count": int } ], "total_words": int, "tone": str }
按 §3.1 options.style 控制语气;无设定时"正式"。扩写绝不引入原文之外的数字、人名、事实或引语。
4.20 rewrite — 多风格改写
data:{ "original": str, "variants": [ { "style": "正式|口语|精简|生动|学术", "text": str, "word_count": int } ] }
固定 3–5 个变体。改写只动表达,不动事实、数字与专有名词。
4.21 summary — 摘要与要点提炼
data:{ "summary": str, "bullet_points": [str], "max_items": int, "compression_ratio": "保留,如 25%" }
摘要 ≤3 句;bullet 不超过 max_items(默认 7);不重复、不新增事实。
4.22 glossary — 术语表与词汇卡
data:{ "terms": [ { "term": str, "category": str, "definition": str, "example": str, "related": [str] } ] }`
释义只用原文信息;无例证不造例证。
4.23 faq — FAQ / 常见问答
data:{ "topic": str, "qa_pairs": [ { "question": str, "answer": str, "source_snippet": str } ] }
答案逐条绑定原文片段,防止幻觉。
4.24 checklist — 检查清单
data:{ "title": str, "items": [ { "item": str, "rationale": str, "critical": true } ], "critical_count": int, "total": int }
按用户场景给 5–15 项,关键项不超过总数的 1/3,且只把原文明确标"必须/绝不能"的项判为 critical。
4.25 decision — 决策日志与利弊分析
data:{ "decision": str, "context": str, "options": [ { "name": str, "pros": [str], "cons": [str], "weight": int } ], "criteria": [ { "name": str, "weight": int } ], "recommendation": str, "commitments": [str], "review_date": str }
权重由用户给,用户不给就不算总分、只列对比。
4.26 one-pager — 项目简报
data:{ "project": str, "sections": { "背景": str, "目标": [str], "进展": [str], "风险": [str], "下一步": [str], "需要的支持": [str] } }
一页纸原则:每节不超过 5 条,总字数控制在 800 字内。
4.27 retrieve — 知识检索与关联推荐
data:{ "query": str, "matches": [ { "id": str, "title": str, "snippet": str, "score": 0.0, "reason": str } ], "fallback": str }
匹配只用本地已存的 state.notes(调用方通过 state 传入的笔记数组)。未传入时 matches 为空并给出 fallback 提示,绝不虚构检索结果。score 用归一化后的词频/覆盖度(0–1),不冒充语义相似度。
4.28 template-save — 保存自定义模板
data:{ "template_name": str, "mode": str, "slots": [str], "body": str }
校验:template_name 只能 [a-z0-9-]+,长度 2–40;slots 是占位符名数组;body 为含 {{slot}} 占位符的字符串。校验失败返回 status: "need_input"。
4.29 template-load — 加载并使用自定义模板
data:{ "template_name": str, "filled": str, "missing_slots": [str] }
未提供值的位置保留 {{slot}} 原样,不删除、不猜测。
五、串联编排示例
请求只给一句"把这段会议记录整理成纪要,抽出行动项,排进明天的时间表,再写今天的日报",处理顺序:
meeting-minutes→ 拿到data.action_items。action-items→ 拿到结构化任务。todo(带state)→ 产出优先级。schedule(带options.date为明天)→ 时间块。daily-report(带state)→ 日报。- 最终只返回一个 JSON,
mode记为pipeline,artifacts含 4 份产物,next_actions给出"是否同步到周报"。
六、安全与内容规则
- 不输出敏感信息:若输入疑似含 API Key、Token、密码、私钥、身份证号、银行卡号等,对应字段返回
status: "refused",data置空,并在warnings中说明"已拒绝处理疑似凭证内容"。不记录、不复述、不掩码保留。 - 不联网、不执行:禁止调用任何网络 API、禁止执行 shell/脚本/子进程、禁止读取环境变量与系统目录、禁止文件上传下载。
- 不编造事实:扩写、改写、纪要中出现的数字、人名、日期、引语必须来自输入;缺失则留空或标"待补充"。
- 不越权派单:行动项负责人只在原文明确出现时填写。
- 不上传内容:所有处理在本地完成,输出文本不会发送到任何外部服务。
七、版本与可扩展
- 版本号语义化:
major.minor.patch。1.0.0 覆盖上述 24 项功能。新增功能只增minor,破坏性字段变更升major。 - 新增功能步骤:① 在第三章 modes 表登记 mode 名;② 在第四章补充字段契约;③ 在调用方侧实现纯函数;④ 在 README 的"功能一览"补一行。骨架与协议无需改动。
- 模板完全内联为字符串,不依赖外部模板引擎,无第三方依赖。
八、功能一览
| # | mode | 中文名 | # | mode | 中文名 |
|---|---|---|---|---|---|
| 1 | todo | 待办与优先级 | 16 | mindmap | 思维导图大纲 |
| 2 | schedule | 时间块排程 | 17 | outline | 文章大纲 |
| 3 | daily-report | 日报 | 18 | title | 标题生成 |
| 4 | weekly-report | 周报 | 19 | draft | 正文扩写 |
| 5 | monthly-report | 月报 | 20 | rewrite | 多风格改写 |
| 6 | meeting-minutes | 会议纪要 | 21 | summary | 摘要提炼 |
| 7 | action-items | 行动项提取 | 22 | glossary | 术语表 |
| 8 | review | 复盘模板 | 23 | faq | 常见问答 |
| 9 | goal | 目标设定 | 24 | checklist | 检查清单 |
| 10 | milestone | 里程碑拆解 | 25 | decision | 决策日志 |
| 11 | note | 笔记整理 | 26 | one-pager | 项目简报 |
| 12 | cornell | 康奈尔笔记 | 27 | retrieve | 知识检索 |
| 13 | zettel | 卡片盒笔记 | 28 | template-save | 存模板 |
| 14 | excerpt | 读书摘录 | 29 | template-load | 用模板 |
| 15 | idea | 灵感捕获 |