بنقرة واحدة
using-claude-code-cli
当 Codex 需要在本仓库调用 Claude Code CLI 做独立代码分析、诊断、审核、规划,并把报告写入 docs/AI协作/本地Agent 时使用。
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
当 Codex 需要在本仓库调用 Claude Code CLI 做独立代码分析、诊断、审核、规划,并把报告写入 docs/AI协作/本地Agent 时使用。
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
| name | using-claude-code-cli |
| description | 当 Codex 需要在本仓库调用 Claude Code CLI 做独立代码分析、诊断、审核、规划,并把报告写入 docs/AI协作/本地Agent 时使用。 |
--model deepseek-v4-pro,不要使用 opus 作为间接映射。--effort max,不允许使用更低参数。--permission-mode bypassPermissions。docs/AI协作/本地Agent/进行中/... 下的报告,不改业务代码。--bare,避免自动加载仓库 .mcp.json。claude ... 来派发任务。-p 非交互模式。Start-Process wt.exe ... run-claude-code-task.ps1 打开外部可见窗口。D:\AI\SA-AIAPP 当成固定根目录写死。--model opus 会落到 deepseek-v4-flash;必须直接传 deepseek-v4-pro。docs/AI协作/本地Agent/进行中/YYYY-MM-DD_主题/
├── 任务_主题_ClaudeCode.md
└── 报告_主题_ClaudeCode.md
任务文件里写清:
# [任务标题]
## 背景
[把子 Agent 想交给 Claude Code 的完整背景写在这里]
## 任务目标
[把完整提示词、检查清单、输出要求都写在这里]
## 边界
- 可以读取仓库文件。
- 不修改业务代码。
- 只把报告写入:
`docs/AI协作/本地Agent/进行中/[目录]/报告_[主题]_ClaudeCode.md`
不要把大段提示词直接拼进启动命令,也不要另建独立 prompt 文件。子 Agent 要传给 Claude Code 的内容全部写入 任务_主题_ClaudeCode.md。
中文路径可以作为 -TaskPath 参数传给 runner。注意不要把中文提示词或中文路径直接写进临时 .ps1 脚本文本里;runner 脚本固定为 ASCII 英文提示,只引用 TaskPath。之前成功生成报告的调用就是中文 TaskPath。
从 Codex 启动一个保留窗口的外部 Windows Terminal。脚本会用交互模式启动 Claude Code,不用 -p:
$repoRoot = (Get-Location).ProviderPath
$taskPath = 'docs/AI协作/本地Agent/进行中/[目录]/任务_[主题]_ClaudeCode.md'
$runner = Join-Path $repoRoot '.codex\skills\using-claude-code-cli\scripts\run-claude-code-task.ps1'
$cmdLine = "new-tab -d `"$repoRoot`" powershell.exe -NoExit -ExecutionPolicy Bypass -File `"$runner`" -TaskPath `"$taskPath`" -RepoRoot `"$repoRoot`" -Model deepseek-v4-pro"
Start-Process -FilePath wt.exe -ArgumentList $cmdLine
优先续指定会话,不长期依赖最近会话。
如果只是借用旧线程上下文做新任务,不想污染原线程,加 -ForkSession。它对应 Claude Code 的 --fork-session。
获取最近会话 ID:
$repoRoot = (Get-Location).ProviderPath
Get-Content "$env:USERPROFILE\.claude\history.jsonl" -Encoding UTF8 |
ConvertFrom-Json |
Where-Object { $_.project -eq $repoRoot } |
Select-Object timestamp, project, sessionId, display |
Sort-Object timestamp -Descending |
Select-Object -First 20
续指定会话:
$repoRoot = (Get-Location).ProviderPath
$taskPath = 'docs/AI协作/本地Agent/进行中/[目录]/任务_[主题]_ClaudeCode.md'
$runner = Join-Path $repoRoot '.codex\skills\using-claude-code-cli\scripts\run-claude-code-task.ps1'
$sessionId = '[从 history.jsonl 查到的 sessionId]'
$cmdLine = "new-tab -d `"$repoRoot`" powershell.exe -NoExit -ExecutionPolicy Bypass -File `"$runner`" -TaskPath `"$taskPath`" -RepoRoot `"$repoRoot`" -Model deepseek-v4-pro -ResumeSessionId `"$sessionId`""
Start-Process -FilePath wt.exe -ArgumentList $cmdLine
从旧会话派生新会话:
$cmdLine = "new-tab -d `"$repoRoot`" powershell.exe -NoExit -ExecutionPolicy Bypass -File `"$runner`" -TaskPath `"$taskPath`" -RepoRoot `"$repoRoot`" -Model deepseek-v4-pro -ResumeSessionId `"$sessionId`" -ForkSession"
Start-Process -FilePath wt.exe -ArgumentList $cmdLine
只在人工确认“当前目录最近会话就是目标会话”时,才用最近会话:
$cmdLine = "new-tab -d `"$repoRoot`" powershell.exe -NoExit -ExecutionPolicy Bypass -File `"$runner`" -TaskPath `"$taskPath`" -RepoRoot `"$repoRoot`" -Model deepseek-v4-pro -ContinueMostRecent"
Start-Process -FilePath wt.exe -ArgumentList $cmdLine
Claude Code 原生命令对应关系如下,仅用于人工排查参数,不作为 Codex 派发任务的默认方式:
claude --bare --model deepseek-v4-pro --effort max --permission-mode bypassPermissions --resume [sessionId] "[一句话:读取任务文档并执行]"
claude --bare --model deepseek-v4-pro --effort max --permission-mode bypassPermissions --continue "[一句话:读取任务文档并执行]"
claude --bare --model deepseek-v4-pro --effort max --permission-mode bypassPermissions --resume [sessionId] --fork-session "[一句话:读取任务文档并执行]"
Windows Terminal 是从当前 Codex 进程启动的。子进程只继承父进程环境,不会自动重新读取刚改过的系统环境变量。
所以启动脚本会先从 Machine / User 环境变量读取配置,再注入当前进程。逻辑在:
.codex/skills/using-claude-code-cli/scripts/run-claude-code-task.ps1
脚本实际调用:
claude --bare --model deepseek-v4-pro --effort max --permission-mode bypassPermissions [--resume sessionId 或 --continue] [--fork-session] $prompt
不用 -p,因为非交互模式像黑盒,过程不可见。交互模式对人类用户更友好,必要时用户可以直接在窗口里接管输入。
如需单独检查,可用:
foreach ($name in @('ANTHROPIC_API_KEY','ANTHROPIC_BASE_URL','ANTHROPIC_AUTH_TOKEN','ANTHROPIC_MODEL','ANTHROPIC_SMALL_FAST_MODEL','CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC')) {
[pscustomobject]@{
Name = $name
Process = [bool][Environment]::GetEnvironmentVariable($name, 'Process')
User = [bool][Environment]::GetEnvironmentVariable($name, 'User')
Machine = [bool][Environment]::GetEnvironmentVariable($name, 'Machine')
}
}