---
name: effort-audit
description: Use when 新项目对话开始，或用户说"我有没有偏""检查方向""这值得做吗""audit this"时。自动读取 ~/.config/effort-audit/profile.md 并判断当前任务是否偏离用户的长期方向，在偏离达到中度或以上时暂停并提醒。
metadata:
  author: xiehuacheng
  version: "1.0.0"
---

# Effort Audit（投入审计）

根据持久化的个人方向配置，自动判断用户当前投入的任务是否值得继续。

**能做什么：**
- 在项目对话开始时自动读取 `~/.config/effort-audit/profile.md`。
- 静默评估当前项目或任务是否与既定方向一致。
- 在偏离达到中度或以上时列出具体原因并介入。
- 在继续前请用户确认、暂停或调整方向。
- 当用户方向变化时协助更新配置。

**不能做什么（无明确授权时）：**
- 删除或覆盖配置，且不展示差异。
- 无限期阻止用户或拒绝所有工作。
- 对用户的个人兴趣做价值判断。
- 访问配置路径之外的文件。

**默认行为：**
- 每次项目对话开始时自动读取配置并评估。
- 一致或轻度偏离时保持静默，不打扰用户。
- 中度偏离时暂停并请用户选择："继续"、"调整方向" 或 "暂停再想想"。
- 高度偏离时清楚说明冲突，在用户确认这是有意探索前不继续深入。
- 若配置不存在，启动一次性设置访谈。

## 触发条件

按优先级排序：

1. **自动触发（主要）** — 新项目对话开始时，Agent 自动读取配置并评估。
2. **用户主动检查（辅助）** — 用户说"我有没有偏"、"这值得做吗"、"检查方向"、"audit this"等。

## 不触发的情况

- 在已确认方向的项目内部执行具体子任务时。
- 用户处于纯研究或头脑风暴阶段，尚未投入实际精力。
- 配置缺失且用户明确拒绝创建。

## 配置格式

文件路径：`~/.config/effort-audit/profile.md`

```yaml
---
direction: "成为后端系统工程师，专注高并发基础设施"
primary_domains:
  - 后端系统设计
  - 分布式系统
  - 性能优化
avoid_patterns:
  - 纯前端界面打磨
  - 个人工具类 App 的完整开发
  - 与主业无关的 side project
exceptions:
  - 为后端项目临时写简单前端界面
  - 学习新技术的小实验（限时 2 小时）
last_updated: 2026-07-21
---

我是后端背景，长期目标是做高并发基础设施。后端需要时我会写简单前端，但不应把大块时间花在 UI 打磨或无关 side project 上。
```

## 首次设置

如果 `~/.config/effort-audit/profile.md` 不存在：

1. 请用户用一句话描述长期方向。
2. 询问 2-4 个主攻领域。
3. 询问 2-4 种容易陷入但希望避免的工作模式。
4. 询问 1-3 个合理的例外情况。
5. 写入文件 `~/.config/effort-audit/profile.md`。
6. 确认配置内容，并说明后续会在新项目对话开始时自动检查。

## 自动检查工作流

每次新项目对话开始时：

1. **读取配置。**
2. **用一句话总结当前任务。**
3. **根据 `direction`、`primary_domains`、`avoid_patterns`、`exceptions` 评估一致性。**
4. **判定偏离等级：**
   - **一致** — 正常继续，全程不提及审计。
   - **轻度偏离** — 不主动提示，仅在用户自然停顿后或任务结束时简短一提。
   - **中度偏离** — 暂停并请用户选择："继续"、"调整方向" 或 "暂停再想想"。
   - **高度偏离** — 清楚说明冲突，在用户确认这是有意探索前不继续深入。
5. **若用户选择调整方向**，帮助他把任务重新框定到主方向上。
6. **若用户选择继续**，记录为例外并继续执行。

## 中度偏离输出格式

```
方向检查：当前任务可能与你的长期方向不完全一致。

你的方向：成为后端系统工程师，专注高并发基础设施。
当前任务：vibe coding 一个 token 监控 App 的前端界面。

看起来像是：
- 前端界面打磨（在你的 avoid_patterns 中）
- 与后端基础设施目标关联较弱

建议选项：
1. 继续 — 确认这是有意探索，继续。
2. 调整方向 — 把目标改成只做一个最小后端接口，放弃前端。
3. 暂存 — 记录这个想法，回到原方向。

你选哪个？
```

## 更新配置

当用户方向发生变化时：

1. 询问要更新哪个字段。
2. 展示当前值。
3. 询问新值。
4. 写入更新后的文件。
5. 确认变更。

## 错误处理

| 问题 | 处理方式 |
|---------|----------|
| 配置文件缺失 | 运行首次设置。 |
| 配置文件格式损坏 | 报告错误，展示原始内容，请用户修复。 |
| 当前任务含义模糊 | 评估前先问一个澄清问题。 |
| 用户不认同审计结果 | 接受用户覆盖，继续执行，并提议若分歧反复出现则更新配置。 |

## 资源

- `references/drift-patterns.md` — 常见的精力漂移模式及识别方法。
