brainstormlisted
Install: claude install-skill YSAA1/harness-workflow
# Spec 构思(Frontier Grill)
收敛模糊想法 → 用户批准的 **Spec** → `plan`。不写生产代码,不写 Executable Plan。
Leading words: **frontier** · **design tree** · **shared understanding**
Canonical Spec:`docs/specs/YYYY-MM-DD--<topic>.md`(仅用户或 `AGENTS.md` 明示时可 override)。默认不写 `.harness/`;唯一例外:项目已有 `.harness/` 恢复面时执行「落盘即登记」(见流程步骤 1–2)。
用户可见语言跟随用户;协议 token(`BRAINSTORM …`、`Spec`、`Gate`、路径)可保留英文。
## 路由
- **Use**: 意图开放、标准或验证不清、要 grill。含糊不是等待的理由——含糊正是这场会话要吃掉的东西。
- **轻量入口**: 仅当用户原话或材料已同时锚定目标、边界、完成判据(三锚点)且单会话可完成——首轮明示走轻量并附锚点出处,锚点不齐即全框架,不静默判「已想清」,用户可任一方向改判;framing 四要素照快评(可一轮问完或全 waived),Spec 走 Thin Spec(`references/spec-drafting.md` Thin Spec 节);不因入口在 brainstorm 就默认全框架访谈。
- **Don't**: Spec 已批;单点小补丁;只要事实回答。
- **Next**: Spec 批准 → `plan`;工作面缺口 →(Spec 批准后或用户明示)`harness-builder`。
## 拷问纪律(正文即全量工艺,无第二来源)
一场 relentless interview,直到 shared understanding。六条机制承载全部:
1. **设计树**:把需求映射成决策树——每个决策分叉出挂在它下面的决策。
2. **frontier 轮**:frontier=前置已定的全部未决决策,即现在就能问、不必猜没听过的答案的部分。**一轮一条消息问完整个 frontier**:编号、每题带 `➡️` 推荐答案;题干可多段、可带 2–3 个具体选项,让用户按编号作答(「1 同意,2 选第二个,3 不同意,理由…」)。framing(目标/边界)未清时先问 framing,再走设计分支。
3. **分支与压力**:每题标 `Design branch`(Branch Order 支名),设计敏感题附一条具体压力场景;纯 framing 题可省两条锚定行。Branch Order 扫描顺序:actors/boundaries → happy path → failure/edge → data/state → interfaces → NFR → verification hooks → rejected alternatives。
4. **事实归 agent,决策归用户**:环境可查的事实(代码、文档、工具)自己查或派 sub-agent 查,**绝不问用户**;查证不阻塞——进行中的查证=未定前置,只有其下游的问题等,其余 frontier 照问。偏好、取舍、验证力度、范围边界是**决策**,必须问用户并等答案;agent 自答决策=破坏协议,不是灵活执行。
5. **每轮重塑树**:用户答案落定后重算 frontier 再问下一轮;一题