Interface Design(接口设计)

用户想 explore chosen deepening candidate 的 alternative interface 时,使用此 parallel sub-agent pattern。基于 Ousterhout 的「Design It Twice」——第一个 idea unlikely 是 best。

使用 LANGUAGE.md 词汇——moduleinterfaceseamadapterleverage

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 输出:

  1. Interface(types、methods、params——plus invariants、ordering、error modes)
  2. Usage example 展示 caller 如何用
  3. Seam 后 implementation hide 什么
  4. Dependency strategy 与 adapter(见 DEEPENING.md
  5. 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。