$ca-metrics — governance trend glance
SkillMonitoring & opsRead-only 3-metric governance glance — override rate, small-lane rate, sprint low-confidence ratio — each with a trend arrow vs. the prior 20-commit window.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the $ca-metrics — governance trend glance skill
What this skill tells your AI
The instructions your AI receives, as published by arbiterforge/codearbiter in plugins/ca-pi/skills/ca-metrics/SKILL.md and read by ahel’s review.
A bare-numbers summary of the three governance-health metrics that _metricslib.py
tracks across commit windows. Each metric shows its value for the current 20-commit
window and a direction arrow (↑/↓/→) relative to the immediately preceding window.
This is NOT a second $ca-audit packet. It prints numbers and arrows only — no
verbatim override lines, no commit list, no file write. Use it to spot a trend at a
glance; reach for $ca-audit when you need the full evidentiary packet.
Flow
-
Invoke the helper. Call the thin entry hook
metrics.py, which wrapscomputefrom_metricslib.py. Resolve the interpreter once by presence —PY=python3; { command -v python3 >/dev/null 2>&1 && python3 --version >/dev/null 2>&1; } || PY=python— neverpython3 … || python …, which reruns the helper on any nonzero exit and reports the second run's code instead of the first's (#577). Pass<project-root>as--root. If--window Nwas supplied, pass it through as--window N; otherwise omit it (the helper applies the default of 20)."$PY" "${PLUGIN_ROOT}/hooks/metrics.py" --root "<project-root>"ensure_asciinote — do not remove this.metrics.pycallsjson.dumpswith its defaultensure_ascii=True. This ASCII-escapes the arrow glyphs (↑↓→) in the subprocess stdout, which avoids aUnicodeEncodeErroron Windowscp1252consoles that cannot encode those code-points raw. The rendered output you present to the user (step 2 below) uses the real glyphs — they are written by the assistant, not piped through the subprocess stdout. Do NOT addensure_ascii=Falsehere.With a custom window size:
"$PY" "${PLUGIN_ROOT}/hooks/metrics.py" --root "<project-root>" --window NReplace
Nwith the integer the user supplied. -
Render the glance. Parse the returned JSON dict. Present exactly three lines, one per metric, in this order:
override rate: <current> <arrow> (prior: <prior>) small-lane rate: <current> <arrow> (prior: <prior>) sprint low-conf ratio: <current> <arrow> (prior: <prior>)- Use the real glyphs ↑, ↓, → in your message (not the JSON-escaped forms).
- For
sprint_low_conf_ratio, thecurrentorpriorvalue may be the string"n/a"— render it literally (e.g.n/a ↑). - ↑ on
override_rateandsprint_low_conf_ratiois a worsening signal; state this briefly below the table so the reader does not have to guess.
-
State the window. Append one line naming the window size used, e.g.
Window: 20 commits (default)orWindow: N commits (--window N).
Hard gate
- Read-only. MUST NOT write, create, or modify any file. MUST NOT stage or commit.
git statusMUST be unchanged after a run. - Emits ONLY the fixed 3-metric glance:
override_rate,small_lane_rate,sprint_low_conf_ratio. MUST NOT emit verbatim override log lines, verbatim triage entries, commit lists, or any other content from the governance logs. - MUST NOT require
$ca-initto have been run. The helper degrades gracefully on absent logs (counts return 0 / ratio returns"n/a"); surface the degraded values as-is rather than blocking. - If the helper subprocess fails entirely (import error, Python not found), report the error and stop — do not fabricate metric values.
When NOT to use
- Full governance packet with verbatim overrides and audit trail →
$ca-audit. - Live project state (active sprint, open confirms, hook health) →
$ca-status.
Signals
- GitHub stars
- 144
- Forks
- 7
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
ca-metrics- Source
- github.com/arbiterforge/codearbiter