Joelclaw codex-prompting
Use this skill for any request to trigger, coordinate, or craft prompts for Codex. Use when user says 'send to codex', 'use codex', 'prompt codex', 'ask codex', 'delegate to codex', 'run in codex', or asks for a Codex-first execution handoff.
git clone https://github.com/joelhooks/joelclaw
T=$(mktemp -d) && git clone --depth=1 https://github.com/joelhooks/joelclaw "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/codex-prompting" ~/.claude/skills/joelhooks-joelclaw-codex-prompting && rm -rf "$T"
skills/codex-prompting/SKILL.mdCodex Prompting Skill
What this skill is for
Use this when the request is any of the following:
- "send to codex"
- "prompt codex"
- "use codex"
- "ask codex"
- "delegate to codex"
- "delegate this to codex"
- "run this in codex"
- "run in codex"
- "handoff to codex"
- "handoff this to codex"
- "codex this"
The job is to produce a high-signal Codex request that gets directly executed with minimal ambiguity.
Required model default
- Codex tasks must set model to
when unspecified.gpt-5.4 - Use an explicit model override only when user explicitly requests another.
Local runtime defaults (Panda)
- Global defaults live in
:~/.codex/config.tomlapproval_policy = "never"sandbox_mode = "danger-full-access"allow_login_shell = false
- Hard safety rails live in
:~/.codex/rules/safety.rules- forbid force/mirror pushes
- forbid obvious filesystem root wipe commands
- forbid disk-destruction primitives (
,diskutil eraseDisk
,mkfs
)dd
pi-tools
extension defaults to:codex--ask-for-approval never--sandbox danger-full-access
(opt-in legacy mode)full_auto = false
- Expected behavior:
- normal
andgit commit
should run without permission frictiongit push - blocked commands fail fast with explicit
decisionforbidden
- normal
System shape to anchor Codex prompts
- Orchestrated by
and durablepackages/system-bus
functions.Inngest - Event bridge and notifications flow through Redis, gateway, and Telegram.
- Observability is required: OTEL -> Typesense (
) -> Convex/UI surfaces.otel_events - CLI-first operations are expected; prefer
,joelclaw
, and skill commands instead of direct daemon/db/process pokes.slog
Always-follow execution contract (from OpenAI Codex prompting guide)
- No preamble, no plans, and no “I’ll do X then Y” narration.
- Preserve strict action-first output:
- do exactly what the user asked
- include only necessary confirmation
- return direct results.
- Keep prompts structured and executable.
- Preserve one clear objective and constrained scope.
- Prioritize safe shell/tool actions and explicit failure handling.
- Use parallel tool calls whenever independent work can run concurrently.
- Use durable workflow patterns in Codex loops:
- explicit IDs
- explicit rollback/retry context
- structured outputs for downstream steps.
Canonical request format for Codex handoff
Use this exact shape unless the user already provided a better one:
- Goal:
<single concrete outcome> - Context:
<repo/path/runtime facts> - Constraints:
<time/risk/tool limits> - Do:
<task 1><task 2>
- Deliver:
<artifact paths><verification commands + expected signals>
- Rollback:
<quick recovery command>
If asking Codex to operate this repo, include absolute paths and the owning system paths (
apps/web, packages/system-bus, etc.).
Skill routing reminders
When Codex output needs deeper execution, remind Codex to use these local/system skills first:
andinngest
for durable work definitions and retriesinngest-durable-functions
andgateway
for session/event bridge and Telegram path checksgateway-diagnose
for telemetry-first implementationso11y-logging
for full environment health checksjoelclaw-system-check
when defining/expanding skill contentskill-creator
CLI (joelclaw
,status
,runs
, etc.) for validationlogs
If context is web work, add:
,joelclaw-web
, and any relevantfrontend-design
skill.next-*
Do NOT poll codex_tasks
After dispatching a codex task, do not poll
in a loop. The widget shows live status automatically. Polling every 2-3 seconds wastes tokens, clutters the conversation, and adds no value.codex_tasks
Instead:
- Dispatch the task
- Do other useful work (read files, update ADRs, prepare next steps)
- Check
once after ~60 seconds, or when the widget shows completioncodex_tasks - If the task is still running after 60s, check once more at ~120s
- Never poll more than 3 times total for a single task
The task result is reported back automatically when it finishes. Trust the widget.
What to include in prompts
For any Codex-requested operational run:
- exact paths
- exact command(s) to run
- expected signals for success/failure
- idempotency strategy
- rollback command.
For any code change:
- file targets (absolute or repo-relative)
- compatibility constraints
- observability check to prove behavior.
Mac volume mounting note
- Do not assume this is solved universally.
- Treat macOS volume mount failures as environmental and include explicit mount/permission checks before retries.
- If failures recur, route through retry + diagnostic signal collection before reattempt.
Trigger and detection notes
- This is an intent skill: treat natural language variants as valid.
- If user includes any of:
- "send to codex"
- "prompt codex"
- "use codex"
- "ask codex"
- "delegate to codex"
- "run in codex" then route here first.
- If phrasing is vague, ask one minimal clarification and keep the response minimal.
Quick command patterns
rg -n "toolName\\\":\\\"codex\\\"|send to codex|prompt codex|use codex|ask codex|delegate to codex|delegate this to codex|run this in codex|run in codex|handoff to codex|handoff this to codex|codex this" ~/.pi/agent/sessions joelclaw status joelclaw runs --count 10 --hours 24 joelclaw otel stats --hours 24