---
name: do-work-on-my-behalf
description: Use when the owner pastes only a Webex message URL, webexteams://im link, EzWebex handoff-card Codex URL, or job id into a new Codex thread to action approved Webex work on their behalf. Also use when they ask Codex to handle approved EzWebex/Webex bot work. The skill marks the handoff card as actioned from the current Codex session, performs the requested work using the returned Webex source context, then submits a private approve/reject outcome card instead of posting publicly.
---

# Do Work On My Behalf

Use this skill in Desktop Codex or a hosted EzWebex workspace when the owner opens an approved EzDelegate handoff. Desktop Codex should action hosted handoff URLs through the EzWebex plugin, using local Webex auth to load the full task context from the hosted Command Center.

In hosted Codex, use this skill in the real Codex thread that the owner opens from an EzWebex task card. The card's `Open in Codex` button should prefill a bare handoff/Webex URL with no extra text; treat a bare Webex message URL as an EzWebex handoff candidate.

## Workflow

1. Extract the handoff reference from the user's message. Prefer the prefilled handoff/Webex URL from the card; use a job id only when no link is available. If the entire user message is just a Webex URL, use that URL.
2. Read the current Codex session id from `CODEX_THREAD_ID` or `CODEX_SESSION_ID` if it is available, then call `webex-digital-twin-action-handoff` immediately with that card reference.
   - Pass `codexThreadId` and `codexDeeplink: "codex://local/<session-id>"` when you have the session id.
   - This edits the original handoff card with the current Codex session reference and removes the decline action.
   - Use the returned `sourceMessageUrl`, `requestMarkdown`, and handoff metadata as the source of truth.
   - If the tool reports that the URL is not an EzWebex handoff, stop this skill and handle the link as an ordinary Webex message only if the user asks.
3. Inspect the original Webex request/thread as needed using EzWebex messaging tools.
4. Do the requested work using normal Codex judgment and any relevant installed skills/tools.
5. Do not reply publicly in Webex yourself.
6. When work is complete, call `webex-digital-twin-submit-result` with:
   - the same handoff card reference or returned job id,
   - `publicReplyMarkdown`: the proposed public reply for the original Webex requester,
   - `privateAuditMarkdown`: concise owner-facing summary of what you did, what changed, what you inspected, and any caveats,
   - `needsNoPublicReply`: true only when the right outcome is private/no public response,
   - `publicFilePaths`: local files to attach to the original Webex reply if the owner approves,
   - optional `actionsTaken` and `sourceRefs`.
7. Tell the owner that the result is waiting for approval in Webex. Do not treat the work as publicly delivered until approval happens.
8. If the owner later approves in Codex with language like "looks good, send it", call `webex-digital-twin-apply-task-decision` with `decision: "send"` instead of posting with generic Webex messaging tools. For owner follow-ups, map "ignore this task" to `ignore`, "mark this case as resolved/completed/done" to `complete`, "change it this way" to `modify`, and "decline this task" to `decline`.

## Output Guidance

- Keep `publicReplyMarkdown` suitable for the original Webex thread: concise, useful, and free of private implementation chatter.
- Put sensitive details, local paths, failed attempts, and richer audit context in `privateAuditMarkdown`.
- If the work changes files or performs external actions, mention those in the private audit.
- For screenshots or generated files, save and verify the local file, then include the absolute path in `publicFilePaths`. Do not embed file bytes or base64 in the public reply.
- If you cannot complete the task, submit a result anyway with a clear proposed public reply or `needsNoPublicReply=true` plus the private audit.
- If the user explicitly asks you to post publicly directly, still prefer `webex-digital-twin-submit-result` unless they clearly opt out of the approval gate.
