Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add rexchengm/fios-skills --skill notion-life-systemgit clone --depth 1 https://github.com/rexchengm/fios-skillsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/rexchengm/fios-skills/notion-life-system)<a href="https://agentmods.dev/skills/rexchengm/fios-skills/notion-life-system"><img src="https://agentmods.dev/badge/skills/rexchengm/fios-skills/notion-life-system/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/rexchengm/fios-skills/notion-life-system"><img src="https://agentmods.dev/badge/skills/rexchengm/fios-skills/notion-life-system.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00236 | $0.03484 |
| Opus 5.5 | $0.00094 | $0.01394 |
| Sonnet 5.5 | $0.00047 | $0.00697 |
| Haiku 4.5 | $0.00024 | $0.00348 |
Grade A, and why
notion-life-system scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 1mo ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 191 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Notion 生活系统(Life System)
核心规则
把 Notion 当作一个活的个人操作系统。默认只读检查,除非用户明确要求创建、更新、移动、归档、删除或以其他方式修改 Notion 数据。
绝不从本 skill 修改数据库 schema。结构探查类任务期间绝不修改 Notion 页面。
当用户说要写入某个具体 Notion 页面,或提供了目标 Notion 页面 URL 加内容时,把这视为只对该页面的明确修改授权。除非用户明确要求替换,否则保留页面已有内容。
必备参考文件
按需加载,不一次全读:
references/notion-intake-rules.md: 处理随手输入的主路由规则,含每个数据库的场景、写入策略、可填字段、关联字段、禁填字段,以及queryDefaults(排序字段 + 展示字段)。references/notion-intake-rules.json: 入库规则的机器可读版本。创建页面、查询记录或运行数据库查询前先用它。references/notion-system-schema.md: 人类可读总览、路由表、数据库 ID、关联图、rollup 图、属性表。references/notion-system-schema.json: 精确的机器可读 schema,含所有 data source ID、数据库 page ID、属性 ID、关联目标、select/status 选项、rollup 配置和完整公式表达式。
当前快照由 数据管理 页面用 ntn CLI 生成。若用户说 Notion 结构变了,刷新它。
CLI 模式
Notion 操作用 ntn,不用浏览器自动化。
默认直连。打包脚本不再强制走代理。仅当 Notion API 调用因 TLS 或连接错误失败时,
才通过导出 NOTION_CLI_PROXY 选择走代理
(如 export NOTION_CLI_PROXY=http://127.0.0.1:1082)—— 脚本会自动识别。
ntn api v1/data_sources/<data_source_id>
数据库行查询用 data source ID:
ntn api v1/data_sources/<data_source_id>/query -d '{"page_size":10}'
页面读取或更新用 page ID:
ntn pages get <page_id>
指定页面的读写工作流,优先用打包的 helper:
~/.claude/skills/notion-life-system/scripts/notion_page_io.zsh id <page-url-or-id>
~/.claude/skills/notion-life-system/scripts/notion_page_io.zsh get <page-url-or-id> [output.md]
~/.claude/skills/notion-life-system/scripts/notion_page_io.zsh append <page-url-or-id> [content.md]
~/.claude/skills/notion-life-system/scripts/notion_page_io.zsh replace <page-url-or-id> [content.md]
append 和 replace 在调用 ntn pages update 之前,会先在 ~/.fios/notion-page-backups 下创建本地 Markdown 备份。
ntn 操作实战要点(踩过的坑,务必遵守)
- 创建页面(写记录):
ntn api v1/pages -X POST -d '{"parent":{"type":"data_source_id","data_source_id":"<id>"},"properties":{...}}'。parent 用data_source_id(当前 API 版本 2026-03-11);relation 填{"relation":[{"id":"<page_id>"}]}、日期带时段用{"date":{"start":"2026-06-03T14:00:00.000+08:00"}}。 - 删除/归档页面:用
ntn api v1/pages/<id> -X PATCH -d '{"in_trash":true}'。不要用ntn pages trash——非交互环境会因确认提示失败(要--yes)。 - 写入/PATCH 偶发失败要重试:ntn 偶有间歇失败(返回空/非 page,伴随 "stale cached OpenAPI spec" warning),原样重试 1–4 次通常即成功。批量写入/迁移/删除要逐项 GET 验证、失败重试——实测一批十个 PATCH 可能大半首发失败、静默漏掉。
- 解析响应前先清控制字符:ntn 返回的 JSON 常含未转义控制字符(formula 字段里的裸换行等),直接 jq/python 解析会报 "control characters must be escaped"。先
tr -d '\000-\037\177'(或 pythonre.sub(r'[\x00-\x1f\x7f]','',raw))再解析;查询本身也偶发返回空,要重试。 - jq 后处理两个易错点:① 对象构造里中文 key 必须加引号(
{"事项":...}而非{事项:...});② jq 顶层不能用分号连两个表达式(会编译错)。 - select/status/multi_select 绝不臆造值:select/multi_select 塞 options 里没有的值,Notion 不报错、自动新建脏选项(污染选项库,比报错更隐蔽);status 塞越界值则 400。一律匹配 options,匹配不到留空。
- 字段名以
intake-rules.json为准,可能含尾随空格:例如「日常打卡」指向习惯分类的 relation 字段名是习惯分类(末尾带一个空格),写错会 400「property does not exist」。
What ships with it
6 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 1mo ago First seen · 191 lines · 236 tokens per session scan A e5b0a1d949b5
notion-life-system is a skill published in the GitHub repository rexchengm/fios-skills (2 stars, last pushed 4mo ago), licensed MIT. It adds 236 tokens to every session and 3,484 once invoked, about $0.0009 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
scenario-zbrush-expert
Use when an agent drives Maxon ZBrush 2026 for any task (sculpt in ZBrush, DynaMesh, ZRemesher, UVs, export, polypaint, posing, 3D print, clean up an AI mesh in ZBrush), when writing ZBrush Python (zbrush.commands) or ZScript, when the ZBrush bridge is not answering, a palette path or set() does nothing, a scripted…
customer-journey-map
Construye un mapa de recorrido del cliente para un producto, servicio o experiencia. Úsalo cuando se te pida mapear un recorrido del cliente, crear un viaje del usuario, documentar puntos de contacto y puntos de fricción, o diseñar un mapa de experiencia. Produce un mapa de recorrido completo con etapas, puntos de…
feature-prioritisation
Aplica marcos de priorización (RICE, MoSCoW, Kano, ICE, Opportunity Scoring) para clasificar características e items del backlog. Úsalo cuando se te pida priorizar características, clasificar un backlog, decidir qué construir a continuación, o evaluar compensaciones entre ideas competidoras. Produce una lista de…
outcome-tracker
Record the testable predictions inside a decision, then score them against reality later — so frameworks earn trust from outcomes, not vibes. Use when committing to a prioritisation, forecast, or plan (to log what it predicts), when asked to review what actually happened, or to compute how well-calibrated past RICE…
design-handoff-brief
Transform feature briefs into structured design briefs that give designers the context they need before opening Figma. Use when asked to write a design brief, create a design handoff, brief a designer on a new feature, or translate a PRD into design requirements. Produces a brief with user goal, emotional context…
explorer-pipeline
Use when asked to make an interactive 3D explorer of a topic from start to finish, go from a topic to a clickable 3D learning page, or run the whole 3D explorer process. Produces a staged run of explorer-interface-brief, model-prompt-pack and explorer-viewer-builder in order for one topic, with the hand-offs between…