# 捕获与分流 *引入于 v2.19.0* Captures 允许你在自动模式执行过程中随手记录想法,而不必打断当前流程。你可以把新想法、bug 或范围变更记录下来,让 SF 在 tasks 之间的自然间隙中进行分流处理。 ## 快速开始 在自动模式运行期间(或任何时候): ``` /sf capture "add rate limiting to the API endpoints" /sf capture "the auth flow should support OAuth, not just JWT" ``` 这些 capture 会追加到 `.sf/CAPTURES.md`,并在 tasks 之间自动参与 triage。 ## 工作原理 ### 流程 ``` capture → triage → confirm → resolve → resume ``` 1. **Capture**:`/sf capture "thought"` 会带着时间戳和唯一 ID 追加到 `.sf/CAPTURES.md` 2. **Triage**:在 tasks 之间的自然衔接点(`handleAgentEnd` 中),SF 会检测待处理 capture 并进行分类 3. **Confirm**:向用户展示建议的处理方式,由用户确认或调整 4. **Resolve**:应用该处理方案(插入 task、触发重规划、延期等) 5. **Resume**:自动模式继续运行 ### 分类类型 每条 capture 都会被分类到以下五种类型之一: | 类型 | 含义 | 处理方式 | |------|------|----------| | `quick-task` | 小型、可独立完成的修复 | 立即以内联 quick task 执行 | | `inject` | 当前 slice 需要新增 task | 将 task 注入当前活跃的 slice plan | | `defer` | 重要但不紧急 | 延后到 roadmap reassessment 时处理 | | `replan` | 改变当前实现路径 | 带着 capture 上下文触发 slice replan | | `note` | 仅供记录,不需要动作 | 记录并确认,不修改计划 | ### 自动分流 在自动模式下,triage 会在 tasks 之间自动触发。triage prompt 会收到: - 所有待处理 captures - 当前 slice plan - 当前活跃 roadmap LLM 会对每条 capture 进行分类并给出建议处理方案。会修改计划的处理方式(`inject`、`replan`)需要用户确认。 ### 手动分流 你也可以随时手动触发 triage: ``` /sf triage ``` 这在你积累了多条 capture,并希望在下一个自然间隙之前先处理掉它们时很有用。 ## 仪表板集成 当有待 triage 的 capture 时,进度组件会显示一个待处理数量徽标。无论是在 `Ctrl+Alt+G` 仪表板里,还是自动模式进度组件里,都能看到这个提示。 ## 上下文注入 Capture 上下文会自动注入到: - **Replan-slice prompts**:让重规划知道是什么触发了它 - **Reassess-roadmap prompts**:让被延后的 capture 也会影响 roadmap 决策 ## Worktree 感知 Captures 总是写回**原始项目根目录**下的 `.sf/CAPTURES.md`,而不是 worktree 的本地副本。这样从 steering 终端记录的内容,也能被运行在 worktree 里的自动模式会话看到。 ## 命令 | 命令 | 说明 | |------|------| | `/sf capture "text"` | 记录一个想法(单词时引号可省略) | | `/sf triage` | 手动触发待处理 captures 的 triage |