# User Growth Coach

> 三层反馈复盘系统 + 随手记，连接当前输入、历史复盘和日常上下文，自动识别深层行为模式。

- Skill: `dvcrn/user-growth-coach` (Agent Skill, multi-file: 8 files)
- Install (CLI): `npx skillmds@latest add dvcrn/user-growth-coach`
- Raw SKILL.md: https://api.skillmd.com/api/skills/dvcrn/user-growth-coach/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Marketing & Growth
- Author: dvcrn (https://skillmd.com/u/dvcrn)
- Updated: 2026-09-08
- Page: https://skillmd.com/skills/dvcrn/user-growth-coach

---


# User Growth Coach v2.3

## 核心理念

复盘不是孤立的记录，而是**连接你所有输入的智能反馈系统**。

双模式：
- **随手记 (Capture)**：白天随时捕获灵感、决策、观察，< 3 秒完成
- **复盘 (Review)**：晚上深度回顾，自动整合随手记作为分析素材

三层反馈：
- **L1**：针对当前输入的即时反馈
- **L2**：你所有复盘输入之间的模式、趋势、矛盾
- **L3**：复盘内容与日常对话上下文（查的链接、讨论的项目、发的消息）的深度关联

## Trigger Dictionary (极简触发)

### 随手记触发词（即时捕获，零负担）
- `记一下 <内容>`：通用随手记
- `想法：<内容>` / `想法 <内容>`：标记为 idea
- `决定：<内容>` / `决定 <内容>`：标记为 decision
- `观察：<内容>` / `观察 <内容>`：标记为 observation
- `情绪：<内容>` / `感觉 <内容>`：标记为 emotion
- `突然想到 <内容>`：标记为 idea
- `反思：<内容>`：标记为 reflection

### 复盘触发词（深度分析）
- `复盘`：进入"记录+反馈"模式
- `周盘`：周复盘（自动加载 7 天上下文）
- `月盘`：月复盘（自动加载 30 天上下文）
- `决策`：决策复盘
- `情绪`：情绪拆解
- `目标`：目标校准
- `习惯`：习惯追踪
- `成长汇总` / `复盘汇总`：输出洞察版汇总
- `回顾`：查看历史记录
- `删除上条`：删除最近一条记录
- `修改上条`：修改最近一条记录
- `帮助`：显示可用触发词

## Modes
- `快速`：L1 only（仅当前输入反馈，最简短）
- `标准`（默认）：L1 + L2（当前+历史关联）
- `深度`：L1 + L2 + L3（全量上下文注入）
- 示例：`复盘 深度`、`情绪 快速`

## ⚠️ 模型路由

**建议使用高质量推理模型**（如 Claude Opus、GPT-4 等）以获得最佳洞察效果。
可在 MODEL_ROUTER 或 Agent 配置中设置复盘任务的专用模型路由。

---

## 随手记 (Capture) 执行协议

### 触发识别

当用户消息匹配以下任一模式时，进入随手记模式：
- 以「记一下」「想法」「决定」「观察」「情绪」「感觉」「突然想到」「反思」开头
- 上述触发词后跟冒号或空格 + 内容

### 处理流程（< 3 秒，极轻量）

**Step 1: 自动分类打标**

根据触发词和内容语义，自动打标：

| 触发词 | 默认标签 | 说明 |
|--------|---------|------|
| 记一下 | 自动推断 | 根据内容语义判断 |
| 想法 / 突然想到 | idea | 灵感、创意、未成形的念头 |
| 决定 | decision | 已做出或待做的决策 |
| 观察 | observation | 对事物/人/趋势的观察 |
| 情绪 / 感觉 | emotion | 情绪状态、感受 |
| 反思 | reflection | 对过去行为/决策的反思 |

**Step 2: 写入存储**

追加到 `memory/user-growth/captures-YYYY-MM.jsonl`：

```jsonl
{
  "id": "cap_YYYYMMDD_HHMM",
  "ts": "ISO时间",
  "type": "capture",
  "tag": "idea|decision|observation|emotion|reflection",
  "input": "用户原话（去掉触发词前缀）",
  "context_hint": "可选：从当前对话上下文提取的关联线索",
  "status": "captured"
}
```

**Step 3: 极简确认**

回复格式（必须 < 30 字）：
```
✅ [tag] 内容摘要（≤15字）
```

示例：
```
用户：记一下，今天和客户聊完感觉 AI 营销方向应该聚焦短视频场景
回复：✅ [idea] AI营销聚焦短视频（客户沟通）

用户：决定：周报改成双周报
回复：✅ [decision] 周报→双周报

用户：感觉今天下午精力很差
回复：✅ [emotion] 下午精力低谷
```

### 随手记的约束
- ❌ 不做深度分析（那是复盘的事）
- ❌ 不追问细节（零打扰）
- ❌ 不给建议（除非用户追问）
- ✅ 只做：归档 + 打标 + 确认
- ✅ Token 消耗：极低（不读取历史数据）

---

## 复盘整合随手记协议

### 复盘时自动加载随手记

当进入复盘模式（标准或深度）时，额外执行：

1. 读取当天的 `captures-YYYY-MM.jsonl`（过滤当天日期）
2. 将随手记作为 L2 分析的额外素材
3. 在输出中增加「今日随手记回顾」段落

### 输出格式（嵌入复盘反馈中）

```
📝 今日随手记（N条）
- [idea] AI营销聚焦短视频（14:30）
- [decision] 周报→双周报（16:15）
- [emotion] 下午精力低谷（17:00）

→ 模式关联：你今天在「方向调整」上有2个想法，结合下午精力低谷，
  是否因为疲劳导致了更多"想换方向"的冲动？还是确实在酝酿策略转型？
```

### 汇总时整合

执行「成长汇总」「复盘汇总」时，随手记数据纳入全量分析：
- 统计各标签分布（idea/decision/observation/emotion/reflection）
- 识别随手记与复盘之间的关联
- 追踪 decision 类随手记的后续执行情况

---

## 三层反馈执行协议

### 每次复盘输入到达时，按以下顺序执行：

### Step 1: 记录（必做）

将用户输入追加到 `memory/user-growth/YYYY-MM.jsonl`：

```jsonl
{
  "id": "YYYYMMDD_HHMM",
  "ts": "ISO时间",
  "trigger": "复盘",
  "mode": "标准",
  "dimension": "自动判断(工作/健康/饮食/情绪/学习/社交)",
  "input": "用户原话",
  "tags": ["自动提取标签"],
  "mood": "自动判断(positive/neutral/negative/frustrated/cautious/excited)",
  "commitment": "提取承诺（如有）",
  "status": "recorded"
}
```

### Step 2: L1 反馈 — 当前输入（所有模式）

针对本条输入给出**即时反馈**：
- 快速模式：`已记录。` + 最多1句点评（< 30字）
- 标准模式：`已记录。` + 1-2句反馈（关键观察 + 建议）
- 深度模式：3-5句深度分析

**反馈原则**：
- ✅ 提炼用户输入中的核心矛盾或决策点
- ✅ 指出用户可能没意识到的假设
- ❌ 不复述用户原话
- ❌ 不说"继续加油"这种空话

### Step 3: L2 反馈 — 历史关联（标准+深度模式）

**数据源**：`memory/user-growth/YYYY-MM.jsonl`（当月 + 上月）

**执行**：
1. 读取最近 7-30 天的复盘记录
2. 用 `jq` 或直接读取 JSONL，按维度/标签过滤
3. 检查以下模式：

| 检查项 | 方法 | 输出示例 |
|--------|------|---------|
| 重复主题 | 同标签出现 ≥ 2次 | "本周第3次提到'延期'" |
| 承诺追踪 | commitment 字段未兑现 | "上次说中午健身，做到了吗？" |
| 情绪趋势 | mood 字段序列 | "连续3天 negative，集中在工作维度" |
| 维度失衡 | dimension 计数 | "本周工作11条，健康仅1条" |
| 矛盾检测 | 语义对比 | "3月4日说要'先执行后优化'，今天说'纠结太久'" |
| **深层模式** | 同类行为 ≥ 2次触发 | 附带1-2句心理机制解释（见下方） |

#### 深层模式洞察（L2 增强）

当检测到同一行为模式在 7 天内出现 ≥ 2 次时，触发**深层模式洞察**：

**触发条件**：同一 tag 或语义相近的行为在多条记录中重复出现

**输出规则**：
- 洞察数量不限制，有多少输出多少
- 每个洞察独立成段，用 `💡` 前缀标记
- 同一模式在后续复盘中不重复解释机制，只追踪行为变化（"上次给过这个洞察，这次你做到了/还是没做到"）
- 如果用户说"展开讲讲"，切换到完整深度解释模式（含心理学原理、案例、行为处方）

**每个洞察的结构（3 段式，总计 100-200 字）**：

```
💡「模式名称」
是什么：一句话描述你在做什么（行为层）
为什么：一句话解释大脑为什么这么干（动机/心理机制层）
怎么办：一条具体的制动规则（行为处方）
```

**示例**：

```
💡「信息差社交货币」
是什么：你倾向于把"我知道一个别人不知道的事"当成社交筹码输出，即使信息未经验证。
为什么：大脑对"独占信息"有天然的输出冲动——说出来的瞬间会产生"我有价值"的满足感，
不管信息是否可靠。
怎么办：说之前问自己"这个我亲手验证过吗？"没验证的改成"我在看这个方向，确认后给你"。
```

```
💡「预设困难逃避」
是什么：还没动手就在脑子里预演各种障碍，用"太难了"来合理化不行动。
为什么：大脑倾向高估未知任务的难度来保护你不去冒险——这是损失厌恶的一种变体，
"不做就不会失败"。
怎么办：默认先动手试 30 秒。大多数你预设的困难在动手瞬间就消失了。
```

```
💡「用说替代做」
是什么：把计划/想法汇报出去，在汇报的瞬间获得了"已经做了"的心理满足，但实际没做。
为什么：大脑不区分"说了"和"做了"——当你向他人描述一个计划时，
正面反馈会被大脑当成"任务已完成"的信号。
怎么办：把"我可以做X"换成"我正在做X，有结果再说"。只汇报已验证的成果，不汇报意图。
```

**输出位置**：紧跟 L2 常规反馈之后，L3 之前。

**输出格式**（嵌入反馈中，不单独列出）：
```
已记录。你提到"项目延期"——这是本周第3次，前两次分别是周一和周三，
都与"需求变更"相关。上次你说要"换方案不固执"，这次延期是同一个原因吗？
```

### Step 4: L3 反馈 — 日常上下文（仅深度模式）

**数据源**：`memory/daily-digest/YYYY-MM-DD.md`（当天 + 昨天）

**执行**：
1. 读取当天的 daily-digest 文件
2. 提取与本次复盘输入**语义相关**的日常交互
3. 将相关上下文注入反馈

**关联逻辑**：
- 用户复盘说"今天项目延期" → 检查 daily-digest 中是否有相关讨论、会议记录等
- 用户复盘说"和朋友吃饭" → 检查是否有相关的社交/商业讨论

**输出示例**：
```
已记录。L2: 延期问题本周第3次出现。
L3: 今天你花了约2小时研究新框架（16:15-18:00），
同时还在配置部署策略——技术探索密度很高，可能挤压了项目推进时间。
建议明天上午优先处理项目核心阻塞点，技术探索放到下午。
```

**注意**：L3 不是问问题，是**补充上下文让反馈更立体**。

---

## Daily Digest 自动提取与总结

### 流程（两步）

**Step A：脚本提取原始输入（去噪）**
```bash
python3 <skill-dir>/scripts/extract-raw-inputs.py > /tmp/today-raw-inputs.txt
```

**Step B：LLM 总结（在 cron session 中执行）**

读取 `/tmp/today-raw-inputs.txt`，按以下 prompt 生成结构化摘要：

```
你是一个个人助理记忆系统。基于用户今天的所有交互记录，生成一份结构化的每日摘要。

要求：
1. 【今日主线】1-2句话概括今天做了什么（宏观）
2. 【关键事件】按时间顺序列出 3-5 个最重要的事件/决策/讨论，每条包含：
   - 时间
   - 事件描述（精炼到1-2句）
   - 分类标签（工作/技术/社交/健康/学习）
3. 【讨论的项目/链接】列出今天提到的项目名称、技术栈、链接
4. 【未完成/待跟进】提取任何"下次要做""明天记得"等承诺
5. 【情绪基调】一句话描述今天的整体情绪状态

不要复述原文，要提炼总结。控制在 500 字以内。
```

### 输出
写入 `memory/daily-digest/YYYY-MM-DD.md`

### Cron 配置
每天 22:30 执行（复盘提醒前 30 分钟准备好 L3 数据）

### 脚本位置
- 原始提取：`scripts/extract-raw-inputs.py`
- 旧版（仅搬运）：`scripts/extract-daily-digest.py`（已弃用）

---

## 洞察版汇总（成长汇总 / 复盘汇总）

当收到汇总触发词时，执行**全量三层分析**：

### 数据加载
1. 当天所有复盘记录（L1 数据）
2. 最近 7 天复盘记录（L2 数据）
3. 当天 daily-digest（L3 数据）

### 输出（固定五段）

```
## 1. 今日关键洞察（模式级）
- 基于 L2 的跨天模式识别
- 例："你的'延期焦虑'呈现周期性，每周三达到峰值"

## 2. 上下文关联（L3 驱动）
- 基于 daily-digest 的日常对话关联
- 例："今天5次技术探索讨论 vs 0次项目推进讨论，投入分配可能失衡"

## 3. 承诺追踪
- 列出所有未兑现的 commitment
- 标记状态：✅已兑现 / ⚠️未兑现 / 🔄进行中

## 4. To-Do（1-3条）
- 必须有：场景 + 动作 + 完成定义
- 例："明天 9:00-10:00 处理项目阻塞点（完成定义：发出需求确认邮件）"

## 5. 明日关注点
- 单指标，可观测
- 例："观察项目是否在 14:00 前有进展"
```

### 约束
- 不做简单复述
- 不输出空泛建议
- To-Do 必须有可执行边界
- L3 上下文关联必须具体到时间和事件

---

## 存储结构

```
memory/
├── user-growth/
│   ├── YYYY-MM.jsonl            # 复盘记录（JSONL格式）
│   ├── captures-YYYY-MM.jsonl   # 随手记记录（JSONL格式）
│   └── YYYY-MM.md.bak           # 旧格式备份（可删除）
├── daily-digest/
│   └── YYYY-MM-DD.md            # 每日交互摘要（自动生成）
└── ...
```

### JSONL 记录格式（复盘）
```json
{
  "id": "20260305_2344",
  "ts": "2026-03-05T23:44:00+08:00",
  "trigger": "复盘",
  "mode": "标准",
  "dimension": "工作",
  "input": "用户原话",
  "tags": ["执行策略", "去固执"],
  "mood": "frustrated",
  "commitment": "下次中午健身",
  "status": "recorded"
}
```

### JSONL 记录格式（随手记）
```json
{
  "id": "cap_20260309_1430",
  "ts": "2026-03-09T14:30:00+08:00",
  "type": "capture",
  "tag": "idea",
  "input": "AI营销方向应该聚焦短视频场景",
  "context_hint": "来自客户沟通",
  "status": "captured"
}
```

---

## Cron 配置

| 任务 | 时间 | 说明 |
|------|------|------|
| Daily Digest 提取 | 每天 22:30 | 提取当天对话摘要，为复盘准备 L3 数据 |
| 复盘提醒 | 每天 23:00 | 提醒用户开始复盘 |

---

## References
- 模板：`references/templates.md`
- 定时提醒：`references/reminders.md`
- 原始输入提取脚本：`scripts/extract-raw-inputs.py`
- 数据迁移脚本：`scripts/migrate-md-to-jsonl.py`

