Oncall iteration loop
Skill omonuj/claude-horizon-skills/skills/oncall-schedule-coverage-collapse/oncall-iteration-loop
Claude Code Agent Skills for building, red-teaming and tuning agentic RL evaluation environments — a four-skill pattern (guardian, validation-debugger, score-tuner, iteration-loop) plus a 24-point adversarial reviewer.
npx -y skills add omonuj/claude-horizon-skills --skill oncall-iteration-loopAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
3 things to look at
- 13 days oldThe repository was created 13 days ago. New is not bad, but a brand new repository carrying a familiar-sounding name is the shape a typosquat arrives in, and there has been no time for anyone else to find a problem with it.
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Orchestrator skill that runs the full push → Oracle → live red-team → rollout → tune cycle for the oncall-schedule-coverage-collapse task (<TASK_ID>) until Oracle scores 1.0 and rollout avg < <TARGET_MEAN> with both subscores varying and decorrelated. Delegates to oncall-task-guardian, oncall-validation-debugger, oncall-score-tuner, and horizon-agentic-reviewer at the right phases. The agent executes every step except triggering the rollout batch.
SKILL.md
8.5 KB, as published. Nobody here has run it
oncall-iteration-loop
Execution Mode — FULLY AUTONOMOUS
NEVER pause for confirmation at any point. Run every phase, command, and fix without asking. Two valid paths → pick the safer. The only manual step is the user triggering the eval batch in the Horizon UI.
Goal
Drive oncall-schedule-coverage-collapse from "needs work" to "shippable". Done when all exit conditions hold; each cycle picks the right specialist and applies the smallest safe fix.
Trigger
"Iterate the oncall task until it passes"; "push and tune until avg < <TARGET_MEAN>"; "run the full loop on oncall-schedule-coverage-collapse"; anything implying repeated push → validate → analyze → fix. Single steps → invoke the specialist directly.
Task Identity
| Field | Value |
|---|---|
| UUID | <TASK_ID> |
| Slug / path | oncall-schedule-coverage-collapse / tasks/oncall-schedule-coverage-collapse/ |
| Horizon root | /Users/mac/Documents/tasks |
| Venv | source /Users/mac/Documents/tasks/horizon_env/bin/activate |
Who does what
The agent executes everything except triggering the eval batch in the Horizon UI. Never tell the user to push/validate/pull.
Exit conditions (all, same version)
- Oracle
passed: true, score: 1.0, both subscores=1 - Live red-team: no BLOCKING findings — especially bleater-env reachable, all 3 drift sources live, install-id agent-readable, a no-op agent failing both
- Rollout avg
< <TARGET_MEAN>(and not< <FLOOR>— over-hard) coverage_restoredvaries (0 and 1)monitoring_governancevaries (0 and 1)- Decorrelated — some
0.5rollouts appear (not only 0.0 and 1.0) - Local quality: 18 substantive pass (
v1_feedback+behavior_in_task_documentationmay FAIL as accepted heredoc-invisibility noise — do NOT fix by leaking the hidden gates to task.yaml)
Short of all seven → continue.
Loop limit
Max 5 push cycles without human review, then stop and summarize.
No-Op default
Oracle only. Run No-Op manually only on feedback: null/score: 0 (setup-crash isolation).
The loop
PHASE 0 Pre-push (oncall-task-guardian Step 0–2): Dockerfile (ALLOWED_NAMESPACES=kube-system,bleater-env)
+ bash -n + py_compile + check-anatomy + check-quality (18 substantive pass)
PHASE 1 Push → version NNN
PHASE 2 Oracle → 1.0+both=1 → PHASE 2.5 ; else → oncall-validation-debugger → fix → PHASE 0
PHASE 2.5 Live red-team (horizon-agentic-reviewer) → clean → ask user to trigger batch ; BLOCKING → fix → PHASE 0
PHASE 3 Rollout analysis → avg < <TARGET_MEAN> AND both vary AND decorrelated (0.5s) → DONE ; else → oncall-score-tuner → PHASE 0
Phase 0 — Pre-push
cd /Users/mac/Documents/tasks
echo "=== Dockerfile ===" && cat tasks/oncall-schedule-coverage-collapse/Dockerfile
# must NOT contain ENABLE_ISTIO_BLEATER; must contain ALLOWED_NAMESPACES="kube-system,bleater-env" + COPY data/ubuntu-user-rbac.yaml
bash -n tasks/oncall-schedule-coverage-collapse/setup.sh && echo "setup.sh OK"
bash -n tasks/oncall-schedule-coverage-collapse/solution.sh && echo "solution.sh OK"
python3 -m py_compile tasks/oncall-schedule-coverage-collapse/grader.py && echo "grader.py OK"
source horizon_env/bin/activate
horizon check-anatomy tasks/oncall-schedule-coverage-collapse 2>&1
horizon check-quality tasks/oncall-schedule-coverage-collapse 2>&1 | tail -30
Phase 1 — Push
horizon tasks push tasks/oncall-schedule-coverage-collapse 2>&1 # record Version: NNN
Phase 2 — Oracle (poll, don't trust --wait)
horizon tasks validate -m hosted -a oracle tasks/oncall-schedule-coverage-collapse 2>&1
BUILD_ID="val-9ee1af19-<TIMESTAMP>"
RESULT_PATH="tasks/oncall-schedule-coverage-collapse/.validation/${BUILD_ID}/result.json"
for attempt in $(seq 1 30); do
sleep 60
horizon tasks validate-logs -a oracle tasks/oncall-schedule-coverage-collapse >/dev/null 2>&1
STATUS=$(python3 -c "import json; print(json.load(open('$RESULT_PATH')).get('status','unknown'))" 2>/dev/null)
if [ "$STATUS" != "running" ] && [ -n "$STATUS" ]; then
echo "Oracle done after ${attempt} min, status=$STATUS"; cat "$RESULT_PATH" | python3 -m json.tool; break
fi
echo "[poll ${attempt}/30] status=$STATUS"
done
Pass: 1.0 + both 1. Run as a background bash task. Else → oncall-validation-debugger.
Phase 2.5 — Live red-team
Invoke horizon-agentic-reviewer on UUID <TASK_ID>. Confirm (probes in oncall-task-guardian Step 4b): bleater-env reachable by ubuntu; the broken state is live; all 3 annotation/slot-pinner drift sources exist (kube-system + bleater-env + canary); /etc/oncall/<artefact>.txt agent-readable but /opt/<grader-artefact>.txt not; drift names + exact metadata keys NOT leaked in baseline; a no-op agent fails both subscores. Auto-invoked. BLOCKING → fix → re-loop. Skip only for a pure numeric tweak. If the VM is unreachable, note the risk and proceed.
Tell the user (verbatim, the ONLY user-facing message):
"Oracle passed at version N and live red-team is [clean | skipped: reason]. Please trigger a rollout batch for version N in the Horizon UI."
Phase 3 — Rollout analysis
horizon rollouts pull --version NNN tasks/oncall-schedule-coverage-collapse 2>&1
Poll until ≥5; read 2 transcripts (1 pass, 1 fail) before the script.
import json, glob
from collections import defaultdict
VERSION="NNN"; TASK="oncall-schedule-coverage-collapse"
files=glob.glob(f"tasks/{TASK}/.rollouts/v{VERSION}/*.json")
scores=[]; sub=defaultdict(list)
for f in files:
d=json.load(open(f)); scores.append(d["score"])
try:
s=json.loads(d.get("grade_result","{}")).get("subscores",{})
for k,v in s.items(): sub[k].append(v)
except Exception: pass
if not scores: print("No rollouts — trigger a batch first")
else:
n=len(scores); avg=sum(scores)/n
print(f"N={n} avg={avg:.3f} pass_rate={sum(1 for s in scores if s>=0.99)/n:.0%}")
for k,vs in sub.items():
vals=sorted(set(vs)); print(f" {k}: {'DEAD' if len(vals)==1 else 'varies'} {vals} mean={sum(vs)/len(vs):.2f}")
half=sum(1 for s in scores if abs(s-0.5)<0.01)
if avg>=<TARGET_MEAN>: print("HIGH avg — oncall-score-tuner")
elif any(len(set(v))==1 for v in sub.values()): print("DEADWEIGHT — oncall-score-tuner")
elif half==0: print("CORRELATION COLLAPSE: no 0.5 — oncall-score-tuner (lean on overrides + gap-rule/anchor decorrelators)")
else: print("DONE: avg < <TARGET_MEAN>, both vary, decorrelated")
| Result | Action |
|---|---|
| avg < <TARGET_MEAN>, both vary, some 0.5 | DONE |
| a subscore deadweight | oncall-score-tuner |
| no 0.5 (correlation) | oncall-score-tuner — overrides/gap-rule/anchor decorrelators, not a shared-drift lever |
monitoring_governance always 0 (Oracle 1.0) | bleater-env reachability / install-id mirror → re-check Dockerfile/setup |
coverage_restored always 0 (Oracle 1.0) | a drift source out-races the window → cadence/floor |
| <5 rollouts | poll again |
Decision rules (Phase 2)
| Oracle | Action |
|---|---|
| 1.0, both=1 | Phase 2.5 |
feedback: null/0 | oncall-validation-debugger Branch A (No-Op isolate) |
| 0, non-null | Branch E |
| 0.5, coverage=0 | Branch C |
| 0.5, governance=0 | Branch D |
| exception | Branch F |
When to stop for human review
5 cycles without progress; a tuner fix would violate a hard constraint; governance stuck at 0 despite a correct-looking solution (run reviewer for a live bleater-env/install-id probe); avg stuck > <TARGET_MEAN>; two cycles worsened correlation.
Skill dependency map
oncall-iteration-loop (orchestrator)
├── oncall-task-guardian Phase 0 pre-push, Phase 1 push, Phase 5 monitoring
├── oncall-validation-debugger Phase 2 failure interpretation
├── oncall-score-tuner Phase 3 score/variance/correlation diagnosis
└── horizon-agentic-reviewer Phase 2.5 live red-team
Diagnose → propose → approve → apply: the orchestrator delegates editing to the specialist that diagnosed the symptom, then applies via oncall-task-guardian.