拾光日记 · Daily Journal
概览
一份本地的每日纪实日记。以「拾光日记」的马伯庸流水账体系为写作权威:只记录事实、不抒情、不升华、不鸡汤(写作红线见「拾光日记固定整理规则 · 5 绝对禁止行为」,全文统一遵守);以 拾光日记skill 的三阶段机制为运转方式:
- 捕获(白天):用「记一下:…」随手按五栏记录,原样落盘、低摩擦、不做深加工(语音碎碎念、流水账、片段都接受)。文件名白天用工作名
{YYMMDD} 总结.md。 - 归档(日终):用「归档 / 一天的归档」把全天零散速记合并、规整成语写流水账,并据全天内容提炼标题,将文件重命名为
{YYMMDD} \<标题>.md。 - 复盘(周/月):用「周复盘 / 月总结 / 心情统计」汇总客观事实轨迹,不做主观评价。
存储:默认本地(目录 E:\output\拾光日记,可用环境变量 DAILY_JOURNAL_DIR 覆盖);首次运行可选择「仅本地 / 同步 ima 云端 / 本地+ima」三种保存方式(见「首次运行引导」),仅私有账号可见,绝不推荐至公开广场。
拾光日记固定整理规则(马伯庸流水账体系 · 永久生效)
> 以下规则为本技能的写作权威,严格遵守、永不篡改。
核心总原则
- 完全复刻马伯庸纪实流水账写法:只记录、不抒情、不升华、不鸡汤、不感悟、不主观评判。
- 所有口语碎碎念、语音随手记录、碎片化琐事,全部转化为「客观、具体、写实、一事一条」的极简日记;文字去冗余、去修饰、去情绪化形容词,只留事实轨迹。
1. 文风强制标准
- 拒绝文艺修辞、拒绝总结人生、拒绝情绪拔高、拒绝多余铺垫结尾。
- 语言朴素、平实、克制、干净,像私人生活档案日志,质感清淡纪实。
- 口语自动规整、语病修正、重复删减,但不改原始事实与原意。
- 只写实、不写虚,所有内容落地到「时间、行为、场景、结果」。
2. 固定五栏模板(每日统一结构,永不乱改)
所有日记统一分为五大固定板块,缺项不强行补、有则如实记:
- ① 今日行事(今日事件、行程、琐事、出门、办事、居家日常)
- 一事一条,短句分行。
- 精准记录:去了哪里、做了什么、完成什么、处理什么小事。
- 禁止笼统概括,必须具体写实(工作类事项亦归入此处,记为「办事/工作」;不单独设「工作」栏)。
- ② 今日饮食(早中晚、加餐、饮水、口味、饮食状态)
- 如实记录三餐、零食、饮水、饮食感受,极简客观记录。
- ③ 今日习得(今日新知、学到的东西、看到的干货、规避的坑、新认知)
- 哪怕微小收获、碎片知识点、听到的信息、新理解,全部如实收录。
- ④ 今日阅览(书账、文章、公众号、视频、资讯、浏览学习记录)
- 记录今日一切输入类内容,不限长短。
- ⑤ 细碎随感(仅保留极淡客观心境,无升华)
- 只记录当下状态(疲惫、放松、平淡等平实状态),不分析、不解读、不开导。
3. 排版强制规则
- 开头固定标注:年月日 + 星期 + 天气(可根据对话提取,无则空着)。
- 五大板块固定顺序、固定标题,每日格式统一。
- 每件小事单独一行,短句为主,不堆砌长段落。
- 结构规整、留白清爽、长期统一,方便日后回溯、复盘、检索。
4. 语音 / 碎念适配规则(适配核心使用习惯)
- 随口语音、碎片化语序、无逻辑碎碎念,全部自动结构化归档。
- 不因为说得乱、说得碎、无逻辑,就简化、遗漏、合并事实。
- 口语废话剔除,有效生活信息全部保留。
- 只规整语序,100% 保留真实的当日生活轨迹。
5. 绝对禁止行为(红线)
- 禁止主动添加感悟、总结、人生道理、情绪分析、未来建议。
- 禁止文艺化改写、美化文字、强行高级感。
- 禁止删减微小琐事(流水账核心就是收纳细碎日常)。
- 禁止追问隐私、禁止补写、禁止虚构内容。
6. 长期记忆适配规则
- 永久记住本套马伯庸流水账固定格式,每次生成完全统一模板。
- 持续学习用户的生活节奏、记录口吻、日常琐事风格。
- 后续所有日记严格沿用本规则,无需用户重复交代。
7. 复盘规则(周 / 月)
接到复盘指令时,仅汇总客观事实、行为、输入、生活轨迹,不做主观评价、不做性格分析、不做情绪总结,纯流水账汇总归档。具体流程见下文「复盘」。
何时触发
- 用户说「记一下:\<内容>」「记:\<内容>」「记个:\<内容>」做轻量随手记录(白天高频)。内容可带五栏前缀
行事:/饮食:/习得:/阅览:/随感:直接落区。 - 用户发来语音转写、简短流水账、随手片段,意图落盘为当日日记。
- 用户说「归档 / 今天归档 / 一天的归档 / 收尾今天 / 日终整理」,对当日零散记录做整体收口并按内容重命名。
- 用户说「周复盘 / 本周复盘 / 月总结 / 月度总结 / 心情统计」,生成对应回顾。
- 用户说「记录「...」…」完整句式,或提到「日记 / 流水账 / 每日记录」等意图。
首次运行引导(安装提示 · 环境适配)
> 本 skill 每次被激活、处理首条用户请求前,先执行本节的「首次运行检测」。目的:让用户明确安装要点,并按其选择适配运行环境;非首次则静默按已存配置工作。
首次运行检测
- 标记文件:
E:\output\拾光日记\.initialized。 - 该文件不存在 → 判定为「首次运行 / 新安装」,执行下方「首次运行流程」。
- 该文件已存在 → 读取同目录
.config.json取得save_mode(见「运行环境适配」),跳过提示,直接按已存配置工作。 - 用户说「重新设置 / 初始化日记 / 配置日记」→ 无论是否首次,重新执行「首次运行流程」(覆盖式更新配置)。
首次运行流程
- 建目录(环境适配前置):确保
E:\output、E:\output\拾光日记、E:\output\拾光日记\复盘三个目录存在(不存在则创建)。 - 安装要点提示(用中文、友好、逐条列出),至少覆盖:
- 日记存放位置:E:\output\拾光日记({YYMMDD} 标题.md,同日单文件;复盘/子目录存周/月复盘)。
- 产物输出根目录:E:\output是本机所有 skill 产物的统一根目录,本 skill 在其下用拾光日记子文件夹。
- 保存方式(关键选择):- 本地保留:文件只存本地
E:\output\拾光日记,归档后不清本地。 - 同步 ima 云端:归档后把 md 上传到个人知识库的「木木 / inbox」文件夹,上传成功后才清除本地(防丢数据);需 ima 连接器已连接。
- 两者都要:既存本地又同步 ima 云端,归档后保留本地。
- 提示:选「同步 ima」需确认 ima 连接器已连接且「木木 / inbox」路径可用;未连接会降级为本地保留。注:仅「每日归档」会同步知识库,周/月复盘与心情统计始终仅存本地。
- 本地保留:文件只存本地
- 用 AskUserQuestion 收集选择:
- 问题 1「保存方式」:选项 = 本地保留 / 同步 ima 云端 / 本地+ima 云端(三选一,必答)。
- 问题 2(可选)「日记目录」:默认E:\output\拾光日记/ 改用其它目录(用户填绝对路径或设DAILY_JOURNAL_DIR)。 - 写配置(持久化):在
E:\output\拾光日记\.config.json写入:
json { "initialized": true, "save_mode": "ima | local | both", "journal_dir": "E:\\output\\拾光日记", "output_dir": "E:\\output" }
save_mode取问题 1 的选择;若问题 2 改了目录,同步journal_dir并据此建目录。 - 落标记:创建
E:\output\拾光日记\.initialized(空文件即可),完成首次引导。
运行环境适配
- 每次运行前轻量确认
journal_dir(默认E:\output\拾光日记,或被DAILY_JOURNAL_DIR、配置文件覆盖)目录存在,不存在则创建。 - 按
save_mode调整「归档」步 7 / 步 8 行为(见「归档 · 步 7 / 步 8」条件说明): local:跳过步 7(不传 ima);步 8 改为「保留本地,不清本地」。ima:走步 7 上传 ima;步 8 清除本地(当前默认行为)。both:走步 7 上传 ima;步 8 改为「保留本地,不清本地」。- 安全前置始终生效:无论哪种模式,若 ima 上传失败或连接器未连接,必须保留本地文件并明确告知,绝不静默删除。
- 若标记存在但
.config.json缺失,或save_mode取值非local/ima/both,一律按save_mode: ima默认处理,并提示「配置缺失/取值异常,已用默认(同步 ima)」。
存储与命名
- 目录:默认
E:\output\拾光日记(本机统一 skill 产物根目录为E:\output,本 skill 在其下使用拾光日记子文件夹,日记与复盘均归于此)。解析优先级:用户显式路径 > 环境变量DAILY_JOURNAL_DIR> 默认值。分发给他人时:默认路径为本机专用,接收方应改本文件默认值或设置自己的DAILY_JOURNAL_DIR。 - 日记文件最终命名:
{YYMMDD} \<标题>.md,标题由全天五栏内容提炼的简短总结(如260720 配置调整与git复习.md、260720 居家休整.md)。 - 白天首次生成时内容为空,先用工作名
{YYMMDD} 总结.md。 - 执行「归档」时由技能据内容生成标题,并重命名为最终名
{YYMMDD} \<标题>.md。 - 若用户在记录时显式给出标题(如
标题:配置调整与git复习,或用日期已260720同时指定),直接使用、跳过自动提炼。日期与标题为两个独立字段,互不混用。 - 定位当日文件用 Glob:
E:\output\拾光日记\\{YYMMDD} *.md(兼容有无标题),命中即当日文件;无则创建工作名。 - 复盘文件:子目录
E:\output\拾光日记\复盘\\ - 周复盘:
周复盘_YYYYWW.md(WW 为当年周次,如2026W30) - 月总结:
月总结_YYYYMM.md - 心情统计:
心情统计_YYYYMM.md(也可并入月总结) - 同一天始终落在同一个日记文件:首次写文件,之后追加 / 归档(归档后文件带标题)。复盘文件按周期独立生成。
触发语解析规则
从用户消息提取三类信息:
- 记录内容:
-「」之间的文本;或以记一下:/记:/记个:开头时,取其后的全部文本(可跨多行)作为一条。
- 无显式标记时,把整段非指令文本视为记录内容。
- 若带五栏前缀行事:/饮食:/习得:/阅览:/随感:,直接落对应栏;否则按「内容分类路由」自动判断。 - 目标日期:
已\<YYMMDD>或消息中YYMMDD→ 该日(年取20YY);显式YYYY-MM-DD直接用;无日期 → 当天。 - 天气(可选):若对话中提及天气(如「今天下雨」「大晴天」),归档时填入模板天气行;无则留空。
- 显式标题(可选):记录时若带
标题:\<标题>,作为最终文件名标题,跳过自动提炼。标题字段独立于日期字段(已\<YYMMDD>),不要用总结一词兼作分隔符。
模板(本 skill 内嵌,单文件自包含,无需外部 assets)
本 skill 已将统一模板内嵌于下方,生成当日文件时由流程直接填充占位符(无需任何外部文件,已是单文件自包含):
{DATE_FULL}→ 当天日期YYYY-MM-DD(如2026-07-20){WEEKDAY}→ 当天星期星期X(如星期一)- 文件名用
{YYMMDD}→ 两位年+两位月+两位日(如260720);白天工作名{YYMMDD} 总结.md
天气与归档标记由流程阶段填写:
# {DATE_FULL} 日记({WEEKDAY})
> 天气:(无则空着)
> 拾光日记 · 时光有迹
## ① 今日行事
-
## ② 今日饮食
-
## ③ 今日习得
-
## ④ 今日阅览
-
## ⑤ 细碎随感
-
- 每条建议写成一个
-列表项;复合内容用「条目 + 缩进子项」展开(时间、行为、场景、结果)。 - 捕获阶段建议每条前缀当前时间
HH:MM(如- 14:05 修复 RIL 超时),为归档时间线做准备;时间不可知时省略。 - 占位符
-处理:模板中每栏初始的空-仅为占位。某栏首次写入真实条目时,用Edit替换该空-行(而非在其后追加),避免遗留孤立的-空行;该栏后续条目再正常追加。
工作流程
第一步:解析(见上「触发语解析规则」)
确定 记录内容列表、目标日期、每条落栏(显式前缀或自动分类)、可选天气、可选显式标题。
第二步:定位文件(同日去重)
在 E:\output\拾光日记\\ 下 Glob {YYMMDD} *.md(非递归,兼容有无标题的工作名与已归档文件):
- 命中(当日任意文件,* 匹配任意标题)→ 即当日文件,直接 Read 后追加 / 迭代。
- 未命中 → 首次生成,按下方「第三步 A」用内嵌模板 + 占位符自动填充,由 Write 创建工作名 {YYMMDD} 总结.md。
> 同日去重原则(已内化为本规则):同一天无论工作名还是已归档带标题,都只对应 一个 文件。Glob 命中即视为「已存在、跳过新建」,绝不重复创建、绝不覆盖用户已写内容。
第三步:首次生成 vs 持续迭代
A. 文件不存在(首次生成) —— 用内嵌模板 + 占位符自动填充(占位符填充已内化为本步骤)
1. 计算占位符:取目标日期,得到 {YYMMDD}(如 260720)、{DATE_FULL}(如 2026-07-20)、{WEEKDAY}(如 星期一,星期 + 一二三四五六日 对应周一\~周日)。
2. 用本文件「模板」节内嵌的 Markdown 原文,将 {DATE_FULL} / {WEEKDAY} 替换为实际值,以 Write 创建 E:\output\拾光日记\\{YYMMDD} 总结.md(天气行留空、五栏均留 - 占位)。
3. Read 后把内容插入对应五栏(见「内容分类路由」)。
> 注:占位符自动填充由本步骤直接完成,无需任何脚本。
B. 文件已存在(持续迭代 / 轻量捕获)
1. Read 当日文件。
2. 新内容分类后,Edit 追加到对应栏现有条目之后;若该栏仍为空占位 -,则替换该 - 行为首条内容(不留孤立空行)。
3. 去重:完全相同(或仅标点/空格差异)的条目不重复写。
4. 绝不删除用户已写内容,除非用户明确要求「删掉 / 去掉 …」。
轻量捕获:记一下:
「记一下:\<内容>」是白天高频随手记录格式,强调低摩擦、原样落盘,只捕获、不深加工:
- 内容取标记后全部文本;带
行事:/饮食:/习得:/阅览:/随感:前缀直接落栏,否则自动分类。 - 落盘方式同「持续迭代 B」:追加到对应栏末尾,原样保留,不合并、不润色、不补全。
- 接受语音碎碎念、流水账、无逻辑片段——口语废话剔除,有效信息全留,只规整语序。
- 建议前缀
HH:MM时间戳。 - 所有合并 / 规整 / 补全 / 重命名统一留到「归档」阶段。
第四步:呈现
调用 present_files 打开当日文件。
归档(一天的归档)
「归档」是白天「记一下:」捕获之后的收口动作:把零散速记整理成符合马伯庸流水账标准的当日日记,并据内容重命名为带标题的最终文件。它比「迭代」更彻底——一次性做完全天归并 + 定名。
触发:「归档 / 今天归档 / 一天的归档 / 收尾今天 / 日终整理」。
流程:
1. Read 当日文件(工作名 {YYMMDD} 总结.md 或已带标题的文件)全部内容。
2. 一句话说明收口动作(如「合并行事条目、规整为写实短句、提炼标题并重命名」)。
3. 生成当日标题:据五栏内容提炼 2–10 字简短总结(如「配置调整与git复习」);若用户已给标题则直接用。
4. 确定目标文件名 E:\output\拾光日记\\{YYMMDD} \<标题>.md,用 Write 写入归档版(保留全部实质信息,不丢内容):
- 头部:# {DATE_FULL}({WEEKDAY}) + 天气(对话提及则填,否则空)+ 标语行 > 拾光日记 · 时光有迹。
- 归档标记:头部下方仅放 一个 最新标记 > ✅ 已归档:\<YYYY-MM-DD HH:MM>;若源内容已含旧的 > ✅ 已归档:… 行,不保留旧标记(避免多次归档堆叠)。
- 五栏归并:同栏合并高度相似条目;每条改写为「客观、具体、写实、一事一条」——去冗余修饰、去情绪化形容词,落地到时间/行为/场景/结果。遵守写作红线(见「绝对禁止行为」)。
- 细碎随感:只保留极淡客观状态(疲惫/放松/平淡…),不分析、不解读。
- 保留 HH:MM 时间戳(归入各条目前)。
5. 清理同日其它文件(强制保证「同日单文件」):Write 完成后,用 Glob {YYMMDD} *.md 列出当日全部文件,将 除刚写入的目标文件外 的所有文件(旧工作名 总结.md、上一次归档遗留的旧标题文件等)移入回收站(可恢复)。
- 严禁硬删除(不得用 rm / del /F);日记为长期私密数据,一律走系统回收站,误操作可还原。
- 回收站不可用时的回退:若当前环境无法调用系统回收站(如受限沙箱 / 安全策略拦截 COM),回退到同目录 .trash/ 本地可恢复目录(先确保 .trash/ 存在,再 Move-Item / mv 移入)——同样可还原、不硬删,满足「可恢复」红线。
- 若目标文件名与原文件同名(同标题重复归档),则第 4 步为原地覆盖,本步无多余文件可清理。
6. present_files 打开归档后的文件。
- 同步到个人知识库(ima)(仅当
save_mode为ima或both时执行;local模式跳过本步):将第 4 步生成的 md 文档写入个人知识库的「木木 / inbox」文件夹:
- 解析目标知识库:定位用户的个人知识库(个人知识库根);若需确认具体库,用get_addable_knowledge_base_list/search_knowledge按名称解析,不要猜测knowledge_base_id。
- 在该库内定位「木木」文件夹,再在其下定位「inbox」文件夹,取得folder_id;ima 连接器不支持自动建文件夹,若路径不存在,提示用户先在 ima 客户端/网页手动创建「木木 / inbox」后再归档(不得猜测folder_id)。
- 走文件上传流程(重名检查 → 创建媒体 → 上传 →add_knowledge):create_media的file_name设为{YYMMDD} 标题.md(与本地归档文件名一致,标题由文件命名体现;add_knowledge不另传 title 字段),folder_id传 inbox 文件夹 ID。
- 以上上传动作借助已连接的 ima 个人知识库连接器完成(详见 ima 知识库写入流程)。 - 清除本地当日文件(仅当
save_mode为ima时执行;local/both模式保留本地、不清本地):当save_mode为ima且第 7 步返回成功后,将E:\output\拾光日记\\{YYMMDD} *.md(当日全部文件)移入系统回收站(可恢复),本地不再保留。
- 安全前置:若第 7 步写入失败、或 ima 连接器未连接,必须保留本地文件并明确告知失败原因,绝不静默删除。
- 回收站不可用时的回退:同「步 5」的回退规则——若系统回收站不可用,移入同目录.trash/本地可恢复目录,不硬删。
- 复盘产生的E:\output\拾光日记\复盘\\子目录文件不受本步影响,仍本地保留。
归档后可继续「记一下:」补充(文件已带标题,继续追加即可);再次「归档」基于最新内容重新收口——若标题变化,会在第 5 步把旧标题文件移入回收站,始终保持同日仅一个文件、仅一个归档标记。
复盘(周复盘 / 月总结 / 心情统计)
触发:「周复盘 / 本周复盘」「月总结 / 月度总结」「心情统计」。
通用流程(周 / 月)
1. 确定范围:周→本周一\~周日(或最近 7 天);月→当月 1 日\~月末。
2. 用 Glob 收集 E:\output\拾光日记\\{YYMMDD} *.md(仅范围内、含内容的文件;* 匹配任意标题)。
3. Read 全部,按五栏抽取事实条目,纯客观汇总(不评价、不分析、不升华)。
4. Write 生成归档文件于 E:\output\拾光日记\复盘\\:
- 周复盘:周复盘_YYYYWW.md
- 月总结:月总结_YYYYMM.md
5. 内容结构沿用五栏,每条仍为写实短句;可加一句「本{周/月}共 N 篇日记」的事实计数,不做解读。
心情统计(专项)
1. 同范围收集日记,扫描各日「⑤ 细碎随感」中记录的状态词(疲惫/放松/平淡/焦虑…)。
2. 做事实计数分布(如 平淡×6、放松×3、疲惫×2),不解读成因、不给建议、不性格分析。
3. 生成 心情统计_YYYYMM.md(或并入月总结的单独一节)。
约束:复盘只汇总事实轨迹,遵守写作红线(见「绝对禁止行为」);尤其禁止主观评价、性格分析、情绪总结。
内容分类路由(五栏)
| 内容特征 | 落入栏 |
|---|---|
| 事件、行程、出门、办事、工作事项、居家日常 | ① 今日行事 |
| 三餐、加餐、零食、饮水、口味、饮食状态 | ② 今日饮食 |
| 新知、干货、规避的坑、新理解、听到的信息 | ③ 今日习得 |
| 书、文章、公众号、视频、资讯、浏览记录 | ④ 今日阅览 |
| 当下客观状态(疲惫/放松/平淡等) | ⑤ 细碎随感 |
- 单条跨多栏时,按主属性归入其一,其余在条目内用子行补充。
- 难以判断时,默认归入
① 今日行事,不强行补其他栏。 - 已确认:工作类事项统一归入
① 今日行事(记为办事/工作),不单独设「工作」栏;知识点归入③ 今日习得。
记忆与历史联动规则
- 长期记住用户生活习惯、作息、偏好与记录口吻(遵循「长期记忆适配规则」)。
- 每次记录时,若与过往日记明显相关,可在条目内以「(同 X 月 X 日)」轻量关联,不展开。
- 复盘时联动历史:周/月复盘可跨多日文件汇总;心情统计可跨期对比(仅事实计数)。
- 不因为「记忆」而补写、虚构或推测隐私。
约束(隐私)
- 不分析深度隐私,不追问敏感财务 / 家庭信息,仅做客观记录梳理。
- 不主动添加建议、评判、未来规划(同写作红线,见「绝对禁止行为」)。
- 所有内容本地 + 私有账号存储,绝不推荐至公开广场。
遗留脚本与模板(已移除)
本 skill 已完全单文件自包含:模板内嵌、占位符自动填充(第三步 A)、同日去重(第二步 Glob)均由本文件正文完成,不再附带 scripts/init_day.py 与 assets/daily_template.md。
- 若日后需要在命令行 / CI 中一次性生成空壳文件,可重新创建上述脚本(其能力已被正文覆盖:占位符填充 + 同日去重跳过)。
- 原文件删除走系统回收站(可恢复),非硬删。
可定制项
- 五栏结构:如需增删板块(如加「开支」),直接改本文件「固定五栏模板」节与「内容分类路由」表,并同步上方「模板」节内嵌的 Markdown 块——注意会偏离「五栏永不乱改」原则,请谨慎。单文件即可完成,无需任何外部文件。
- 目录:默认
E:\output\拾光日记;用环境变量DAILY_JOURNAL_DIR或「存储与命名」节统一修改。 - 复盘落点:默认
E:\output\拾光日记\复盘\\,可在「存储与命名」「复盘」两节统一修改。 - 标题提炼:归档标题由技能据内容生成;若想固定标题格式(如限制字数、加前缀),在「归档」第 3 步调整。
- 座右铭 / 标语:
> 拾光日记 · 时光有迹仅出现在「模板」节内嵌块与归档头部;如需更换,改「模板」节该行即可(新建 / 归档会自动沿用)。已生成的历史文件不会自动更新,需手动改或重新归档。 - 归档同步目标(个人知识库):默认归档后把 md 写入个人知识库的「木木 / inbox」文件夹(见「归档」第 7 步)。更换目标:改「木木 / inbox」为你的知识库文件夹路径即可;目标知识库默认取个人知识库根,如需固定到某个具名库,可在第 7 步第 1 点写死库名。删除第 7、8 步即可关闭「同步 + 清除本地」行为。
- 保存方式(save_mode):由「首次运行引导」写入
E:\output\拾光日记\.config.json的save_mode决定(local仅本地 /ima同步云并清本地 /both本地+云)。修改方式:说「重新设置 / 初始化日记 / 配置日记」重跑引导,或手动改.config.json的save_mode字段后重建标记。