Skip to main content
skill CX Codex

cost-trend — Claude Code skill: track metric drift over time

A skill that reads benchmark runs from docs/benchmarks/runs/*.json and surfaces how win rate, latency, escalation rate, and cost change over time. Catches regressions that smoke tests miss.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add ruvnet/ruflo --skill cost-trend -a claude-code
Open on GitHub

What cost-trend does

cost-trend analyzes persisted benchmark runs and reports delta between first and last run — win rate, mean and p99 latency, escalation rate, speedup versus Gemini. It also shows a per-run series, flagging regressions when win rate drops or latency rises 1.5× from baseline.

Run the script from project root with node plugins/ruflo-cost-tracker/scripts/trend.mjs. Accepts env variables: TREND_FORMAT=json emits JSON instead of markdown, TREND_LIMIT=10 considers only the most recent N runs. Corpus version is recorded in each run, so trends remain interpretable across corpus updates.

Use it before a release to check that speedup hasn't drifted, or after expanding the corpus to verify older runs still hit the same win rate. Baseline latencies for Sonnet 4.6 and Opus 4.7 are included in the report if enabled at run time.

What it helps with

  • track metric degradation between benchmark runs
  • catch slow win rate decline that smoke tests miss
  • compare cost and speed across run history
  • measure impact of agent-booster upgrades on latency
  • surface regressions after corpus expansion

Example prompts for the agent

  • Run cost-trend before release to check metric drift
  • Export trends to JSON and load into a dashboard
  • Review the last 10 runs after updating agent-booster

How to install cost-trend

1Skills CLI (Vercel)

npx skills add ruvnet/ruflo --skill cost-trend -a claude-code

2Manually: put the files in place

~/.claude/skills/cost-trend/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/cost-trend/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about cost-trend

How do I install cost-trend in Claude Code?

Run from project root: npx skills add ruvnet/ruflo --skill cost-trend -a claude-code. After installation, the skill is available at ~/.claude/skills/cost-trend/SKILL.md.

What does cost-trend do?

It analyzes your benchmark archive and shows how win rate, latency, escalation rate, and cost change over time. It flags regressions when win rate drops or latency rises 1.5× from the first run.

What environment variables does cost-trend support?

TREND_FORMAT=json switches output to JSON, TREND_LIMIT=10 limits analysis to the most recent N runs. By default, output is markdown and all available runs are analyzed.

Source text

SKILL.md · MIT
---
name: cost-trend
description: Read every docs/benchmarks/runs/*.json and surface drift in win rate, latency, escalation rate, and LLM-baseline cost over time
argument-hint: ""
allowed-tools: Bash
---

# Cost Trend

The smoke gate is binary (`winRate ≥ 0.80` → pass/fail). The corpus benchmarks captured over time form a curve — and curves catch regressions the gate misses (win rate slowly creeping from 100% to 85% is "still passing" by smoke but a real degradation).

This skill reads every persisted run in `docs/benchmarks/runs/*.json` and reports first→last deltas plus a per-run series, flagging regressions in win rate or latency.

## When to use

- Before a release — check that the speedup hasn't drifted.
- After expanding the corpus — verify older runs still hit the same win rate on the new corpus *they* reflected.
- After upgrading `agent-booster` — surface latency / strategy changes.

## Steps

1. **Run the trend script** from the project root:

   ```bash
   node plugins/ruflo-cost-tracker/scripts/trend.mjs
   ```

   Optional env:
   - `TREND_FORMAT=json` — emit JSON instead of markdown
   - `TREND_LIMIT=10` — consider only the most recent N runs

2. **Inspect the drift summary** — first vs last on win rate, avg latency, p99, escalation rate, speedup vs Gemini.

3. **Inspect the per-run series** — one row per run, including Sonnet 4.6 + Opus 4.7 baseline latencies if those were enabled (`BENCH_ANTHROPIC=1` at run time).

4. **Regression flags** — the script emits `> ⚠ Regression` callouts when:
   - Win rate dropped between first and last run
   - Avg latency rose ≥ 1.5× from first run

## Cross-references

- `cost-benchmark` — the producer of the run JSONs this skill consumes
- `bench/booster-corpus.json` — the corpus version is recorded in each run, so trends across corpus versions remain interpretable
- `docs/benchmarks/runs/latest.json` — the most-recent run; smoke step 23 gates on `winRate ≥ 0.80` from this file

© ruvnet · MIT · ruvnet/ruflo

Similar skills

Everything for AI and ML →

From the same set146

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor