Skip to main content

book-dissection

个人拆书计划--用"三层暗门"方法论每天深度拆解一本书,通过摩擦力提问促进思考, 积累个人成长记录。Use when the user mentions 拆书计划, 拆书, 百日读书, 开始拆书, 今天拆书, 拆书进度, book dissection, reading plan, 我想读书, 每日一书, 阅读计划, 书单, 继续拆书, 拆下一本, or wants to set up a structured daily book-learning routine with AI-guided reflection.

Quellinformationen

Repository
esthersjw/book-dissection-skill
Letzte Quellaktivität
29. Juli 2026 um 02:32
Erkannte Sprache von SKILL.md
Chinesisch
Sterne
9
Forks
4

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
book-dissection
description
个人拆书计划--用"三层暗门"方法论每天深度拆解一本书,通过摩擦力提问促进思考, 积累个人成长记录。Use when the user mentions 拆书计划, 拆书, 百日读书, 开始拆书, 今天拆书, 拆书进度, book dissection, reading plan, 我想读书, 每日一书, 阅读计划, 书单, 继续拆书, 拆下一本, or wants to set up a structured daily book-learning routine with AI-guided reflection.
# 拆书计划 一套结构化的每日读书方法:用"三层暗门"拆解经典书籍的灵魂,通过有摩擦力的提问把书中智慧连接到用户的真实生活,每日一轮深度对话,积累成长记录。 源自真实用户实践:一位用户用这套方法100天拆了100本经典,从《道德经》到《纯粹理性批判》,每天花15-30分钟,形成了跨越十个主题的深度知识图谱。 ## 运行机制 这个skill有三种模式,根据用户状态自动判断: - **Setup模式**:用户还没有拆书计划时触发(首次使用或说"重新开始") - **Daily模式**:cron定时触发或用户说"今天拆书""拆下一本" - **Response模式**:用户回复了拆书提问(可能在任何session中回复,不一定在cron session里) 通过读取拆书数据目录中的 config.json 判断当前状态。配置与书单、进度和每日记录放在同一目录,避免 Skill 安装目录和数据目录各保存一份进度而发生漂移。 ### ❗ 关键规则:写入是流程的一部分,不是后续操作 拆书内容分两步写入文件,不等用户说"存一下": 1. **Daily模式发完拆解后** → 立即将拆解内容(三层暗门+摩擦力提问)写入 `<data_path>/days/day-XX.md` 2. **Response模式给完反馈后** → 在已有的 day-XX.md 末尾追加"用户回答"和"Cola反馈" → 更新 progress.md → 更新 config.json 的 current_day 这样做的原因:拆解和回复可能隔几小时、跨 session、context 被压缩。先写拆解保证内容不丢,后追加回答保证记录完整。 具体步骤见下方 Daily模式 和 Response模式 各自的"写入"章节。 --- ## 存储 首次使用时询问用户存储位置。默认 `~/Desktop/book-dissection/`。 配置文件固定在 `<data_path>/config.json`。Skill 安装目录只存放 Skill 本身,不存放个人运行状态: ```json { "data_path": "/Users/username/Desktop/book-dissection", "total_books": 100, "current_day": 0, "status": "active", "cron_id": "book-dissection-daily", "start_date": "2026-07-03" } ``` **语义约定:** `current_day` 表示已完成的天数。当天正在拆解的是 Day `current_day + 1`。例如 current_day=3 表示前3天已完成,今天要拆第4本。只有用户回复了并得到反馈后,current_day 才 +1。 数据目录结构: ``` <data_path>/ ├── config.json # 唯一运行状态源 ├── booklist.md # 完整书单(按程分组) ├── progress.md # 进度总表 ├── reviews/ # 阶段性回顾(每程结束后) └── days/ # 每日拆书记录 ├── day-01.md └── ... ``` --- ## Setup模式 触发条件:用户选定的数据目录中 config.json 不存在,或用户说"开始拆书计划""重新开始"。 ### 第一步:了解用户 通过对话了解以下信息(不要一次问完,自然对话,2-3轮即可): 1. **核心驱动**:什么问题让你睡不着?你现在最想搞明白的事情是什么? 2. **阅读基线**:你过去读过/喜欢过哪些书?有没有某本书对你影响特别大? 3. **领域偏好**:你希望涉猎哪些领域?(哲学、历史、心理、科学、文学、经济、社会学......) 4. **规模与节奏**:你打算读多少本?(建议30/60/100本,默认每天一本) 5. **定时时间**:每天几点发给你?(让用户选一个适合自己的时间) 6. **存储位置**:拆书记录存哪里?默认放桌面 `~/Desktop/book-dissection/` ### 第二步:生成书单 根据用户的回答生成书单。书单设计原则: - 按"程"分组,每10本为一程,每程有一条暗线主题 - 跨文明、跨时代、跨学科--不是随机堆砌 - 每本书标注"它在回答什么"(一句话描述母题) - 难度递进:前面几程打基础,后面逐渐深入 - 最后一程回到用户自身--带着前面的积累重新审视 书单格式写入 `booklist.md`: ```markdown # 拆书计划 · 书单 > 总计:N本 | 启动日:YYYY-MM-DD > 选书原则:每本书都在回答一个足够重的问题--作者不写就睡不着觉。 --- ## 第一程:[主题名](Day 1-10)-- [一句话描述这程的暗线] | Day | 书名 | 作者 | 它在回答什么 | |-----|------|------|-------------| | 1 | 《书名》 | 作者 | 母题问题 | ... ``` ### 第三步:确认与启动 1. 把书单展示给用户,请确认或调整 2. 用户确认后,在 `<data_path>` 中创建 config.json(此时 current_day=0)、days/ 目录、以及 progress.md(初始内容如下): ```markdown # 拆书计划 · 进度 > 启动日:YYYY-MM-DD | 总计:N本 | 进度:0/N | Day | 书名 | 完成日期 | 状态 | |-----|------|----------|------| ``` 3. **立即执行 Day 1 的拆书**(不等明天,不设 cron)——让用户当场体验完整的一轮:拆解 → 提问 → 用户回答 → 反馈 → 写入 4. Day 1 完成后,问用户:"体验完了,你觉得每天几点发给你比较好?" 5. 用户选定时间后,设置 cron 定时任务,从 Day 2 开始触发 这样做的原因:用户还没拆过书的时候,不知道这个流程多长、什么感觉,没法合理选时间。先体验一轮再定时间,更准确。 设置cron时,prompt必须自包含: ``` 读取 <data_path>/config.json 获取当前状态。这里的 <data_path> 必须在创建 cron 时替换为用户选定的绝对路径,不保留占位符。 读取 <data_path>/booklist.md 获取今天要拆的书(根据 current_day + 1)。 读取 skill 文件 ~/.cola/skills/book-dissection/SKILL.md 了解拆书流程。 然后按 Daily模式 执行当天的拆书。 ``` --- ## Daily模式 触发条件:cron定时触发,或用户主动说"今天拆书""拆下一本"。 ### 执行流程 1. 读取 `<data_path>/config.json` 获取 current_day,并令 N = current_day + 1 2. 检查 `<data_path>/days/day-<N>.md` 和 `<data_path>/progress.md`,先判断当前状态: - **文件不存在**:这是首次生成 Day N,继续执行后面的拆解流程 - **文件存在且没有 `## 用户回答`**:Day N 正在等待回答。读取已有拆解和摩擦力提问,向用户发送一条简短提醒并附上原问题;不要重新生成、覆盖文件或推进 current_day - **文件存在,且 `progress.md` 已将 Day N 标为完成,但 current_day 仍小于 N**:状态发生漂移。先将 config.json 的 current_day 修正为 N,再按修正后的下一天重新判断 - **文件存在且已有 `## 用户回答`,但 progress 或 config 尚未更新**:不要生成下一本。先依据 Response 模式补齐反馈、progress 和 config;无法确认反馈是否完成时,明确询问而不是猜测 3. 只有处于“文件不存在”状态时,才读取 booklist.md 找到 Day N 的书 4. 读取 `references/dissection-prompt.md` 获取拆解方法论 5. 如果不是第一天,快速浏览最近几天的 days/ 记录,了解用户近期状态 **禁止把“day 文件存在”当成“当天已完成”。** 完成的判据是用户回答和 Cola 反馈已经写入、progress.md 已标记完成、config.json 的 current_day 已推进,三者一致。 ### 拆解输出 按三层暗门结构拆解当天的书: **第一层:表面论点** - 作者明确的核心主张,一句大白话讲清楚 **第二层:核心机制** - 支撑论点的结构/逻辑/模型,需要一定专业深度 **第三层:最暗的洞察** - 作者没明说但逻辑推到底的东西,结合对用户的了解来推演 ### 摩擦力提问 拆解完成后,给出一个有摩擦力的提问: - 把书中的问题翻译成"你此刻的生活" - 结合你对用户的了解(记忆、近期对话、之前的拆书回答) - 问题不能用一句漂亮话滑过去 - 一个问题就够,但要让人停下来想 ### 结尾提示 告诉用户:"回复我你的想法,语音或文字都行。这是今天的一轮对话--回复后我会给你反馈,然后今天的拆书就完成了。" 如果用户想继续深聊,不阻止,但默认节奏是一轮。 ### ❗ Daily模式写入(发完拆解后立即执行) 发完拆解和摩擦力提问后,**不要等用户回复**,立即执行: 1. 将拆解内容(三层暗门 + 摩擦力提问)写入 `<data_path>/days/day-<current_day+1>.md`(例如 current_day=3 则写 day-04.md),格式如下: ```markdown --- day: N book: 书名 author: 作者 date: YYYY-MM-DD question: "它在回答什么"的那句话 --- ## 三层暗门 ### 第一层:表面论点 ... ### 第二层:核心机制 ... ### 第三层:最暗的洞察 ... ## 摩擦力提问 ... ``` 2. 此时**不更新** progress.md 和 config.json(这两个等 Response 完成后才更新) 3. Response模式触发时,只需在已有的 day-XX.md 末尾追加 `## 用户回答` 和 `## Cola反馈`,然后更新 progress.md 和 config.json 这一步是为了防止 cron session 结束后拆解内容丢失。写入是发送的一部分,不是回复后的操作。 --- ## Response模式 触发条件:用户回复了当天的摩擦力提问。 **识别方法:** 用户可能不会说"这是我的拆书回答",而是直接说一段自我反思的内容。判断依据: - 内容是否回应了当天拆书的摩擦力提问的主题(读最新的 days/ 文件确认) - 如果当天的 day-XX.md 已存在且没有"用户回答"部分,说明还在等待回复 - 如果当天的 day-XX.md 还不存在(cron还没跑),但用户内容明显回应了 booklist 里当天的书的主题,那就先拆再写 ### 反馈结构 1. **确认**:指出用户回答中说准的部分(具体到哪句话、哪个判断) 2. **拉开视角**:指出可能没看到的一层(不是"你错了",是"这里还有一条缝") 3. **关联**:连接到之前拆过的书或用户的其他生活经历 4. **如果回答本身就是实践**:直接点明--"你活成了这本书的注脚" ### 记录与更新(❗必须立即执行,不等用户要求) 给完反馈后立即执行以下步骤,在同一次回复中完成: 1. 读取 `<data_path>/config.json` 获取 `current_day`(N) 2. 打开 `<data_path>/days/day-<N+1>.md`(Daily模式已经创建了这个文件,里面有拆解内容但没有"用户回答"和"Cola反馈") 3. 在文件末尾追加 `## 用户回答` 和 `## Cola反馈` 两个章节 4. 更新 `<data_path>/progress.md`(追加一行,更新总进度数字) 5. 更新 `<data_path>/config.json` 的 `current_day` 为 N+1(表示这天完成) 6. 告诉用户"今天的拆书存好了,在 days/day-XX.md" ❗ **跨session/context压缩场景的完整流程:** 用户可能隔几小时、在完全不同的session中回复拆书提问。新session的Cola不会有之前的对话记忆。因此识别方法是: - 读 `<data_path>/config.json` 拿到 current_day (N) - 检查 `<data_path>/days/day-<N+1>.md` 是否存在且不含 `## 用户回答` 章节 - 如果是 → 说明 Daily模式已经跑过了但用户还没回复,当前用户消息就是回复 - 读取该文件中的摩擦力提问,结合用户回答给出反馈,然后追加写入 ❗ **如果用户在非 cron session 中回复(比如日常对话中随口答了),一样执行以上全部步骤。不要因为“这不是拆书 session”就跳过写入。** ### 阶段性Review 当 current_day 是10的倍数(完成一程)时,在下一次拆书前先做一次回顾: 1. 读取本程10天的记录 2. 生成回顾内容: - 这一程的10本书串起来讲了什么 - 用户回答中反复出现的主题 - 最有共鸣的是哪本、为什么 - 思维上发生了什么变化 - 下一程的预告与期待 3. 写入 `reviews/review-XX.md` 4. 展示给用户,问问有没有想调整下一程书单的 ### 计划完成 当 current_day == total_books 时: 1. 做最后一次整体回顾(所有程的总结) 2. 移除cron定时任务 3. 将 config.json 的 status 设为 "completed" 4. 恭喜用户完成全部计划 --- ## 其他操作 用户可能随时问: - **"拆书进度"** → 读取 progress.md,展示完成情况 - **"跳过今天"** → current_day + 1,标记为skipped - **"暂停计划"** → 暂停cron,config status设为paused - **"继续计划"** → 恢复cron,config status设为active - **"调整书单"** → 修改 booklist.md 中未完成的部分 - **"看看第N天"** → 读取对应 days/day-XX.md 展示 --- ## 设计哲学 这套方法论的核心不是"快速获取知识",而是"通过书籍产生摩擦"。 - 拆书像喝高浓度代餐奶昔--不替代真正的阅读,但能在15分钟内抓到一本书的灵魂 - 摩擦力提问的价值不在于"正确答案",而在于让用户通过回答暴露自己的思维结构 - 每天一轮的限制是为了节制--避免跑偏,让书的问题在一天里慢慢发酵 - 阶段性回顾是为了看见积累--10本书下来,用户会发现自己的变化 不要把这个流程变成考试。它是对话,是散步,是"你和一本书之间发生了什么"的记录。
Auf GitHub ansehen