{"id":"f3f5547f-e749-462e-8e44-f165795e1fbc","shortId":"4tQu9d","kind":"skill","title":"collaborating-with-claude","tagline":"Delegate tasks to Claude Code CLI for prototyping, debugging, and code review. Supports multi-turn sessions via SESSION_ID.","description":"# Collaborating with Claude Code\n\nUse Claude Code CLI as a collaborator while Codex remains the primary implementer.\n\nThe bridge script (`scripts/claude_bridge.py`) wraps `claude --print`, returns structured JSON, and manages session continuity via `SESSION_ID`.\n\n## Safety\n\nClaude Code can read and edit files by default when run with `--print`. The bridge exposes flags to restrict this:\n\n- `--permission-mode plan` — read-only mode, blocks edits and shell commands. **Recommended for review/consultation tasks.**\n- `--disallowed-tools Edit Write Bash` — selectively block specific tools.\n- Include `OUTPUT: Unified Diff Patch ONLY. Do not modify any files.` in your prompt for code changes. This is a convention, not enforced.\n\nAlways use the bridge script — do not invoke `claude` directly. This keeps output parsing and session handling consistent.\n\n## When to use\n- Second opinion on design tradeoffs, edge cases, or test gaps.\n- Proposing or reviewing a unified diff.\n- Multi-turn back-and-forth while you implement locally.\n\n## When not to use\n- Trivial one-shot tasks — do them in Codex directly.\n- Tasks requiring authoritative facts with citations (Claude may guess).\n- Anything involving secrets, private keys, or prod data.\n\n## Quick start\n\n⚠️ Backticks in prompts trigger shell command substitution — use a heredoc. See `references/shell-quoting.md`.\n\n```bash\nPROMPT=\"$(cat <<'EOF'\nReview src/auth.py around login() and propose fixes.\nOUTPUT: Unified Diff Patch ONLY.\nEOF\n)\"\npython3 .codex/skills/collaborating-with-claude/scripts/claude_bridge.py \\\n  --cd \".\" --model sonnet --PROMPT \"$PROMPT\" --output-format stream-json\n```\n\n**Returns:** `{ \"success\": true, \"SESSION_ID\": \"...\", \"agent_messages\": \"...\" }`\n\n## Multi-turn sessions\n\nCapture `SESSION_ID` from the first call and pass it back. Session selectors are mutually exclusive — pick one:\n\n```bash\n# Turn 1\npython3 .codex/skills/collaborating-with-claude/scripts/claude_bridge.py \\\n  --cd \".\" --model sonnet --PROMPT \"Analyze the bug in foo().\" --output-format stream-json\n\n# Turn 2 — resume by ID\npython3 .codex/skills/collaborating-with-claude/scripts/claude_bridge.py \\\n  --cd \".\" --model sonnet --SESSION_ID \"<id>\" --PROMPT \"Propose a fix.\" --output-format stream-json\n\n# Or resume the most recent session\npython3 .codex/skills/collaborating-with-claude/scripts/claude_bridge.py \\\n  --cd \".\" --model sonnet --continue --PROMPT \"What about edge cases?\" --output-format stream-json\n```\n\nUse `stream-json` or `json` output format to capture `SESSION_ID`. The `text` format does not emit one for new sessions.\n\n## Bridge flags\n\n**Core:**\n\n| Flag | Purpose | Default |\n|---|---|---|\n| `--PROMPT` | Prompt text (required) | — |\n| `--cd` | Workspace root (required) | — |\n| `--model` | Model alias (`sonnet`, `opus`) or full name | CLI default |\n| `--output-format` | `text` · `json` · `stream-json` | `stream-json` |\n\n**Sessions** (mutually exclusive):\n\n| Flag | Purpose |\n|---|---|\n| `--SESSION_ID` | Resume by session ID |\n| `--session-id` | Use a specific UUID |\n| `--continue` | Resume the most recent session |\n| `--fork-session` | Fork when resuming (new ID, shared history) |\n\n**Safety & permissions:**\n\n| Flag | Purpose |\n|---|---|\n| `--permission-mode` | `default` · `plan` · `bypassPermissions` |\n| `--allowed-tools` | Tools to allow without prompting (repeatable) |\n| `--disallowed-tools` | Tools to block entirely (repeatable) |\n\n**Advanced** (use `--help` for full list):\n`--fallback-model` · `--max-budget-usd` · `--add-dir` · `--system-prompt` · `--append-system-prompt` · `--mcp-config` · `--json-schema` · `--tools` · `--agent` · `--agents` · `--no-session-persistence` · `--return-all-messages` · `--verbose` · `--include-partial-messages`\n\nDefault timeout: set `timeout_ms` to **600000** (10 min) when invoking via Codex command runner.\n\n## Model selection\n\nUse aliases — `--model sonnet` for routine work, `--model opus` for complex tasks. Omit `--model` to use the CLI's configured default. For strict reproducibility, pass a full model name.\n\n## Prompting patterns\n\nUse `assets/prompt-template.md` for structured starters. Key principles:\n\n- **Point, don't paste** — give file paths and line numbers, not code blocks. Use `--cd` (and `--add-dir` if needed) so Claude can read files itself.\n- **One objective per prompt** — multiple competing goals produce noisy output.\n- **Enforce output format** — append `OUTPUT: Unified Diff Patch ONLY.` for code changes.\n\n## Verification\n\n- Smoke test: `python3 .codex/skills/collaborating-with-claude/scripts/claude_bridge.py --help`\n- Session test: run one prompt with `--output-format stream-json`, confirm JSON contains `success: true` and a `SESSION_ID`.\n- Ensure Claude Code is logged in (`claude` then `/login`) before headless usage.\n\n## Collaboration State Capsule\n\nKeep this block updated while collaborating:\n\n```\n[Claude Capsule] Goal: | SID: | Model: | Files: | Last: | Next:\n```\n\n## References\n- [Prompt template](assets/prompt-template.md) — structured prompt patterns\n- [Shell quoting](references/shell-quoting.md) — heredoc quoting for backticks","tags":["collaborating","with","claude","agent","designer","appautomaton","agent-skills","agentic-workflows","ai-agents","ai-coding-assistant","claude-code","claude-skills"],"capabilities":["skill","source-appautomaton","skill-collaborating-with-claude","topic-agent-skills","topic-agentic-workflows","topic-ai-agents","topic-ai-coding-assistant","topic-claude-code","topic-claude-skills","topic-codex","topic-gemini-cli","topic-mcp"],"categories":["agent-designer"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/appautomaton/agent-designer/collaborating-with-claude","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add appautomaton/agent-designer","source_repo":"https://github.com/appautomaton/agent-designer","install_from":"skills.sh"}},"qualityScore":"0.506","qualityRationale":"deterministic score 0.51 from registry signals: · indexed on github topic:agent-skills · 113 github stars · SKILL.md body (5,092 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-18T18:56:19.199Z","embedding":null,"createdAt":"2026-05-06T00:55:54.470Z","updatedAt":"2026-05-18T18:56:19.199Z","lastSeenAt":"2026-05-18T18:56:19.199Z","tsv":"'/login':649 '1':284 '10':517 '2':303 '600000':516 'add':479,582 'add-dir':478,581 'advanc':465 'agent':258,495,496 'alia':385 'alias':528 'allow':449,453 'allowed-tool':448 'alway':130 'analyz':291 'anyth':201 'append':485,605 'append-system-prompt':484 'around':229 'assets/prompt-template.md':559,673 'authorit':194 'back':171,274 'back-and-forth':170 'backtick':211,683 'bash':102,223,282 'block':88,104,462,577,658 'bridg':43,74,133,369 'budget':476 'bug':293 'bypasspermiss':447 'call':270 'capsul':655,663 'captur':264,356 'case':157,340 'cat':225 'cd':242,287,309,332,379,579 'chang':123,613 'citat':197 'claud':4,8,27,30,47,60,138,198,587,642,647,662 'cli':10,32,391,544 'code':9,15,28,31,61,122,576,612,643 'codex':37,190,522 'codex/skills/collaborating-with-claude/scripts/claude_bridge.py':241,286,308,331,618 'collabor':2,25,35,653,661 'collaborating-with-claud':1 'command':92,216,523 'compet':597 'complex':537 'config':490 'configur':546 'confirm':632 'consist':147 'contain':634 'continu':55,335,422 'convent':127 'core':371 'data':208 'debug':13 'default':68,374,392,445,510,547 'deleg':5 'design':154 'diff':110,166,236,608 'dir':480,583 'direct':139,191 'disallow':98,458 'disallowed-tool':97,457 'edg':156,339 'edit':65,89,100 'emit':364 'enforc':129,602 'ensur':641 'entir':463 'eof':226,239 'exclus':279,406 'expos':75 'fact':195 'fallback':472 'fallback-model':471 'file':66,117,570,590,667 'first':269 'fix':233,317 'flag':76,370,372,407,440 'foo':295 'fork':429,431 'fork-sess':428 'format':249,298,320,343,354,361,395,604,628 'forth':173 'full':389,469,553 'gap':160 'give':569 'goal':598,664 'guess':200 'handl':146 'headless':651 'help':467,619 'heredoc':220,680 'histori':437 'id':24,58,257,266,306,313,358,410,414,417,435,640 'implement':41,176 'includ':107,507 'include-partial-messag':506 'invok':137,520 'involv':202 'json':51,252,301,323,346,350,352,397,400,403,492,631,633 'json-schema':491 'keep':141,656 'key':205,563 'last':668 'line':573 'list':470 'local':177 'log':645 'login':230 'manag':53 'max':475 'max-budget-usd':474 'may':199 'mcp':489 'mcp-config':488 'messag':259,504,509 'min':518 'mode':82,87,444 'model':243,288,310,333,383,384,473,525,529,534,540,554,666 'modifi':115 'ms':514 'multi':19,168,261 'multi-turn':18,167,260 'multipl':596 'mutual':278,405 'name':390,555 'need':585 'new':367,434 'next':669 'no-session-persist':497 'noisi':600 'number':574 'object':593 'omit':539 'one':184,281,365,592,623 'one-shot':183 'opinion':152 'opus':387,535 'output':108,142,234,248,297,319,342,353,394,601,603,606,627 'output-format':247,296,318,341,393,626 'pars':143 'partial':508 'pass':272,551 'past':568 'patch':111,237,609 'path':571 'pattern':557,676 'per':594 'permiss':81,439,443 'permission-mod':80,442 'persist':500 'pick':280 'plan':83,446 'point':565 'primari':40 'principl':564 'print':48,72 'privat':204 'prod':207 'produc':599 'prompt':120,213,224,245,246,290,314,336,375,376,455,483,487,556,595,624,671,675 'propos':161,232,315 'prototyp':12 'purpos':373,408,441 'python3':240,285,307,330,617 'quick':209 'quot':678,681 'read':63,85,589 'read-on':84 'recent':328,426 'recommend':93 'refer':670 'references/shell-quoting.md':222,679 'remain':38 'repeat':456,464 'reproduc':550 'requir':193,378,382 'restrict':78 'resum':304,325,411,423,433 'return':49,253,502 'return-all-messag':501 'review':16,163,227 'review/consultation':95 'root':381 'routin':532 'run':70,622 'runner':524 'safeti':59,438 'schema':493 'script':44,134 'scripts/claude_bridge.py':45 'second':151 'secret':203 'see':221 'select':103,526 'selector':276 'session':21,23,54,57,145,256,263,265,275,312,329,357,368,404,409,413,416,427,430,499,620,639 'session-id':415 'set':512 'share':436 'shell':91,215,677 'shot':185 'sid':665 'skill' 'skill-collaborating-with-claude' 'smoke':615 'sonnet':244,289,311,334,386,530 'source-appautomaton' 'specif':105,420 'src/auth.py':228 'start':210 'starter':562 'state':654 'stream':251,300,322,345,349,399,402,630 'stream-json':250,299,321,344,348,398,401,629 'strict':549 'structur':50,561,674 'substitut':217 'success':254,635 'support':17 'system':482,486 'system-prompt':481 'task':6,96,186,192,538 'templat':672 'test':159,616,621 'text':360,377,396 'timeout':511,513 'tool':99,106,450,451,459,460,494 'topic-agent-skills' 'topic-agentic-workflows' 'topic-ai-agents' 'topic-ai-coding-assistant' 'topic-claude-code' 'topic-claude-skills' 'topic-codex' 'topic-gemini-cli' 'topic-mcp' 'tradeoff':155 'trigger':214 'trivial':182 'true':255,636 'turn':20,169,262,283,302 'unifi':109,165,235,607 'updat':659 'usag':652 'usd':477 'use':29,131,150,181,218,347,418,466,527,542,558,578 'uuid':421 'verbos':505 'verif':614 'via':22,56,521 'without':454 'work':533 'workspac':380 'wrap':46 'write':101","prices":[{"id":"60094f9c-85d2-4052-926c-f2760ca6802d","listingId":"f3f5547f-e749-462e-8e44-f165795e1fbc","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"appautomaton","category":"agent-designer","install_from":"skills.sh"},"createdAt":"2026-05-06T00:55:54.470Z"}],"sources":[{"listingId":"f3f5547f-e749-462e-8e44-f165795e1fbc","source":"github","sourceId":"appautomaton/agent-designer/collaborating-with-claude","sourceUrl":"https://github.com/appautomaton/agent-designer/tree/main/skills/collaborating-with-claude","isPrimary":false,"firstSeenAt":"2026-05-06T00:55:54.470Z","lastSeenAt":"2026-05-18T18:56:19.199Z"}],"details":{"listingId":"f3f5547f-e749-462e-8e44-f165795e1fbc","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"appautomaton","slug":"collaborating-with-claude","github":{"repo":"appautomaton/agent-designer","stars":113,"topics":["agent-skills","agentic-workflows","ai-agents","ai-coding-assistant","claude-code","claude-skills","codex","gemini-cli","mcp"],"license":null,"html_url":"https://github.com/appautomaton/agent-designer","pushed_at":"2026-04-06T19:03:10Z","description":"Portable SKILLs workspace for Claude Code, Codex, and Gemini — issue-driven workflows and cross-agent collaboration via bridge scripts with session continuity.","skill_md_sha":"559fc160d561e9c61f6cbdc7439ab250e1a26b13","skill_md_path":"skills/collaborating-with-claude/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/appautomaton/agent-designer/tree/main/skills/collaborating-with-claude"},"layout":"multi","source":"github","category":"agent-designer","frontmatter":{"name":"collaborating-with-claude","description":"Delegate tasks to Claude Code CLI for prototyping, debugging, and code review. Supports multi-turn sessions via SESSION_ID."},"skills_sh_url":"https://skills.sh/appautomaton/agent-designer/collaborating-with-claude"},"updatedAt":"2026-05-18T18:56:19.199Z"}}