关于 solution-space
这项决策技能用于在实施前比较可行方案。它引导梳理候选方案、权衡、假设与风险检查,并形成建议和后续交接。
主要功能
- 01确认问题框架与约束
- 02生成不同的候选方案
- 03比较影响决策的权衡
- 04规划对抗性风险检查
- 05将建议映射到 Problem Weave
适用场景
- 01编码前选择实施方案
- 02重新评估累积补丁的设计
- 03检验建议背后的假设
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ open-horizon-labs/ skills --skill solution-space安装后在 Claude Code 中输入/solution-space确认已加载。
附带文件agents/openai.yamlreferences/depth.md
详细介绍
/solution-space
在做出决定前,先探索候选方案。陷阱在于为第一个可行的想法辩护。
方案空间以合理性为导向:构建足够连贯的思路来选择下一步行动,而不是绘制一幅涵盖所有可能选项的完美地图。只有在细节会改变建议时,它才值得保留。
适用时机
- 问题已经明确,且有不止一种可行方法
- 你正准备开始编写代码
- 补丁或标志位不断累积
- 你发现自己对第一个想法产生了执念
跳过条件: 仍在澄清问题时,先使用 /problem-statement。
即时参考
仅当选项事关重大、彼此过于相似,或建议显得过于自信时,才加载 references/depth.md。
流程
步骤 1:确认问题框架
“我们要解决的问题是:[陈述]。约束条件是:[约束]。当前采用的思路是:[合理的框架]。成功的表现是:[信号]。”
如果无法清楚地陈述这些内容,请返回 /problem-statement。不要试图用更多细节弥补框架不清晰的问题。
如果存在 ## Problem Weave,请阅读其中候选的 S&T 步骤和充分性分组。将其视为假设,而非预先选定的工作。保留它们的 ID,以便建议可以选择、否决或推迟每个步骤。
步骤 2:生成候选方案
评估前先列出 3–4 个实质不同的候选方案。包括显而易见的方案、真实存在的现状,以及至少一个改变抽象层级的方案:临时修补、局部最优、重新界定问题或重新设计。
步骤 3:只评估会改变决策的差异
评分前,先明确决策标准、关键假设,以及会让选项提前出局的约束。然后果断筛选。
对每个候选方案,回答:
- 它能解决所陈述的问题吗?
- 它基于什么问题框架?
- 主要的实施或维护成本是什么?
- 它会引发什么次生问题,或创造什么未来选项?
对于任何提到次生问题、隐藏假设或合理的替代框架的候选方案,都要使用 /execute 的术语决定其风险处置方式:通过证据排除、有理由地接受或触发。对于每个通过证据排除的事项,指出检查必须能够否决的诱人错误补丁或局部最优方案。已明确指出的风险不得在交接时消失。
步骤 4:检查解释的多样性
确认选项集并非同一框架换了几套说法。指出哪个选项沿用当前框架,哪个在检验该框架,以及失败后能从中学到什么。
如果所有候选方案都共享同一个隐藏框架,请生成一个采用不同框架的候选方案,或返回 /problem-statement。
步骤 4.5:制定风险排除计划
在提出建议前,将不确定性转化为行动。对于每项关键假设、合理的替代框架和停止/转向触发条件,选择一种计划中的处置方式:通过对抗性检查通过证据排除;因超出范围或需要人工/领域判断而有理由地接受;或者如果证据会使选定方案失效,则标记为触发。
对抗性检查必须能够否决第一个可行想法、诱人的临时修补或局部最优方案,否则所述风险仍会存在。如果担心的补丁也能通过该检查,这就不是排除风险的检查;请加强检查或转到 /problem-statement。
不要把选择推迟到 /execute。如果选定方案依赖于忽略一种合理的替代框架,而这种框架现在可以通过模型检查,或在执行期间以较低成本检查,请在交接内容中加入对抗性检查。如果关键假设没有可信的取证路径,请返回 /problem-statement,因为框架尚未准备就绪。
第 5 步:提出建议
选择在当前约束下足够可行的方案。如果建议涉及单向决策门——例如架构、公共 API、数据模型或对外承诺——请在运行 /execute 前运行 /dissent。
如果存在 Problem Weave,请将选定方案对应到其中的 S&T 步骤:
- 仅将建议所需的步骤标记为
selected; - 将已证伪的策略标记为
rejected,将无需采用但仍可行的策略标记为deferred; - 保留父步骤、充分性组、负责人、评审触发条件和已接受的权衡;
- 如果某个子步骤所需的父步骤或同级充分性集合不存在,请勿选中该子步骤,除非明确指出缺口;
- 仅将选中的步骤 ID 传给
/oh-plan;候选步骤和延后步骤仍保持可见,但不纳入计划。
输出格式
## Solution Space
### Solution Space Analysis
**Problem:** [One sentence]
**Key Constraint:** [The binding constraint]
**Working Story:** [The plausible frame that makes this recommendation sensible]
**Success Signal:** [What later phases should verify]
**Decision Criteria:** [What matters most and how options were compared]
**Critical Assumptions:** [Premises the selected approach depends on]
### Candidates Considered
| Option | Level | Approach | Main Trade-off |
|--------|-------|----------|----------------|
| A | [Band-Aid / Local Optimum / Reframe / Redesign] | [Brief] | [Cost] |
| B | [Level] | [Brief] | [Cost] |
| C | [Level] | [Brief] | [Cost] |
### Interpretive Variety Check
- Same frame or different frames? [brief answer]
- Current-frame test: [which option most assumes/tests the current frame]
- Failure would teach: [what failure would mean and where learning routes]
### Risk Retirement Plan
| Risk / Assumption / Alternate Frame | Planned Disposition | Tempting Patch This Must Fail | Required Evidence or Rationale | Stop/Pivot If |
|-------------------------------------|---------------------|-------------------------------|--------------------------------|---------------|
| [Named uncertainty] | [Retired by evidence / Accepted with rationale / Triggered] | [wrong-but-plausible local patch, or "N/A — accepted/triggered"] | [adversarial test/check/rationale/human decision] | [trigger] |
### Recommendation
**Selected:** Option [X] - [Name]
**Level:** [Band-Aid / Local Optimum / Reframe / Redesign]
**Rationale:** [Why this approach is plausible enough under current constraints]
**Accepted trade-offs:**
- [Trade-off 1]
- [Trade-off 2]
### S&T Selection
| Step ID | Disposition | Parent | Sufficiency group | Why this disposition | Owner | Review trigger |
|---|---|---|---|---|---|---|
| [id] | [selected/rejected/deferred] | [root/id] | [group id] | [connection to recommendation/evidence] | [role] | [when to reassess] |
**Selected-step sufficiency:** [why the selected set covers the chosen strategy, or the explicit gap that blocks planning]
### Execution Handoff
- Preserve: [criterion or behavior later phases must preserve]
- Verify via: [signal `/execute` and `/ship` should be able to check]
- Decision criteria: [comparison basis `/execute` should preserve]
- Critical assumptions: [premises to monitor during execution]
- Accepted trade-offs: [costs consciously accepted]
- Risk retirement checks: [planned disposition plus adversarial tests/inspections/rationales required for every named risk or alternate frame; each evidence check names the tempting patch it must fail]
- Invalidated if: [what evidence would make this direction wrong]
- Stop/pivot triggers: [conditions that require pause, escalation, or strategy change]
- Needs human verification: [claim or decision the model cannot self-check, or "none"]
会话交接
如果正在使用会话文件,请读取 Aim、Problem Statement、Problem Space 和可选的 Problem Weave,然后替换或追加 ## Solution Space。
/execute会复用选定方案、工作故事、成功信号、标准、假设、权衡、风险消除检查、失效信号、停止/转向触发条件以及 S&T 处置结果。/oh-plan仅使用selected的 S&T 步骤 ID 及其谱系。