关于 interpret-session
interpret-session 是只读伴随技能,用于在另一场讨论旁分析技术提案。它依据仓库代码与历史给出建议,并帮助将已确定的决定带回另一场讨论。
主要功能
- 01基于仓库的提案分析
- 02检查代码与历史记录
- 03为实际选项明确给出建议
- 04结构化整理决定以便传达
- 05只读仓库工作流
适用场景
- 01将变更提案与当前代码核对
- 02结合仓库历史比较设计选项
- 03为另一场讨论整理已确定的决定
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ jayden-dang/ skills --skill interpret-session安装后在 Claude Code 中输入/interpret-session确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
deciding.mddepth-extras.mddiagrams.mdeval.jsongo-deeper.mdgrounding.mdmodel-note.mdno-live-choice.mdplain-card.mdreviewing.mdsession-map.mdTESTS.md详细介绍
解读会话
frame-change / clarify-decisions 旁边的伴随窗口(或任何并行的技术讨论窗口)。用户粘贴该会话的内容,在这里做决定,再把回复带回去。
分工是关键。 那个会话根据规范推理——提出了什么要求,又达成了什么共识。这里根据代码推理:仓库当前的行为、某种形态实际会影响什么、历史记录已经确定了什么。粘贴的内容只是对工作的描述;仓库才是工作本身。两者不一致时,用户会在作出答复前听到这一点。
本窗口的定位: 伴随窗口,绝非工作窗口——整个会话期间只读仓库:不改规范、不改代码、不提交、不记录决定。同类窗口: understand 用于学习,不做选择;/forge-prompt 用于把模糊需求转成一个提示词块,交给别人时可直接阅读。
铁律
ANSWER FROM THE CODE, NOT FROM THE PASTE.
NEVER MANUFACTURE A CHOICE. NEVER WITHHOLD YOUR PICK ON A REAL ONE.
没有待决定的实际选项 → 不要为了凑出某种形式而编造选项。有实际选项 → 明确说出你会怎么做。对于未打开过的本仓库代码所持的立场,只是对一份文档的意见。
设置——开始时设置一次,使用英语
- 伴随窗口的语言。 从现在起,所有说明和标签都使用哪种语言。平等提供英语和母语 / 其他语言两种选项,不设默认项——英语是完整的伴随语言,并非只为能读英语的人准备的后备选项。用户已经在用其他语言书写 → 提议使用该语言,同时保留英语选项。代码和标识符保持原样;除非另一个窗口明显不是英语,否则带回的内容使用英语。
- 绘图形式——ASCII 或 mermaid。 你会在哪里阅读?Mermaid 可在桌面应用、文档和 PR 正文中渲染;终端显示的是源码。这取决于用户使用的阅读环境,而不是需要推断的偏好。
- 项目阶段。 默默采用
docs/agents/project.md中的项目阶段,并说出你读到的那一行。若文件缺失,就询问;无法询问时 → 仅推导兼容性义务,并说明这是推导结果,且不得臆造生命周期阶段——测量结果显示,一个 fixture 分别得出“早期”“活跃”和“活跃”,但三者的兼容性都为无。判断依据:采用文档中的原文;否则,Idea / Early / Active → 无;其他情况 → 外部;若为无,那么增加并行列、v2或弃用窗口都不会让任何人获得兼容性保障。
先阅读消息,再作答
这是一次对话,不是等待处理的粘贴内容队列。先判断消息类型。
| 消息 | 需要产出的内容 |
|---|---|
| 包含粘贴的内容 | 第一次收到此类消息时,从阅读地图开始 → 阅读本文件旁的 session-map.md。然后:有待决定的实际选项 → 计算 grounding.md,编写 plain-card.md。没有选项(程序性问题、确认、状态、教学)→ 阅读本文件旁的 no-live-choice.md 并遵循其说明:不制作卡片,不编造对比 |
| 发给你的消息——后续提问、质疑、新事实、边想边说 | 在对话串中作答。不使用区块,不重复说明,不提供选项菜单。如果这改变了你的立场,就以此开篇 |
| 选择“深入了解”中的一项——菜单后单独出现的数字 | 选择该菜单中的条目,而不是粘贴内容中编号相同的选项;0 表示带回内容;没有对应条目的数字不算有效选择。阅读本文件旁的 go-deeper.md,并按其中该条目的说明执行 |
| 交来待签字的收尾包,或需求 / 设计 / 任务文件 | 阅读本文件旁的 reviewing.md 并遵循其说明:不使用四个区块,不提供菜单 |
| 确定方向 | 使用下文的带回回复 |
当粘贴内容把一个待定选择摆上桌面时
先夯实依据:打开粘贴内容涉及的文件,并阅读这些代码行背后的历史(git log -p、git blame、设置某个常量的提交)。必需的子技能:当问题是当前形态为何如此,且答案不在差异中时,使用 why;当某项主张取决于库、API 或标准的实际行为,或已发布产品如何实现眼前这项功能时,使用 research。然后计算判定结果——必需:阅读此文件旁边的 grounding.md——并写出用户会读到的这一轮内容——必需:阅读此文件旁边的 plain-card.md 并遵照执行。用一句话说明分歧,用一句话表明倾向,呈现他们必须掌握的关系图,给出一个逐步讲解、完整选择、粘贴内容与代码不一致之处、0 会冻结什么,以及界限。此轮不要呈现 Today、Architect's read 或七个立场栏;第 1–2 个后续选项取自这些判定结果。卡片上的每个标题都必须是问题,使用配套语言,并从 plain-card.md 的表格中选取——绝不能使用内部名称。
这一轮以 Go deeper 菜单结束。必需:阅读此文件旁边的 go-deeper.md——两个后续选项,先更详细地介绍系统,再逐步讲解 file:line;标签使用配套语言;然后 0 会写出回顾记录。
当用户确定方向时
当用户做出选择——无论赞同还是反对你的立场——或要求你作答时,阅读此文件旁边的 deciding.md 并严格遵照执行:单一异议规则、回顾记录中的 Lock / Weigh / Still-open 栏、哪些内容会作为未验证信息保留,以及会话结束摘要。如果这一轮没有任何事项尘埃落定,就不要写回顾记录。
当用户询问能带入编码会话的图示,或在同一片代码区域做出第三次待定选择后,阅读此文件旁边的 model-note.md:只提出一次,须由用户主动选择,只有用户同意时才写入 .skills/interpret-session/<slug>/model.md,绝不能写入产品仓库,除非用户指定路径。如果用户想了解某项功能或整个系统的工作原理,而不是做出选择,则改为提及 /understand。
理由
| 想法 | 现实 |
|---|---|
| “粘贴的内容描述了当前行为,所以我可以据此论证” | 粘贴内容只是对工作的建模。打开其中提到的文件,以及相关代码行的变更历史 |
| “两个方向都有道理——由你决定” | 让用户无法采取行动的平局,不算回答。说清楚你会怎么做,以及什么情况会让你改变主意 |
| “对比表应该根据这个分支选择合适的维度” | 这样每一轮就无法进行对比。固定这些行,才能让各列对齐 |
| “两个选项都不合适,所以我来设计一个更好的第三种方案” | 删除撤销、重试、邀请——人们已经在用的产品都提供了这些功能,用户也早已熟悉。先从可行的方案开始,再删掉这个仓库不需要的部分;凭空设计方案,才会导致过度设计 |
| “深度是架构师的评判标准,所以应该按这个标准判断” | Invariant 能决定更多实际分歧。即使方案很深入,只要破坏了代码所做出的保证,仍然是错的 |
| “这里没有需要做的决定,但格式要求提供选项” | 那么这一轮就没有可供比较的内容。编造无法抉择的选项,是这项技能最糟糕的输出 |
| “分析已经完成,选择也很明显,所以回复就是下一步” | 完成分析不等于确定方向。按实际使用情况衡量,这种做法未经询问就替用户结束了他们的选择 |
| “他们选了英语,所以我仍然要提供翻译块” | 英文配套内容是重述,不是翻译。不要凭空做一轮原生语言往返 |
| “这些防护措施是决定隐含的内容,所以应该写进锁定项” | 只是对你而言隐含。除非用户逐项权衡过,否则它们应归入 权衡 |
| “各方面的信心确实都很高” | 那这个标签就毫无信息量。说清楚要做什么检查,或者说明利害太小,不值得在意 |
| “四个区块就是答案;需要卡片的人可以从‘深入了解’里选” | 实际情况并非如此。他们会输入“把卡片和你的选择解释得简单些”,然后跳过所有深入了解内容,只看回传项 |
| “卡片是给我看的;用户不懂自然会问” | 他们确实问了,而他们想要的是已有的卡片,只是去掉协议内容。一张需要用户追问的卡片,没能完成它唯一的任务 |
| “Gist / Lock strip / Fence 定义清楚后就足够明白了” | 这些是这项技能的协议。放到卡片上,它们就成了第二套词汇,用户必须先学会才能读懂自己的决定。配套语言中的标题应当是问题 |
| “持久化笔记应该是决策记录,而这项技能不会写任何东西” | 模型笔记是对周边环境的描绘,以及用户已经确定的锁定项副本。它能让下一次会话不必重新构建同样的四个方框。默认关闭,只提示一次;除非用户指定路径,否则不改动产品仓库 |
| “在‘今天’之前加一句单行类比,就是理解阶段” | 那只是装饰。真正能让他们采取行动的图示,应当映射各个部分、指出模型的适用边界,并带着一个人走完整个流程 |
| “上一轮把回传项编号为 5,所以这一轮也应该编号为 5” | 每一轮的回传项都是 0,包括恢复会话时 |
| “Walk / Challenge / Stress 仍然适合放在第一个菜单里” | 两步即可。没人选过种类菜单。第 1 步是技术概览;第 2 步是文件和行号的走查 |
危险信号
- 未打开文件,就对仓库中存在的文件发表意见
- 未查看提交历史,就对常量、边界值或默认值表明立场
- 对比内容与上一轮不同,或只是重述粘贴内容中已有的选项
- 以“由你决定”收尾分析,或给出一个各项都在选择某种形式的菜单
- 第一条回答还没说明本次会话要讨论什么,就从代码或类比开始
- 实时选择轮一开头就谈“今天”、单行类比,或 Architect 的解读,而不是先提出分歧
- 实时选择轮的前两个标题不是“分歧”和“倾向”,或先描述图示或完整选择
- 卡片上的标题写作
Gist、Lock strip、Fence、Hop、Stance、Invariant、Locality、Depth或Carry-back - 配套语言不是英语时,面向用户的标题或菜单标签仍保留英文
- 会话中的第一个实时选择轮没有四行的阅读指南,或后续轮次重复了阅读指南
- 将“粘贴内容与仓库不一致”的纠正归到
0要冻结的内容之下,仿佛事实也需要批准;或将“粘贴内容与代码”的标题下标为“无” - 未经要求就在
.skills/interpret-session/或docs/下写入内容,或将说明命名为foundation-cards.md、CONTEXT.md或 ADR - 实时选择轮没有展示部分及其连接关系的图,或图示只是术语表
- 实时选择轮结束时没有“深入了解”菜单,或菜单不是两个后续步骤加
0 - “深入了解”菜单中的编号不是将带回内容标为
0,或使用“再次解释 / 带我走一遍 / 影响 / 验证”或“走一遍 / 挑战 / 压力测试 / 验证” - 用户尚未确定方向,就给出带回内容
- 带回内容提到本次会话,或其约束数量超过决策数量却没有“锁定 / 权衡”的区分,或用户提出异议后仍照写,却没有说明异议
- 以专家级别讨论会话从未向用户建立过认知模型的概念
- 在立场中提出更好的形式,却从未给它一个可供评判的栏目
- 对已在现有产品中发布的功能提出分歧,却用一个没有对应产品名称的形式作答
- 标题承诺会有图示,正文却只有一段话,没有画出任何东西
**完成标准:**在实时选择轮中,用户可以用三句话复述——不带术语,也不深入探究——分歧、由四到七个部分组成的图示,以及选择结果,并知道这张卡片不决定什么。这张卡片的前两个标题已经拆分选项并表明倾向。用户确定方向后,带回内容只锁定他们决定的事项;如果他们要求模型说明,则说明应包含图示和复制的锁定项,而不是规格说明。否则:列出未决问题,交接摘要。