---
name: catchup
description: 新会话快速续接：读取蓝图状态，找出中断任务，告诉你现在在哪、该干嘛。Use at the start of a new session to resume where you left off.
allowed-tools: Read, Glob, Grep
---

# 会话续接（Catch Up）

新会话开始时快速还原上下文，找到中断点，给出明确的下一步。

## 步骤

### 1. 读取项目全景

读取 `.blueprint/manifest.yaml`，统计：
- 总模块数 / done / in_progress / planned / concept
- 总任务卡数 / done / in_progress（🔵）/ todo（📋）/ blocked（🔴）

### 2. 找出中断任务（🔵）

遍历所有 `modules/*.md`，找到前缀为 🔵 的任务卡（status: in_progress）。

对每张 🔵 卡：
1. 读取 `files` 字段列出的文件，查看当前代码实际状态
2. 对比任务卡的 `acceptance` 验收标准
3. 判断：已完成多少、还差什么

### 3. 找出可派发任务（📋）

列出所有前缀为 📋 的任务卡（status: todo，有 files + acceptance），按模块分组。

### 4. 找出阻塞任务（🔴）

列出所有前缀为 🔴 的任务卡，摘录 `blocked_reason`。

### 5. 输出续接报告

用以下格式输出，**简洁优先**：

```
## 当前状态
X/Y 模块完成，Z 个进行中

## 中断任务（需要续接）
### 🔵 <任务卡标题> — <模块名>
- 已完成：<根据代码判断已实现的部分>
- 还差：<未完成的部分>
- 建议：从 <具体位置/函数> 继续

## 可立即派发（📋）
- <模块名> / <任务卡标题>（complexity: S/M）
...

## 阻塞中（🔴）
- <任务卡标题>：<blocked_reason 摘要>
```

若没有中断任务，直接列出可派发任务和建议的下一步。

## 原则

- **不写任何代码**，只做状态诊断
- 中断任务的判断依据是代码实际状态，不是任务卡写的
- 若 🔵 任务的代码已经全部实现，直接说"可以关锁（标 ✅）"
- 输出要短，能让用户 30 秒内决定下一步
