pstack 使用指南三在改动代码之前用 /how、/why、/teach 与 /recall 真正读懂它【免费下载链接】pluginsCursor plugin specification and official plugins项目地址: https://gitcode.com/GitHub_Trending/plugins125/plugins改动你不理解的代码是隐蔽回归subtle regression最常见的来源。pstack 为此提供了四条理解代码的入口/how解释当前代码的行为与运行时流程/why回溯代码演变成现在形态的历史原因/teach把两者融合成一份可对话的讲解/recall重建你自己近期的工作上下文。本文以 pstack 指南第三章 为骨架结合仓库中how、why、teach、recall四个技能的 SKILL.md 及其参考文件逐条说明每个命令的适用场景、内部执行机制与实操提示帮助你养成“先追踪、后修改”的工程习惯。为什么要先理解再改动pstack 指南的第三章开宗明义地指出编辑你不理解的代码就是给系统悄悄引入回归regression的捷径。一个没有先建立行为模型的 Agent 直接上手编辑往往会在第一个看似合理的位置修掉“症状”而不是修掉“病因”——症状被掩盖后的第二次 Bug通常比第一次更难排查、代价更高。因此 pstack 把“理解”设计成改码流程中不可跳过的前置阶段在动手写任何一行代码之前先回答“这段代码现在做了什么/how”“它为什么长成这样/why”必要时再用reteach把结论讲透、用/recall恢复你自己丢失的上下文。用 /how 追踪行为/how回答的是“这段代码现在是怎么工作的”。指南给出的示例问题非常具体/how do we dedupe notifications? is there an n1 when we look up subscribers?也就是把你真正想问的问题直接丢给它通知是怎么去重的查订阅者的时候有没有 n1 查询从 how 技能 的实现看/how的定位是“以一位资深工程师带你上手某个子系统的方式”解释代码产出的是足以建立工作心智模型working mental model的架构级讲解而不是逐行注释源码的流水账。它内部按问题的复杂度分两条路径执行简单问题单个模块、小工具、窄问题例如“函数 X 是怎么工作的”不派探索子代理由一个只读readonly: true的解释子代理一次性探索并讲解。模型默认配置为claude-fable-5-1-thinking-maxhow-explainer。复杂问题跨多个文件或服务的子系统、横切功能、整体架构先在单条消息里并行派发 24 个只读探索子代理generalPurpose类型模型默认grok-4.6-fast-xhigh即how-explorer每个代理负责子系统的一个切面探索结果汇合后再派一个解释子代理把多份发现合成为一份统一讲解对应 explainer-prompt.md 模板中的 Overview / Key Concepts / How It Works / Where Things Live / Gotchas 结构。技能文档还给出了一个值得注意的工程判断拿不准时走简单路径When in doubt, take the simple path。并且最终呈现时只允许对解释做轻量的清晰化编辑不能大改其内容——因为这本质上是子代理的调研成果而不是主线程的“再创作”。用 /why 挖掘历史/how告诉你代码做了什么/why则回答“什么力量把它塑造成了现在的样子”。指南示例/why was the retry limit set to five? does the reason still hold?重试上限为什么是 5当初的理由现在还成立吗why 技能 把这项工作比喻成侦探查冷案先锚定代码git blame、git log --follow -p、git log --oneline -20拿到文件历史和 PR 号再用gh pr view拉取 PR 描述与讨论然后并行查询 MCP 暴露出的每一类证据源码控制历史、Issue/工单系统、长文文档、团队聊天、基础设施可观测性、错误跟踪、产品分析数仓。每类证据配一个调查子代理investigator只拥有且只负责一个数据源没有对应 MCP 的类别要明确记为空缺gap而不是悄悄跳过——因为“没人写下原因”本身就是一个有价值的答案。/why的输出遵循 epistemics.md 中定义的置信度框架把结论分成 Direct有明确文字引证、Supported多条间接证据收敛、Inferred合理推断、Speculative推测与 Unknown查无实据五档措辞随之校准直接证据用“because”推断一律用“appears to”“likely”“suggests”等保守措辞。报告会引用每个来源区分直接证据与推断并在记录单薄时明确说“appears to”。同时要求最终输出包含 Sources Consulted 一节逐行列出每个调查子代理查了什么、查到了什么、为什么跳过如果这次why是改码的前奏还要把调查结果转化为 Preserve / Change / Avoid / Risk 四类约束供后续设计使用。特别值得一提的是 epistemics.md 里反“谄媚陷阱”sycophancy trap的约束用户提出why问题时往往自带一个预设答案“我猜是为了性能吧”技能要求把用户的猜测当作待检验的候选假设之一而不是需要被确认的结论——证据支持就说支持并给出引证不支持就如实说明并呈现证据真正指向的东西。/how 与 /why 的组合用法两者天然互补。指南特意点明do why first then how是一个完全合理的提示——当你怀疑“历史解释了这团乱麻”时先why后how先弄清楚来龙去脉再看当下的实现理解会更完整。用 /teach 真正弄懂它当一份摘要不够用的时候用/teach。指南示例/teach me how this PR changes retries. convince me it fixes the cause and not the symptom.teach 技能 的实现说明它站在how与why之上先自行读代码定位然后并行运行how它怎么工作与why它为什么这样把两者的发现编织成一份平实的讲解逐图搭建build up diagram by diagram。规模与问题匹配改动大的子系统两个技能都跑小改动可能跑一个就够why默认要收窄范围因为全量扫描很慢把收窄写进提问本身即可。指南特意推荐了 “convince me” 这个提问框架它能把讲解从“带你看一圈”变成“一个你可以戳一戳的论证”——也就是说/teach的目标是让听众真正理解并可以质疑而不是被动接受一份解说词。此外teach 技能对讲解质量有非常具体的写作约束要求通过unslop技能润色用平实的口头英语、每句话尽量只带一两个逗号、每个概念只给一个名字并保持一致、把机制的具体机理讲出来而不是只给比喻或框架。它甚至明确禁止打印“关键洞察”“核心思想”“TL;DR”这类框架标签——因为“列出函数和常量是参考资料不是教学”。用 /recall 重建自己的上下文/recall解决的是“你自己”的上下文丢失问题。指南示例/recall catch me up on the export work from last weekrecall 技能 的机制是你的上下文存在两份记录里——一份是你自己的聊天历史存在~/.cursor/projects/slug/agent-transcripts/uuid/uuid.jsonl每行一条聊天消息另一份是“共享记录”用户持续上报的症状、上线后又被回滚的修复、生产环境仍在报的错误。后者正是why技能会搜索的那份记录所以recall会把“当前状态、试过什么没坚持住、用户还在报什么”这类问题交给why的源调查子代理去并行扫描。recall执行时先锁定范围时间窗默认最近 7 天、话题、工作区然后在聊天历史上扇出多个并行子代理用快速便宜的模型按真实修改时间ls -t排序候选而不是按 UUID每个返回统一 schema 的摘要话题、用户目标、决策、未决线索、卡点与修正、产物及 UUID 引用再对命名话题扫描共享记录最后用git与gh对照 PR、分支、工单核实“活状态”。输出遵循固定契约先给胶囊式摘要最多 5 条要点再给每条线索配一个状态标签如[merged #N]、[in flight branch]、[reverted #N]然后是反复出现的问题最多 5 条最后是单条最有效的下一步行动。用 Session pickup 接管他人留下的半成品/recall处理的是“自己冷启动”而接手上一个 Agent或上周的自己做到一半的分支走的是 Session pickup playbook。指南示例/poteto-mode take over this branch. read the decision log, figure out whats done, and continue from there. dont redo finished work.从 session-pickup playbook 看它的核心原则是把先前的轨迹当作权威输入定位先前的轨迹本地agent-transcripts/下的转录、云 Agent 的 URL、或已推送的分支重建运行状态分支与工作树、git log/git diff看已落地内容、开放待办与已做决策对比“已做 vs 待做”找出恢复点resume point然后不要重跑先前的复现、不要重做已完成的工作——一个“让我从头验证一遍”的举动等于把权威轨迹当成了不可信数据。最后把剩余工作路由到匹配的 playbook并在真实产物上对照原始目标验证继承来的断言对应principle-prove-it-works技能因为“先前的自报通过”不等于证明。小结先追踪再修改把这条链路串起来就是 pstack 推荐的工作纪律动手前先建立理解模型——/how建行为模型/why建动机模型/teach把两者讲透/recall恢复你自己丢掉的上下文接手上家半成品时用 Session pickup 把轨迹当权威。指南在结尾特意给出了这条警示Pitfall不要因为“反正 Agent 会读代码”就跳过这一页的技能。一个没有先建立追踪模型就动手编辑的 Agent往往会在第一个看似合理的位置修掉症状。/how先行比修第二个 Bug 便宜得多。下一步请阅读 Design the change设计改动了解在代码定型之前如何用/architect、/arena、/swarm与/interrogate把改动设计到位。【免费下载链接】pluginsCursor plugin specification and official plugins项目地址: https://gitcode.com/GitHub_Trending/plugins125/plugins创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考