用途:与 cost-budget-check 配套的前瞻性成本预测。cost-budget-check 回答“是否已超线”(反应式),cost-projection 回答“何时会超线”(预测式)。
主要能力:读取 cost-tracking 命名空间中的 session-* 记录;按测量窗口(默认最近 7 天,基于 capturedAt/startedAt)过滤;计算每日消耗速率 windowSpend/windowDays;线性外推到各时间范围(默认 7d/30d/90d/365d);若已通过 cost-budget set 配置预算,则按当前速率计算消耗到 75%/90%/100% 所需天数,并以独立表格块展示,已超阈值会标记 ALREADY REACHED。
使用方式:参数 --window 指定测量窗口(Nh|Nd|Nw|Nm,默认 7d);--horizons 指定预测范围(默认 7d,30d,90d,365d);--format table|json 指定输出格式(默认 markdown 表格)。环境变量 PROJECTION_NAMESPACE 覆盖默认命名空间 cost-tracking,PROJECTION_QUIET=1 等价于 --format json。示例:cost-projection --format json | jq '.budget.exhaustion[2].daysUntilReached < 7' 可用于 CI 门禁,当 100% 耗尽不足一周时使构建失败。
适用场景:财务/SRE 规划,将 JSON 输出交给预算看板判断季度是否在轨;CI 门禁;重大功能上线后的工作量变化复核,确认速率未超预期。
限制:采用线性外推,假设当前速率保持不变,页脚会提醒工作负载变化后需重新运行;如需跨多个窗口检测漂移,应配合 cost-trend 使用。