| name | governance |
| description | Use when you need a cross-run dashboard over all docs/loen/ runs, or --triage to turn failing runs into proposed next actions (proposals only; never launches loops or edits runs). |
loen:governance โ cross-run dashboard + triage proposals
Invoke as /loen:governance [--triage]. Aggregates the audit trail every loen run
already leaves under docs/loen/ (loop.yaml, state.md,
iterations/iter-NN/{gates.log,verifier.md}, experiments.jsonl) into the ACROSS-runs
view the governance loop calls for. Offline-first: no network, no LLM in the aggregation.
Steps
- Aggregate. Run
python3 <skill-base>/../../scripts/loen_stats.py (the skill base
directory is printed when this skill is invoked; the script resolves docs/loen/
from the CWD, --root overrides). Non-zero exit โ abort and show the script's stderr
verbatim. Parse the JSON from stdout; an empty summary (zero runs) is valid โ render
the dashboard anyway.
- Render
docs/loen/governance.html via the html-report skill (same flow
loen:audit uses for report.html). Dashboard blocks per the methodology ยง10.3
minimal table:
- Loop success rate โ
totals.success_rate plus totals.runs_by_mode counts;
- Metric delta (research runs) โ per run with
research extras:
research.primary, primary_first โ primary_last, keep/revert counts;
- Handoff reasons โ
totals.handoff_reasons, verbatim;
- Failure taxonomy โ
totals.failure_taxonomy (REJECT verdicts' numbered
REQUIRED FIXES: items with occurrence counts);
- Protected-path alerts โ
totals.protected_alerts;
- Layout drift โ the
foreign list (direct children of docs/loen/ that are
neither run-ids nor the canon top-level set);
- Cost/tokens and Latency/VRAM โ always rendered as
"n/a โ loen artifacts carry no cost/token or inference-infra data"; never
fabricate (latency appears only if a research run's eval recorded it as a metric).
Self-contained single file, dark/light, opens by double-click.
--triage variant โ additionally list every run whose last_verdict is
REJECT, or null while iterations > 0. For each, give one line of evidence
quoted from the artifacts (the REJECT's first REQUIRED FIXES: item, or
"no verifier.md while iterations exist") and the suggested next action:
- the failure names a failing command/test โ propose
/loen:loop-repair <failing command>;
- anything else โ propose "review contract/budget" for that run.
Proposals ONLY โ never launch loops, never edit runs, never auto-fix.
Scheduling (optional, user-owned)
/loop 30m /loen:governance --triage re-runs triage this session; the recurring job is
session-scoped and dies with the session โ re-arm it per session or use your own cron.
Rules
- Read-only everywhere except exactly ONE write:
docs/loen/governance.html (canonical
top-level path โ the loop-guard hook allows it).
- Restate what
loen_stats.py reports; add no scores, never fabricate the unavailable
rows.