Skip to main content

ocas-custodian

Automates monitoring and maintenance of agent platforms, fixing operational failures and optimizing system health during quiet hours.

Install this skill

or
40/100

Security score

The ocas-custodian skill was audited on Sep 25, 2026 and we found 4 security issues across 1 threat category, including 4 high-severity. Review the findings below before installing.

Categories Tested

Security Issues

high line 72

Windows registry startup

SourceSKILL.md
70
71- **Stale 503 pattern (2026-07-27):** Nous provider HTTP 503 on 7 jobs — stale. Issue `oc_provider_503_upstream_capacity` stays open; resolve only after `hermes cron run <id>` succeeds.
72- **Skill update-wrapper failures (rebase-stuck / path-mismatch / merge-conflict batches)**: when multiple `:*:update` cron jobs fail simultaneously with git rebase/merge errors or legacy-helper `code 1` after repo sync — abort, reset to origin/main, verify HEAD==origin/main, rerun wrappers, then force-flip registry via `hermes cron run`. Full per-repo recipe: `references/skill-update-rebase-conflict-batch-pattern.md`.
73
74When running `custodian.escalation-runner` as a cron job, all `issues.jsonl` and journal mutations must use `terminal()` with heredoc — never `read_file` (corrupts JSONL) and never `execute_code` (blocked in cron).
high line 126

Windows registry startup

SourceSKILL.md
124- **Escalation Execution Loop**: Bidirectional state verification, sweep for missed enrollments, classify into four buckets, reconcile `issues.jsonl`.
125- **fos→os fix**: `fos.path.expanduser`→`os.path.expanduser` resolved 2026-07-27 across 8 scripts. See `references/fos-nameerror-pattern.md`.
126**Remaining scan details** — Post-fix registry verification, gateway traceback gap detection, uninitialized skill checks, exit-1 de-aggregation, jobs-not-running detection, journal→issues persistence gap, recurrence-of-fingerprint across distinct jobs, self-resolved verification, 503 scope expansion, code-defect fix verification, verify-before-acting, journal write, LLM-necessity guard, cron silence protocol, deep scan shortcuts, escalation runner checklist, fos→os fix, and escalation execution loop: all in `references/execution-loops.md`.
127
128**Cron silence protocol:** When running as a scheduled cron job, if the scan finds no actionable issues, respond with exactly `[SILENT]`. Only produce a report when there is genuinely new information.
high line 151

Windows registry startup

SourceSKILL.md
149When an open `user_gated` issue asserts "Job still erroring live" but `last_run_at` predates your sweep by days, that is the **stale-error signature**. Re-run the actual job (`hermes cron run <id>`). If it succeeds, resolve as FALSE ESCALATION. Use `scripts/race_safe_issue_patch.py` to survive the rewrite race. See `references/escalation-execution-loop.md`.
150
151**Post-fix verification**: After applying any Tier 1 auto-fix, re-check the targeted log entry or config state. Close the loop on the registry via `hermes cron run <id>` to flip `last_status` to `ok`. Use `scripts/verify_fixes_cron_run.py ID1 ID2 ...` to batch-verify.
152
153## Script Path Security Block Pattern
high line 261

Windows registry startup

SourceSKILL.md
259| Gateway SIGTERM (exit code 1) | Clean teardown — NOT an error. systemd `Restart=on-failure` revives it |
260| `state.db` >1GB AND disk >80% | Flag `oc_state_db_oversized` (Tier 2). Recommend pruning over VACUUM when disk >80% |
261| `jobs.json` `last_status` still `error` after fix | Registry lags. Run `hermes cron run <id>` to flip. Do NOT treat stale `error` as proof of failure |
262| Command text contains literal "gateway restart" substring | Sandbox interlock blocks it. Reword to avoid the trigger token (e.g. "gateway reload") |
263
Scanned on Sep 25, 2026
View Security Dashboard
Installation guide →