本项目的思想主要来自 edmond 的知乎回答 《如何提高自制力?》。项目代码与安装包已开源,详见 HOWILLMAKEIT/sacred-seat

从一篇关于自制力的文章开始

很多自控工具都在做相似的事情:列出任务、启动计时、连续打卡,再用积分或提醒鼓励用户坚持。edmond 的文章提供了另一种视角:自制力也可以被看作一个行为约束与长期稳态的工程问题。

文章提出了两套方法,分别处理「一次具体行为」和「长期状态」两个层面:

链式时延协议(CTDP):守住一次明确的承诺

CTDP 用于解决“开始困难”和“中途放弃”。

  1. 选择一个清晰的触发标志,作为“神圣座位”——例如坐到固定书桌、戴上耳机或发送一条预约消息;
  2. 触发即执行:一旦触发,就只执行事先约定的任务;每完成一次,当前链长增加一次;
  3. 边界行为只能二选一:要么承认本次失败并让链条归零,要么把该行为写成以后永久允许的判例;
  4. 失败后不责备自己,只在失败前重新设计触发条件和规则边界。

CTDP 的重点不是打卡次数,而是让每次触发都保持可信——链条越长,放弃当前承诺的即时成本越高。

递归稳态迭代协议(RSIP):用小规则逐步改变长期状态

RSIP 用于解决长期反复出现的负面稳态,例如熬夜、沉迷手机或长期无法启动学习。

  1. 先写下最终想改变的状态
  2. 沿时间向前回溯,寻找仍然容易干预的最早节点;
  3. 把干预方式写成具体、低阻力、可验证的规则节点
  4. 先小后大:上层节点是更容易先做到的小目标,下层节点是它所服务的更大目标;
  5. 增量建立:新节点应建立在已经稳定的节点之上,不追求一次加入很多规则;
  6. 失败即回滚:某个节点长期无法维持时,说明当前路径或加入顺序不合适;回滚并换一条路径,而不是责备自己。

原文篇幅很长,包含价值函数、时间贴现、稳态与递归回溯等讨论。这个项目没有尝试复刻整套理论,而是选择了其中更适合交互产品的几个部分,将它们整理成可以直接操作的桌面工具。

功能介绍

1. 创建并触发神圣座位

“神圣座位”不一定真是一把椅子。它也可以是戴上某顶帽子、坐到书桌前,或者完成一个固定的准备动作。关键在于:触发动作发生之前可以自由选择;一旦触发,就不再临场修改承诺。

用户可以为每个座位设置名称、触发动作、行为边界和持续时间。点击“触发神圣座位”后,应用进入专注计时;完成后当前链长增加,中止时则必须承认失败,或者把这次例外写成以后永久允许的判例。

神圣座位应用主界面,展示实验室座位、专注计时、当前链长和永久判例
图 1 · 神圣座位主界面

触发条件、专注行为、当前链长和永久判例集中在同一个界面中。

2. 管理不同场景并查看坚持记录

书房、实验室、图书馆等场景可以分别建立座位,每个座位独立保存行为规则、当前链长、累计坚持天数和每日完成次数。侧边栏使用类似 GitHub Contributions 的热力方格展示最近十二周记录,颜色越深,代表当天完成次数越多。

神圣座位应用的多座位切换和最近十二周完成记录
图 2 · 多座位与坚持记录

书房、实验室等场景可以分别维护,最近十二周的完成次数以热力方格展示。

3. 用国策树整理长期目标

单次专注并不能自动解决作息、精力或生活环境问题。RSIP 更关心长期状态:与其反复要求自己“从今天开始彻底改变”,不如先寻找维护成本低、在状态较差时也能成立的小规则。

应用使用一棵可编辑的国策树保存这些关系:下层节点是最终目标,上层节点是当前更容易做到的小目标。节点可以通过拖动交换顺序、改变层级或建立分支;画布支持缩放和平移,也不限制固定节点数量。

例如,“晚饭后不摄入热量”很难直接依赖意志力维持,但可以先建立三个更具体的上层节点:不提前购买夜宵、饭后立即刷牙并停止使用厨房、想进食时只选择无热量饮品。它们并不保证目标一定实现,却在逐步改变目标所处的环境。

晚饭后不摄入热量的国策树示例,三个上层行为共同服务于下层最终目标
图 3 · 一棵简单的国策树

下层保留最终目标,上层记录可以率先建立的具体行为。

4. 使用 Codex 辅助整理国策

国策树规模较小时,手动整理已经足够。节点逐渐增多以后,重复规则、冗长表述和混乱层级会让树变得难以维护;有时用户只有一个最终目标,也不知道应该从哪个小节点开始。

因此,应用提供了一个可选的 Codex 辅助入口:

  • 合并含义重复的节点并压缩表述;
  • 修复明显混乱的父子关系;
  • 根据一个最终目标生成一条参考链。

Codex 不会直接接管国策树。应用只把当前目标和节点 JSON 交给本机 Codex CLI,要求返回结构化建议;用户预览并确认以后,修改才会写入本地数据。不需要这项功能时,也无需安装 Codex。

神圣座位应用中的 Codex 国策整理器
图 4 · 可选的 Codex 辅助

Codex 负责提出整理方案,是否应用仍由用户决定。

5. 在应用内复习方法

为了避免工具与方法脱节,应用内保留了一份三分钟复习版,并整理了知乎原文阅读页面。左下角每天展示一条来自原文的摘录,也可以直接跳转到作者页面阅读全文。

神圣座位应用内的方法说明与知乎原文阅读页面
图 5 · 方法说明与原文阅读

应用同时保留简洁复习版和知乎原文入口,工具不会替代对方法本身的理解。

项目框架与设计

这是一个体量较小的本地桌面应用,技术结构也尽量保持简单:

层次实现负责内容
界面React、TypeScript神圣座位、专注计时、判例管理、活动统计与国策树交互
桌面运行时Tauri 2、RustmacOS 窗口、Codex CLI 调用、系统代理读取与自动更新
本地数据localStorage座位配置、完成记录、永久判例和国策节点
可选智能能力Codex CLI生成或精简国策树建议
发布GitHub Actions、GitHub Releases构建 Apple Silicon / Intel 安装包并提供签名更新

设计上有三个明确边界。

第一,本地优先。当前没有账号、云同步或自建服务器,行为记录只保存在用户自己的电脑上。

第二,模型能力是可选项。不配置 Codex 时,计时、记录、判例和国策树仍能完整使用;AI 只用于难以手工维护的整理工作。

第三,不把方法伪装成医疗建议。它是一套自我观察与行为管理工具,不能替代针对 ADHD、焦虑或其他健康问题的专业诊断和治疗。

当前状态

项目目前提供 Apple Silicon 与 Intel 两种 macOS 安装包,并通过 GitHub Releases 提供自动更新。由于尚未加入 Apple Developer Program,安装包采用 ad-hoc 签名,首次打开时可能需要在“系统设置 → 隐私与安全性”中手动确认。

这仍然是一个早期项目。它真正想做的事情并不复杂:让一次承诺的边界更清楚,也让那些看起来过于宏大的长期目标,能够被拆成今天可以先做的一小步。