Pilot Review
v1.0.0Peer review system for task results before acceptance. Use this skill when: 1. You need quality control on task results before accepting them 2. You want ind...
Security Scan
OpenClaw
Benign
high confidencePurpose & Capability
The skill claims to implement a peer-review workflow using the pilot-protocol and pilotctl; the runtime instructions exclusively use pilotctl, shell commands, and jq, which is consistent with that purpose. Minor inconsistency: the registry metadata lists only pilotctl as a required binary, but the SKILL.md also depends on jq (and standard coreutils like date/sleep).
Instruction Scope
All instructions stay within the claimed domain: selecting peers, sending review requests, collecting approvals via pilotctl and parsing JSON with jq. The scripts read several variables (TASK_ID, REVIEWERS, REQUESTER_ADDR, REVIEWS, MIN_APPROVALS) that must be provided by the agent/user; they also poll inbox/task list in loops. There is no instruction to read arbitrary filesystem paths or unrelated environment variables, but the skill assumes the pilotctl daemon and pilot-protocol identities/keys are present and accessible.
Install Mechanism
Instruction-only skill with no install spec and no downloads. This is low risk because it does not write or install code; it only requires existing CLI tools on PATH.
Credentials
The skill declares no required environment variables or credentials, which is reasonable for a CLI-driven workflow. However, pilotctl typically uses local pilot-protocol configuration and keys (not declared here). Confirm what credentials/config pilotctl needs and whether those are stored in agent-accessible locations before granting runtime access.
Persistence & Privilege
The skill is not forced-always and allows normal autonomous invocation. It does not request elevated persistent privileges or attempt to modify other skills or system-wide settings.
Assessment
This skill is instruction-only and implements the advertised peer-review workflow using the pilotctl CLI and jq. Before installing: 1) Ensure pilotctl is from a trusted source and review what pilotctl does (network endpoints it talks to and what local keys/config it reads) because the skill will cause pilotctl to send/receive messages on your behalf. 2) Install jq (the SKILL.md depends on jq but the metadata omitted it). 3) Verify the pilotctl daemon and pilot-protocol identities are intentionally available to the agent and stored in locations you trust; if you don't want the agent to access those keys, don't enable the skill or run it in a sandbox. 4) Be aware the scripts poll loops (sleep) and wait for inbox messages—confirm timeout/escape behavior for your use case. If you want more assurance, inspect or run the pilotctl commands manually in a sandbox to see their effects before allowing the agent to invoke this skill autonomously.Like a lobster shell, security has layers — review code before you run it.
Runtime requirements
Binspilotctl
latest
pilot-review
Peer review system for task results requiring independent verification before acceptance.
Commands
Request Reviewers
REVIEW_REQUEST='{"type":"review-request","task_id":"'$TASK_ID'","deadline":"'$(date -u -d '+24 hours' +%Y-%m-%dT%H:%M:%SZ)'"}'
for REVIEWER in "${REVIEWERS[@]}"; do
pilotctl --json send-message "$REVIEWER" --data "$REVIEW_REQUEST"
done
Submit Review
REVIEW='{"type":"review-submission","task_id":"'$TASK_ID'","decision":"approve","score":0.92}'
pilotctl --json send-message "$REQUESTER_ADDR" --data "$REVIEW"
Finalize Review
APPROVALS=$(echo "$REVIEWS" | jq -r '[.[] | select(.data.decision == "approve")] | length')
[ $APPROVALS -ge $MIN_APPROVALS ] && echo "APPROVED" || echo "REJECTED"
Workflow Example
#!/bin/bash
# Peer review system
MIN_APPROVALS=2
# Submit task
EXECUTOR=$(pilotctl --json peers --search "auditor" | jq -r '.[0].address')
TASK_ID="task-$(date +%s)"
# Wait for completion
while [ "$(pilotctl --json task list | jq -r ".[] | select(.task_id == \"$TASK_ID\") | .status")" != "completed" ]; do
sleep 5
done
# Select reviewers
REVIEWERS=$(pilotctl --json peers --search "senior-auditor" | jq -r '.[0:3] | .[].address')
# Send review requests
for REVIEWER in $REVIEWERS; do
pilotctl --json send-message "$REVIEWER" --data '{"type":"review-request","task_id":"'$TASK_ID'"}'
done
# Collect approvals
APPROVALS=0
while [ $APPROVALS -lt $MIN_APPROVALS ]; do
APPROVALS=$(pilotctl --json inbox | jq -r '[.[] | select(.data.task_id == "'$TASK_ID'" and .data.decision == "approve")] | length')
sleep 5
done
echo "APPROVED"
Dependencies
Requires pilot-protocol, pilotctl, and jq.
Comments
Loading comments...
