用途:no-workarounds 是一个面向软件工程任务的技能,核心主张是优先做根因修复,而不是用权宜之计、hack 或症状补丁让问题暂时消失。适用于调试问题、修复 bug、解决测试失败等场景。
主要能力:它给出“权宜之计检测门禁”,要求在写或提出任何修复前先陈述问题、追问“问题为什么存在”、追踪根因、判断修复是否针对根因、该修复在代码正确时是否仍必要、以及是在压制信号还是修复源头。若发现只是打补丁,应停止并重新设计。
七类权宜之计:TYPE 类型系统规避(如 as、any、非空断言);LINT 抑制 lint 与警告(如 eslint-disable、@ts-ignore);SWALLOW 吞掉错误(空 catch、默认值掩盖损坏数据);TIMING 时序与生命周期 hack(setTimeout、任意 sleep、盲目重试);PATCH 猴子补丁与运行时改动(改原型、全局、第三方内部);SCATTER 防御性重复(到处散布 ?. 和 ??);CLONE 复制粘贴式改造。每类都配有门禁问题与正反示例。
使用方式:在编码或审查时按门禁逐项自问;遇到红旗思维(如“加个 as any 让它编译”“先 try-catch 忽略”“加个 setTimeout 修时序”“复制这段改几行”)即停下重想。
限制与逃生阀:并非所有问题都能在根因处修复。资料规定,只有当根因在团队无法控制的外部代码、正确修复依赖上游且时间不确定、不发布的业务影响超过技术债成本、且权宜之计被隔离时,才允许使用逃生阀;并需加 WORKAROUND 注释、建跟踪 issue、加验证测试与上游修复后失败的 canary 测试、设最长 90 天复审日期。任一条件不满足就必须修根因。
资料还提到可阅读 references/workaround-catalog.md 与 references/philosophical-foundations.md 获取更多细节,但未提供具体安装命令、平台或收费信息。