写代码用到的前置思考类 Skill 梳理与推荐
到目前为止,对于稍微复杂点的需求,应该很少人上来就上 AI 埋头写代码吧?
大部分情况下我们对于接收到的需求,或者自己想要实现的一些功能会选择进行前置性的需求分析、方案设计、边界场景分析等,然后才会开始写代码实现。
大部分 Agent 工具也提供了「前置思考」的 Plan Mode 能力,除此之外也有很多被 Star 超多的前置思考的 Skill,例如 Anthropic 官方的 brainstorming skill(也就是 superpowers),grill-me、grill-with-docs、to-prd、planning-with-files 等。
下面是 skills.sh 上一些比较热门的前置思考的 skills。
| Skill | 类型 | 主要能力 | 安装量 |
|---|---|---|---|
grill-me | 追问拷问 | 对方案、架构进行系统追问,逐层暴露假设、分支和风险 | 688.4K |
grill-with-docs | 领域建模审查 | 结合代码、术语表、ADR 和具体场景审查设计 | 583.4K |
to-prd | PRD 生成 | 读取代码库和上下文,生成结构化 PRD、测试边界和实施依据 | 360.2K |
planning-with-files | 持久化规划 | 使用 task_plan.md、findings.md、progress.md 保存思考和进度 | 38.8K |
planning-with-files-zh | 中文持久化规划 | 上述方案的中文变体,增加上下文恢复、错误记录和决策约束 | 16.1K |
planning-and-task-breakdown | 任务拆解 | 将模糊需求拆成可验证任务,并定义验收标准和执行顺序 | 17.3K |
requirements-analysis | 问题定义 | 区分「用户想要的方案」和「真实问题」,发现约束,避免过早进入实现 | 2.2K |
planning-under-uncertainty | 不确定性规划 | 识别技术、市场、组织等不确定性,建立检查点和调整机制 | 1.6K |
同时还有很多开源的 Spec-driven development(规范驱动)流派项目,也提供了一些前置思考的流程,例如 OpenSpec 的 /opsx:explore、Kiro 的 requirements、Spec Kit 的 /speckit.specify 等。
这样一看,前置思考的方案还是比较多的,但是这些方案之间有什么区别,以及在什么情况下应该选择哪种方案呢?
首先我们需要将这些所有的前置思考能力可以总结为两类:
- 开放发散探索:扩大解空间,寻找问题、方案、假设和可能路径:
superpowers、/opsx:explore - 质询收敛:暴露歧义、挑战假设、明确边界并做出决策,例如:
grill-me、superpowers
上面提到的但是没有总结到这两类的 skill 或者 Spec-driven 流派,他们实际上重点做的是:把结论变成可复用、可验证、可执行的结构化资产。
再来 开放发散探索 和 质询收敛 这两者我们又该如何选择呢?
最重要的是看任务的问题和方向是否明确。
如果问题和方向不明确,那么应该选择 开放发散探索。
例如:「我想做一个权限系统,但不知道应该解决哪些核心问题。」那么就应该选择 开放发散探索,因为这个问题和方向不明确,需要扩大视野,寻找可能的方案。
如果问题和方向明确,那么应该选择 质询收敛。
例如:「我们决定做多租户 RBAC,但角色继承、数据隔离和超级管理员边界还没定。」此时重点不是产生更多想法,而是通过追问确认:为什么这样设计?有没有遗漏场景?哪些规则互相冲突?什么条件下这个方案会失败?有没有更简单的替代方案?
然后才是选择是:直接 Plan Mode 指定实现还是需要进行规范驱动落盘。
从大的方面我们知道了思考前置技能的类型选择,那么接下来我们再来看看具体的技能选择。
首先是大名鼎鼎的 superpowers,也就是 Anthropic 官方的 brainstorming skill。
https://github.com/obra/superpowers
它不是只有一个 brainstorming skill,而是一套完整的软件开发工作流:
brainstorming
-> writing-plans
-> executing-plans
-> verification-before-completionbrainstorming 是它最核心的前置思考能力。包括了:了解当前项目背景、逐个提出澄清问题、分析真实需求、提出多个实现方案、比较不同方案的取舍、输出设计说明、获取用户确认、进入计划编写阶段,可以看到其实他是覆盖了 开放发散探索 + 质询收敛 环节的。
这类能力不一定都是独立的 Skill。有些是 Agent 自带的工作模式,有些是独立命令,有些则是完整的规范驱动开发工具链。
本文将它们归纳为三类:
开放发散探索
质询收敛一、开放发散探索
开放发散探索的目标,是扩大问题空间。
它适合以下情况:
- 还不知道真正要解决什么问题
- 需求只有一个大致方向
- 存在多个可行方案
- 需要了解用户、场景、约束和竞品
- 技术路线还没有确定
例如:
我想做一个权限系统,但还不清楚应该解决哪些问题。
这时不应该直接生成数据库表或 API。更合理的做法是先回答:
- 谁会使用这个系统?
- 目前有什么问题?
- 哪些场景最重要?
- 是否存在不同租户或组织?
- 权限是针对功能、数据,还是资源?
- 有没有现有系统需要兼容?
开放发散探索的常见形式包括:
BrainstormingResearch PlanningAlternative ExplorationProduct Discovery- 技术方案对比
- 代码库探索
这一阶段的重点不是马上得出结论,而是避免过早进入一个错误方向。
但开放探索也有一个问题:容易持续产生想法,却迟迟无法做决定。因此必须设置结束条件,例如:
- 已经明确问题定义
- 已经列出主要约束
- 已经确定两到三个候选方案
- 已经知道下一步需要解决的关键问题
二、质询收敛
质询收敛的目标,是减少不确定性。
它适合以下情况:
- 已经有目标或初步方案
- 但方案中的假设还没有确认
- 需求存在歧义
- 边界场景没有定义
- 错误决策的代价较高
例如:
我们决定采用多租户
RBAC,但角色继承、数据隔离和超级管理员边界还没有定义。
这时需要重点追问:
- 为什么采用这个方案?
- 还有没有更简单的方案?
- 哪些场景不适用?
- 不同约束之间是否冲突?
- 失败时应该如何处理?
- 这个设计能否覆盖后续扩展?
- 验收标准是什么?
grill-me 和 grill-with-docs 就属于这一类。
它们的特点是:
- 持续追问
- 挑战已有假设
- 识别遗漏场景
- 检查术语是否准确
- 结合代码库和现有架构进行审查
- 在执行前暴露风险
Kiro 的 Analyze Requirements 也属于质询收敛。它会检查:
- 逻辑矛盾
- 模糊表达
- 冲突约束
- 未声明假设
- 缺失的边界场景
这一类能力适合架构设计、权限模型、支付流程、安全方案和数据模型等高风险任务。
需要注意,质询收敛不等于无限提问。它应该围绕决策展开,最终形成明确结论:
问题是什么
方案是什么
为什么选择它
有哪些限制
如何验收三、如何选择
选择哪一类能力,主要看当前的不确定性在哪里。
1. 不知道要做什么
选择 开放发散探索。
例如:
我想做一个企业级权限平台,但还不清楚产品边界。
2. 知道要做什么,但不确定方案是否正确
选择 质询收敛。
例如:
已经决定做
RBAC,但角色模型和数据权限还没有确定。
3. 方案已经确定,但执行比较复杂
选择 规范驱动落盘。
例如:
权限模型已经确认,需要多个
Agent分别开发后端、前端、数据库和测试。
可以使用下面的判断方式:
方向不清楚
-> 开放发散探索
方向清楚,但假设和边界不清楚
-> 质询收敛
方案确定,但执行复杂或需要协作
-> 规范驱动落盘复杂任务可以组合使用:
开放发散探索
-> 质询收敛
-> 规范驱动落盘
-> 实现与验证简单、明确、容易回滚的任务,可以直接执行,不需要完整流程。
结语
前置思考类能力可以归纳为两类:
开放发散探索
质询收敛三者解决的问题不同:
- 开放发散探索,解决方向不清
- 质询收敛,解决方案不稳
Claude Code Plan Mode、Kiro、Spec Kit、OpenSpec、grill-me 和 planning-with-files 虽然产品形态不同,但都在解决一个共同问题:
让
Agent在执行之前先理解问题、验证方案,并把重要结论保留下来。
因此,选择工具时不应该只看名称,也不应该只看安装量。更重要的是判断当前缺少哪一种能力。
