用途
本技能用于把 Claude Code CLI 作为协作伙伴,同时保持 Codex 作为主要实现者。它提供一个轻量桥接脚本(scripts/claude_bridge.py),返回结构化 JSON,并通过 SESSION_ID 支持多轮会话。
何时使用
- 你想要第二意见(设计取舍、边界情况、缺失测试)。
- 你想让 Claude 提出或审查 unified diff(Claude 不编辑文件)。
- 你想在本地实现时进行多轮往返讨论。
何时不使用
- 任务琐碎或一次性(直接在 Codex 中完成)。
- 你需要需要浏览/引用的权威事实(Claude 可能猜测)。
- 你可能粘贴敏感数据(密钥、私钥、生产日志)。
核心规则
- Claude 是协作者;你拥有最终结果,必须在本地验证改动。
- 不要直接调用 claude;始终使用桥接脚本(scripts/claude_bridge.py),以保持输出/会话处理一致。
- 优先使用文件/行引用而非粘贴代码片段。以 --cd 设为仓库根目录运行桥接脚本(它设置 claude 进程工作目录);当 Claude 需要访问额外目录时使用 --add-dir。
- 对于代码改动,只请求 Unified Diff Patch,并禁止直接修改文件。
- 如果不确定参数,始终先运行桥接脚本的 --help。
- 始终捕获 SESSION_ID 并在后续请求中复用它,以保持协作对话感知。
- 对于自动化,优先使用 --SESSION_ID(恢复)。会话选择器互斥:从 --SESSION_ID、--continue 或 --session-id 中选择一个。
- 在本技能激活期间,保持一个简短的 Collaboration State Capsule 更新。
- 默认超时:通过 Codex 命令运行器调用时,将 timeout_ms 设为 600000(10 分钟),除非明确需要更短/更长超时。
- 默认模型:常规工作优先 sonnet;仅在复杂任务或明确要求时使用 opus。
- 运行无头命令前确保 Claude Code 已登录(如需要,运行 claude 和 /login 一次)。
- 流式 JSON 需要 --verbose;桥接脚本会自动启用。
模型选择
- Claude Code 支持模型别名,因此可以使用 --model sonnet / --model opus,而无需硬编码带版本的模型 ID。
- 如果省略 --model,Claude Code 使用其配置的默认值(通常来自 ~/.claude/settings.json,可选被 .claude/settings.json 和 .claude/settings.local.json 覆盖)。
- 如果需要严格可复现性,通过 --model <full-name> 传入完整模型名。
快速开始(shell 安全)
⚠️ 如果你的提示包含 Markdown 反引号(like/this),不要直接通过 --PROMPT "..." 传递(你的 shell 可能把反引号当作命令替换)。改用 heredoc;参见 references/shell-quoting.md。
PROMPT="$(cat <<'EOF'
Review src/auth.py around login() and propose fixes.
OUTPUT: Unified Diff Patch ONLY.
EOF
)"
python3 .codex/skills/collaborating-with-claude/scripts/claude_bridge.py --cd "." --model sonnet --PROMPT "$PROMPT" --output-format stream-json
输出:包含 success、SESSION_ID、agent_messages 以及可选 error / all_messages 的 JSON。
多轮会话
# 开始一个会话
PROMPT="$(cat <<'EOF'
Analyze the bug in foo(). Keep it short.
EOF
)"
python3 .codex/skills/collaborating-with-claude/scripts/claude_bridge.py --cd "." --PROMPT "$PROMPT" --output-format stream-json
# 继续同一会话
PROMPT="$(cat <<'EOF'
Now propose a minimal fix as Unified Diff Patch ONLY.
EOF
)"
python3 .codex/skills/collaborating-with-claude/scripts/claude_bridge.py --cd "." --SESSION_ID "<SESSION_ID>" --PROMPT "$PROMPT" --output-format stream-json
提示模式(节省 token)
- 在构造 --PROMPT 时,使用 assets/prompt-template.md 作为起点。
- 让 Claude 自己打开文件
提供:
- 入口文件及大致行号
- 目标与约束
- 输出格式(diff 还是分析)
避免:
- 粘贴大段代码块
- 在一个请求中放入多个相互竞争的目标
- 对代码改动强制安全输出
在请求代码时,向提示追加:
OUTPUT: Unified Diff Patch ONLY. Strictly prohibit any actual modifications.
- 把 Claude 用在它擅长的地方
- 替代解决方案路径和边界情况
- UI/UX 和可读性反馈
- 审查提议的补丁(风险识别、缺失测试)
验证
- 冒烟测试桥接脚本:python3 .codex/skills/collaborating-with-claude/scripts/claude_bridge.py --help。
- 如果需要会话:用 --output-format stream-json 运行一个提示,确认 JSON 包含 success: true 和 SESSION_ID。
- 注意:--output-format text 不会包含新生成的会话 id;使用 stream-json/json 来捕获它。如果在 text 模式下用 --SESSION_ID 恢复,桥接脚本会在其 JSON 输出中回显该 SESSION_ID。
安全与护栏
- 永远不要把密钥(私钥、API 密钥、助记词)粘贴到提示中。
- 对于代码改动,只请求 Unified Diff Patch,并自行应用改动。
- 把 Claude 输出视为建议;合并前在本地验证(测试、lint、构建)。
Collaboration State Capsule
在协作期间,在回复末尾附近保持这个简短块更新:
[Claude Collaboration Capsule]
Goal:
Claude SESSION_ID:
Files/lines handed off:
Last ask:
Claude summary:
Next ask:
参考
- assets/prompt-template.md(提示模式)
- references/shell-quoting.md(shell 引用/反引号)