SuperAPI AI 工具集

collaborating-with-claude

编程与开发

查看项目

更新于 10-16 02:09

技能介绍

用途

本技能用于把 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 作为起点。
  1. 让 Claude 自己打开文件

提供:

  • 入口文件及大致行号
  • 目标与约束
  • 输出格式(diff 还是分析)

避免:

  • 粘贴大段代码块
  • 在一个请求中放入多个相互竞争的目标
  1. 对代码改动强制安全输出

在请求代码时,向提示追加:

OUTPUT: Unified Diff Patch ONLY. Strictly prohibit any actual modifications.

  1. 把 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 引用/反引号)