Skip to main content

ocas-mentor

Mentor orchestrates and evaluates multi-skill workflows, proposing improvements based on performance analysis and project management.

Install this skill

or
0/100

Security score

The ocas-mentor skill was audited on Jun 15, 2026 and we found 16 security issues across 2 threat categories, including 7 high-severity. Review the findings below before installing.

Categories Tested

Security Issues

high line 145

Template literal with variable interpolation in command context

SourceSKILL.md
145# CRITICAL: Use `python3 << 'PYEOF'` heredoc for backup writes, NOT shell `printf` with variable interpolation — Shell variable expansion inside heredocs can introduce stray braces (e.g., `${DATA_DIR}
high line 153

Template literal with variable interpolation in command context

SourceSKILL.md
153NEVER use `printf '%s\\n' "${SOME_VAR}" >> path` where `path` contains shell variables — the `}` in `${VAR}` can double up and produce paths like `file.jsonl}`. If you must use shell interpolation, us
high line 221

Template literal with variable interpolation in command context

SourceSKILL.md
221**Heredoc journal file naming:** `cat > "$JOURNAL_DIR/${RUN_ID}.json" << 'EOF'` may create a file literally named `.json`. Compose the filename in a separate variable first, then reference without bra
high line 305

Template literal with variable interpolation in command context

SourceSKILL.md
305- **Backup journal double-prefix** — If RUN_ID already contains `mentor-light-`, filename is `"$RUN_ID.json"` not `"mentor-light-${RUN_ID}.json"`. See gotcha #43.
high line 135

Python subprocess execution

SourceSKILL.md
135**Sandbox file discovery failure:** In the cron sandbox, Python's `subprocess.run(["find", ...])` and `os.walk()` silently return 0 results even when the filesystem is fully accessible via shell tools
high line 88

Access to root home directory

SourceSKILL.md
88Mentor reads journals from all skills at: `{agent_root}/commons/journals/` (recursive scan). **NOTE:** The deep heartbeat script (`cron-heartbeat-deep.py`) currently only scans `/root/.hermes/commons/
medium line 167

Access to root home directory

SourceSKILL.md
167EVIDENCE_BEFORE=$(wc -l < /root/.hermes/commons/data/mentor/evidence.jsonl)
medium line 168

Access to root home directory

SourceSKILL.md
168INGESTION_BEFORE=$(wc -l < /root/.hermes/commons/data/mentor/ingestion_log.jsonl)
medium line 169

Access to root home directory

SourceSKILL.md
169JOURNAL_DIR="/root/.hermes/profiles/indigo/commons/journals/ocas-mentor/$(date -u +%Y-%m-%d)"
medium line 175

Access to root home directory

SourceSKILL.md
175EVIDENCE_AFTER=$(wc -l < /root/.hermes/commons/data/mentor/evidence.jsonl)
medium line 176

Access to root home directory

SourceSKILL.md
176INGESTION_AFTER=$(wc -l < /root/.hermes/commons/data/mentor/ingestion_log.jsonl)
medium line 181

Access to root home directory

SourceSKILL.md
181printf '%s\\n' '{...evidence json...}' >> /root/.hermes/commons/data/mentor/evidence.jsonl
medium line 196

Access to root home directory

SourceSKILL.md
196# IMPORTANT: $JOURNAL_DIR must use UTC date: JOURNAL_DIR="/root/.hermes/profiles/indigo/commons/journals/ocas-mentor/$(date -u +%Y-%m-%d)"
medium line 205

Access to root home directory

SourceSKILL.md
205ACTIVE_OCAS_30D=$(find /root/.hermes/commons/journals/ /root/.hermes/profiles/indigo/commons/journals/ -name "*.json" -mtime -30 2>/dev/null | grep -oP 'ocas-[a-z]+' | sort -u | wc -l)
medium line 208

Access to root home directory

SourceSKILL.md
208ACTIVE_ALL_30D=$(find /root/.hermes/commons/journals/ /root/.hermes/profiles/indigo/commons/journals/ -name "*.json" -mtime -30 2>/dev/null | grep -oP 'commons/journals/([a-z][a-z0-9_-]+)' | sed 's|co
high line 294

Access to root home directory

SourceSKILL.md
294- **`JOURNALS_DIR` path must match `find` output** — Must be `/root/.hermes/commons/journals`, NOT the profile-scoped path.
Scanned on Jun 15, 2026
View Security Dashboard
Installation guide →