task-snapshotlisted
Install: claude install-skill zYellow0826/task-snapshot
# Task Snapshot —— 大任务内存保护模式
## 为什么需要这个 skill
主 agent 的 context 是常驻内存的。一次大型重构如果让主 agent 自己:
- Read 几十上百个文件全文
- 跑 Grep 把上千行匹配塞进来
- 一条条记录 "改了 A,改了 B,改了 C…"
- 把每一步 diff、报错、思考都留在对话里
这些 token 会 **同时** 堆在编辑器进程和模型上下文里。在大型项目里轻则卡顿,重则把开发机内存吃光、IDE / 系统重启。**用户已经为此重启过 3 次电脑**——这是这个 skill 存在的唯一原因。
## 核心规则(不可妥协)
> **主 agent 只持有:任务开始快照 + 任务结束快照。中间过程 100% 下沉到 subagent。**
具体落地:
1. **任务一开始**就拆出一个或多个 subagent(用 `Agent` 工具)承接执行,**不要**在主上下文里 Read 大量文件、跑大范围 Grep、堆 TodoWrite 流水账。
2. Subagent 在自己的隔离 context 里读文件、改代码、跑测试、迭代——**这些过程对主 agent 完全不可见**。
3. Subagent 返回时,**只**带回一个结构化的"结束快照"。主 agent 不去复读 subagent 干过的每一步。
4. 主 agent 把"开始快照 + 结束快照"以**最多 30 行**的形式呈现给用户,结束。
## 触发时的工作流
### Step 1 —— 任务开始快照(写给用户看,≤15 行)
在派 subagent 之前,**先用 Bash 打一个真实时间戳**,然后输出短得不能再短的开始快照:
```bash
# 必须执行这一步,拿到机器本地真实时间 + 当前 git HEAD
date '+%Y-%m-%d %H:%M:%S %z' && git rev-parse --short HEAD
```
```
## 任务开始
- 时间: <Bash 拿到的时间戳>
- 起点 commit: <git short hash>
- 目标: <一句话>
- 范围: <文件 / 模块 / 目录,给数量而不是列表>
- 策略: 派 N 个 subagent 并行/串行执行
- 主 context 承诺: 不读源文件、不堆中间 diff、不流水账记录
```
**禁止**在这一段里贴文件列表、贴代码、贴当前状态分析。需要这些信息的话,让 subagent 自己去看。
> 时间戳和起点 commit 是这个 skill 的核心保险——之后哪怕 subagent 全部记录都被丢弃,用户也能凭这两个值 + 结束时间戳,用 `git log --since=... --until=...` 或 `git diff <start-hash>..HEAD` 精确还原这段时间内仓库发生了什么、用于回滚或审计。
### Step 2 —— 派 subagent 干活
- 优先用 `Agent` 工具,`subagent_type` 按任务选(`general-purpose` / `Explore` / `Plan` 等)。
- 任务大就**并行多个**(一条消息里多个 `Agent` 调用),按模块/目录/文件批切分。
- Prompt 里**显式要求** subagent 只回结构化摘要,**不要**把读过的文件内容、完整 diff、逐步日志回灌给主 agent。推荐模