用途:Collapse Pass 用于在 diff 或代码包中移除“没有挣得其边界”的间接层。它不是一次性大重构,而是一段会话内的若干小提交,每个提交只删除一处间接。每个提交必须让公共接口、文件数量、调用图深度或首次阅读难度中至少一项变小;若都没变,则回滚并寻找更深层的问题。
主要能力与流程:按候选文件或符号族逐个处理。先用 rg 精确统计非测试调用者数量:为零则是死导出坍缩,为一则是内联助手坍缩,过多则换更窄目标。再在脑中内联所有助手、包装、prop 与间接层,以陌生人视角阅读结果,并对文件做“一句话测试”,句子漂移或出现“或”子句即暴露歧义。编辑前先以规定格式呈现发现(问题、内联检查、修复、保持不变的部分),只应用机械性低风险修改。
必要用法:对受影响包运行 bun test 与 bun run typecheck;每处逻辑简化用一条常规提交,注明 file:line 并说明坍缩内容;再重新 grep 被删除或重命名的符号;随后用一条 chore: straggler sweep 提交清理残留。编辑前需按需阅读 references/never-touch.md 等参考文件。处理 PR、分支或近期合并改动时,默认在独立 worktree 中隔离变更,不重置用户当前检出,用 git diff --name-only <base>...HEAD 计算范围;除非用户要求,不暂存、不提交、不推送、不创建 PR。
适用场景:广泛简化、审计死代码、实现后的复检、周期性 monorepo 维护、PR 或分支 diff 的范围化坍缩。
限制与停机条件:涉及 never-touch.md 中的字符串、可能被外部消费的零调用公共导出、承载隐含不变量的文件、跨包边界合并或签名变更时,必须先暂停并告知用户。连续三个文件无发现、剩余发现均需产品决策、一次后续提交无法解决类型或测试回归、或达到检查点预算(如 8 个)时停止。收费、价格、平台与其他细节暂未提供。