--- name: obsidian-todo-collector description: 从 Obsidian 知识库中扫描指定时间范围内未完成事件,生成/更新未完成事件整理文档 license: Apache-2.0 author: github/cafe3310 depends_on_skill: [] depends_on_binary: - python3 --- # Obsidian 未完成事件整理 此技能用于在指定时间范围内,从 Obsidian 笔记中提取并汇总所有未完成的事件和规划性事项,生成一个统一的「未完成事件整理」文档,便于后续跟踪和管理。 ## 处理流程 按照以下步骤执行: ### 步骤1 - 确定范围与目标 - **输入**:用户指定的时间范围。仓库文档文件名前面必然是 YYYY-MM-DD(-hh),可以以通过文件名来筛选出指定时间范围内的文档。 - **目标文档**:新建名为 `YYYY-MM-DD-HH 📅 未完成事件整理.md` 的文档。该文档的结构是 ```md ## 文档生成说明 - 生成原因:整理指定时间范围内的未完成事件,便于后续跟踪和管理。 - 时间范围:{{时间范围}} ## 当前状态 所有待处理文档列表: - [ ] {{待处理文档列表,每个文档使用 [[文件名]] 链接,处理完成后更新为已完成 [x] 状态}} ## 未完成事件列表 {{未完成事件列表,每个都是 ### 🟥 名称。若已经完成,则更新为 ### 🟩 名称}} ## 未完成规划性事项列表 {{未完成规划性事项列表,每个都是 ### 🟥 名称,若已经完成,则更新为 ### 🟩 名称}} ``` 当前状态部分要在下面的循环中实时更新,显示已经处理到哪个日期的文档,以及剩余待处理的文档列表。 其中,「未完成事件」和「未完成规划性事项」的每一项都使用三级标题(###)进行标注,便于在文档中清晰展示。 「未完成事件」指的是具体工作,包括计划的、正在进行中的、未完成的任务。每个事件都应该包含以下信息: - 名称 - 出现在哪些文档(可能是多份文档列表) - 当前状态 「未完成规划性事项」指的是更加抽象的规划性事项,例如项目规划、战略规划等,虽然没有具体的截止日期,但仍然需要跟踪和管理。每个规划性事项也应该包含以下信息: - 名称 - 出现在哪些文档(可能是多份文档列表) - 当前状态 ### 步骤2 - 处理主循环 执行下列循环,以依次处理「未完成事件整理」文档「当前状态」中的每个文档: 步骤2.1. 确定当前批次的「当前文档」:从未完成处理的文档中取出一批,每批最多 3 个文件。 步骤2.2. 预检该批文档:使用 Skill 提供的 Python 脚本进行预检,确保文档符合处理条件。 ```bash python3 scripts/pre_check.py [file] ... --lines 15 ``` 步骤2.3. 通过上述命令的结果,判断 - 文档是否属于「文档摘录」,「语音转写」这两种 - 或文档是否太大(超过 64KB)或太长(超过 1000 行) 如果是,使用 Ask User,询问用户是否跳过(默认选项是跳过)。 如果用户选择跳过,进入下一个文档的处理。 步骤2.4. 阅读文档全文。关注以下内容: - 是否包含未完成事件或工作(尤其是以 🟥 标记的未完成事项)。 - 是否包含未完成规划性事项(尤其是以 🟥 标记的未完成规划性事项)。 - 如果包含,提取相关信息(事情描述;出现的文档;当前状态),并将其添加到「未完成事件整理」文档的相应部分。无须过度处理信息,保持原文的描述即可。 - 如果文档中提及的事项显然已经完成(例如,以 🟩 标记),则更新「未完成事件整理」文档中该事项的状态为完成(🟩)。如果不确定是否完成,可以保留原状态(🟥),以便后续跟踪。 步骤2.5. 对「未完成事件整理」文档用多次批量编辑的方式,更新 未完成事件列表 和 未完成规划性事项列表,并编辑状态有更新的事项。**注意,必须要更新待办事项部分**。 步骤2.6. 在更新了待办事项之后,更新「未完成事件整理」文档的「当前状态」部分,给已经处理完成的文档打已完成 [x] 。这样可以清晰地知道已经处理了哪些文档,哪些文档还未处理。 步骤2.7. 跳回 步骤2.1(确定当前批次的「当前文档」),继续处理下一批文档,直到处理完指定时间范围内的所有文档。 ## 编写要求 - 描述平实、清晰、直接。尽量摘录原始内容,保持原汁原味。 - 用链接 `[[target-doc]]` 引用来源,确保可追溯性。 - 编辑文件的时候,用多次批量 `replace` 工具进行增量更新,禁止使用 `write_file` 全量覆盖,以确保不会误删之前已经记录的内容。 - 编辑文件时,倾向于「追加更新」而不是修改已有内容。我会自己判断每个事项的最终状态。 - 对于「未完成事件整理」文档,在你不确定内容时,尽量先读再写。我会在合适时机 compress 或断点续传,你无须节省 token。 - 如果断点续传,在读取「未完成事件整理」的全文之后,直接从「处理主循环」开始。 - 必须在每一批文件处理后,更新文档中的待办和规划待办。不要提前看下一批文件,即使内容相关。你必须按照批次处理,逐步更新文档。