用途:审查提议中或已存在的工作是否包含不必要的复杂度,并对可能增加复杂度的建议进行分诊(triage)。审查目标不可被修改,即使被要求修复。
模式:只能处于其一。Prevention 针对未实施的计划、设计、依赖、防护措施;Audit 针对既有源码、测试、配置、依赖、架构;Finding triage 针对外部提供的、可能增加复杂度的建议。
前提与边界:审查前需确认 target、authority、required behavior、scope,仅在歧义会改变这些时才提问。遵循 ADR 约定确定路径与决策权。只允许写一个文件:adrs/work/<change>-decomplex.md,除非有显式输出路径覆盖;绝不编辑被审查工件。支持显式 no-write/chat-only 请求,此时仅在对话中给出发现;若文件无法写入须披露限制,不得声称已保存。只处理复杂度权衡,缺陷、安全、性能、计划合规问题应移交对应工作流(如 code-review)。简单不等于行数、helper 或依赖更少,需保留有证据的信任边界、不变量、兼容性、生命周期清理与运维需求。发现仅为建议性,消费者负责处置、实施或升级;“无潜在复杂度发现”是有效结果。
准入条件:需同时满足具体概念、维护或运营负担,当前需求缺乏充分理由,存在现实可达的实际成本,存在最小具体更简替代方案,且简化后所需行为仍被保留,简化收益与回归成本相称,并完成显式例外或边界检查。证据仅限 Confirmed 或 Supported;不满足则只做有限验证、向用户提问或省略。不得仅以 helper 数量、重复、新颖性、假想规模或风格定为发现。优先顺序:删除、直接使用、局部逻辑或 helper、既有共享抽象,最后才是新抽象。
流程:先读 ADR 约定与相关已接受决策,确定模式、目标、权限、范围、行为、报告路径与约束;按需检查调用方、测试、配置与历史以通过准入;候选前完整阅读 references/complexity-gates.md,把其中信号当作上下文而非配额清单;对每个候选执行完整准入,按预期简化价值排序;仅建议 Act、Validate 或 Ask user,不执行动作。分诊模式需保留每个提供的 ID,处置为 Act、Validate、Ask user 或 No action。写入前完整阅读 assets/decomplex-review-template.md,只写一份报告,或在 no-write 约束下于对话返回;去除模板提示与空章节,保留已检查与已跳过的覆盖范围及限制。最后验证报告存在或已明确对话交付及限制,准入项通过门槛,所有分诊 ID 已处理,未改动任何目标文件。
适用场景:代码、测试、配置、依赖或架构的复杂度审计,设计与计划评审,以及对他人建议的复杂度分诊。限制:不修复目标,不做缺陷、安全、性能或合规审查,发现不自动实施;未提供的具体输入细节以实际使用为准。