Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Run one caller-supplied Codex command
.claude/skills/boshu2-codex-exec/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 75% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 91% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 82% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 1% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 12% | 0% |
Run exactly one caller-supplied Codex prompt and capture its result. This skill does not choose work, retry failures, validate by itself, or control continuation.
One prompt, one process, one captured artifact is what makes the run auditable: when nothing loops, every byte of output traces to exactly one invocation, and a disagreement about what happened is settled by the artifact.
Named failure mode — stdin hang: a non-TTY run left waiting forever on an open stdin nobody will write to; always pipe the prompt or close the stream.
Anti-pattern: granting workspace-write or network access "in case the prompt needs it". Corrective: match the sandbox to the declared effects; a review prompt runs read-only, full stop.
codex login status for the intended profile.-C.workspace-write for authorized edits, and broader access only when the caller explicitly requires network or external effects.
cannot wait indefinitely for input.
caller's deadline, or the declared default of 600s (10 min) when the caller supplies none, and record which one applied. Enforce it so the whole process tree is reaped, not just the direct child: run codex in its own process group and kill the group on expiry: setsid (own process group) + kill -KILL -<pgid> on the group; --kill-after only escalates TERM→KILL and plain timeout <secs> codex … signals only the direct child. If the wrapper cannot guarantee process-group reaping, do not execute — that host lacks the cleanup capability this skill requires (capability unavailable, fail closed). Deadline expiry is fail-closed: the run is killed and reported as timed-out / not proven, partial output preserved — never a completed review.
-o, JSONL, or an output schema.artifact path, which deadline applied and whether it fired, that the process tree was reaped (a run without guaranteed reaping never starts), and whether the codex binary was present at all. Cancellation is the caller's; this skill neither retries nor continues on its own.
Terminal outcomes are explicit: binary absent (no codex on PATH) → report unavailable and stop; deadline expiry → fail-closed, report the kill and preserved partial output, never a completed review; nonzero exit → runtime evidence, not a semantic verdict. The caller decides whether to launch another invocation.
bash# Deadline mandatory; default 600s. `setsid` puts codex in its own process # group so expiry kills the whole tree, with `--kill-after` escalating # TERM->KILL. No setsid (or equivalent group kill) available -> do not run: # fail closed as capability-unavailable. printf '%s\n' "$PROMPT" | setsid timeout --kill-after=10s "${CODEX_TIMEOUT:-600}" \ codex exec -C "$WORKSPACE" -s read-only -o "$OUTPUT" -
For a validator, the prompt must name the acceptance digest, exact subject manifest digest, author context ID, evidence, and required checked/not-checked report. The validator context ID must be distinct from the author's before a PASS verdict is possible. When the caller elects a cross-model fresh validator, record model identities per the agent-native model-dispatch recipe and match the sandbox to declared effects.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 12,372 | 15,042 | +22% | 1 | 1 | 0% | 2,069 | 3,629 | +75% | 0 | 0 | — |
case-02 | fail→fail | 13,097 | 6,894 | -47% | 1 | 1 | 0% | 2,588 | 1,276 | -51% | 0 | 0 | — |
case-03 | fail→pass | 10,692 | 15,947 | +49% | 1 | 1 | 0% | 1,970 | 3,766 | +91% | 0 | 0 | — |
case-04 | fail→pass | 11,074 | 16,133 | +46% | 1 | 1 | 0% | 2,112 | 3,850 | +82% | 0 | 0 | — |
case-05 | fail→pass | 9,341 | 4,369 | -53% | 1 | 1 | 0% | 1,537 | 1,555 | +1% | 0 | 0 | — |
case-06 | fail→pass | 10,823 | 6,800 | -37% | 1 | 1 | 0% | 1,790 | 1,999 | +12% | 0 | 0 | — |
case-07 | pass→pass | 7,416 | 4,803 | -35% | 1 | 1 | 0% | 1,225 | 1,795 | +47% | 0 | 0 | — |
case-08 | pass→pass | 11,687 | 4,893 | -58% | 1 | 1 | 0% | 1,972 | 1,756 | -11% | 0 | 0 | — |
case-09 | fail→pass | 16,058 | 6,727 | -58% | 1 | 1 | 0% | 2,686 | 1,711 | -36% | 0 | 0 | — |
case-10 | fail→pass | 24,122 | 2,192 | -91% | 1 | 1 | 0% | 2,149 | 1,265 | -41% | 0 | 0 | — |
case-11 | pass→pass | 10,588 | 5,737 | -46% | 1 | 1 | 0% | 1,754 | 1,939 | +11% | 0 | 0 | — |
case-12 | pass→pass | 11,257 | 4,140 | -63% | 1 | 1 | 0% | 1,937 | 1,478 | -24% | 0 | 0 | — |
case-13 | fail→pass | 20,170 | 10,613 | -47% | 1 | 1 | 0% | 3,375 | 2,654 | -21% | 0 | 0 | — |
case-14 | pass→pass | 9,629 | 2,143 | -78% | 1 | 1 | 0% | 1,499 | 1,280 | -15% | 0 | 0 | — |
case-15 | pass→pass | 8,493 | 2,434 | -71% | 1 | 1 | 0% | 1,389 | 1,210 | -13% | 0 | 0 | — |
case-16 | pass→pass | 8,128 | 2,157 | -73% | 1 | 1 | 0% | 1,294 | 1,178 | -9% | 0 | 0 | — |
case-17 | pass→fail | 7,433 | 2,199 | -70% | 1 | 1 | 0% | 1,055 | 1,261 | +20% | 0 | 0 | — |
case-18 | pass→pass | 11,334 | 5,066 | -55% | 1 | 1 | 0% | 1,722 | 1,598 | -7% | 0 | 0 | — |
case-19 | pass→pass | 5,770 | 1,713 | -70% | 1 | 1 | 0% | 833 | 1,197 | +44% | 0 | 0 | — |
case-20 | pass→pass | 11,502 | 4,252 | -63% | 1 | 1 | 0% | 1,822 | 1,628 | -11% | 0 | 0 | — |
case-21 | pass→pass | 6,325 | 2,425 | -62% | 1 | 1 | 0% | 902 | 1,308 | +45% | 0 | 0 | — |
case-22 | pass→pass | 11,261 | 4,815 | -57% | 1 | 1 | 0% | 1,745 | 1,561 | -11% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 20 counted toward the lift figure. The other 2 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +32 percentage points is the difference between those two pass rates over the 20 comparable cases. 1 case got worse with the skill loaded, and it is included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.