probe
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseProbe
Probe
Sketch the skeleton of a complex change — the decisions that drive everything else — and stop there for review. No implementation details, no PRs, no review bots. Just: "here's the shape I'd build; do you agree?"
The point: in a complex change, a handful of decisions are load-bearing — the ones everything else gets built around. Get one of those wrong and every PR built on top inherits the mistake; undoing it means rewriting the stack. It's much cheaper to agree on the skeleton first, then let fill in the details.
shipFor the really complex stuff, this is the middle stage of a three-skill pipeline: → → . Advisor settles what to build and why (scope, approach, the product-level decisions); probe makes the agreed direction concrete as code (where things live, what shape they take); ship fills in the details and runs the review loop. Each stage is optional — plenty of changes skip straight to ship.
advisorprobeship勾勒复杂变更的架构骨架——即驱动所有后续工作的核心决策——并在此阶段暂停以等待审阅。不涉及具体实现细节、不创建PR(Pull Request)、不启用审查机器人。只需要呈现:“这是我规划的架构形态;你是否认可?”
核心意义:在复杂变更中,有少数决策是核心承载性的——所有后续工作都围绕这些决策展开。若其中任何一个决策出错,基于它创建的所有PR都会继承该错误;修正错误意味着重写整个代码栈。先就架构骨架达成共识,再让填充细节,成本要低得多。
ship对于极为复杂的任务,这是三技能流水线的中间阶段: → → 。Advisor技能确定要构建什么以及原因(范围、实现路径、产品层面的决策);Probe技能将已达成共识的方向转化为具体代码(确定代码位置、架构形态);Ship技能填充细节并执行审查循环。每个阶段都是可选的——许多变更可直接跳过前两个阶段,直接使用Ship技能。
advisorprobeshipWhat to probe
适用范围与输入处理
Probe shares its plumbing with — read that skill's SKILL.md and follow its "What's being shipped" section for interpreting the input (Linear ticket vs. plain-text ask, tool requirements) and its worktree setup. Same rules, same behavior.
shipThe one entry flavor probe adds: the output of an conversation — a spec, a shaped ticket, or just the decisions agreed in chat. Treat those as settled; don't relitigate them.
advisorProbe is for changes complex enough to have real architectural decisions; if the ask turns out to be simple, say so and suggest going straight to .
shipProbe与共享底层机制——请参考技能的SKILL.md文档,遵循其中“待交付内容”章节的规则来处理输入(如Linear工单与纯文本需求、工具要求)及工作树设置。两者规则与行为一致。
shipshipProbe新增的一种输入形式是:对话的输出——包括规格文档、已梳理的工单,或是聊天中已达成共识的决策。将这些内容视为既定事项,无需重新讨论。
advisorProbe适用于涉及真实架构决策的复杂变更;若需求实则简单,应告知用户并建议直接使用技能。
shipThe skeleton
架构骨架构建
First figure out which decisions are load-bearing for this particular change — the ones that, if changed later, force a rewrite of everything built on top. What those are depends entirely on what's being built. For a web app it's things like the schema, the API surface, new pages, key types. For a CLI it might be the command/flag surface and the config format; for a library, the public API; for a pipeline, the stage boundaries and the shape of the data flowing between them; for infra, the resource topology. Persistent data shapes and public contracts are almost always on the list — they're the hardest to walk back. Where the logic lives (module boundaries) usually is too.
Then, in the worktree (per 's setup), write the actual stubs for those decisions, in real code, uncommitted: real signatures with typed params and returns, real schema/config changes, files in their real locations — bodies as stubs, shells rendering placeholders. A new file with typed function signatures and empty bodies says more than a paragraph of prose.
shipTODODon't implement anything beyond what's needed to show the shape. No business logic, no edge cases, no tests. It doesn't need to pass CI — it needs to be reviewable. (Typechecking is nice if it's cheap; don't contort the stubs for it.)
Prefer code over prose, but decisions that don't show up well in stubs (e.g. "polling vs. webhooks", "denormalize or join") get a short bullet in the summary instead — with your recommendation.
首先确定针对本次特定变更的核心承载性决策——即那些若后续修改,会导致所有基于其构建的内容都需重写的决策。这些决策的具体内容完全取决于所构建的项目类型。对于Web应用而言,包括schema、API接口、新页面、关键数据类型等;对于CLI工具而言,可能是命令/参数结构与配置格式;对于类库而言,是公开API;对于流水线而言,是阶段边界及各阶段间的数据流形态;对于基础设施而言,是资源拓扑结构。持久化数据形态与公开契约几乎总是核心决策的一部分——它们最难回退。逻辑代码的存放位置(模块边界)通常也属于此类决策。
随后,在工作树中(按照的设置),为这些决策编写真实的代码桩,采用真实代码格式,无需提交:包含带类型参数与返回值的真实函数签名、真实的schema/配置变更、放置在正确位置的文件——函数体或核心逻辑部分用桩代码替代,框架部分仅渲染占位符。一个包含类型化函数签名与空实现的新文件,比一大段文字描述更清晰。
shipTODO除了展示架构形态所需的内容外,不要实现任何其他部分。无需编写业务逻辑、处理边缘情况或添加测试。代码桩不需要通过CI(持续集成)检查——只需便于审阅即可。(如果类型检查成本低的话可以做,但不要为了通过类型检查而扭曲代码桩的形态。)
优先使用代码而非文字描述,但对于无法通过代码桩清晰体现的决策(如“轮询还是Webhooks”“反规范化还是关联查询”),可在总结中添加简短的项目符号,并给出你的推荐方案。
The review conversation
审阅对话流程
Present the skeleton: a compact summary of every load-bearing decision made — one line each with the why — pointing at the stub files. If a decision was a close call, say what the alternative was and why you picked this side.
Then iterate. The user pushes back, you adjust the stubs, re-present what changed. This back-and-forth is the whole product of the skill — don't rush it, and don't quietly expand scope while iterating.
展示架构骨架:对每个核心承载性决策进行简洁总结——每条决策用一句话说明原因——并指向对应的代码桩文件。若某个决策是在多个选项间艰难抉择的结果,需说明其他备选方案以及选择当前方案的理由。
随后进行迭代。若用户提出异议,调整代码桩,重新展示变更内容。这种反复沟通调整的过程是本技能的核心产出——不要急于推进,且在迭代过程中不要悄悄扩大范围。
Handoff
交接流程
When the user is happy, stop. Leave the stubs in the worktree, uncommitted, and remind them the next step is invoking — which will treat the skeleton as the agreed architecture and fill in the details from there. Don't start implementing, don't create branches or PRs, don't invoke yourself.
shipship当用户认可架构骨架后,停止操作。将代码桩留在工作树中,无需提交,并提醒用户下一步是调用技能——该技能会将此架构骨架视为已达成共识的架构,从中填充具体细节。不要开始实现细节、不要创建分支或PR、不要自行调用技能。
shipship