SuperAPI AI 工具集

gemini-delegate

写作与研究

查看项目

更新于 10-16 08:57

技能介绍

用途

gemini-delegate 是一个技能(skill),用于把中文/CJK 内容任务委派给 Gemini CLI 执行。在该模式中,Claude 充当监督者,负责规划、评估与审阅;Gemini 负责中文/CJK 写作。

适合委派给 Gemini 的任务包括:繁体中文内容(报告、分析、社交媒体帖子)、美洲更新(Americas Update)每周 Threads 系列、带领域术语的 CJK 翻译、英文分析的中文摘要、任何需要母语级中文输出的内容,以及超过 200 字的长篇中文写作。

不适合委派、应保留在 Claude 的任务包括:架构决策、代码审查、调试、纯英文内容、需要对话历史或记忆上下文的 任务、安全敏感操作、具有复杂依赖的多步工作流,以及代码生成(资料称 Gemini 的编码能力较弱)。

主要能力与工作流

核心工作流采用“上下文文件模式”,分四步:

  1. Claude 编写上下文文件,保存到仓库中的 .ai/gemini_task_<name>.md,内容包含 Context(仓库、需读取的关键文件、输出文件)、Language(输出语言、语气、受众)、Instructions、Constraints、Output 等小节。
  2. 启动 Gemini(同步调用,从 Claude Code Bash 执行):
bash .claude/skills/gemini-delegate/scripts/run_gemini.sh \
  --prompt "Read .ai/gemini_task_<name>.md and execute all instructions inside." \
  --log-file .ai/gemini_log_<name>.txt

也可直接调用 PowerShell 脚本(仅从 PowerShell,不从 Claude Code Bash):

& "C:\Users\wenyu\mispricing-engine\.claude\skills\gemini-delegate\scripts\run_gemini.ps1" `
    -Prompt "Read .ai/gemini_task_<name>.md and execute all instructions." `
    -LogFile "C:\Users\wenyu\mispricing-engine\.ai\gemini_log_<name>.txt"
  1. 检查结果:先检查 fallback 哨兵文件,再检查 .done 文件并读取日志。
  2. Claude 审阅:读取输出、检查中文质量(术语、语气、准确性)、核对敏感词替换;若 80% 以上正确则直接修正剩余问题,若根本性错误则重写上下文文件并重跑。

脚本参数:run_gemini.sh 支持 --prompt(必填)、--repo(默认 ~/mispricing-engine)、--model(默认 gemini-2.5-pro)、--log-file(默认 <repo>/.ai/gemini_output.txt);run_gemini.ps1 对应支持 -Prompt(必填)、-Repo(默认 C:\Users\wenyu\mispricing-engine)、-Model(默认 gemini-2.5-pro)、-LogFile(默认 <Repo>.ai\gemini_output.txt)。

使用方式与关键规则

Shell 兼容性:Claude Code 的 Bash 工具在 Windows 上运行的是 git-bash(Unix shell),不是 cmd.exe 也不是 PowerShell。禁止在 Bash 中使用 CMD 专有命令(如 cd /d、type、dir、copy、del、md、set、%VAR%、ren、cls),应改用 bash 等价命令(cd /c/... 或 cd "$HOME/..."、cat、ls、cp、rm、mkdir -p、export、$VAR、mv、clear)。路径使用正斜杠,不使用反斜杠,不使用 cd /d。仅在通过 Desktop Commander 或 Windows-MCP 直接调用 .ps1 脚本时才使用 PowerShell 语法。

非交互式调用的三条关键规则:

  1. Gemini CLI 没有 -C <dir> 标志(那是 Codex CLI 语法)。Gemini CLI 以当前工作目录为工作区,外加 --include-directories 中列出的目录。正确做法是先 cd / pushd 进入目标仓库再调用,之后 cd / popd 返回。
  2. 始终传入 --approval-mode yolo(或别名 -y)。默认审批模式在非交互模式下无法批准工具调用,会导致工具调用被静默丢弃,Gemini 退化为在文本输出中以伪代码注释形式输出 write_file(...)。
  3. 大提示词通过 stdin 管道传入,而非位置参数。Windows cmd.exe 命令行长度限制约 32 KB,超长会报 “Argument list too long” 或被静默截断。正确做法是写入文件后 gemini --approval-mode yolo < prompt.txt。

旧模式 gemini -m "$MODEL" -C "$REPO" "$(cat "$PROMPT_FILE")" 同时存在上述三个问题。

第四条规则(2026-04-17 新增):Gemini 退出后校验文件写入。即使遵循前三条规则且 Gemini 干净退出(rc=0),预期输出文件仍可能缺失或不完整。两种失败模式:一是 write_file 报 “params must have required property 'file_path'”,通常第一次写入成功、后续写入失败,但进程仍以 0 退出;二是静默部分写入,文件缩进错误、缺少导入或函数中途截断,进程退出 0 且无 stderr 信号。修复方式是执行后校验:无论退出码如何,都检查预期输出文件存在、非空且包含哨兵字符串。Bash 校验模式示例:

EXPECTED_FILES=(
    "docs/output1.md"
    "docs/output2.md"
)
SENTINEL="## My Required Heading"

cat brief.md | gemini --approval-mode yolo
GEMINI_RC=$?

for f in "${EXPECTED_FILES[@]}"; do
    if [[ ! -s "$f" ]]; then
        echo "VERIFICATION FAILED: $f missing or empty" >&2
        exit 1
    fi
    if ! grep -q "$SENTINEL" "$f"; then
        echo "VERIFICATION FAILED: $f missing sentinel '$SENTINEL'" >&2
        exit 1
    fi
done
echo "All ${#EXPECTED_FILES[@]} files verified."

该技能的包装脚本提供 --verify-file PATH 标志自动完成此检查。

敏感词替换(Threads v4):生成 Threads 帖子时应用替换规则,查看 feedback_thread_sensitive_words 记忆获取当前列表;常见做法是避免绝对预测,使用带对冲的框架驱动语言;不使用“一定”“保證”“必然”,改用“可能”“傾向”“框架顯示”。

适用场景与限制

适用场景:繁体中文报告与分析、美洲更新 Threads 系列、带术语的 CJK 翻译、英文分析的中文摘要、长篇中文写作。

限制与注意事项:Gemini 没有持久记忆,必须通过文件路径提供完整上下文;Gemini 无法读取对话历史,需在上下文文件中总结决策;Gemini 编码能力弱于 Claude/Codex,不要委派代码任务;发布前必须核实 Gemini 输出的事实准确性;.ai/ 目录已被 gitignore,可安全存放任务文件与日志;若出现 .fallback_claude 哨兵,应立即自行完成任务。

翻译质量注意事项(2026-04-17):即使正确调用且成功写入文件,翻译任务的内容质量最多为 B 级——简报中的禁用词列表常被忽略;语气始终是“从英文翻译过来”的感觉,而非目标语言母语惯用表达;即使简报要求一致,术语仍会跨文件漂移;changelog 中的日期错误(Gemini 依据训练数据猜测,不读取系统日期)。可行的翻译工作流:用 Gemini 生成初稿(为 Claude 节省约 60% 打字时间);Claude 审阅每个翻译文件(禁用词审计、术语一致性检查、逐行准确性抽查);Claude 手动重写最差的约 25% 行;使用 --verify-file 立即捕获缺失或空输出。未经 Claude 润色,不要把 Gemini 的翻译输出作为最终版本发布;相比 Claude 直接翻译,成本节省真实但有限,未经润色的质量达不到生产级。