AgentStack
SKILL verified MIT Self-run

Notion Life Capture

skill-rexchengm-fios-skills-notion-life-capture · by rexchengm

当用户想把随手输入「记录/录入」进 FIOS(个人 Notion 生活管理系统)时使用——记一笔支出/收入、记个任务待办、记读书/学习笔记、记一个选题/想法、记美食/健康/打卡、记一件人际事项等。触发词:记一下、记一笔、记个、收藏、存一下、帮我记、备忘,以及"今天/刚才 + 花了/吃了/读了/想到/联系了/买了…"。一段话含多件事会拆成多条分别入库。不要用于:查看/查询/列出已有记录(那是 notion-life-system)、成体系地设定/拆解目标规划(那是 notion-life-cascade)、写日/周/月复盘叙述(那是 notion-life-reflection)、跨库分析对比(那是 notion-life-insights)。

No reviews yet
0 installs
12 views
0.0% view→install

Install

$ agentstack add skill-rexchengm-fios-skills-notion-life-capture

✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

Are you the author of Notion Life Capture? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Notion 生活记录(Life Capture)

概述

随手说一句 → 分条 → 路由到正确的 direct_write 业务库 → 智能填好「非公式」字段 → 入库。这是和 查询 / 分析 / 设定 / 复盘 并列的「记录」动词入口。

字段权威 = notion-life-systemreferences/notion-intake-rules.json(单一事实来源)。 它由 schema 刷新脚本从用户真实 Notion 生成,含每个库的可直填字段 / 类型 / options / relation。本技能内的「高频速查卡」只是加速参考,一切以 json 为准;用户改了 Notion 属性后,多数情况靠刷新 json 即自愈,无需改本技能。

REQUIRED BACKGROUND: notion-life-system —— 复用 ntn CLI、scripts/notion_query.zshreferences/notion-intake-rules.json / .md,以及 schema 刷新三件套脚本。

何时使用(动词边界)

用本技能:把一条/多条新信息记进库。触发词 记一下 / 记一笔 / 记个 / 收藏 / 存一下 / 帮我记 / 备忘,或 "今天/刚才 + 花了/吃了/读了/想到/联系了/买了/跑了…"。

不要用于(这些是负向用例,必须分流出去):

  • 查看 / 查询 / 列出 已有记录 → notion-life-system(只读查询)
  • 成体系地 设定 / 拆解 目标·规划·项目·任务 → notion-life-cascade(capture 只管零散记一条事实/事件/想法,不做向下拆解)
  • 写 日/周/月 复盘叙述(今日复盘 / 周报 / 月报)→ notion-life-reflection
  • 跨库 分析 / 对比 / "做得怎么样" → notion-life-insights

核心流程 —— 4 步

  1. 分条 —— 把输入拆成 1 条或多条待记项。"今天午饭花了 35,还读完了《原则》" = 2 条(支出事项 + 书籍阅读)。
  1. 路由 —— 按 notion-intake-rules 的场景 / 触发词,把每条匹配到一个 direct_write 业务库(共 31 个)。
  • 命中速查卡的高频库 → 直接用卡。
  • 未命中 → 读 references/notion-intake-rules.json,按各库的场景与触发词匹配。
  • 命中维度库(conditional_write)的内容 → 不直接建,转「维度库」一节处理。
  • 命中只读库(avoid_manual_write)→ 拒写并提示。
  1. 智能默认决策(核心 —— 明确就写,含糊才问):
  • 明确无歧义 + 纯 direct_write + 不需关联/新建维度 → 直接写完即报
  • 需解析 relation(挂到某项目/账户/人物/分类)→ 先 scripts/notion_query.zsh 查 page_id;查到就写,查不到或多义 → 一句话确认
  • 要新建维度对象(新账户/新分类/新联系人)→ 先确认再建(见「维度库」一节)。
  • 库不明确 或 缺关键直填字段 → 一句话确认,只问最少必要项。
  1. 写入与回报 —— ntn api v1/pages -X POST(带目标 datasourceid + properties)。每条记录回报:库 / 标题 / page_id / 设置的关联 / 未解析字段。批量多条时先给一行式预览再统一写。

智能填充规则

  • 日期:缺省 = 今天;"明天 / 下周二 / 周末"解析成具体日期。
  • 金额 / 数字:从自然语言抽取("花了三十五" / "35 块" → 35)。
  • select / status / multiselect:拿话里的词去匹配该字段的 options(取自 json)。匹配不到就用最接近的或留空 + 提示绝不臆造新选项。⚠️实测两者行为不同:select / multiselect 塞不存在的值,Notion 不报错、自动新建该选项 → 悄悄污染选项库(比报错更隐蔽有害);status 塞越界值则直接 400 失败。两种都 →匹配不到必须留空,仅当用户明确说"新增『X』选项"才对 select 传新值(status 选项无法这样加)。
  • relation:先 notion_query.zsh 查目标库拿 page_id,不编造、不写成纯文本。归类型关联(分类/账户/类型)缺省时按「关键关联兜底」兜到「其他」(无则自动建);身份型关联(人/项目/书)查不到才留空或问。
  • title:必填,从输入提炼一个短标题。
  • 绝不填formula / rollup / button / created_time / last_edited_time / unique_id 等计算或同步字段。

高频录入速查卡(~10 库 · 字段权威以 intake-rules.json 为准)

下表是最常记的库的加速参考。字段名是各库「最小字段」,* 标记最常用的几个;options 值不在此硬写(最易漂移),运行时从 json 取并匹配。

| 你随口说 | 路由到 | 自动填的非公式字段 | 智能默认 | |---|---|---|---| | 花了X / 记一笔 / 买了X | 支出事项 | 事项(title)、支出金额(number)、入账时间(date)、描述(richtext)、备注日期(date);relation→支出分类·收支账户·每日复盘 | 日期=今天;金额抽取;账户/分类未指定→兜底「其他」(无则自动建) | | 收到X / 进账X | 收入事项 | 事项、收入金额、入账时间、描述;relation→收入分类·收支账户·每日复盘 | 日期=今天;账户/分类未指定→兜底「其他」(无则自动建),保证汇入财务监管→第二大脑 | | 任务 / 待办 / 明天要做X | 任务执行 | 事项(title)、事项日期(date)、事项描述(richtext)、任务时长(分钟)(number)、备注(select)、任务四象限法则(status) | 日期解析"明天";四象限/时长可空待补 | | 读完/在读《X》 | 书籍阅读 | 书籍名称(title)、阅读状态(status)、读完时间/开始时间(date)、标签关键词(multiselect)、URL | 状态按"读完/在读"映射 options | | 学习笔记 / 笔记:X | 学习笔记 | 专注笔记(title)、创建时间(date)、标签(multiselect)、来源(select)、状态(status)、URL | 时间=今天 | | 想到个选题 / 选题:X | 选题收集 | 选题标题(title)、主要内容(richtext)、来源(select)、状态(status)、备注 | 来源按 options 匹配 | | 收藏 / 资料 / 链接X | 资源收集 | 名称(title)、URL、核心思想(richtext)、主要内容(richtext)、标签(multiselect)、来源(status)、备注日期 | 有链接填 URL | | 吃了X / 美食 / 记菜谱 | 美食记录(营养菜谱库)| 美食(title)、时间(date)、标签、类型(早午晚餐)、主菜/副菜/配菜(select 选食材)、主油脂、其他配料 + 每食材的 用量/热量/碳水/脂肪/蛋白 | 见下方专门注释 ⬇️ | | 体检/睡眠/身体X | 身体健康 | 时间(title)、记录时间(date)、起床时间/睡眠时间(date) | | | 打卡了X / 做了N次 | 次数打卡 / 日常打卡 | 主题/习惯(title)、相关日期(date);按习惯查 习惯分类 relation | 先查习惯是否已存在 | | 见了/联系了某人 | 事项处理 | 具体事项(title)、发生日期*(date)、事项描述、状态、备注(select);relation→社交信息 | 先查此人 page_id,查不到问是否建联系人 |

其余 21 个 direct_write 库(旅游计划、景点选择、电影视频、影视评论、物品管理、固定收支、就医跟踪、事项跟踪、打卡记录、兴趣学习、书籍笔记、每日/周/月复盘、规划设定、项目执行、目标设定、心愿奖励 等)不在卡里硬写——运行时读 intake-rules.json 取该库的可直填字段、options、relation 后再填。

> 注意:目标设定 / 规划设定 / 项目执行 虽是 direct_write,但它们是有方法论的结构化对象(要量化指标、三期路径、页面正文模板),一律走 notion-life-cascade,capture 不碰——别把体系化目标当普通记录草草塞一条。任务执行 是唯一例外:孤立待办("明天要做 X")归 capture;从项目拆解出来的任务归 cascade。

> 美食记录 = 营养菜谱库(特殊填法,踩过坑):它不是简单"吃了啥"打卡,而是带营养计算的菜谱库。食材分 主菜/副菜/配菜(select,从 options 选:鸡蛋/猪肉/牛肉/鱼肉/西红柿/青椒/茄子…,不臆造新选项)+ 主油脂(花生油/橄榄油…)+ 其他配料(葱姜蒜/酱油…)。⚠️营养字段(X热量/X碳水/X脂肪/X蛋白)填「每克值」(≈每100g ÷ 100,如鸡蛋热量 1.4、花生油 9),用量填克数 —— 公式 总热量/总营养 = Σ(用量 × 每克值) 会自动汇总,另有 菜谱评分 / 营养成分 公式。别把整道菜的总热量直接填进去(会炸成几万卡)。菜谱来源 relation 可挂 家人亲人(跟谁学的)。

维度库与关键关联兜底(保证数据流向第二大脑)

FIOS 靠逐级 rollup 把底层数据汇总到第二大脑。归类/账户类 relation 一旦留空,这条记录就 rollup 不上去、成了汇不进第二大脑的孤儿(例:收入不挂「账户」→ 进不了 收支账户→财务监管→第二大脑)。所以这类关联即使用户没指定也不能空——按维度的"类型"分别处理:

① 归类型维度(分类 / 类型 / 账户 等通用归类,参与向上汇总)—— 用户没指定时自动兜底到「其他」,不留空、不打断:

  1. scripts/notion_query.zsh 查名为「其他」(或"未分类/默认")的对象;
  2. 有 → 关联其 page_id;
  3. 没有 → 自动新建 title=「其他」的维度对象(免确认,这是受控的唯一兜底对象),再关联。
  • 典型:收入事项/支出事项 的「分类」(→收入分类/支出分类) 与「账户」(→收支账户);其它库的「分类/类型」同理。
  • 用户明确说了具体分类/账户("记到招行""算饮食类")→ 查该具名对象;查不到 → 先问是否新建该具名对象;用户不建 / 暂不回应时回退兜底到「其他」(归类型关联永不留空),并提示"已暂挂『其他』,回头可改成 X"。

② 身份型关联(指向具体 人物 / 项目 / 书籍 / 具体对象)—— 不塞「其他」: 查到才关联,查不到就留空或一句话问。给身份关联硬塞"其他"会造成错误关联,比留空更糟。

③ 日记关联(→每日复盘)—— 尽量关联「今天的每日复盘」: notion_query.zsh 每日复盘 找当天那条,有就关联(让当日数据汇进日复盘 rollup),查不到不强建。

通则:绝不因为"维度库有可填字段"就往里塞业务记录;除归类型的「其他」兜底对象外,新建具名维度对象都先确认。

只读库:绝不写(11 个 avoid_manual_write

9 个监管(时间/知识/人际/习惯/财务/旅游/家庭/影视/复盘监管)+ 月度展示 + 第二大脑。这些是公式 / rollup / 总控看板,任何情况都不手动写——把底层业务数据记对,它们会自动汇总。误判要往这里写时,停下并提示。

Schema 漂移自愈(用户改了属性导致写入报错)

触发:ntn api 写入返回错误(属性不存在 / select option 不在列表 / 类型不符 / HTTP 400)。

  1. 诊断 —— 判断是 schema 漂移(字段被改名/删除、option 变了、库结构变了),还是其它错误(网络 / 权限 / TLS)。后者不刷新,直接报。
  2. 自动刷新快照(只读拉取 + 重建本地 json,安全):

``bash ~/.claude/skills/notion-life-system/scripts/fetch_raw_schema.zsh NOTION_SCHEMA_BUILD_ONLY=1 ~/.claude/skills/notion-life-system/scripts/refresh_schema.js --build-only ~/.claude/skills/notion-life-system/scripts/build_intake_rules.js ``

  1. 重试一次 —— 用新 intake-rules.json 重新映射字段 / options,再写一次。
  2. 仍失败 → 报 diff —— 把"字段 X 不见了 / 改名为 Y / option 由 A 变成 B"清楚讲给用户,交他决定怎么填,不盲目反复重试
  3. 是否回改本技能 —— 因为字段以 json 为单一来源,多数漂移靠刷新 json 自愈,不用动本技能。只有当某个高频库的录入模式整体变了(常用字段增减、库改名),才提示更新本文件的「速查卡」。

通用规则

  • 明确就写,含糊才问 —— 智能默认是核心;别为每条都确认,也别在多义时硬写。
  • 一次最多一个确认问题 —— 多条待记项的确认合并成一次。
  • relation 填 page_id,先查不编造。
  • select/status 值必须取自 options,不臆造。
  • 不碰公式/汇总/系统字段。
  • 只读库绝不写;维度库仅确认后建。
  • 写入偶发失败先重试一次 —— ntn 偶有间歇性失败(返回空 / 非 page 对象,但 JSON 合法、并非字段或 option 错误);原样重试一次通常即成功。连续失败再按「Schema 漂移自愈」诊断。
  • 写完逐条回报 page_id,让用户可核对。

常见错误

  • 把一段含多件事的话只记成一条 → 该分条的没分条。
  • 关联字段写人名/项目名的纯文本而非 page_id → 关联为空。Fix:先查。
  • select 值硬塞一个 options 里没有的词 → API 400。Fix:匹配 options,匹配不到留空+提示。
  • 往监管/第二大脑/月度展示写 → 违反只读。Fix:记到底层 direct_write 库,让它自动汇总。
  • 漂移报错后凭印象改字段名重试 → 越改越乱。Fix:先刷新 json 拿真实结构,再重试一次。
  • 把"成体系建目标/规划"当普通记录处理 → 应转 notion-life-cascade。

完整示例

输入:"今天午饭花了 35,还读完了《原则》"

  1. 分条 → ①支出 ②读书。
  2. 路由 → ①支出事项 ②书籍阅读,都是 direct_write,无歧义、无需关联。
  3. 决策 → 两条都直接写。
  4. 写入:
  • 支出事项:事项=午饭、支出金额=35、入账时间=2026-06-03 → page_id a1…
  • 书籍阅读:书籍名称=原则、阅读状态=读完(匹配 options)、读完时间=2026-06-03 → page_id b2…
  • 回报两条 page_id。

输入:"约了张三下周二喝咖啡" → 事项处理(具体事项=和张三喝咖啡、发生日期=下周二解析);relation→社交信息:先 notion_query.zsh 社交信息 查"张三",查到则关联,查不到 → 问"通讯录没有张三,要新建联系人吗?"

负向:"看看我有哪些目标" → 不处理,提示这是查询 → notion-life-system。

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet — be the first.

Versions

  • v0.1.0 Imported from the upstream source.