plugins/ruflo-cost-tracker/skills/cost-booster-edit/SKILL.md
Direct wrapper around agent-booster.apply() (npm agent-booster v0.2.x, exposed via agentic-flow/agent-booster). Use when a transform is already classified as Tier 1 eligible — cost-booster-route recommends whether; this skill executes.
var → const, add-types, remove-console, add-error-handling, async-await, add-logging).Do NOT use when the transform requires reasoning about intent, naming, or cross-file context — those are Tier 2/3 jobs.
Take inputs — intent (one of the 6 booster intents) and file path.
Read the source to a variable, derive the intended edit text from the intent (caller supplies).
Invoke — run from anywhere under v3/ so agent-booster resolves:
node --input-type=module -e '
import("agent-booster")
.then(async ({ AgentBooster }) => {
const booster = new AgentBooster();
const r = await booster.apply({
code: process.argv[1],
edit: process.argv[2],
language: process.argv[3] || "javascript",
});
console.log(JSON.stringify({
success: r.success, output: r.output, latency: r.latency,
confidence: r.confidence, strategy: r.strategy,
tokens: r.tokens,
}));
})
.catch(e => console.log(JSON.stringify({ success: false, error: String(e.message) })));
' -- "$CODE" "$EDIT" "$LANG"
Check confidence — default threshold is 0.5. Below that, fail closed: do NOT write the file; report and escalate to Tier 2/3.
Write back the output field if success && confidence >= 0.5.
Persist outcome — memory_store --namespace cost-tracking --key "booster-edit-..." --value '{"intent":..., "latency":..., "confidence":..., "strategy":..., "applied":true}'. Feed the routing learner via hooks_model-outcome (use the cost-optimize skill's step 8).
5 representative intents run through AgentBooster.apply():
| intent | latency (ms) | wall (ms) | confidence | strategy | success |
|---|---|---|---|---|---|
| var-to-const | 5 | 5 | 0.65 | fuzzy_replace | true |
| add-types | 1 | 1 | 0.64 | fuzzy_replace | true |
| remove-console | 0 | 0 | 0.70 | fuzzy_replace | true |
| add-error-handling | 0 | 0 | 0.85 | exact_replace | true |
| async-await | 0 | 0 | 0.85 | exact_replace | true |
Avg measured latency ≈ 1.2 ms. All 5 above the default 0.5 confidence threshold. See docs/benchmarks/0002-baseline.md for the LLM-baseline comparison.
| Claim | Status here |
|---|---|
| 100% win rate | Verified — 12/12 on bench/booster-corpus.json (see runs/latest.json). Booster AND Gemini 2.0 Flash both score 12/12 — this is a structural-correctness corpus, not a hard adversarial one. |
| Sub-millisecond latency | Verified — avg 0.67 ms, p50 0 ms, p99 6 ms, max 6 ms. |
| $0 per edit | Verified structurally — no API call, no token billing. |
| Deterministic AST-based merge | Verified — same inputs reproduce the same output and strategy. |
| Confidence ≥ 0.5 ⇒ correct | Verified on this corpus — 12/12 above 0.5 (min 0.551), all correct. |
350× speedup vs. LLM | Verified — exceeded against every tier: 1000.9× vs Gemini 2.0 Flash, 1838.7× vs Claude Sonnet 4.6, 2634.1× vs Claude Opus 4.7. Run BENCH_LLM_BASELINE=1 BENCH_ANTHROPIC=1 node scripts/bench.mjs to refresh. |
| Cost saved per edit | Measured: $0.000020 vs Gemini, $0.000722 vs Sonnet 4.6, $0.004720 vs Opus 4.7 (the booster side is $0 in all cases). |
| Win parity with frontier LLMs | Verified — Booster, Gemini 2.0 Flash, Sonnet 4.6, Opus 4.7 all scored 12/12 on this corpus. Booster matches LLM accuracy structurally for deterministic transforms. |
To extend: add cases to bench/booster-corpus.json, run ( cd v3 && node ../plugins/ruflo-cost-tracker/scripts/bench.mjs ) (or with BENCH_LLM_BASELINE=1), commit runs/latest.json. Smoke step 23 fails the build if win rate drops below 0.80.
Override the LLM model: BENCH_LLM_MODEL='claude-sonnet-4' (when wired against api.anthropic.com) or BENCH_LLM_MODEL='models/gemini-2.5-flash' for a reasoning-model comparison. Pricing flags: BENCH_LLM_PRICE_IN, BENCH_LLM_PRICE_OUT.
fuzzy_replace is best-effort; for production transforms prefer cases that route to exact_replace (≥0.85 confidence in our sample).
ADR-0002 §"Decision 1" (route classifier) and §"Riskiest assumption" (Bash-shelled invocation) · cost-booster-route (classifier-side companion) · agent-booster npm README (3-mode install, MCP / npm / HTTP).