context-infra 检查与复盘infra.guiming.net · 全内容自包含呈现 · 生成于 2026-07-21 16:28 UTC

workflow_design_elegance

Z3 全文↑ Z2 条目

道-方法 · 道层 skill 全文

← 返回道层 skill 索引 · 返回方法论区

本页是 <code>rules/skills/drafts/workflow_design_elegance.md</code> 的逐字投影(仅隐私清洗,零改写)。

时点提示:本页是仓内文件 rules/skills/drafts/workflow_design_elegance.md 的逐字投影(仅做隐私清洗:仓库根绝对路径→相对路径、家目录→~/;除此零改写)。若源文件后续有修订,以仓内真源为准。

报告元数据(frontmatter)
name: workflow_design_elegance
status: draft (Beta) — 2026-07-07 从 job 内 skill_draft 晋级到 rules/skills/drafts/ 并注册路由(INDEX + _DAO_ROUTING + dao_shu_matrix),落地横切需求 XC-04/UP-97/XC-07/XC-08。真源设计 `adhoc_jobs/context_infra_base_tooling_buildout_20260615/ddp_creation_skill_and_audit_20260620/design_elegance/`(放置决策 Family A + 方法论综合)。晋级到 production 顶层(rules/skills/)仍需一次真实设计 worker 加载 dogfood + `workflow_version_evolution`,本轮只做 draft 注册不做顶层 evolution。
tier: 道(方法 / 设计决策级,设计派发 worker 加载的协议)
description: 设计优雅性 + 反过度工程化方法论(道)。两件事:① 产出设计时优先选「用一个设计元素满足多个相容需求」的方案降复杂度;② 反过度工程化操作判据——做减法信号(禁堆叠 hook/审查环节/加新不删旧/引入"可能有用"复杂度)、新机制验收四问、overdesign 审计锚点。触发:设计 worker 产出一个 domain 的设计、要在多个需求间做设计取舍、要加一个 hook/gate/审查环节/新机制、判断某设计或工具是不是过度工程化、要做减法。给判断,不替代填设计文档的结构协议(workflow_design_doc_protocol),也不替代写代码时的代码级模块化(workflow_modular_design_entropy_control)。

设计优雅性 + 反过度工程化:一个设计满足多需求、降系统复杂度

道·方法(设计决策级)。这是设计派发 worker 加载的协议——产出设计时怎么让一个设计服务多需求、怎么不把系统堆成过度工程。它与编排(Orchestrator 消费的编排 workflow)职责分离:编排管「派谁去设计」,本协议管「设计本身怎么优雅、怎么做减法」。

诚实定位(先说,不许跳过)

这套方法论是机制论证强 + 五个权威跨书独立收敛的工程启发式,不是统计数据证明的定律。诚实事实:APOSD(Ousterhout)/ Out of the Tar Pit / Modern SE(Farley)/ Pattern Language(Alexander)/ Mythical Man-Month(Brooks)都没有「设计简单度 ↔ 缺陷率 / 维护成本」的受控相关研究;Ousterhout 本人三次声明其「10-20% 投入 / 回报周期」数字「没有数据支撑、只是我的看法」。加载本协议当强启发式用,做设计时绝不把这些原则当数据引、绝不把论断装成数据(这正是本系统反 bad-behavior 的核心纪律之一)。它的力量来自机制可论证 + 五个互相独立的权威各自推到同一结论。

一句话

产出一个设计时,先问「能不能用一个设计元素覆盖多个相容需求」,而不是给每个需求各加一段特化逻辑。一个设计服务多需求之所以降复杂度,是因为它消除了本会互相交互的多个特化部件,把复杂度增长从超线性压回线性。

何时用 / 不用

用:设计派发 worker 产出一个 domain 的设计;任何要在多个需求 / 多个实现路径间做设计取舍的场合;要加一个 hook / gate / 审查环节 / 新机制、或判断某设计·工具是不是过度工程化、或被要求"做减法"时(反过度工程化操作判据一节)。

不用:填设计文档骨架(那是 workflow_design_doc_protocol,怎么填字段);写 / 重构具体代码(那是 workflow_modular_design_entropy_control,代码级补丁vs重构「度」门);trivial 单需求设计。

核心原则 + 机制(为什么有效,按机制加载不当数据)

优先选「一个设计元素满足多个相容需求」的方案。两条机制解释为什么这降复杂度:

概念框架:一个设计服务多需求,消除的是 accidental complexity(N 个需求各自特化时那 N-1 段重复胶水 / 各自分支),不是 essential(问题本身固有的)。

怎么做(有序操作判据)

  1. decide-what-matters:先识别杠杆需求——哪几条需求真正驱动这个设计。不把所有需求等量齐观,先找承重的。
  2. 找压缩点:能否让一个设计元素同时覆盖多个相容需求?过 APOSD 通用化 3 问:① 这是覆盖当前所有需求的最简接口吗?② 它会用在 ≥3 个情况吗?③ 通用化引入的 bloat < 30% 吗?三问都过才合并成一个设计。
  3. removal-test(Tar Pit,最可操作):对设计里每个部件问「删了它,用户层面的含义还对吗?」对 = accidental(可合并 / 消除 / 降级为 hint);不对 = essential。多个特化分支都通过 = 它们本是 accidental,合并即降复杂度。
  4. design-it-twice(APOSD):对关键设计点生成 ≥2 个本质不同的方案,选「更少元素覆盖更多需求」的那个。generality 是显式评估轴,不是事后辩护。
  5. pull-complexity-downward(APOSD):把不可避免的复杂度吸收进模块内部,给调用方窄接口。浅模块(接口和实现一样复杂)= 没封装,不算优雅。

主干一句话(APOSD 蒸馏的 meta-skill seed):decide-what-matters → 一个深 / 通用抽象 → pull-complexity-downward

「度」边界(反过度设计,必带)

「一个设计满足多需求」不等于「一个万能 god 设计」。压过头只是把复杂度搬家。边界判据:

反过度工程化操作判据(做减法 · 新机制验收 · 审计锚点)

上一节的「度」是设计压缩方向的护栏;本节是系统层面「要不要加这个机制」的减法纪律,落地横切需求 XC-07 / UP-97 / XC-04 / XC-08(provenance 见文末)。加载点同「何时用」:要加 hook/gate/审查环节/新机制、判断某设计或工具是否过度工程、或被要求做减法时,先过这一节。

做减法信号(XC-07)——命中任一条,默认不加,除非能反驳

任务核心默认放在「做减法」上:现在的东西堆砌得太多,有些听起来有用但实际重复且没必要。以下是过度工程化的可观测信号,命中即停下来论证:

工具:清晰语义说明足矣(UP-97)

构建一个工具(尤其像 git 工具这类)时,不需要为「让大模型会用」而堆额外机制。大模型只要有清晰的工具说明 + 清晰的记录 + 分离的管理,就足以自己决定怎么用工具。为「教模型用工具」而加的包装层 / 状态机 / 引导脚手架,多数是这个工具上的过度工程化。判据:如果一段机制的唯一目的是补工具说明的不清晰,先改说明,别加机制。(呼应 UP-90「工具触发全语义化」——语义描述到位,模型即可自主完成操作。)

新机制验收四问(XC-04)——任何新增设计机制必须逐条答,答不全默认 FLAG

记录详尽不是过度工程化;真正的过度工程化信号是:重复收集、职责不清、机制互相补丁化、无法复用、只能解决单一局部问题。因此任何新增的设计机制在收口时必须显式说明:

  1. 它同时满足哪些需求(列 req_id;只满足单一局部需求且不可复用 = 过度工程化信号)。
  2. 由哪些模块承担(职责清晰,不与既有机制互相打补丁)。
  3. 是否可复用(对所有同类通道成立,还是一次性特异化补丁——特异化补丁禁入,见 UP-92)。
  4. 在单 Unit 和长链路 Loop 中是否都有效(只在玩具规模成立、长链路失效的机制不算过关)。

四问是收口自检清单,也是审查者判一个机制是否过度工程化的锚。

overdesign 审计锚点 = 实际使用频率(XC-08)

判一个机制 / 工具 / 字段是不是过度工程化,评判锚点是它在最终用户工作流中的实际使用频率,而非理论设计完整性。「理论上更完整 / 更通用 / 覆盖更多边角情况」不是保留理由;「在真实工作流里没人 / 没 agent 触发它」是删除或不加的理由。可机械取证的使用频率信号:tools/tool_receipts/(工具调用台账 + check_discipline 调用率)、记分牌 gap / 使用列、invocation:manual 且零真实触发面 = 默认未落地。审计一个域是否过度工程,先拉这些使用信号,再对理论完整性做减法。

与既有 skill 的关系(compose 不重复)

验收(一个设计是否过了优雅性 + 减法判断)

诚实 claim ceiling


Provenance(本 skill 落地的横切需求锚,逐条可回连需求真源 adhoc_jobs/context_infra_base_tooling_buildout_20260615/requirements/design/cross_cutting.md


← 返回道层 skill 索引 · 返回方法论区