# Decision Tracker

> 记录和跟踪个人重大决策。当用户说"记决策"、"记个决策"、"决策跟踪"、"回填"、"decision",或描述一个刚做的/正在考虑的重大决策(创业/事业/财务/人生)并希望系统化记录与复盘时使用。自动四层拆解(原始信息/决策事实/假设推断/结果验证),生成 2 个文件,维护索引与行为模式库,并在记新决策时用历史教训主动拦截。

- Skill: `shengdabai/decision-tracker` (Agent Skill)
- Install (CLI): `npx skillmds@latest add shengdabai/decision-tracker`
- Raw SKILL.md: https://api.skillmd.com/api/skills/shengdabai/decision-tracker/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: shengdabai (https://skillmd.com/u/shengdabai)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/shengdabai/decision-tracker

---


# Decision Tracker

记录个人重大决策,并在你下次决策的当口用你自己的历史教训拦你。核心哲学:AI 不缺智商,缺关于你的纵向数据。

## 系统常量(所有路径写死,不受当前工作目录影响)

- `DATA_ROOT` = `~/Desktop/01-项目开发/07-决策跟踪系统`
- 决策目录:`{DATA_ROOT}/decisions/{YYYY-MM-DD}-{标题}/`
- 两文件:`01-原始信息.md`、`02-决策档案.md`
- 索引:`{DATA_ROOT}/index.json`、`{DATA_ROOT}/LEDGER.md`
- 模式库:`{DATA_ROOT}/patterns.md`

**进入本 skill 任何动作前**,先 Read `{DATA_ROOT}/README.md`(可选)与 `{DATA_ROOT}/patterns.md`、`{DATA_ROOT}/index.json` 建立上下文。
**所有文件读写用 Read / Edit / Write,禁止用 Bash 的 cat/sed/echo/grep。**

## 四层信息(置信度隔离 —— 系统的灵魂)

| 层 | 性质 | 落盘文件 |
|----|------|----------|
| 原始信息 | 决策人原话,**可能掺假** | 01-原始信息.md |
| 决策事实 | 已发生动作,**确凿无疑** | 02-决策档案.md 第一节 |
| 假设推断 | 决策人 + AI 假设,**待验证,非对错** | 02-决策档案.md 第二节 |
| 结果验证 | 现实结果,**事后回填** | 02-决策档案.md 第三节 |

---

## 动作 1:记决策

触发:用户描述一个决策,或说"记决策/记个决策"。

### 流程(默认全自动,零打断)

1. **读到期提醒**(见动作 2 的到期扫描)。如有到期未回填的决策,先一行提醒,再继续记新决策。
2. **生成 decision_id** = `{今天 YYYY-MM-DD}-{6-12字标题}`。标题取决策核心动作。
3. **四层拆解**(只拆,不问):
   - **原始信息**:逐字保留用户原话,**不改写**。逐条标性质(外部观察 / 二手转述 / 决策人假设)和置信度(高 / 中 / 低)。二手转述、对他人的主观判定 → 默认低置信度(警惕美化自己、贬低他人)。
   - **决策事实**:抽取已确定的动作和参数(日期 / 动作 / 数量 / 价格 / 成本 / 验证周期)。
   - **假设推断 - 决策人**:用户话里隐含的假设。
   - **假设推断 - AI**:判定决策类型(如 跟风型 / 规避损失型 / 沉没成本型 / FOMO型 / 理性验证型 等),列风险点。
4. **主动拦截**(核心能力):读 `index.json` + `patterns.md`,匹配:
   - 相同 / 相近 `type` 的历史决策
   - 命中的已知行为模式(patterns.md 里的模式名)

   如命中,**先停下来把历史教训甩给用户反问**(用 patterns.md 里的"拦截话术"或历史决策的核心教训),格式如:
   > ⚠️ 你 {历史日期} 也做过 {type} 决策({历史标题}),结果是 {历史教训}。你能证明今天这个不是重蹈覆辙吗?

   等用户回应后再落盘。用户回应记入 02 文件的"决策人假设"或新增"拦截后补充"小节。
   若无命中,跳过此步,继续。
5. **仅在置信度真有歧义时反问**(否则不问):例如无法判断某条是客观事实还是用户推测,且影响置信度标注,才问 1 句。其余一律自动判断。
6. **落盘**:按下方「文件模板」写 `01-原始信息.md` 和 `02-决策档案.md`。
7. **更新索引**:按下方「索引维护」追加 index.json 条目、LEDGER.md 行。
8. **回报**:一句话「已记录 {标题},到期 {review_due} 回填」。若有拦截,附拦截结论。

### review_due 计算
- 用户说了周期(如"测 7 天")→ created + 周期。
- 没说 → 默认 created + 14 天,回报里标注"默认 14 天后回填,可改"。

---

## 文件模板

### 01-原始信息.md

```markdown
---
decision_id: {id}
created: {YYYY-MM-DD}
type: 原始信息
---

# 原始信息(可能掺假,谨慎采信)

## 决策人原话(逐字记录,不改写)
> {用户原话,逐字搬运}

## 置信度标注
| 信息点 | 性质 | 置信度 | 备注 |
|--------|------|--------|------|
| {信息点} | 外部观察/二手转述/决策人假设 | 高/中/低 | {风险点} |
```

### 02-决策档案.md

```markdown
---
decision_id: {id}
created: {YYYY-MM-DD}
review_due: {YYYY-MM-DD}
status: 待验证
tags: [{标签}]
---

# 决策档案

## 一、决策事实(确凿无疑)
- 日期:{date}
- 决策:{动作}
- 参数:{数量/价格/成本}
- 验证周期:{周期}(到期 {review_due})

## 二、假设推断(待验证,非对错)
### 决策人的假设
- {假设}
### AI 的假设(可能与决策人分歧)
- 决策类型:{type}
- 风险:{风险}
- {若命中历史模式,引用 patterns.md 对应条目}

## 三、结果验证(到期回填,初始留空)
> _等待 {review_due} 回填_
```

---

## 索引维护(每次记决策 / 回填后执行)

### index.json
Read 现有 index.json,向 `decisions` 数组**追加 / 更新**该决策对象,然后 Write 回去(保持合法 JSON):

```json
{
  "id": "{id}",
  "title": "{标题}",
  "created": "{YYYY-MM-DD}",
  "review_due": "{YYYY-MM-DD}",
  "status": "待验证",
  "type": "{决策类型}",
  "tags": ["..."],
  "summary_one_line": "{一句话摘要}",
  "lesson": null,
  "patterns_hit": ["{命中的模式名}"]
}
```
回填时:更新同 id 对象的 `status` → "已回填",填 `lesson`。

### LEDGER.md
在表格**表头下第一行插入**一行(最新在上):
`| {日期} | {标题} | {类型} | {状态} | {到期} | {核心教训或"待回填"} |`
回填后更新对应行的状态和核心教训。

> 用 Read + Edit/Write 维护,不要用 Bash 的 sed/echo。

---

## 动作 2:回填(结果验证)

触发:用户说"回填 {决策}:{真实结果}",或进入 skill 时到期扫描命中。

### 到期扫描(进入任何动作前先做)
Read index.json,筛 `status == "待验证" && review_due <= 今天` 的决策。如有,列一句提醒:
> 📋 有 {N} 个决策到期该回填了:{标题}(到期 {date})…

### 回填流程
1. **定位决策**:按用户给的标题 / id 匹配 index.json,找到 `decisions/{id}/02-决策档案.md`。
2. **改写"三、结果验证"层**,补四块:
   - **主要偏差**:实际 vs 决策时假设的差距。
   - **核心教训**:一句话可复用的教训。
   - **暴露的个人模式**:这次暴露 / 印证了什么行为模式。
   - **未来规则**:下次遇到同类该遵守的规则。
3. 改 02 文件 frontmatter `status` → `已回填`。
4. **累积 patterns.md**(护城河):
   - 若"暴露的个人模式"是**新模式** → 在 patterns.md 新增模式条目(首次发现 / 复现次数 1 / 典型触发 / 历史结果 / 拦截话术)。
   - 若是**已有模式** → 复现次数 +1,补历史结果。
   - "未来规则"追加到 patterns.md 规则库。
5. **更新 index.json**(status、lesson)和 LEDGER.md 对应行。
6. **回报**:一句话总结教训 + patterns.md 是否新增 / 强化了模式。

> 用 Read + Edit/Write 操作,不用 Bash 文本工具。

---

## 动作 3:查询 / 复盘(被动)

### 3a. 决策前对比反问
触发:"我想做 X,查查以前类似的"。
流程:读 index.json,按 type / tags / 关键词匹配历史决策;读命中决策的 02 文件结果验证层;给出对比反问(历史结果 + 当前决策的风险提示)。不强行落盘,除非用户接着说"记下来"。

### 3b. 模式复盘
触发:"我有哪些反复犯的错"、"我的行为模式"。
流程:读 patterns.md,按复现次数排序汇总;关联 index.json 里命中各模式的决策列表。

---

## 演示数据
若用户明说"这是测试 / 演示 / 不用保存",**不落盘**,只在对话里展示拆解结果。

