Interface Design(接口设计)
用户想 explore chosen deepening candidate 的 alternative interface 时,使用此 parallel sub-agent pattern。基于 Ousterhout 的「Design It Twice」——第一个 idea unlikely 是 best。
使用 LANGUAGE.md 词汇——module、interface、seam、adapter、leverage。
Process(流程)
1. Frame the problem space(框定问题空间)
Spawn sub-agent 前,为 chosen candidate 写 user-facing 问题空间说明:
- 任何新 interface 须 satisfy 的 constraints
- 将 rely 的 dependencies,及 fall into 哪类(见 DEEPENING.md)
- Rough illustrative code sketch 使 constraints concrete——不是 proposal,只是 grounding
Show 给用户,然后 immediately proceed Step 2。用户 read 与 think 时 sub-agent parallel 工作。
2. Spawn sub-agents
用 Agent tool parallel spawn 3+ sub-agent。每个须为 deepened module 产出 radically different interface。
Each sub-agent 用 separate technical brief(file path、coupling detail、dependency category from DEEPENING.md、seam 后是什么)。Brief 独立于 Step 1 user-facing 说明。给每个 agent different design constraint:
- Agent 1:「Minimize interface——aim 1–3 entry point max。Maximise leverage per entry point。」
- Agent 2:「Maximise flexibility——support many use case 与 extension。」
- Agent 3:「Optimise for most common caller——make default case trivial。」
- Agent 4(若适用):「Design around ports & adapters for cross-seam dependencies。」
Brief 中 include LANGUAGE.md 与 CONTEXT.md 词汇,使 sub-agent 与 architecture language 及项目 domain language 一致命名。
Each sub-agent 输出:
- Interface(types、methods、params——plus invariants、ordering、error modes)
- Usage example 展示 caller 如何用
- Seam 后 implementation hide 什么
- Dependency strategy 与 adapter(见 DEEPENING.md)
- Trade-offs——leverage 高在哪、thin 在哪
3. Present and compare(呈现与比较)
Sequential present 以便 user absorb,然后 prose compare。按 depth(interface 处 leverage)、locality(change 集中处)、seam placement contrast。
Compare 后给 own recommendation:哪个 design 最强及 why。若不同 design 元素可 combine,propose hybrid。Be opinionated——user 要 strong read,不是 menu。