关于 how
how 是用于探索代码库并回答功能或子系统如何运作的技能。它按问题复杂度安排只读探索与综合说明,形成适合工程师熟悉系统架构的解释。
主要功能
- 01探索代码库架构
- 02按问题复杂度安排研究
- 03分配只读子 Agent
- 04综合发现并撰写说明
- 05采用便于熟悉系统的结构
适用场景
- 01解释某个函数的工作方式
- 02梳理跨文件子系统
- 03帮助工程师熟悉子系统
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ q-qp-p/ pstack --skill how安装后在 Claude Code 中输入/how确认已加载。
附带文件references/explainer-prompt.mdreferences/explorer-prompt.md
详细介绍
如何工作
探索代码库,以回答“X 是如何工作的?”这类问题。提供架构层面的说明,达到资深工程师开始熟悉某个子系统所需的深度,帮助其建立有效的心智模型,但不要详细到像是在给源代码逐行加注释。
每次生成的子代理都是一个 Task 子代理,设置 subagent_type: generalPurpose 和 readonly: true。探索者使用 pstack 设置文件中的 how explorer 行(Cursor 中为 ~/.cursor/rules/pstack-models.mdc,其他运行环境中为 ~/.agents/pstack-models.md;默认值为 grok-4.7-xhigh-fast),每个说明者使用 how explainer 行(默认值为 claude-opus-5-5-xhigh)。将 model 设置为该行的值;如果文件或该行不存在,则使用默认值。如果值为 auto 或 inherit-parent,则不设置 model。如果子代理工具拒绝某个模型标识符,则使用默认值并说明这一点。如果它拒绝默认值,则从错误消息或运行环境的模型列表中选择同一系列中最接近的有效标识符。根据 poteto-mode 技能的 Subagents 部分,针对任务选择每个子代理的推理级别以及快速或标准速度。
1. 评估复杂度
如果范围不明确,请说明你的理解并进行探索。用户可以纠正方向。
- 简单(单个模块、小型工具、范围狭窄的问题,例如“函数 X 是如何工作的”):不需要探索者。生成一个说明者,让它在一次流程中完成探索和说明;根据
references/explainer-prompt.md编写提示词,但不包含探索结果部分。转到第 4 步。 - 复杂(涉及多个文件或服务的子系统、跨领域功能、完整的架构概述):转到第 2 步。
无法确定时,选择简单路径。
其他运行环境。 本技能中的生成流程使用 Cursor 的 Task 工具。在其他运行环境中,使用其子代理工具:Claude Code 中的 Agent(subagent_type: general-purpose)、OpenCode 中的 task(subagent_type: general)、Codex 中的 spawn_agent。保留提示词和模型设置。省略工具不支持的参数。如果运行环境没有子代理工具(例如未安装扩展的 Pi),则自己依次执行每个角色。
2. 探索(仅限复杂问题)
将问题拆分为 2 到 4 个角度,每个角度对应子系统中一个独立部分。使用 references/explorer-prompt.md,并填入各自的探索角度,在一条消息中同时生成所有探索者。
3. 综合(仅限复杂问题)
待所有探索者返回结果后,生成一个说明者,并在 references/explainer-prompt.md 中填入所有探索者的发现。
4. 呈现
呈现说明者的输出。可以根据清晰度或对话上下文进行少量编辑,但不要大幅改写。
输出格式
说明应包含 references/explainer-prompt.md 中定义的章节,并省略不适用的章节:概述、核心概念、工作原理、代码位置、注意事项。