mj-notes-workflow

star 5

Process unprocessed Get笔记 voice notes — fetch new notes, analyze content across notes, extract tasks/diary/knowledge, and generate an execution plan for user confirmation before executing. Trigger whenever the user says /mj-notes-workflow or asks to process their Get笔记 voice notes, organize recent recordings, handle voice notes, process getnote notes, or automate their note workflow.

makerjackie By makerjackie schedule Updated 5/23/2026

name: mj-notes-workflow description: Process unprocessed Get笔记 voice notes — fetch new notes, analyze content across notes, extract tasks/diary/knowledge, and generate an execution plan for user confirmation before executing. Trigger whenever the user says /mj-notes-workflow or asks to process their Get笔记 voice notes, organize recent recordings, handle voice notes, process getnote notes, or automate their note workflow.

Get笔记 语音笔记自动处理

将 Get笔记 中未处理的语音笔记自动拉取、分析、归类,生成执行计划,经你确认后按主题分组并行执行。

核心概念

每条语音笔记都是混合原料 — 一条笔记里可能同时包含日记、待办事项、灵感、聊天记录。Skill 要做的是:

  1. 跨笔记整体分析,从混乱中提取信号
  2. 按主题合并同类项(而非逐条处理)
  3. 先出计划等你确认,再执行
  4. 记住处理进度,下次增量处理

状态管理

状态文件:~/.agents/mj-notes-workflow/state.json

{
  "last_processed_id": "1910042389700031400",
  "last_run_at": "2026-05-16T01:30:00+08:00",
  "processed_ids": ["id1", "id2"],
  "execution_log": [
    {"run_at": "2026-05-16", "count": 5, "summary": "处理了5条笔记"}
  ]
}

首次运行:如果 state.json 不存在,拉取最近 3 天 的笔记。

工作流

Step 1: 增量拉取

# 有进度记录
getnote notes --since-id <last_processed_id> --limit 50 -o json

# 首次运行(无进度记录)
getnote notes --limit 50 -o json
# 然后用 Python/工具筛选最近 3 天的笔记

如果返回的笔记数量为 0,报告"没有新笔记"并结束。

Step 2: 内容量估算 & 智能分拆

获取所有新笔记后,按 笔记类型 决定读取策略:

笔记类型 (note_type) 处理方式
audio / local_audio / recorder_audio / class_audio / meeting 读完整 content — 你自己的语音记录,包含真实想法和任务
link 只看 title + content 前 200 字 — 外部参考资料(公众号/B站/小红书),标题就足以判断内容
plain_text / img_text / 其他 按情况处理,plain_text 读完整内容,img_text 读标题 + content

估算策略

  • 汇总所有需要读取的内容总长度
  • 总长度 < 3 万字(约 30,000 字符) → 1 个 Agent 全量分析
  • 总长度 ≥ 3 万字 → 按笔记数量均分为多组,每组由独立 Agent 分析(每组约 15,000 - 20,000 字)
  • 如果笔记数量很少(≤ 3 条),即使总长度较大也可以用 1 个 Agent

Step 3: 跨笔记分析

分析阶段的目标是从所有新笔记中提取出结构化信息:

对于 audio 类笔记(你的语音)

  • 逐条阅读完整内容(每条笔记的 title 是 Get笔记 AI 自动生成的摘要,可辅助理解)
  • 提取以下类型的内容:
    • 待办事项/任务指令 — "帮我做XX"、"查一下XX"、"把XX部署一下"等
    • 日记/感想 — 个人记录、今日经历、感受
    • 知识/灵感 — 想到的好点子、值得记录的知识
    • 改进/反馈 — 对产品、流程的改进意见
    • 参考信息 — 聊天记录、别人说的话、临时记录

对于 link 类笔记(外部参考)

  • 仅根据标题和摘要判断内容类型和归属方向
  • 标记为"待归档参考",无需深度分析

跨笔记合并

  • 将分散在不同笔记中的同一主题内容合并
  • 例如:3 条笔记都讨论"小程序教程" → 合并为一个主题分组

Step 4: 生成执行计划

输出格式示例:

📋 本次共处理 8 条新笔记

═══════════════════════════════════════
📔 日记/感想(2条)
═══════════════════════════════════════
1. [标题1] — 记录了关于XX的感受
   → 建议:听起来你最近在关注XX方向,建议可以进一步思考YY
   → 处理:润色后更新回 Get笔记

2. [标题2] — 记录了关于YY的日常
   → 建议:...
   → 处理:润色后更新回 Get笔记

═══════════════════════════════════════
📋 待办事项(3条)
═══════════════════════════════════════
1. [标题3] — "查一下50杯OPC比赛进度"
   → 类型:查询任务
   → 处理:执行查询并返回结果

2. [标题4] — "需要做视觉设计规范"
   → 类型:文档任务
   → 处理:写入 01MVP docs

═══════════════════════════════════════
📚 文档/教程(2条)
═══════════════════════════════════════
1. [标题5] — "录制微信知识付费小店搭建教程"
   → 处理:撰写教程,写入 01MVP docs/tools/

═══════════════════════════════════════
📎 外部参考(1条)
═══════════════════════════════════════
1. [标题6] — "用AI开发微信小游戏"
   → 来源:B站链接
   → 处理:归类到参考知识库,暂不执行

═══════════════════════════════════════

是否按以上计划执行?你可以:
- ✅ 确认执行全部
- ✏️ 补充/修改某个任务后再执行
- 🚫 跳过某些任务
- ❌ 取消本次所有操作

关键规则

  • 必须等待你确认后才能执行任何操作
  • 对于 日记/感想:不需要写详细报告,而是总结"最近记录了哪些内容",并给出你的感受和建议
  • 对于 待办事项:明确标注需要调用的其他技能(如 mj-writer、mj-deploy、mj-cf-dns 等)
  • 计划要有可执行性,每条任务都要有明确的"处理方式"

Step 5: 按主题分组并行执行

你确认后,按主题分组启动多个 Agent 并行执行:

分组 处理方式 目标
日记/感想 润色语言,补充你的感受和建议,更新回 Get笔记 getnote note update <id> --content "..."
文档/教程 写入 01MVP docs(新建或更新) ~/code/makerjackie/01mvp/apps/01mvp-web/content/docs/
公众号素材 调用 mj-writer 技能 生成公众号文章
查询/调研 执行查询,返回结果 直接回答或进一步处理
部署任务 调用 mj-deploy 等相关技能 执行部署
参考归档 整理到知识库 暂存或归类

关于日记/感想

  • 不要大段重写,保持原始语气和风格
  • 做适当润色(修口语、理顺句子)
  • 加上你的反馈和建议 — 读到这篇日记你的感受是什么?有什么建议?
  • 使用 getnote note update <id> --content "..." 更新回原笔记

关于 01MVP 文档

  • 路径:~/code/makerjackie/01mvp/apps/01mvp-web/content/docs/
  • 根据内容判断写入哪个子目录(guide/tools/cases/template 等)
  • 可能新建文件,也可能更新已有文件

Step 6: 更新进度 & 保存摘要

执行完成后:

  1. 更新 state.json

    • last_processed_id 设为本次处理的最后一条笔记 ID
    • 将本次处理的所有 ID 追加到 processed_ids
    • 更新 last_run_atexecution_log
  2. 保存处理摘要到 Get笔记

    getnote save "【语音笔记处理摘要 YYYY-MM-DD】
    
    本次处理了 N 条笔记:
    - 📔 日记/感想:N 条
    - 📋 待办事项:N 条
    - 📚 文档/教程:N 条
    - 📎 外部参考:N 条
    
    执行结果:
    - 更新了 N 条日记
    - 写入 01MVP docs 文件 N 个
    - 调用了 [技能名] 执行了 [任务]
    - ..." --tag "语音笔记处理摘要"
    
  3. 输出最终报告

✅ 本次处理完成!

📊 处理统计
  • 拉取笔记:8 条
  • 分析归类:6 条语音 + 2 条外部参考
  • 执行完成:5 项

📔 日记更新
  • [标题1] → 已更新到 Get笔记
  • [标题2] → 已更新到 Get笔记

📚 文档写入
  • [标题3] → 已写入 01MVP docs/tools/xxx.mdx

📋 待办执行
  • [标题4] → [执行结果]

📎 处理摘要已保存到 Get笔记
📌 下次将从 ID: xxxxxx 开始处理

重要规则

  1. 必须等确认:任何时候都不要在确认前写入文件或执行命令,先出计划
  2. 音频笔记是你的原创audio 类的内容是你的原话,要认真对待;link 类是外部资料,看一眼标题即可
  3. 日记不求详细:日记类不需要写详细报告,总结"最近记录了啥"+你的建议即可
  4. 动态分类:不预设固定类别,根据本次笔记内容自动生成分类
  5. 跨笔记合并:散落在不同笔记中的同一主题要合并处理,不要重复
  6. 智能分拆:内容少就一个 Agent 搞定,内容多才拆分,别过度工程
  7. 处理摘要很重要:每次执行完一定要保存一条摘要到 Get笔记,方便日后回顾
  8. 利用好标题:Get笔记 AI 自动生成的 title 字段已经很准确,可以作为分析的起点
Install via CLI
npx skills add https://github.com/makerjackie/skills --skill mj-notes-workflow
Repository Details
star Stars 5
call_split Forks 0
navigation Branch main
article Path SKILL.md
More from Creator