Skip to content

写代码用到的前置思考类 Skill 梳理与推荐

到目前为止,对于稍微复杂点的需求,应该很少人上来就上 AI 埋头写代码吧?

大部分情况下我们对于接收到的需求,或者自己想要实现的一些功能会选择进行前置性的需求分析、方案设计、边界场景分析等,然后才会开始写代码实现。

大部分 Agent 工具也提供了「前置思考」的 Plan Mode 能力,除此之外也有很多被 Star 超多的前置思考的 Skill,例如 Anthropic 官方的 brainstorming skill(也就是 superpowers),grill-megrill-with-docsto-prdplanning-with-files 等。

下面是 skills.sh 上一些比较热门的前置思考的 skills。

Skill类型主要能力安装量
grill-me追问拷问对方案、架构进行系统追问,逐层暴露假设、分支和风险688.4K
grill-with-docs领域建模审查结合代码、术语表、ADR 和具体场景审查设计583.4K
to-prdPRD 生成读取代码库和上下文,生成结构化 PRD、测试边界和实施依据360.2K
planning-with-files持久化规划使用 task_plan.mdfindings.mdprogress.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:exploreKirorequirementsSpec Kit/speckit.specify 等。

这样一看,前置思考的方案还是比较多的,但是这些方案之间有什么区别,以及在什么情况下应该选择哪种方案呢?

首先我们需要将这些所有的前置思考能力可以总结为两类:

  • 开放发散探索:扩大解空间,寻找问题、方案、假设和可能路径:superpowers/opsx:explore
  • 质询收敛:暴露歧义、挑战假设、明确边界并做出决策,例如:grill-mesuperpowers

上面提到的但是没有总结到这两类的 skill 或者 Spec-driven 流派,他们实际上重点做的是:把结论变成可复用、可验证、可执行的结构化资产

再来 开放发散探索质询收敛 这两者我们又该如何选择呢?

最重要的是看任务的问题和方向是否明确。

如果问题和方向不明确,那么应该选择 开放发散探索

例如:「我想做一个权限系统,但不知道应该解决哪些核心问题。」那么就应该选择 开放发散探索,因为这个问题和方向不明确,需要扩大视野,寻找可能的方案。

如果问题和方向明确,那么应该选择 质询收敛

例如:「我们决定做多租户 RBAC,但角色继承、数据隔离和超级管理员边界还没定。」此时重点不是产生更多想法,而是通过追问确认:为什么这样设计?有没有遗漏场景?哪些规则互相冲突?什么条件下这个方案会失败?有没有更简单的替代方案?

然后才是选择是:直接 Plan Mode 指定实现还是需要进行规范驱动落盘

从大的方面我们知道了思考前置技能的类型选择,那么接下来我们再来看看具体的技能选择。

首先是大名鼎鼎的 superpowers,也就是 Anthropic 官方的 brainstorming skill。

https://github.com/obra/superpowers

它不是只有一个 brainstorming skill,而是一套完整的软件开发工作流:

text
brainstorming
    -> writing-plans
    -> executing-plans
    -> verification-before-completion

brainstorming 是它最核心的前置思考能力。包括了:了解当前项目背景、逐个提出澄清问题、分析真实需求、提出多个实现方案、比较不同方案的取舍、输出设计说明、获取用户确认、进入计划编写阶段,可以看到其实他是覆盖了 开放发散探索 + 质询收敛 环节的。

这类能力不一定都是独立的 Skill。有些是 Agent 自带的工作模式,有些是独立命令,有些则是完整的规范驱动开发工具链。

本文将它们归纳为三类:

text
开放发散探索
质询收敛

一、开放发散探索

开放发散探索的目标,是扩大问题空间

它适合以下情况:

  • 还不知道真正要解决什么问题
  • 需求只有一个大致方向
  • 存在多个可行方案
  • 需要了解用户、场景、约束和竞品
  • 技术路线还没有确定

例如:

我想做一个权限系统,但还不清楚应该解决哪些问题。

这时不应该直接生成数据库表或 API。更合理的做法是先回答:

  • 谁会使用这个系统?
  • 目前有什么问题?
  • 哪些场景最重要?
  • 是否存在不同租户或组织?
  • 权限是针对功能、数据,还是资源?
  • 有没有现有系统需要兼容?

开放发散探索的常见形式包括:

  • Brainstorming
  • Research Planning
  • Alternative Exploration
  • Product Discovery
  • 技术方案对比
  • 代码库探索

这一阶段的重点不是马上得出结论,而是避免过早进入一个错误方向

但开放探索也有一个问题:容易持续产生想法,却迟迟无法做决定。因此必须设置结束条件,例如:

  • 已经明确问题定义
  • 已经列出主要约束
  • 已经确定两到三个候选方案
  • 已经知道下一步需要解决的关键问题

二、质询收敛

质询收敛的目标,是减少不确定性

它适合以下情况:

  • 已经有目标或初步方案
  • 但方案中的假设还没有确认
  • 需求存在歧义
  • 边界场景没有定义
  • 错误决策的代价较高

例如:

我们决定采用多租户 RBAC,但角色继承、数据隔离和超级管理员边界还没有定义。

这时需要重点追问:

  • 为什么采用这个方案?
  • 还有没有更简单的方案?
  • 哪些场景不适用?
  • 不同约束之间是否冲突?
  • 失败时应该如何处理?
  • 这个设计能否覆盖后续扩展?
  • 验收标准是什么?

grill-megrill-with-docs 就属于这一类。

它们的特点是:

  • 持续追问
  • 挑战已有假设
  • 识别遗漏场景
  • 检查术语是否准确
  • 结合代码库和现有架构进行审查
  • 在执行前暴露风险

KiroAnalyze Requirements 也属于质询收敛。它会检查:

  • 逻辑矛盾
  • 模糊表达
  • 冲突约束
  • 未声明假设
  • 缺失的边界场景

这一类能力适合架构设计、权限模型、支付流程、安全方案和数据模型等高风险任务。

需要注意,质询收敛不等于无限提问。它应该围绕决策展开,最终形成明确结论:

text
问题是什么
方案是什么
为什么选择它
有哪些限制
如何验收

三、如何选择

选择哪一类能力,主要看当前的不确定性在哪里

1. 不知道要做什么

选择 开放发散探索

例如:

我想做一个企业级权限平台,但还不清楚产品边界。

2. 知道要做什么,但不确定方案是否正确

选择 质询收敛

例如:

已经决定做 RBAC,但角色模型和数据权限还没有确定。

3. 方案已经确定,但执行比较复杂

选择 规范驱动落盘

例如:

权限模型已经确认,需要多个 Agent 分别开发后端、前端、数据库和测试。

可以使用下面的判断方式:

text
方向不清楚
    -> 开放发散探索

方向清楚,但假设和边界不清楚
    -> 质询收敛

方案确定,但执行复杂或需要协作
    -> 规范驱动落盘

复杂任务可以组合使用:

text
开放发散探索
    -> 质询收敛
    -> 规范驱动落盘
    -> 实现与验证

简单、明确、容易回滚的任务,可以直接执行,不需要完整流程。

结语

前置思考类能力可以归纳为两类:

text
开放发散探索
质询收敛

三者解决的问题不同:

  • 开放发散探索,解决方向不清
  • 质询收敛,解决方案不稳

Claude Code Plan ModeKiroSpec KitOpenSpecgrill-meplanning-with-files 虽然产品形态不同,但都在解决一个共同问题:

Agent 在执行之前先理解问题、验证方案,并把重要结论保留下来。

因此,选择工具时不应该只看名称,也不应该只看安装量。更重要的是判断当前缺少哪一种能力。