agent-harness — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited agent-harness (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
You are orchestrating external agent harnesses (pi, hermes) via the agent-turn wrapper script. You are the coordinator — you decide what prompt to send each turn, read the response, and determine next steps.
The agent-turn script ships alongside this skill. Resolve it at runtime:
SKILL_DIR="$(dirname "$(realpath "${BASH_SOURCE[0]:-$0}")")"
AGENT_TURN="$SKILL_DIR/agent-turn"Use $AGENT_TURN in place of agent-turn throughout all Bash calls in this skill.
Note on pi sessions: pi uses UUID-based sessions internally. The script maps your human-readable session IDs to pi UUIDs automatically — pass a stable name like20260512-my-taskand the script handles the rest. Session data lives in/tmp/agent-sessions/pi-sessions/and the name→UUID map in/tmp/agent-sessions/pi-session-map.
Generate a stable session ID at the start of a task and reuse it across all turns:
SESSION="$(date +%Y%m%d)-$(echo "$TASK_DESCRIPTION" | tr ' ' '-' | tr '[:upper:]' '[:lower:]' | cut -c1-30)"
echo "$SESSION" # e.g. 20260512-summarize-quarterly-reportStore it in context — you'll need it for every subsequent turn.
"$AGENT_TURN" <tool> <session-id> "<prompt>"
# tool: pi | hermes
# session-id: stable string, reused across turns
# prompt: the message for this turnOutput is printed to stdout and logged to /tmp/agent-sessions/<session-id>.log.
Follow this loop until the task is complete or you hit a stop condition:
agent-turn with the current promptpi and hermes use separate session IDs. To hand off, synthesize the relevant context from the current session log and pass it as part of the first prompt in the new harness:
# Read current session log for context
cat /tmp/agent-sessions/${SESSION}.log
# Start hermes turn with context summary
HERMES_SESSION="${SESSION}-hermes"
"$AGENT_TURN" hermes "$HERMES_SESSION" "Context from prior session: [summary]. Now: [new task]"# Full log for a session
cat /tmp/agent-sessions/<session-id>.log
# Just agent responses
grep -A999 '\[agent\]' /tmp/agent-sessions/<session-id>.logStop the loop and present results when:
For tasks where you want both harnesses to attempt independently:
# Run both concurrently, capture outputs
PI_OUT=$("$AGENT_TURN" pi "$SESSION-pi" "$PROMPT")
HERMES_OUT=$("$AGENT_TURN" hermes "$SESSION-hermes" "$PROMPT")
# Compare and synthesize
echo "=== pi ===" && echo "$PI_OUT"
echo "=== hermes ===" && echo "$HERMES_OUT"Then synthesize or pick the better response before continuing.
Task: Research and summarize recent advances in vector databases
Turn 1 (pi): "List the 5 most significant advances in vector databases in 2025. Be specific — names, benchmarks, capabilities."
→ Response: [list]
Turn 2 (pi): "For each item you listed, identify one concrete use case where it changes what's now possible."
→ Response: [use cases]
Turn 3 (pi): "Synthesize this into a 3-paragraph summary suitable for a technical blog post introduction."
→ Response: [draft]
Evaluate: Draft is good. Present to user.~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.