# OpenCode Compact：压缩长会话后，核对未完成需求与改动边界仍然可用

## 执行范围

已通过OpenCode原生debug config回读auto:false/prune:true；未执行模型长会话或/compact，压缩后核对单是作者预设合同。

## 输入与目标

含长工具输出、两个未完成验收和一条禁止改动范围的会话

交付：压缩前后会话摘要、续做补丁与锚点验收表

## 运行

在 reference 目录执行；先按文件 requirements.txt / package.json 或原生工具文档安装依赖。浏览器练习需 `npx playwright install chromium`；也可设置 `PLAYWRIGHT_EXECUTABLE_PATH` 为自己的 Chrome 路径。

```sh
opencode debug config --pure
```

## 目录

- fixtures：作者原创输入，不包含用户真实资料。
- starter：读者待完成任务。
- reference：作者完成参考。
- results：作者实际运行所得或明确标注的待运行输入/预期合同。

## 七步

1. **记录尚未完成项**

原创长会话列出empty-basket、unknown-region两项失败及允许修改范围，避免压缩后只剩“继续开发”这样无法验收的指令。

2. **确认压缩设置**

回读原生解析后的compaction设置。本题auto:false用于由读者手动观察压缩，prune:true不等于已删除或完成未做任务。

3. **建立压缩前基线**

在自己的授权OpenCode会话确认当前git diff、失败测试和禁止修改的routes.ts，再保存原始会话证据。

4. **执行手动压缩**

在TUI执行/compact，等待该会话实际完成。本文没有调用该命令，不能用carry-forward.md冒充原生压缩输出。

5. **追问剩余工作**

压缩后先问“还欠哪两个失败测试、允许改哪些文件”。与作者核对单逐项比，缺项应重新补充原证据。

6. **续做受限补丁**

让Agent只处理shipping.ts及测试，检查未知地区与空篮子合同。压缩是上下文整理，不是自动放宽改动权限。

7. **保存前后对应**

保留压缩前待办、真实压缩后回答、失败测试与git diff。核对单只定义目标，不证明压缩后的Agent已经记住全部要求。

## 来源

- https://opencode.ai/docs/config/
- https://opencode.ai/docs/tui/
