# task-record

把一段已完成工作写入飞书任务树。

## 场景

- 用户说"帮我记一下今天做了什么"
- 用户说"记录一下：完成了数据清洗"
- cron 每日提醒触发记录流程
- agent 自动记录进展

## 两种交互模式

### 模式 A：用户提供了内容

触发："记录一下：今天完成了数据清洗工作"

```
1. 整理用户提供的内容为简洁记录
2. 展示草案，询问确认："这样记可以吗？"
3. 确认后 → 确定挂载点 → 记录
```

### 模式 B：用户未提供内容

触发："帮我记一下最近做的" / cron 提醒 / "用一下记录技能"

```
1. 优先尝试 Cotrace 获取工作数据（见下方）
2. 如果 Cotrace 有数据 → 自动生成草案
3. 如果 Cotrace 无数据/不可用 → 询问用户做了什么
4. 展示草案，询问确认
5. 确认后 → 确定挂载点 → 记录
```

## 使用 Cotrace 作为数据源（优先）

在模式 B 中，优先使用 Cotrace 的 work-records 获取实际工作数据，参考 `skills/cotrace/SKILL.md`：

```bash
# 检查 Cotrace 是否可用
ftc health cotrace

# 获取今天的工作摘要
echo '{"tool":"get_workstream_summaries","args":{"created":{"from":"<today>T00:00:00Z","to":"<today>T23:59:59Z"}}}' | ftc call cotrace

# 获取详细内容
echo '{"tool":"get_workstream_summaries_details","args":{"identifiers":["<id1>","<id2>"]}}' | ftc call cotrace
```

如果 Cotrace 不可用（`ftc` 找不到、health check 失败或无数据），退回到直接询问用户。

## 层级契约

- `[主线]`：顶层长期工作主线
- `[子线]`：主线下或子线下的结构任务（支持多级）
- `[记录]`：已完成工作的记录任务（本文档负责创建的对象）

## 确定挂载点

不要直接创建记录。先用 `check attachable` 找到合适的挂载候选：

```bash
auwomo task check attachable --format json
```

输出中 `attachable=true` 的候选按优先级排序（深度越深越优先）。

### 挂载优先级

1. 最细、最贴近当前工作、且合法可挂载的 `[子线]`
2. 若没有更细合法 `[子线]`，回退到上层 `[子线]`
3. 若仍没有，再回退到合法 `[主线]`
4. 如果没有任何合法候选 → 改走 `task-create` 流程先创建结构

## 创建记录

```bash
auwomo task record --work <parent_guid> --summary "完成了数据清洗工作"
```

- `--work`：父任务的 GUID（从 check attachable 结果中选取）
- `--summary`：记录内容描述

CLI 会自动：
- 添加 `[记录]` 前缀（如果你没加）
- 以 bot 身份创建
- 创建时标记为已完成状态

## 草案撰写原则

- 简洁明了，一两句话概括做了什么
- 用结果导向的语言，不要写过程细节
- 如果来自 Cotrace 数据，提取核心成果而非罗列所有活动
- 示例："完成实验数据预处理和特征提取"，而非"打开了 Python，写了一些代码..."

## 错误处理

- `--work` 为空 → 必须指定父任务 GUID
- `--summary` 为空 → 必须填写记录内容
- 无可挂载候选 → 引导走 task-create 流程

## 不要这样做

- 不要跳过 `check attachable` 直接猜挂载点
- 不要把记录挂在树外面（没有父任务的孤立记录）
- 不要在未确认的情况下直接记录（必须与用户确认草案）
- 不要把 Cotrace 原始数据大段贴为记录内容
