skills/golem-powers/_archive/cli-agents/SKILL.md
Run external CLI agents (Gemini, Cursor, Codex, Kiro, Claude) as visible cmux workers through repoGolem launchers. Use for delegating implementation, spawning research/audit agents, or coordinating multi-agent builds. Workers split in the current workspace; audits/research use a separate named workspace. NOT for plain cmux pane management or Claude-only spawning.
npx skillsauth add etanhey/golems cli-agentsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
External AI agents spawned as interactive cmux panes via repoGolem launchers. Two patterns based on intent:
| Intent | Where | Why | |--------|-------|-----| | Worker (code, implementation, collab) | Split in current workspace | Visible side-by-side, easy to monitor | | Audit/Research (read-only, analysis) | New workspace, named | Doesn't clutter working view, find in sidebar |
{repo}{Tool} -s "prompt"Every dispatch in this skill uses repoGolem launchers. The launcher handles cd + env vars (MCP_CONNECTION_NONBLOCKING=1, CLAUDE_CODE_NO_FLICKER=1) + iTerm profile + MCP wiring + 1Password secrets + tab title.
brainlayerCursor -s "audit X" # gather (read-only)
brainlayerCodex -s "fix Y" # implement
brainlayerClaude -s "coordinate Z" # orchestrate
brainlayerGemini -s "visual task" # visual / OCR
NEVER write:
cd ~/Gits/X && cursor agent "..." — launcher already cdsMCP_CONNECTION_NONBLOCKING=1 CLAUDE_CODE_NO_FLICKER=1 codex "..." — launcher already exports bothsource ~/.zshrc && claude -s "..." — launchers are functions, already in the calling shellbrainlayerCodex --fast "..." — --fast is not a repoGolem routing flag. Use -s.cursor agent / codex / claude — skips iTerm profile, MCP wiring, 1Password, agent-context injectionSee /agent-routing AP11 (2026-05-21 severity-10 user mandate) for the full incident history.
# Split right, label it, send the launcher command
SURFACE=$(cmux new-split right | awk '{print $2}')
cmux rename-tab --surface "$SURFACE" "Agent Label"
cmux send --surface "$SURFACE" "{repo}{Tool} -s 'your prompt here'"
cmux send-key --surface "$SURFACE" Return
# Claude worker in brainlayer
cmux send --surface "$SURFACE" "brainlayerClaude -s 'your prompt here'"
# Cursor is read-only/gather-only; spawn it from the Audits/Research section below
# Codex worker in voicelayer
cmux send --surface "$SURFACE" "voicelayerCodex -s 'your prompt here'"
# Gemini worker (visual / OCR) in golems
cmux send --surface "$SURFACE" "golemsGemini -s 'your prompt here'"
# Kiro worker in orchestrator
cmux send --surface "$SURFACE" "orcKiro -s 'your prompt here'"
If a launcher doesn't exist for the project, add it to ~/.config/ralphtools/registry.json and run _ralph_generate_launchers_from_registry. See /repogolem for the registry workflow.
# Launch sequentially (1Password biometric needs ~2s between each)
for repo in brainlayer golems voicelayer; do
SURFACE=$(cmux new-split right | awk '{print $2}')
cmux rename-tab --surface "$SURFACE" "$repo"
cmux send --surface "$SURFACE" "${repo}Claude -s 'your task here'"
cmux send-key --surface "$SURFACE" Return
sleep 3 # Wait for Touch ID
done
# New workspace so it doesn't clutter your working view
cmux new-workspace
SURFACE=$(cmux list-pane-surfaces --pane "$(cmux list-panes | tail -1 | grep -oE 'pane:[0-9]+')" | grep -oE 'surface:[0-9]+' | head -1)
cmux rename-tab --surface "$SURFACE" "Audit: reponame"
cmux send --surface "$SURFACE" "{repo}{Tool} -s 'your audit prompt'"
cmux send-key --surface "$SURFACE" Return
cmux new-workspace
SURFACE=$(cmux list-pane-surfaces --pane "$(cmux list-panes | tail -1 | grep -oE 'pane:[0-9]+')" | grep -oE 'surface:[0-9]+' | head -1)
cmux rename-tab --surface "$SURFACE" "Audit: golems"
cmux send --surface "$SURFACE" "golemsCursor -s 'Audit recent changes. Check: code quality, bugs, missing tests, security, dead code. Be harsh.'"
cmux send-key --surface "$SURFACE" Return
for i in 1 2 3; do
cmux new-workspace
SURFACE=$(cmux list-pane-surfaces --pane "$(cmux list-panes | tail -1 | grep -oE 'pane:[0-9]+')" | grep -oE 'surface:[0-9]+' | head -1)
cmux rename-tab --surface "$SURFACE" "Audit $i: golems"
cmux send --surface "$SURFACE" "golemsCursor -s 'ANGLE $i PROMPT'"
cmux send-key --surface "$SURFACE" Return
sleep 3
done
# Check what an agent is doing
cmux read-screen --surface surface:N --lines 8
# Check all agents at once (via cmux)
cmux list-surfaces --include-screen-preview
# Send follow-up to an agent
cmux send --surface surface:N "additional instructions"
cmux send-key --surface surface:N Return
| Task | Launcher form | Notes |
|------|---------------|-------|
| Plan auditing, perspectives | {repo}Cursor -s | Read-only, Auto model (no --model flag) per AP3 |
| Code review, codebase analysis | {repo}Cursor -s | Has @codebase access |
| Quick research, comparisons | {repo}Gemini -s | Free tier; visual/OCR strength per agent-routing |
| Parallel implementation | {repo}Codex -s | Default GPT-5.5; override only when needed |
| Collab agent (writes to collab file) | {repo}Claude -s | Use Sonnet for audit collabs via -S |
| Deep reasoning, architecture | {repo}Claude -s | Opus default; only when needed |
# Trigger inline PR review on GitHub
gh pr comment <N> --body "@cursor @bugbot review"
(Note: @cursor @bugbot review is the correct trigger phrase. NOT @CursorBot or @cursor-bugbot — those silently fail.)
{repo}{Tool} -s form ALWAYS — never raw cursor/codex/claude, never cd ~/Gits/…, never MCP_CONNECTION_NONBLOCKING=1, never --fast. See /agent-routing AP11.-S to Claude launchers; don't waste Opus on read-only analysisgit ls-files before acting.tools
The human-eval UX contract for Phoenix views: turn-by-turn scrollable replay (not a scorecard), hide-but-copyable IDs, collapsed thinking, identity chips, tool filters, tiny frozen starter datasets, mark-wrong-in-thread, mobile-first. Use when: building or reviewing ANY Phoenix/eval view, annotation UI, session replay, or human-grading surface. Triggers: phoenix view, eval UI, annotation view, session replay, human eval UX, grading interface. NOT for: Phoenix data pipelines/ingest (capture scripts have their own specs).
tools
macOS systems specialist — AppKit NSPanel architecture, launchd services, socket activation, MCP bridge resilience, syspolicyd, and high-frequency SwiftUI dashboards. Use when building menu-bar apps, LaunchAgents, debugging syspolicyd/Gatekeeper/TCC, resilient UDS/MCP bridges, or SwiftUI dashboards at 10Hz+.
development
Bulk LLM-judging protocol for fleet-dispatched verdict runs (KG cluster, eval harness). Use when: dispatching or running judge workers (J1/J2/RT), planning bulk-apply from verdict JSONL, or triaging evidence_degraded outputs. Triggers: judge fleet, bulk judge, R3 verdicts, kg-judge, RT gate, evidence_degraded. NOT for: single-item code review, Phoenix view UX (use phoenix-human-view), or non-judge eval pipelines.
development
Quiet-down protocol for sprint close: when the fleet wraps, delete ALL polling crons and monitors, send ONE final dashboard + ONE message, then go SILENT. Use when: fleet wraps, all workers done, overnight queue exhausted, sprint close, Etan asleep/away with nothing approved left. Triggers: fleet wrap, wrap the fleet, stand down, going quiet, sprint close. NOT for: mid-sprint monitoring (keep your loops), spawning a successor (use /session-handoff first).