plan-selectlisted
Install: claude install-skill xu-jin-cs/dsh-skills
# plan-select — 扳手框架|方案择优引擎 v2(三维度槽位原型池)
> **定位:** 需求执行路径选择的唯一权威入口。定义源:`~/Downloads/扳手框架|方案择优引擎.md` + 2026-08-18 用户两次会话裁定(维度重构)。
> **沿革:** 替代 PLAN-FIRST-GATE"列步骤清单 → 等用户确认"环节——需求进入后**不等用户审核方案**,直接进本引擎择优执行。v1 五特征映射版 2026-08-18 同日被用户裁定重构为本版。
---
## 一、核心设计(用户裁定原文语义,冻结)
1. **候选池固定 3 个维度槽位,每个维度生成一个方案,总共至多 3 个**:
| 槽位 | 维度 | 方案 | 唯一核心高分特质 |
|---|---|---|---|
| 1 | 执行载体维度 | 【原生内置最优】 | 全程模型原生内部实现(不调用外部工具) |
| 2 | 依赖组件维度 | 【历史复用最优】 | 历史有生成过、可复用已有成果(标准内置库/已有代码,无额外外部依赖) |
| 3 | 变更范围维度 | 【迭代效率最优】 | 迭代生成步骤最少、修正次数最少 |
2. **缺维过滤**:某维度条件不满足(如历史没有可复用成果)→ 该方案**生成不了 → 直接过滤,不给分、不参与排序**。若判 0 分即成脏数据,会被"最低分最优"误选,可能输出"无方案"冒充最优——**必须过滤而非计 0**;
3. **评分**:有效方案分数 = **S(真实执行步骤数,脚本直接计数)**,**分数最低者为最优**;同分按槽位编号小者优先(机械,无概率空间);
4. 判 A → 照抄 chosen **直接执行,不等用户确认**;
5. 执行后**双校验**【运行态校验(超时/报错/权限拒绝)+ 产物客观校验】,失败 `--rank N` 顺位切换,上限 = 有效方案数,全败即终止,禁止循环重试;
6. **禁止模型输出打分/自评词**(脚本机械拦截 → VIOLATION);放弃探针;全部解析、计数、过滤、排序由脚本执行,模型照抄输出,禁止手写判定。
## 二、执行流水线
1. 模型按第三节模板生成候选池(**维度不满足的槽位直接不写该方案块**),落盘 `~/.agents/logs/plan_select/POOL-<ts>.md`;
2. 扳开关照抄结论:
```bash
python3 ~/.agents/skills/plan-select/scripts/plan_select.py --pool <候选池文件>
```
3. 判 A → 照抄 `chosen` 直接执行;
4. 双校验失败 → **必须 `--fail <rank> --reason "<实测失败结果>"` 留痕**(plan_select.jsonl 记 plan_fail 事件),脚本自动输出下一顺位;**禁止裸 `--rank N` 跳顺不留痕**;
5. 全败(rank 超界判 B)→ 终止任务;全部槽位被过滤判 B → **禁止输出"无方案"**,转 CLARIFY 向用户澄清。
## 三、候选池模板(模型唯一填充格式)
```markdown
## 方案 1
dimension: native_internal
steps:
1. <客观动作描述>
2. <客观动作描述>
verify: <客观失败判据:什么实测结果算本方案失败,可机械复判>
## 方案 2
dimension: hist