mcpField
C
cost-projection

cost-projection

github.com/ruvnet数据与数据库80.0k249 次安装今天更新
代码仓库

关于 cost-projection

cost-projection 是一项成本分析技能,根据会话记录和指定测量窗口预测未来支出。它按当前日均消耗线性外推,并可显示配置预算的阈值预计何时达到。

主要功能

  1. 01统计指定窗口内的支出
  2. 02计算每日消耗速率
  3. 03预测多个时间范围的支出
  4. 04估算预算阈值到达时间
  5. 05输出表格或 JSON

适用场景

  1. 01规划财务或 SRE 预算
  2. 02根据预算耗尽预测设置 CI 门禁
  3. 03工作负载变化后检查支出

安装

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

$npx skills add https://github.com/ruvnet/ruflo --skill cost-projection

安装后在 Claude Code 中输入/cost-projection确认已加载。

详细介绍

与 cost-budget-check 配套的前瞻性成本预测:

  • cost-budget-check 回答“我们是否已越过界限?”——响应式
  • cost-projection 回答“我们何时会越过界限?”——预测式

算法

  1. 从 cost-tracking 命名空间读取所有 session-* 记录(数据来源与 cost-budget-check 相同)。
  2. 筛选测量窗口(默认取 capturedAt/startedAt 最近 7 天的数据)。
  3. 计算每日消耗速率:windowSpend / windowDays。
  4. 对每个请求的预测周期进行线性外推(默认 7d/30d/90d/365d)。
  5. 如果配置了预算(由 cost-budget set 设置 budget-config 键):
    • 按当前速率计算达到已消耗预算的 75% / 90% / 100% 需要的天数。
    • 将结果放在单独的表格块中,并为已超过的阈值标注 ALREADY REACHED。

标志

--window 测量窗口。Nh|Nd|Nw|Nm。默认 7d。 --horizons 预测周期。默认 7d,30d,90d,365d。 --format table|json 默认 table(markdown)。

环境变量:PROJECTION_NAMESPACE 覆盖项(默认 cost-tracking),PROJECTION_QUIET=1(--format json 的别名)。

冒烟测试记录(7d 内 3 个会话 × $1,预算 $20)

| Sessions in window | 3 |
| Window spend | $3.000000 |
| **USD per day** | **$0.428571** |
| All-time spend | $3.000000 across 3 sessions |

## Projected spend (linear extrapolation)
| Horizon | Days | Projected spend |
|---|---:|---:|
| 7d | 7 | $3.0000 |
| 30d | 30 | $12.8571 |

## Budget exhaustion ($20.00 configured)
| Threshold | Target | Remaining | Time at current rate |
|---|---:|---:|---|
| 75% | $15.00 | $12.00 | 28.0 days |
| 90% | $18.00 | $15.00 | 35.0 days |
| 100% | $20.00 | $17.00 | 39.7 days |

适用场景

  • 财务 / SRE 规划:将 JSON 输出交给预算仪表板,以查看“本季度进度是否符合预期?”。
  • CI 门禁:cost-projection --format json | jq '.budget.exhaustion[2].daysUntilReached < 7' → 当预算耗尽时间少于 1 周时,构建失败。
  • 工作负载变化后的合理性检查:大型功能上线后重新运行,确认消耗速率没有超出预期。

平稳性假设

线性外推假设当前速率保持不变。页脚会提醒运维人员在工作负载变化后重新运行。若要检测多个窗口之间的偏移,请配合 cost-trend 使用(它已涵盖 benchmark-drift)。

评论

支持 Markdown