| name | policy-optimization |
| description | Use when policy health needs tuning: too many explore pipelines, repeated failures, stalled promotions, or noisy rollback behavior. Produces a prioritized optimization plan with safe threshold recommendations. |
Policy Optimization
Overview
Use this skill when /policy output shows drift, stalls, or noisy failure patterns.
Goal: improve promotion quality and stability without unsafe threshold changes.
Core principle: diagnose first, tune second. Do not change thresholds without
clear evidence from attempts, success_rate, verify_rate, and failure patterns.
When to Use
explore count is high and long-lived.
- Any pipeline has
consecutive_failures >= 1.
canary pipelines fail to reach stable despite enough attempts.
- Rollbacks are frequent (
rollback_executed_count grows).
- The team asks "which policy threshold should we tune next?"
Do not use when:
- The request is only to display status (use
policy command only).
- There are no meaningful signals (too little data / low attempts).
Workflow
1) Capture policy snapshot
python3 "${CLAUDE_PLUGIN_ROOT}/scripts/repl_admin.py" policy-status --pretty
If parsing is needed:
python3 "${CLAUDE_PLUGIN_ROOT}/scripts/repl_admin.py" policy-status
2) Classify risk buckets
Classify each pipeline into one bucket:
- Critical:
consecutive_failures >= rollback_consecutive_failures
- Warning:
consecutive_failures == 1 or verify_rate materially low
- Stalled: high attempts but still
explore/canary
- Healthy: stable or trend strongly positive
3) Prioritize remediation
Priority order:
- Fix
Critical pipelines first (execution correctness and rollback safety)
- Fix high-volume
Warning pipelines
- Promote
Stalled but healthy candidates (remove lifecycle friction)
- Leave
Healthy unchanged
Tie-breakers:
- Higher
consecutive_failures first
- Then lower
verify_rate
- Then higher policy traffic (
policy_enforced_count)
4) Propose threshold tuning (guardrailed)
Threshold changes are allowed only when:
- Sample size is credible (attempts near/above promotion thresholds)
- Signal is consistent across multiple pipelines (not one-off noise)
- A specific failure mode is identified
Guardrails:
- Never relax all gates at once.
- Change one threshold group at a time, then observe.
- Keep rollback protection conservative (
rollback_consecutive_failures).
- Prefer pipeline fixes over threshold relaxation when failures are deterministic.
5) Define verification window
After any tuning, run a short observation window and re-check:
- status movement (
explore -> canary -> stable)
- success/verify trend
- new consecutive failure bursts
- rollback/stop counts
Output Contract
Return a concise optimization report:
- Snapshot: total pipelines, status distribution, threshold values
- Findings: critical/warning/stalled groups with evidence
- Actions: top 3-5 actions in execution order
- Threshold proposal: optional, with explicit risk statement
- Verification plan: what to watch and pass/fail criteria
Common Mistakes
| Mistake | Better approach |
|---|
| Tune thresholds from one bad run | Wait for enough attempts and consistent pattern |
| Lower multiple promotion gates together | Change one gate group, then observe |
| Ignore verify_rate and focus only on success_rate | Treat verify as first-class gate for safety |
| Keep retrying a broken pipeline in explore | Fix pipeline logic before policy tuning |
| Optimize by intuition | Base every action on measurable policy signals |