mcpField
S
solution-space

solution-space

github.com/open-horizon-labs生产力3108 次安装12 周前更新
代码仓库

关于 solution-space

这项决策技能用于在实施前比较可行方案。它引导梳理候选方案、权衡、假设与风险检查,并形成建议和后续交接。

主要功能

  1. 01确认问题框架与约束
  2. 02生成不同的候选方案
  3. 03比较影响决策的权衡
  4. 04规划对抗性风险检查
  5. 05将建议映射到 Problem Weave

适用场景

  1. 01编码前选择实施方案
  2. 02重新评估累积补丁的设计
  3. 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:只评估会改变决策的差异

评分前,先明确决策标准、关键假设,以及会让选项提前出局的约束。然后果断筛选。

对每个候选方案,回答:

  1. 它能解决所陈述的问题吗?
  2. 它基于什么问题框架?
  3. 主要的实施或维护成本是什么?
  4. 它会引发什么次生问题,或创造什么未来选项?

对于任何提到次生问题、隐藏假设或合理的替代框架的候选方案,都要使用 /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 及其谱系。

评论

支持 Markdown