关于 cost-projection
cost-projection 是一项成本分析技能,根据会话记录和指定测量窗口预测未来支出。它按当前日均消耗线性外推,并可显示配置预算的阈值预计何时达到。
主要功能
- 01统计指定窗口内的支出
- 02计算每日消耗速率
- 03预测多个时间范围的支出
- 04估算预算阈值到达时间
- 05输出表格或 JSON
适用场景
- 01规划财务或 SRE 预算
- 02根据预算耗尽预测设置 CI 门禁
- 03工作负载变化后检查支出
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ ruvnet/ ruflo --skill cost-projection安装后在 Claude Code 中输入/cost-projection确认已加载。
详细介绍
与 cost-budget-check 配套的前瞻性成本预测:
cost-budget-check回答“我们是否已越过界限?”——响应式cost-projection回答“我们何时会越过界限?”——预测式
算法
- 从
cost-tracking命名空间读取所有session-*记录(数据来源与cost-budget-check相同)。 - 筛选测量窗口(默认取
capturedAt/startedAt最近 7 天的数据)。 - 计算每日消耗速率:
windowSpend / windowDays。 - 对每个请求的预测周期进行线性外推(默认 7d/30d/90d/365d)。
- 如果配置了预算(由
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