mcpField
V
verify

verify

github.com/anthropics测试与质量7.7k236 次安装12 周前更新
代码仓库

关于 verify

这是一份在没有 Docker 的主机上验证 harness 改动的操作指南。它通过 stub API 服务器运行固定版本的 Claude Code CLI,并记录请求头,以检查 harness 传入的环境。

主要功能

  1. 01无 Docker 运行固定版本 Claude Code CLI
  2. 02用 stub API 服务器捕获请求
  3. 03重建 harness 的 Agent 环境
  4. 04说明环境注意事项与测试限制

适用场景

  1. 01检查 harness 的认证环境注入
  2. 02在无 Docker 主机上测试 CLI 请求

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/anthropics/defending-code-reference-harness --skill verify

安装后在 Claude Code 中输入/verify确认已加载。

详细介绍

在无 Docker 主机上验证 harness 更改

流水线的实际运行界面是在容器内运行的 claude -p 进程及其发出的 API 请求。没有 Docker 时,可直接使用相同的固定版本 CLI 二进制文件,并传入 harness 会通过 docker -e 注入的环境变量字典。

操作步骤

  1. 获取固定版本的 CLI(版本号来自 harness/agent_image.py:CLAUDE_CODE_VERSION): 在临时目录中运行 npm install --no-save @anthropic-ai/claude-code@<pin> → 二进制文件位于 node_modules/@anthropic-ai/claude-code/bin/claude.exe(.exe 这个名称在 Linux 上也是实际的原生二进制入口,由该包的 postinstall 填充,并非 Windows 遗留文件)。
  2. 模拟 API 服务:启动一个小型 HTTP 服务,将每个请求的 headers 追加写入 JSONL 文件,并返回 400 invalid_request_error (此错误不会触发重试,因此 CLI 会快速退出;预期退出码为 1)。
  3. 完全按照流水线的方式构建 Agent 环境变量: 运行 python3 -c "from harness.auth import resolve_auth_env; ...",并使用 shlex.quote 将结果导出到一个 export 行文件(值中包含换行符——绝对不要通过 env $(...) 传递;分词会破坏这些值;请 source 该文件)。
  4. 模拟容器环境变量:在 source 前执行 unset ANTHROPIC_CUSTOM_HEADERS(以及任何其他不在解析结果字典中的环境变量)。本仓库中的 Claude Code 会话会将 .claude/settings.json 中的环境变量注入 shell,而容器无法看到这些变量。
  5. 运行:ANTHROPIC_BASE_URL=http://127.0.0.1:<port> CLAUDECODE= IS_SANDBOX=1 timeout 30 <cli> -p hi --model claude-sonnet-4-5 --max-turns 1,然后读取捕获的 JSONL。

注意事项

  • tests/test_patch.py / tests/test_patch_grade.py 中的单元测试需要 Docker,在无 Docker 的主机上会失败——这是原有问题,并非由你的更改导致。
  • 没有 Docker 时,无法实际测试 Docker 的 -e 注入环节;该机制与生产环境中传递 ANTHROPIC_API_KEY 的机制相同。
  • 对于交互式技能的运行界面,请将 .claude/settings.json 复制到一个新的临时目录中,并从该目录运行主机上的 claude(同时取消设置环境中的 ANTHROPIC_CUSTOM_HEADERS,确保 settings.json 是唯一来源)。

评论

支持 Markdown