用途:应用《A Philosophy of Software Design》中的“Design It Twice”思路,为同一模块生成至少三种截然不同的接口形态,再比较深度与正确使用难易度。实现不在范围内,技能止于契约。
主要能力:生成前先做发现,若模块已有调用方,派 Explore 代理枚举真实消费者(fd 找文件,git grep/ast-grep 找使用点),使约束反映真实调用方。并行派发 3–4 个 Explore 代理,每个带不同约束以强制分歧,例如最小化表面、最大化通用性、优化主调用点、借用外部范式(迭代器、构建器、能力句柄、效果处理器)。每个代理返回契约签名、真实调用示例、内部隐藏内容与接受的权衡。若输出趋同则重新派发。
使用方式:先框定契约,按顺序捕获问题一句话、调用方及主调用方、按频率排序的关键操作、约束(性能预算、兼容面、需沿用的既有模式)、信息边界(隐藏与暴露)。未知项先作为问题提出。随后依次展示各候选,逐个给出契约签名、用法示例与吸收的隐藏复杂度,避免并排表格以保留认知对比。再用散文比较表面简洁性、通用性与聚焦、实现效率、深度、正确使用偏向。最后综合出第五个命名设计,标明来源。
适用场景:当答案是“我们还不知道正确形态”,价值在于 N 个候选之间的刻意对比时选用。
限制:不进入实现规划;不按实现工作量排序;缺少调用方信息时需先澄清,否则浪费并行生成预算。