Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Delegate a substantial diagnosis, implementation, or follow-up task to Claude Code through the tracked-job runtime. Args: --background, --wait, --resume, --resume-last, --fresh, --write, --model <model>, --effort <low|medium|high|xhigh|max>, --prompt-file <path>, [task text]. Defaults to opus with no forced effort. Use when Claude should investigate or change things, not when the user only wants review findings.
.claude/skills/hashgraph-online-rescue/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-04 | ✗→✓ | ▲ Improved | 403% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 243% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 74% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 70% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 170% | 0% |
By default, hand this skill off through Codex's built-in default subagent. Do not answer the request inline in the main Codex thread. Spawn exactly one rescue forwarding subagent whose only job is to run one companion task command and return that stdout unchanged. Foreground rescue responses must be that subagent's output verbatim.
Use this skill when the user wants Claude Code to investigate, implement, or continue substantial work in this repository.
Prefer $cc:rescue when the user wants Claude Code to diagnose the issue, validate a risky change by actually editing or testing, apply fixes from a prior review, or carry a task forward across multiple steps. Do not use rescue for "just review this diff" unless the user also wants follow-through work beyond review findings. Do not use rescue merely because the main Codex thread plans to fix things after combining its own review with a separate Claude review. Rescue is only the right delegation when Claude itself is supposed to investigate, edit, test, or otherwise own the follow-through work.
Resolve <plugin-root> as two directories above this SKILL.md file. Always run the companion from that active plugin root: node "<plugin-root>/scripts/claude-companion.mjs" task ...
Raw slash-command arguments: $ARGUMENTS
Supported arguments: --background, --wait, --resume, --resume-last, --fresh, --write, --model <model>, --effort <low|medium|high|xhigh|max>, --prompt-file <path>, plus free-text task text
Companion defaults: model=opus, and no effort. The companion forwards --effort only when the user passes it, so fable, opus, sonnet, and haiku each keep Claude Code's own effort default. Claude Code owns which effort levels each model supports.
Forward --model unchanged to the companion. The companion trims surrounding whitespace, canonicalizes the friendly aliases fable, opus, sonnet, and haiku to lowercase, then forwards every other --model value unchanged to Claude Code. Claude Code owns alias resolution and supported effort levels; /model is the authoritative picker for the current account and provider.
Main-thread routing rules:
$cc:rescue or Claude Code Rescue, do not keep the work in the main Codex thread. Delegate it.--background and --wait as execution controls, not task text.--background and --wait are Codex-side execution controls only. Never forward either flag to claude-companion.mjs task.--model, --effort, --resume, --resume-last, --fresh, and --prompt-file as runtime or routing controls, not task text./simplify, /fix, or /review, treat that slash command as literal Claude Code task text to be forwarded unchanged. Do not execute or reinterpret it in the parent Codex thread.--model selects the Claude model for the companion task command only. It does not select the Codex subagent model.--background, run the rescue subagent in the background.--wait, run in the foreground.--resume or --resume-last is present without --wait, and the new instruction is substantial, open-ended, or likely to take more than a quick follow-up, the main thread should usually prefer background execution for the subagent. Keep that as a parent-side choice only. Do not inject --background into the child request or the companion command.--write unless the user explicitly wants read-only behavior or only review, diagnosis, or research without edits.--resume or --resume-last is present, continue the latest tracked Claude Code task. If --fresh is present, start a new task.--resume, --resume-last, or --fresh is present, first run:node "<plugin-root>/scripts/claude-companion.mjs" task-resume-candidate --json
available: true, ask the user once whether to continue the current Claude Code thread or start a new one.Continue current Claude Code threadStart a new Claude Code threadContinue current Claude Code thread first.Start a new Claude Code thread first.--resume before spawning the subagent.--fresh before spawning the subagent.available: false, do not ask. Delegate normally.--notify-parent-on-complete, treat it as a compatibility alias. Background built-in rescue now attempts parent wake-up by default.Subagent launch:
spawn_agent tool. Omit agent_type; an omitted agent_type already selects the built-in default agent, and Codex only advertises that parameter when custom agents are configured.claude-companion.mjs task itself as a detached shell process. Do not use &, nohup, detached spawn, or any equivalent direct background process launch from the parent.--builtin-agent, treat it as a compatibility alias for the default built-in path. It should not change behavior.fork_context: false for the built-in rescue child. The parent should pass a self-contained forwarding message instead of replaying the full parent thread by default.fork_context: true as a last resort for a short follow-up where essential context truly cannot be summarized. Avoid it for large or long-lived threads because it can exhaust the child context window.model on spawn_agent so the child inherits the parent model, and must set reasoning_effort: "medium" so the transient forwarding child stays cheap and predictable. Never pin a specific Codex model name here; the available catalog is owned by the host CLI and changes between releases.medium effort.--background and --wait before spawning the subagent. Those flags control only whether the main thread waits on the subagent.claude-companion.mjs task./, preserve it verbatim in the spawned subagent request. Do not strip the slash or rewrite it into a local Codex command.node "<plugin-root>/scripts/claude-companion.mjs" background-routing-context --kind task --json
ownerSessionId, include --owner-session-id <owner-session-id> in the companion command so tracked Claude Code jobs stay attached to the user-facing parent session for $cc:status / $cc:result.ownerSessionId, omit --owner-session-id entirely. Never leave an empty routing placeholder such as --owner-session-id --job-id.jobId, pass it into the companion command as an internal --job-id <reserved-job-id> routing flag.--job-id, also pass --cwd <workspace-root> using workspaceRoot from the same helper response. Reserved job ids are workspace-scoped.--view-state on-success--view-state defer--model flag is for the Claude companion only and must be forwarded unchanged to task.parentThreadId, pass it into the child prompt as the parent thread id for one-shot completion notification.parentThreadId, continue without parent wake-up instead of blocking the rescue.codex exec runs.../../internal-skills/cli-runtime/runtime.md as the command-building contract for the forwarding worker. It is an internal reference document, not a public skill to invoke.<parent_context> block instead of forked thread history when the child needs a little prior context.../../internal-skills/task-prompt-shaping/prompt-shaping.md as deeper guidance for that parent-side tightening. It is an internal reference document, not a public skill to invoke.<task>, <output_contract>, and <default_follow_through_policy>README.md, and also includes explicit source/style/installation constraints, keep the full task text literal apart from stripping routing flags. Do not compress it into a shorter delta.--resume, --resume-last, vague follow-ups, or ambiguous continuation requests, prefer adding a compact <parent_context> block before the task command instead of relying on inherited history.<parent_context> small and structured. Good fields include:mode (fresh or resume)job_id when the parent reserved oneclaude_session when a resumable Claude session is already knownprevious_summary only when the parent can state it tersely from tracked metadatanext_delta for the exact next objectiveconstraints only when they are explicit and still binding<parent_context> for already-clear fresh tasks unless it adds real value.<parent_context> deterministic and short. Do not turn it into a free-form summary of the whole parent thread.--prompt-file instead of embedding the task directly in the command.--prompt-file:<task> / <output_contract>--prompt-file path./tmp on POSIX systems, so rescue prompt staging does not dirty the repo.--resume or --resume-last with a short delta instruction when a resumable Claude Code session exists.exec_command, call it once in non-interactive mode and wait for command exit in that same callexec_command, pass sandbox_permissions: "require_escalated" and the justification Allow the Claude Code companion to contact the Claude API for this requested task. on that one call; do not first try the companion command in the default network-disabled sandbox[cc] ... lines and preserve only the stdout-equivalent final result textsend_input call after a successful shell result and before finishingsend_input literally; do not replace it with a vague instruction like "send a message to the parent"send_input call must target the provided parent thread id, must happen at most once, and must not run on failure pathssend_input call should use the exact tool shape send_input({ target: <parent-thread-id>, message: <steering-message> }) with no extra prose payloadsend_input message should use a short user-facing template that steers the parent toward explicit result retrieval instead of inlining the raw resultBackground Claude Code rescue finished. Open it with $cc:result <reserved-job-id>.
Background Claude Code rescue finished. Inspect it with $cc:status first, then use $cc:result for the finished job you want to open.
--cwd <workspace-root> whenever the command includes that reserved --job-idcompleted:, or stripping leading slash commands such as /simplifycompleted:/simplify make the output compactExecution:
task command in the foreground inside its own thread. Background here describes only the parent thread's wait behavior.Output:
Claude Code rescue started in the background. Check the subagent session or $cc:status for progress, and once it's done, we will let you know to see the results.$cc:setup.| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 7,786 | 14,338 | +84% | 1 | 1 | 0% | 402 | 4,864 | +1110% | 0 | 0 | — |
case-02 | pass→fail | 19,997 | 18,115 | -9% | 1 | 1 | 0% | 2,683 | 4,894 | +82% | 0 | 0 | — |
case-03 | fail→fail | 9,834 | 36,186 | +268% | 1 | 1 | 0% | 299 | 5,628 | +1782% | 0 | 0 | — |
case-04 | fail→pass | 12,450 | 8,907 | -28% | 1 | 1 | 0% | 1,162 | 5,843 | +403% | 0 | 0 | — |
case-05 | pass→pass | 11,166 | 20,966 | +88% | 1 | 1 | 0% | 1,992 | 7,210 | +262% | 0 | 0 | — |
case-06 | fail→pass | 14,059 | 5,972 | -58% | 1 | 1 | 0% | 1,521 | 5,216 | +243% | 0 | 0 | — |
case-07 | fail→pass | 19,260 | 10,842 | -44% | 1 | 1 | 0% | 3,002 | 5,227 | +74% | 0 | 0 | — |
case-08 | fail→pass | 22,634 | 3,993 | -82% | 1 | 1 | 0% | 2,858 | 4,847 | +70% | 0 | 0 | — |
case-09 | fail→pass | 22,640 | 13,245 | -41% | 1 | 1 | 0% | 2,118 | 5,721 | +170% | 0 | 0 | — |
case-10 | fail→pass | 9,322 | 12,753 | +37% | 1 | 1 | 0% | 1,571 | 5,634 | +259% | 0 | 0 | — |
case-11 | pass→pass | 13,161 | 3,547 | -73% | 1 | 1 | 0% | 1,352 | 4,783 | +254% | 0 | 0 | — |
case-12 | fail→pass | 10,256 | 11,488 | +12% | 1 | 1 | 0% | 1,849 | 5,304 | +187% | 0 | 0 | — |
case-13 | fail→pass | 10,666 | 2,606 | -76% | 1 | 1 | 0% | 1,702 | 4,592 | +170% | 0 | 0 | — |
case-14 | fail→pass | 22,183 | 27,500 | +24% | 1 | 1 | 0% | 2,655 | 5,707 | +115% | 0 | 0 | — |
case-15 | fail→fail | 27,895 | 13,739 | -51% | 1 | 1 | 0% | 1,287 | 4,656 | +262% | 0 | 0 | — |
case-16 | fail→pass | 12,406 | 7,012 | -43% | 1 | 1 | 0% | 1,265 | 5,540 | +338% | 0 | 0 | — |
case-17 | fail→pass | 13,806 | 3,630 | -74% | 1 | 1 | 0% | 1,595 | 4,645 | +191% | 0 | 0 | — |
case-18 | fail→pass | 10,989 | 34,852 | +217% | 1 | 1 | 0% | 2,037 | 5,665 | +178% | 0 | 0 | — |
case-19 | fail→fail | 15,625 | 12,377 | -21% | 1 | 1 | 0% | 2,591 | 5,565 | +115% | 0 | 0 | — |
case-20 | fail→fail | 25,951 | 16,643 | -36% | 1 | 1 | 0% | 2,095 | 5,605 | +168% | 0 | 0 | — |
case-21 | pass→fail | 12,614 | 23,581 | +87% | 1 | 1 | 0% | 2,259 | 5,250 | +132% | 0 | 0 | — |
case-22 | pass→fail | 9,435 | 12,727 | +35% | 1 | 1 | 0% | 641 | 4,776 | +645% | 0 | 0 | — |
case-23 | fail→fail | 9,636 | 13,346 | +39% | 1 | 1 | 0% | 1,564 | 5,585 | +257% | 0 | 0 | — |
case-24 | fail→pass | 15,754 | 11,377 | -28% | 1 | 1 | 0% | 1,845 | 5,450 | +195% | 0 | 0 | — |
case-25 | pass→pass | 17,113 | 9,788 | -43% | 1 | 1 | 0% | 2,004 | 5,987 | +199% | 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. 25 cases were attempted, and 19 counted toward the lift figure. The other 6 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 +40 percentage points is the difference between those two pass rates over the 19 comparable cases. 3 cases got worse with the skill loaded, and they are 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.