mcpField
T
thinking-margin-of-safety

thinking-margin-of-safety

github.com/tjboudreaux云与 DevOps1.7k566 次安装12 周前更新
代码仓库

关于 thinking-margin-of-safety

一种在不确定性和失误代价使承诺不足风险较高时,用于设定缓冲的决策技能。它通过明确估算、失效阈值和监测指标,辅助容量、进度、预算及生产规划。

主要功能

  1. 01先给出不加缓冲的估算
  2. 02列出不确定因素与失效代价
  3. 03按风险设定缓冲
  4. 04检查不可逆失效约束
  5. 05比较缓冲成本与失效风险
  6. 06确定承诺及监测指标

适用场景

  1. 01为不确定负载设定容量
  2. 02规划超支代价较高的进度或预算
  3. 03确定扩展或恢复所需余量

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/tjboudreaux/cc-thinking-skills --skill thinking-margin-of-safety

安装后在 Claude Code 中输入/thinking-margin-of-safety确认已加载。

详细介绍

安全裕度

核心规则:当剩余不确定性与超限成本可能导致灾难性后果或代价高昂的失败时,提交一个留有余量的数值。裕度用于覆盖估算误差;它不是偷懒的免费余量。

适用场景

  • 负载存在不确定性时的容量、超时、池大小、队列深度、存储或 SLA 数值
  • 低估代价高昂的时间安排或预算承诺
  • 扩展或恢复缓慢时的架构余量
  • 任何判断错误会带来不对称损失的公开承诺或生产承诺

不适用场景

  • 超限会被立即发现,且修复成本几乎为零(快速自动扩缩容、可在线调整的限制)——静态的大缓冲会浪费资源
  • cost(buffer) > P(breach) × cost(breach)——应调整到合适规模或进行测量,而不是一味取最大值
  • 不确定性可以通过测量或查询消除——先获取真实数值
  • 停止准则/搜索预算问题——使用有界理性,而非留出余量
  • 参数完全已知且风险较低,以边界优化为目标

流程

  1. 给出不留余量的点估计。 用明确单位(RPS、周、GB、ms)说明基本需求,并注明置信度(高/中/低)。
  2. 评估不确定性和超限成本。 列出影响因素(峰值、增长、未知因素、依赖项波动)。说明低估会导致什么后果:服务中断、错过发布、数据丢失、声誉受损;并说明失败是否可恢复,还是会造成灾难性后果。
  3. 确定缓冲规模。 根据剩余不确定性和风险大小乘上或加上余量,而不是为了表面好看。典型范围(根据证据调整):
    • 已充分了解、后果较轻:约 1.2–1.5×
    • 较熟悉但仍有未知因素/可逆:约 1.5–2×
    • 新领域、依赖外部因素、SLA、不可逆:约 2–3× 当缓冲成本超过预期超限成本时,应设上限或缩减缓冲。
  4. 满足灾难性风险约束。 如果超限可能造成不可逆损害,缓冲规模应确保最坏情况下的合理估计偏差仍不会跌破失败阈值;如果无法承担这样的缓冲,就应改变设计(卸载、降级、分阶段),而不是假装能精确估算。
  5. 提出最有力的反方观点。 同时质疑缓冲不足(“之后再扩容”)和缓冲过多(闲置成本、复杂性)。有历史数据时,优先先测量、再缩减。
  6. 作出承诺并监控。 公布留有余量的承诺、失败阈值,以及能证明裕度过大或过小的指标。数值确定且可监控后即停止。

输出

Base estimate: … (units, confidence)
Uncertainty drivers: …
Breach cost / failure threshold: …
Margin applied: …× (or absolute buffer …)
Buffered commitment: …
Ruin check: pass | redesign needed
Cost of margin vs expected breach cost: …
Monitor: metric … ; thin if … ; excessive if …

验证

  • 证伪: 如果留有余量的数值等于乐观点估计,就说明没有应用裕度;如果在未说明超限成本的情况下增加裕度,那就是盲目套用。
  • 停止: 一旦承诺、阈值和监控项都已确定,就不要在没有新不确定性证据的情况下继续叠加乘数。
  • 避免过度应用: 调整可以免费且即时完成时,或真实数值可以低成本测得时,不要留出余量。不要把搜索停止问题与容量缓冲混为一谈。

评论

支持 Markdown