)
阶段边界决策树在 Agent 会话中管理上下文与交接的完整指南ask-matt / Phase Boundaries【免费下载链接】skillsSkills for Real Engineers. Straight from my .agents directory.项目地址: https://gitcode.com/GitHub_Trending/skills13/skills导读在长期使用 Claude Code、Codex 等编码 Agent 的过程中最容易被忽视却最影响产出质量的决策发生在两个工作阶段之间的缝隙里这个阶段结束后是继续留在当前会话、清空上下文、写一份交接文档、派给子代理还是压缩上下文本项目skills 仓库中的 PHASE-BOUNDARIES.md 给出了一张有序的五问决策树配合 ask-matt 路由器使用可以让你在每一个阶段边界上做出成本最低、信息损失最小的选择。读完本文你将掌握 phase / phase boundary 的准确定义、五种选项的适用场景与代价对比、从上到下逐条判断的决策流程以及 primary / secondary source 的取舍原理并能在真实的多会话工程流程中直接套用。什么是 Phase 与 Phase BoundaryPhase阶段是会话内的一段工作块一次 grilling访谈式需求澄清、一次 implementation实现、一次 QA质量检查都是独立的阶段。文档刻意没有给阶段一个精确边界——一个阶段何时结束由你自己判断标准就是当你觉得ok这块做完了的时候。Phase boundary阶段边界则是两个阶段之间的间隙它是在整个会话中唯一适合做是否切换上下文决策的地方。理由很直接阶段中途不存在这个决策要么继续推进要么把剩余工作拆给子代理。此时压缩上下文compact会让 Agent 丢失线索Compacting mid-phase makes the agent lose the thread。阶段边界上上一阶段的工作成果已经沉淀可能是推理链、代码 diff、一份文档下一阶段的输入已经明确此时做切换决策的信息最完整、代价最可控。这一概念在本仓库的 ask-matt 技能中有明确的落点。ask-matt/SKILL.md 的 Context hygiene 一节规定主流程的第 13 步grilling → spec → tickets应保持在一个不断裂的上下文窗口内直到/to-tickets之后每个/implement再各自开新会话。而决定在哪里切、怎么切正是由阶段边界决策树来回答的。五种选项及其代价在阶段边界上你有五个选项。原文档用一张表精确概括了它们各自的行为选项作用Continue留在当前会话完全不切换上下文/clear清空上下文窗口从零开始/handoff写一份可移植的 Markdown 交接文件用它在新会话中播种Subagent把任务发送到它自己的上下文窗口拿回一份报告/compact压缩当前上下文用摘要播种一个新会话注意/handoff与/compact在机制上的本质区别前者产出一个文件portability可移植性后者产出一份摘要compression压缩。仓库中的 handoff/SKILL.md 进一步说明/handoff将当前对话总结为交接文档写入操作系统临时目录而非工作区并附带一个 suggested skills 段落告诉下一个 Agent 应该调用哪些技能同时会脱敏 API 密钥、密码等敏感信息并且绝不复制spec、plan、ADR、issue、commit、diff 中已有的内容而是用路径或 URL 引用避免双份内容漂移。决策树从上到下逐条判断第一个是胜出这棵树是文档的核心骨架规则是在边界处自上而下逐条询问第一个回答是的选项胜出。问题 1能否在当前会话继续两个条件之一成立即可回答是下一阶段需要把本阶段当作 primary source一手来源。最典型的例子是 grilling → implementation实现阶段需要的是访谈推理的逐字原文而不是一份摘要。原文档的判断是 the implementation wants the reasoning verbatim, not a summary of it。剩余的 smart zone智能区足够装下下一阶段约 150k tokens指模型仍能清晰推理的窗口容量。Continue 的成本为零、损失为零所以必须先把它排除掉再做别的判断。这也与 ask-matt 技能中的上下文卫生建议一致主流程尽可能在一个不中断的窗口里推进直到窗口逼近 smart zone 上限。问题 2当前上下文与接下来的工作是否无关如果本会话里的一切——探索过程、决策、死胡同——都是可丢弃的就用/clear。它是整张棋盘上最便宜的招不花时间把整个窗口还回来。而且/clear不是终局操作旧会话仍然可恢复resumable。但这一选项的错误代价是单向的清掉一个仍然相关的上下文你就失去了为什么这样做thewhybehind what you built无论事后怎么重读 diff 都找不回来。这是整棵树里唯一错了就无法挽回的分支值得特别警惕。问题 3是否需要交接handoff/handoff是五个选项里最窄的一个。原文档明确给出了它的全部触发条件只有这四种切换到新的 harness例如 Claude → Codex移动到新的目录或仓库原型目录是常见场景把工作交给同事在阶段中途发现一个旁支任务想分叉出去而不打乱主线。这份清单就是它的全部适用条款。/handoff买到的是可移植性a file that travels。如果没有任何东西需要旅行你就不需要它。仓库对分叉场景有更完整的展开/handoff的分叉用法允许你留在原会话里同时把已积累的上下文副本交给第二个 Agent 并行处理。这正是主流程中原型绕行的桥接方式——ask-matt/SKILL.md 第 18 行描述的流程是/handoff出去 → 在新会话用该文件播种 →/prototype用一次性代码回答问题 →/handoff把学到的东西带回来并在原思路线程中引用它。原型活在自己的目录里往返的两次跨越正是/handoff的用武之地。问题 4任务能否在无人值守AFK下完成如果任务范围足够紧、不需要你在旁边持续纠偏no steering就交给subagent让本会话保持不动。自动化 review 是标准场景Agent 读取 diff 并回报期间不需要你在场。从源码结构看subagent 的价值在于把任务放进它自己的上下文窗口从而不占用主会话的 smart zone与问题 1 中剩余窗口容量的判断形成互补。问题 5否则用/compact相关上下文、同一 harness、同一目录、且你还需要持续参与——决策树最终落在这里而且经常落在这里。此时应当给/compact传一条指令例如/compact were going to QA this area让摘要保留下一阶段需要的东西。原文档特别强调/compact是默认项而不是首选。它被放在树的最底部是因为它上面的四个问题全都更便宜或更精确。人们常见的失败模式就是一开始就用/compact结果是开出一个新会话它对着被摘要压平的决策自信地犯错confidently wrong about a decision the summary flattened。这正是问题 1 必须排第一的原因。Primary Source 与 Secondary Source 的取舍除Continue之外的每一个动作都会把一个primary source一手来源原样发生的会话变成secondary source二手来源对它的摘要。这个交易的形状永远相同来源信息量噪声可活动空间PrimaryContinue完整多小Secondary/compact、/handoff有损少大也就是说Continue 保留全部信息但噪声也多、剩余可活动空间小压缩或交接则有损但换来更干净的上下文和更大的活动余地。这也是为什么问题 1 排在首位——你只有在留在原地的代价大于收益时才应该为有损转换付费。/handoff的文档页 docs/productivity/handoff.md 用一句话总结了三种工具各自的保留对象可以当作记忆锚点/compact保留你的意图intent/clear什么都不保留/handoff保留工作能够移动的能力portability。这些判断是品味问题原文档在结尾给出了清醒的提醒这五个问题不是客观的每一个都掺着判断力taste同一条边界在两个不同的日子里可能走向不同的选择。决策树的价值不在于给出唯一正确答案而在于按顺序提问自上而下第一个是胜出在边界处提问而不是在工作中途。在本仓库中的位置与使用方式这份决策树是 ask-matt 路由器的一部分服务于整个 skills 体系。相关文件结构如下决策树本体skills/engineering/ask-matt/PHASE-BOUNDARIES.md路由器总览skills/engineering/ask-matt/SKILL.md其 Phase boundaries 一节把五个选项浓缩成一段速查并指向本文档阅读完整决策树交接工具实现skills/productivity/handoff/SKILL.md 与 docs/productivity/handoff.mdask-matt 的元数据agents/openai.yaml中allow_implicit_invocation: false即它是仅用户触发的路由器需要你主动输入/ask-matt或等价触发词来调用阶段边界的决策也因此始终由你主导Agent 不会自行替你选择/clear、/compact或/handoff。handoff 技能的 frontmatter 同样设置了disable-model-invocation: true需要你主动输入/handoff。如果你想在本地安装使用这套技能含 ask-matt 与 handoff仓库 README.md 提供了两种方式Claude Code 下执行claude plugins install mattpocock-skills插件方式自动更新或其他 Agent / 折腾党使用npx skillslatest add mattpocock/skills文件方式可自行修改首次使用工程类流程前还需在每个仓库执行一次/setup-matt-pocock-skills配置 issue tracker、triage 标签与文档布局。总结一张可以贴在终端边的速查卡把整棵决策树压缩成五句话就是下一阶段需要本阶段的一手推理或窗口还够 →Continue先排除它当前上下文对下一步毫无价值→/clear但注意错了就是单向损失要换 harness / 换目录 / 交同事 / 分叉旁支 →/handoff买的是可移植性任务足够紧、可无人值守 →Subagent不碰主会话其余情况 →/compact默认项但绝不是首选记得带上指令。在边界处按此顺序判断你就能在信息完整度与上下文成本之间始终做出理性选择避免最常见的两种翻车中途压缩导致 Agent 丢线或清空相关上下文导致为什么这么做永远失联。【免费下载链接】skillsSkills for Real Engineers. Straight from my .agents directory.项目地址: https://gitcode.com/GitHub_Trending/skills13/skills创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考