existence-trace · 存在痕迹a personal state system

一个会自己来问你、
越用越懂你的个人状态系统
A personal state system that
asks you for feedback and gets better at being yours

你只管写日记。AI 用三个角度读懂你的一天,遇到拿不准的地方就来问你,把你的回答变成规则、真的用上,再每周检查自己有没有说到做到。You just write your journal. An AI reads your day through three lenses, asks you when it is unsure, turns your answers into rules, really uses them, and checks every week that it did what it said.

记录你的存在痕迹。Record your traces of existence. 最强的功能是自优化偏好系统:你纠正过的,它记住并且证明自己用上了。Its strongest feature is the self-optimizing preference system: what you correct, it remembers, and proves it used.

把这句话交给你的 AIGive this to your AI
Read https://maxont.github.io/existence-trace/install and install existence-trace for me.
只用 Python 标准库Python standard library onlyMIT 开源协议MIT license 数据只存在你自己的电脑上Your data stays on your machine不是临床工具Not a clinical tool

它到底是什么What it actually is

多数日记工具只负责存。existence-trace 的重点是另一件事:让系统学会怎样读懂你,并且能证明它学会了。Most journaling tools only store things. existence-trace is about something else: letting the system learn how to read you, and proving that it did.

你写You write在当天的笔记里随便写,原话一个字不会被改Write anything in today's note. Your words are never changed.
它读It reads用 PAD、G、XP 三个角度读你的一天,写成日报It reads your day through PAD, G and XP and writes a daily report.
它问It asks发现自己拿不准,就带着证据来问你一个具体问题When it is unsure, it brings evidence and asks one concrete question.
你答You answer在反馈区回一句话就行,不需要精确数字One sentence in the feedback zone is enough. No exact numbers needed.
它决定It decides据你的话先做合理决定,写明理由,你随时可以推翻It makes a reasonable decision from your words, states why, and you can overrule it.
它用上It applies新规则真的出现在下一份日报里,并留下回执The new rule really shows up in the next report, with a receipt.
每周查Weekly audit逐条检查「说过要改的,到底改了没有」Every change it promised is checked: was it actually made?
它不是什么:What it is not:不是打卡 App,不会催你每天填表;不是诊断工具,PAD 和 G 都不是临床量表,不做任何医学或心理判断;也不会替你写日记,你写的才是核心。It is not a habit-tracker that nags you to fill in forms. It is not a diagnostic tool: PAD and G are not clinical scales and make no medical or psychological judgement. And it will not write your journal for you; what you write is the core.

里面包含什么What's inside

一本受保护的日记,三个读懂你的角度,一套让系统越用越准的偏好容器,外加每天的运转节奏。A protected journal, three lenses for reading you, a preference container that makes the system more accurate with use, and a daily rhythm that runs it.

日记Journal

分区的笔记A note in zones

每天一个 Markdown 文件,分成「AI 写的区」和「你写的区」。你的区和「原版本」区受保护,AI 动一个字,引擎就拒绝保存。One Markdown file a day, split into zones the AI writes and zones you write. Your zones and the Original version are protected: if the AI touches a single character, the engine refuses to save.

晚写的补充只能追加在原版本末尾,并标明实际发生在哪一天。Late additions can only be appended to the end of the original, labelled with the day they actually happened.

PAD

看情绪的形状The shape of your mood

愉悦 P、激活 A、掌控 D,三个轴各取 0 到 5 的连续值,再粗略投影到 27 个情绪词,比如「专注」「惬意」「恐慌」。Pleasure P, Arousal A, Dominance D: three axes, each a continuous value from 0 to 5, coarsely projected onto 27 mood words such as focused, at ease, panicked.

早、中、下午各一个读数,画成一天里平滑的三条曲线。A reading for morning, noon and afternoon, drawn as three smooth lines across the day.

G

看稳定与探索Stability and exploration

0 到 10 分。B 稳定有四项:睡眠与恢复、身体精力、安全与支持、注意力与负担。E 探索也有四项:内在兴趣、自主与自由、期待与意义、边界与可持续性。G = (B + E) / 2。Scored 0 to 10. B (stability) has four items: sleep and recovery, physical energy, safety and support, attention and load. E (exploration) has four too: intrinsic interest, autonomy and freedom, anticipation and meaning, boundaries and sustainability. G = (B + E) / 2.

G 是 B 和 E 的平均。缺的项显示「缺」,绝不当成 0。G is the average of B and E. A missing item shows as n/a and is never counted as 0.

XP

看每天攒下的成长Growth you banked today

六个维度:节律与稳定、学习与吸收、边界与休息、行动与尝试、反思与发现、联结与探索。每个维度每天打 0 到 4 级。Six dimensions: rhythm and stability, learning and absorbing, boundaries and rest, action and trying, reflection and discovery, connection and exploration. Each is scored 0 to 4 a day.

再加上普通成果(0 到 10)和不封顶的重大事件,没有每日上限。Add ordinary achievements (0 to 10) and uncapped major events. There is no daily cap.

核心Core

偏好容器The preference container

提问、反馈、决定、规则、回执、周审计,一整条可追溯的链。每个决定都能追到你说的哪句话,每条规则都能查到有没有真的用上。Questions, feedback, decisions, rules, receipts and a weekly audit form one traceable chain. Every decision traces back to a sentence you wrote, and every rule can be checked for whether it was really used.

被新规则替代的旧规则不会消失,会留下「谁替代了谁、为什么」。A rule replaced by a newer one does not vanish; the record of who replaced whom, and why, stays.

运转Running

每天的节奏与可选配件Daily rhythm and optional extras

默认一天五个任务加每周一次审计,时间可改。系统只生成调度文件,不会替你安装。By default five tasks a day plus a weekly audit, all times configurable. The system only writes scheduler files; it never installs anything for you.

可选:邮件提问和接收回复、把笔记镜像到 Notion、每次任务后在本地 git 留一份版本记录。两套预设开箱即用。Optional: ask and receive replies by email, mirror notes to Notion, keep a local git history after every task. Two presets work out of the box.

看一个真实的一天See a real day

下面是仓库自带的示例人物 Juniper(虚构的面包师)三天的日记,以及系统用真实引擎跑出来的结果。图、分数和日报都是引擎的实际输出,不是手画的。Juniper 用英文写日记,中文模式下显示的是译文。Below are three days of notes from the repository's example persona, Juniper, a fictional baker, and what the real engine produced from them. The chart, scores and report are actual engine output, not hand-drawn. Juniper writes in English; in Chinese mode you see a translation.

每天怎么转How a day runs

需要一个能读写文件、能运行命令的 AI 代理来执行这些任务,比如 Codex 或 Claude Code,也可以用 cron 去调起。引擎负责计算和把关,代理负责判断。An AI agent that can read and write files and run commands performs these tasks, for example Codex or Claude Code, started by cron if you like. The engine does the calculating and the gatekeeping; the agent does the judging.

09:00calibrate

发现疑问。Find doubts.先处理新反馈,再回看最近 14 天的笔记,只在真有拿不准的地方才提问,然后把当天的状态发给你。没疑问也会明说「目前没有新的重要疑问」;扫描失败就说无法判断,绝不假装没事。It processes new feedback, scans the last 14 days of notes, asks only when something is genuinely unclear, then sends you the day's status. With no doubts it says so plainly; if the scan fails it says it cannot tell, and never pretends all is well.

12:30 · 20:30feedback

读你的回答。Read your answers.收下笔记反馈区和邮件回复,据此作决定、改规则,再写一段决定报告请你过目。没有新东西就保持安静。It collects feedback from your note and email replies, decides, changes rules, and writes a decision report for you to review. If nothing is new, it stays quiet.

19:30daily

写日报。Write the report.读取生效规则,整理当天的 PAD、XP 和叙述,写好回执,并为明天建好新的一页。It reads the active rules, prepares the day's PAD, XP and narrative, files the receipts, and creates tomorrow's page.

20:30g

估 G。Estimate G.给稳定与探索的八个小项打分,对缺失的项低置信度补值,计算、冻结预测、出图。It scores the eight items of stability and exploration, fills gaps at low confidence, computes, freezes the prediction and draws the chart.

周日 22:15Sun 22:15audit

周审计。Weekly audit.检查每一条「提问到回执」的链,只有发现漏用或需要你判断的事才会来找你。It checks every chain from question to receipt, and only reaches out if something was missed or needs your judgement.

默认时间都可以在配置文件 trace.toml 里改。每个任务前后,系统会把你的数据目录提交到一个本地私有的 git 仓库,没变化就不提交,默认不推送到任何地方。All default times can be changed in the trace.toml config file. Before and after each task, your data directory is committed to a private local git repository (no change, no commit), and nothing is pushed anywhere by default.

自己算算看Try the numbers

下面三个小工具用的就是引擎里的公式和权重(default 预设)。预载的是 Juniper 3 月 2 日的数据,结果和仓库测试里的期望值一样:G 为 6.75,XP 为 62。These three tools use the engine's own formulas and weights (default preset). They are preloaded with Juniper's data for March 2, and give the same results as the repository's tests expect: G is 6.75 and XP is 62.

情绪词 PADMood word (PAD)

1 和 2 算低,3 算中,4 和 5 算高,3 × 3 × 3 共 27 个词。Levels 1 and 2 count as low, 3 as mid, 4 and 5 as high: 3 × 3 × 3 gives 27 words.

P 愉悦P pleasure4
A 激活A arousal3
D 掌控D dominance4
投影出的情绪词Projected word

G 稳定与探索G: stability and exploration

勾上「留空」试试:缺一项,这一组就显示「缺」,G 也算不出来,不会偷偷当成 0。Tick "blank" to see it: with one item missing, that group shows n/a and G cannot be computed. It never quietly counts as 0.

B 稳定B stability
E 探索E exploration
G

XP 每日成长XP: daily growth

每维得分是「上限 × 等级 ÷ 4」。重大事件不封顶,在发生那天只记一次。Each dimension scores cap × level ÷ 4. Major events are uncapped and booked once, on the day they happened.

普通成果Ordinary6
重大事件分Event points
今天的 XP 总分Today's XP total

怎么用How to use it

你需要 Python 3.11 以上,以及一个能运行命令的 AI 代理。不依赖任何第三方库。You need Python 3.11 or newer and an AI agent that can run commands. No third-party dependencies.

1

把它交给你的 AIGive it to your AI

把下面这句话粘贴给 Claude Code、Cursor、Codex 或任何能运行命令的代理。它会读安装页,问你四个问题(预设、语言、时区、数据目录),每次改动前先征得你同意:Paste this into Claude Code, Cursor, Codex or any agent that can run commands. It reads the install page, asks you four things (preset, language, time zone, data folder) and asks before every change:

Read https://maxont.github.io/existence-trace/install and install existence-trace for me.

喜欢自己动手?一行命令装好 etrace(它不会替你建数据目录,也不会改 shell 配置):Prefer the terminal? One line installs the etrace command (it never creates your data folder or edits shell config):

curl -fsSL https://maxont.github.io/existence-trace/install.sh | bash
etrace ai set
etrace import ~/Documents/diary --run

etrace ai set 接入你的 AI(OpenAI、Anthropic、DeepSeek、OpenRouter、Ollama 或任何兼容地址),key 只存在你的 ~/.config,不进数据目录;etrace import 把你已有的日记(文件夹、.md/.txt 文件或 Day One 导出)逐字放进每天的笔记,--run 再让 AI 去读最近 7 天。两条命令都会在 ~/existence-trace-data 顺手建好数据目录。没有旧日记就用 etrace init 和 etrace note。不知道选哪套预设就用 default,tiger-method 是作者自己调出来的一套(--preset tiger-method)。etrace ai set connects your AI (OpenAI, Anthropic, DeepSeek, OpenRouter, Ollama or any compatible address) and keeps the key in your ~/.config, never in the data folder; etrace import puts the diary you already have (a folder, .md/.txt files or a Day One export) into each day's note word for word, and --run lets the AI read the latest 7 days. Both commands create your data folder in ~/existence-trace-data if needed. No old diary? Use etrace init and etrace note. If unsure which preset to pick, use default; tiger-method is the author's own tuned set (--preset tiger-method).

2

每天只需要写这四个区Each day you only write four zones

打开 journal 目录里当天日期的文件,其余区域由 AI 负责:Open today's file in the journal folder. The AI takes care of everything else:

我来填写 PADMy PAD早、中、下午的 P A D,每格 0 到 5,不确定就留空P, A and D for morning, noon, afternoon, each 0 to 5; leave blank if unsure
我的 G 自评My G self-rating八个小项,0 到 10 分,不想填就留空,留空不会被当成 0Eight items, 0 to 10; blank is fine and is never read as 0
这里更接近真实的我Closer to the real me想写什么写什么,AI 永远不会改动这里Write anything; the AI never changes this zone
给 AI 的反馈Feedback for the AI写给 AI 的话,空行分隔多条;回答问题时以 [Q-编号] 开头Notes for the AI, separated by blank lines; start with [Q-id] to answer a question
3

让 AI 代理按时跑起来Let your AI agent run it on schedule

系统会为你的代理生成调度文件,目标可选 codex、claude-code 或 cron。它只写文件,不会替你装进系统,你看过以后再自己接入:The system writes scheduler files for your agent; the target can be codex, claude-code or cron. It only writes files and never installs them, so you review them and wire them in yourself:

etrace schedule --target claude-code --out ./my-schedule

想先看看会是什么样子,可以把 Juniper 的示例完整跑一遍,步骤在仓库的 examples/persona/README.md 里。To see it in action first, run Juniper's example end to end; the steps are in examples/persona/README.md in the repository.

4

回答它的问题,然后看它变化Answer its questions and watch it change

当笔记里出现「AI 想问你」,在反馈区用 [Q-编号] 开头回一句话就够了。之后的日报会附上决定报告:它决定了什么、为什么、依据你的哪句话。不同意就直接写下来,你随时可以推翻。When the note shows "What the AI wants to ask you", reply in the feedback zone with one sentence starting with [Q-id]. The next report carries a decision report: what it decided, why, and which of your sentences it relied on. If you disagree, just write it down; you can overrule anything.

[Q-20260303-1] It was the bus, not the work. Waiting in the rain drains me more than a busy shift does.

想改时区、语言、提问方式(只写进笔记,或同时发邮件)和各任务时间,编辑 trace.toml 即可。写错的配置项会直接报错,不会悄悄回退成默认值。To change the time zone, language, how it reaches you (note only, or note plus email) and each task's time, edit trace.toml. A mistyped setting is an error, not a silent fallback to a default.

你说了算You are in charge

系统有九条原则,全部写进了代码和测试,不是口号。换成日常的话,大致是这几件事:The system has nine principles, all written into code and tests rather than slogans. In everyday words, they come down to this:

你的原话一个字不会被改Your words are never altered

你写的区域受保护,引擎在每次保存前后核对内容指纹,有任何差异就拒绝写入。Your zones are protected: the engine compares content fingerprints before and after every save and refuses to write on any difference.

你的自评是参考,不是命令Your self-rating is a reference, not an order

你填的数永远原样保留,并被认真参考;AI 结合证据独立判断,如果和你的不同,必须写明理由。The number you enter is always kept as is and weighed seriously. The AI judges independently from the evidence, and if it differs from you it must say why.

AI 的估计不会冒充你的话AI estimates never pose as your words

每个数字都标明来源是「你自己说的」「AI 推断的」还是「补值」,还带着置信度。Every number says whether it came from you, from AI inference or from gap filling, and carries a confidence.

没写,不等于 0Blank does not mean 0

留空就是留空。补出来的值一律低置信度,而且从不用于训练或校准。Blank stays blank. Filled values are always low confidence and never used for training or calibration.

决定你随时可以推翻You can overrule any decision

AI 先决定、写理由、请你过目。没反馈就保持现状,沉默从不算作赞成。The AI decides, gives reasons and invites your review. Without feedback things stay as they are, and silence is never counted as approval.

说过要改,就要真的改If it says it will change, it must change

只有写出产物、读回核对、确认真的用上,才记作「已应用」。读过规则不算用过。Only when the output is written, read back and confirmed does a rule count as applied. Having read a rule is not using it.

隐私:Privacy:你的日记和所有数据只放在你自己指定的数据目录里,不进代码仓库。邮件只带回答一个问题所需的最少上下文,从不附整本日记。邮箱和 Notion 的密钥从你指定的文件里读取,不写进配置、日志或提示词。Your journal and all data live only in the data directory you choose, never in the code repository. Email carries only the context one question needs, never the whole journal. Email and Notion credentials are read from files you name and are never written into config, logs or prompts.

FAQ

我必须每天都填吗?Do I have to fill it in every day?

不用。PAD 和 G 的自评可以留空,空就是空,系统会标成「待评分」或显示「缺」,不会当成 0。缺的 G 小项只会被低置信度补值,而且不进入任何校准统计。No. PAD and G self-ratings can be left blank. Blank stays blank, marked pending or shown as n/a, never as 0. A missing G item is only filled at low confidence and never enters any calibration statistics.

它会改我写的日记吗?Will it change what I write?

不会。「这里更接近真实的我」「给 AI 的反馈」和「原版本」都是受保护的区域。想补写时,只能追加在原版本末尾,并且会标明「补写于哪天,实际发生于哪天」。No. "Closer to the real me", "Feedback for the AI" and "Original version" are protected. Late additions can only be appended to the end of the original, labelled with when they were written and when they actually happened.

需要用哪个 AI?Which AI do I need?

不限。核心是一个只用 Python 标准库的引擎加一份配置,调度层可以生成给 Codex、Claude Code 或 cron 用的文件。代理负责读日记和做判断,引擎负责计算、校验和把关。Any. The core is an engine using only the Python standard library plus a config file, and the scheduler layer can generate files for Codex, Claude Code or cron. The agent reads your journal and makes judgements; the engine computes, validates and guards.

它会自己联网,或把我的日记发到哪里吗?Does it go online or send my journal anywhere?

引擎本身不联网。只有在你主动配置了邮件或 Notion 时才会发出内容:邮件只带必要的最少上下文,Notion 只是把当天笔记镜像过去,从不把 Notion 的内容读回你的笔记。你的 AI 代理自己怎么处理数据,取决于你选用的代理。The engine itself does not go online. Content leaves only if you configure email or Notion: email carries the minimum context needed, and Notion only receives a mirror of the day's note and is never read back into your notes. How your AI agent handles data depends on the agent you choose.

这是心理测评或者诊断吗?Is this a psychological test or a diagnosis?

不是。PAD、G、XP 都是个人反思的辅助,不是临床量表,不做医学或心理判断,也不能替代专业帮助。如果你正在挣扎,请联系合格的专业人士或当地的危机热线。No. PAD, G and XP are personal reflection aids, not clinical scales. They make no medical or psychological judgement and are no substitute for professional care. If you are struggling, please reach out to a qualified professional or a local crisis line.

default 和 tiger-method 有什么区别?What is the difference between default and tiger-method?

PAD 的 27 个词和 G 的模型完全一样。区别在 XP:tiger-method 的六个维度是作者按自己反复遇到的真实难题命名的,比如「停下优化与边界」「在不确定中行动」。想长出自己的维度,可以先用 default 写两三周,找出反复出现的难题再改名字。The 27 PAD words and the G model are identical. The difference is XP: tiger-method's six dimensions are named after real difficulties the author kept running into, such as stopping over-optimizing and acting under uncertainty. To grow your own, journal with default for two or three weeks, find the difficulties that keep coming back, then rename the dimensions.

写出来的数据以后怎么看、怎么备份?How do I read or back up the data later?

全部是你数据目录里的 Markdown 和 JSON 文件,直接能打开。目录还是一个本地 git 仓库,每次任务前后都有提交记录,没配置远端就永远不会推送出去。It is all Markdown and JSON files in your data directory, openable as they are. The directory is also a local git repository with a commit around every task, and without a configured remote it is never pushed anywhere.