agentsclimarketplace

Oncall validation debugger

Skill omonuj/claude-horizon-skills/skills/oncall-schedule-coverage-collapse/oncall-validation-debugger

Fetches and interprets validation logs (No-Op and Oracle) for the oncall-schedule-coverage-collapse task (<TASK_ID>). Maps observed log patterns to root causes and the smallest safe fix. Use after a validation fails to understand why it failed before editing anything.From its SKILL.md

Install
npx -y skills add omonuj/claude-horizon-skills --skill oncall-validation-debugger

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • 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.

SKILL.md

7.5 KB, ~2.0k tokens by cl100k_base, as published. Nobody here has run it

oncall-validation-debugger

Execution Mode — FULLY AUTONOMOUS

NEVER ask the user for confirmation. Fetch logs, interpret, fix immediately. No user-facing handoffs (rollout triggering belongs to oncall-iteration-loop). If you can't map a pattern with confidence, escalate to horizon-agentic-reviewer.

Trigger

Oracle ≠ 1.0/passed; No-Op score > 0; grader exception; feedback: null (setup crash); or before editing setup/solution/grader after a validation failure. NOT for rollout failures — use oncall-score-tuner.

Task Identity

FieldValue
UUID<TASK_ID>
Slug / pathoncall-schedule-coverage-collapse / tasks/oncall-schedule-coverage-collapse/
Subscorescoverage_restored (0.5) + monitoring_governance (0.5)
Venvsource /Users/mac/Documents/tasks/horizon_env/bin/activate

Root-only files the grader reads: /opt/grader-scenario.json (keys reconciler, env_reconciler, canary, canary_runtime), /opt/<grader-artefact>.txt (mirror of agent-readable /etc/oncall/<artefact>.txt). If /opt/<grader-artefact>.txt is missing the grader SKIPS the <metadata-key> gate (no deadweight) — a "governance always-1 with the anchor silently skipped" means the setup write failed; check output.txt.

Grader feedback = coverage_restored: <detail>; monitoring_governance: <detail> — read both halves.

Result shapes

scorepassedfeedbackmeaning
0falsenullsetup/container crash before grader → output.txt
0falsenon-nullboth failed
0.5falsenon-nullone passed, one failed
1.0truenon-nullboth passed

No-Op: anything but score: 0 is a problem.

Step 1 — Fetch + read

cd /Users/mac/Documents/tasks && source horizon_env/bin/activate
horizon tasks validate-logs -a oracle tasks/oncall-schedule-coverage-collapse 2>&1
cat tasks/oncall-schedule-coverage-collapse/.validation/*/result.json 2>/dev/null | python3 -m json.tool

Step 2 — Map symptom → cause → fix

Branch A. feedback: null / score: 0 — setup crash

Pattern in output.txtCauseFix
hang at Waiting for bleater namespacebase image didn't create bleaterplatform issue; not ours
namespaces "bleater-env" ... Forbidden / create errorsetup can't create bleater-envsetup runs as root and does `kubectl get ns bleater-env
k3s is not ready after 180 secondsENABLE_ISTIO_BLEATER=trueremove it
Forbidden on kubectl get nodesrbac yaml not copiedrestore COPY data/ubuntu-user-rbac.yaml
failed to pull image for a drift/canary podexternal registryuse ${SIDECAR_IMAGE}
setup.sh: line N: syntax errorbash errorbash -n setup.sh

Branch B. No-Op score > 0 — false positive

Passed on No-OpWhy wrongFix
coverage_restored=1the broken state didn't apply, OR drift didn't deploy so the schedule/escalation were never (re)brokenconfirm oncall-schedule-primary has carol/dave/UNASSIGNED + oncall-escalation-secondaryincidents-archived + all 3 drift deploys exist
monitoring_governance=1drift didn't deploy, OR the schedule already has coverage-tier/<metadata-key> at setup time, OR the install-id mirror wasn't writtenconfirm setup leaves the schedule WITHOUT the label/anchor, writes /opt/<grader-artefact>.txt, and deploys all drift

Branch C. Oracle 0.5coverage_restored=0 (governance passed)

Feedback fragmentCauseFix in solution.sh
primary rotation has an unassigned slot / owned by <user> (inactive...)the kube-system reconciler or canary re-applied the broken schedulestop BOTH (annotation discovery for the reconciler; slot-pinner container for the canary) BEFORE re-applying the corrected schedule with active owners
override ... still references deactivated useroverrides not cleanedset oncall-overrides overrides.json to [] (or reassign to active) — overrides are NOT drifted, so this sticks once applied
secondary escalation points at channel ... not activeenv reconciler re-applied the archived channelstop the bleater-env reconciler (annotation) BEFORE re-applying policy.json with an active channel (incidents)

Branch D. Oracle 0.5monitoring_governance=0 (coverage passed)

Feedback fragmentCauseFix in solution.sh
schedule missing required label coverage-tier=enforcedcorrected schedule lacks the markeradd label bleater.io/coverage-tier: enforced
schedule does not anchor to the platform install idno annotation == install idread /etc/oncall/<artefact>.txt, set an annotation (any key) to that value
no schedule-gap / unresolvable-slot monitoring rule foundrule CM missing or not a real rulecreate a CM with - alert:/expr: referencing the on-call schedule + a gap/coverage/unresolvable signal
active drift ... <name>@kube-system / @bleater-enva reconciler still runningdiscover by annotation, delete/scale to 0 (incl. bleater-env)
<canary> mutation capability not fully neutralizedslot-pinner sidecar AND runtime RBAC presentdelete the canary OR remove <canary>-runtime RBAC

Branch E. Oracle 0 non-null — both failed

Read both halves; follow C and D in parallel. Persists after fixes → re-run No-Op to isolate setup contamination.

Branch F. Grader exception

All kubectl/JSON access is guarded (kubectl_json, cm_data_json, .get). If one crept past, wrap it; treat failure as subscore=0. Not a hard-constraint item.

Step 3 — Pre-fix safety

  1. Dockerfile + bleater-env invariant hold (guardian Step 0).
  2. bash -n setup.sh && bash -n solution.sh && py_compile grader.py.
  3. Subscore-difficulty change → diagnose with oncall-score-tuner first.
  4. Articulate the why.
Fix typeHand off
setup fault-injection / solution bug / grader exceptiononcall-task-guardian Step 3 (push)
subscore difficultyoncall-score-tuner first
unmappablehorizon-agentic-reviewer

Known non-issues (do NOT fix)

PatternWhy
v1_feedback + behavior_in_task_documentation FAILreviewer can't read the baseline-config heredoc → calls the coverage-tier / <metadata-key> gates "undocumented". They ARE the variance mechanism — accepted
governance fails because agents only audited bleaterthe kube-system + bleater-env discovery axis working as intended

Verification cheat sheet

HypothesisProbe
"solution stops drift before re-applying state"read solution.sh — the annotation/slot-pinner discovery+delete precede the schedule/escalation re-apply
"solution sets label + anchor + gap-rule + active channel + empty overrides"`grep -E "coverage-tier
"grader gap-rule gate intact"`grep -E "is_rule
"wait_consistent unchanged"grep wait_consistent grader.py — coverage passes=5,gap=8,timeout=220; governance passes=5,gap=8,timeout=200

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.