Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Use when asked to 同步、更新、升级或审计 CLIProxyAPI、cliproxy、translator core、internal/protocol/cliproxy 协议转换快照,刷新上游 commit,或审查一次协议核心同步的结果。
.claude/skills/caidaoli-sync-cliproxy-core/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-13 | ✗→✓ | ▲ Improved | 233% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 63% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 55% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 58% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 105% | 0% |
一次同步 CLIProxyAPI 的四协议纯转换核心、已登记 provider adapters 及其对应测试。保持 ccLoad Registry 和 provider wire 契约,不引入上游运行时系统。
默认调用 $sync-cliproxy-core 时,自动固定上游最新稳定版本,并在同一次操作中完成 core 与全部已登记 provider adapters 的比较、集成、来源更新和验证。不要把 provider adapters 留给第二次同步。用户明确指定 commit/tag 时使用指定目标;用户明确要求仅审计时保持只读。
CLAUDE.md、internal/protocol/cliproxy/UPSTREAM.md、core snapshot manifest、provider adapter 语义边界和provider manifest。UPSTREAM.md 是来源、固定提交和已落地状态的唯一事实源;core manifest 记录直接映射根、特殊映射、明确排除和最近一次 core/provider 原子差异的审查 blob,provider manifest 是 provider、逐文件映射、生产接线和契约测试的唯一 allowlist。internal/protocol/registry.go 定义四协议契约;internal/protocol/builtin/cliproxy_adapter.go 处理通用输入验证、JSON/SSE 规范化和流帧封装;internal/protocol/cliproxy/providers/ 保存 provider-specific 纯转换。replace。源码继续使用 ccLoad/internal/protocol/cliproxy/... 导入路径。git status --short。go.mod、go.sum 或 UPSTREAM.md,先区分用户修改与本次同步;无法安全隔离时停止并说明冲突。UPSTREAM.md 记录仓库的远端 tags。以当前记录 tag 的非版本前缀和 vMAJOR.MINOR.PATCH 形状确定稳定 tag 系列,按语义版本选择最高版本;忽略预发布 tag,禁止按字典序或提交时间猜版本。<tag>^{commit})。记录并同步该 commit,而不是 annotated tag object;报告目标和变化范围后直接继续,不等待确认。UPSTREAM.md 的同步日期;运行确定性审计和验证后报告已是最新版本。UPSTREAM.md 记录的仓库。core、provider 生产源码与测试必须全部来自这个 checkout 的同一个 commit。_test.go,不要分两次比较。init.go、动态 Registry 和 noop/分配实现测试按 allowlist 排除。delete 行并删除本地映射;新增 provider 时更新 provider manifest、语义边界和 UPSTREAM.md。脚本只从 manifest 读取这些清单,不复制第二份。审计失败不能靠跳过检查解决。common/signature/util 能力替代。UPSTREAM.md 已排除项的排除理由是否仍成立:上游重构可能使旧理由失效(该同步的补回来),也可能采纳了本地契约(删掉过期的本地差异注记)。ccLoad/internal/protocol/cliproxy/...。builtin/cliproxy_adapter.go,provider envelope/字段补全留在 providers/<provider>;只有通用协议语义需要时才修改 core。RequestTranslationError,由代理映射为 HTTP 400;不得触发渠道切换或冷却。internal/protocol/cliproxy/UPSTREAM.md 的完整 commit、标签说明和同步日期。UPSTREAM.md 分别记录 core 与 provider 的上游源目录、本地目录和实际落地状态;逐文件事实和本次差异审查 blob 只保留在 manifest。它们共享同一个 commit/date,不在 manifest 维护第二套版本号。internal/protocol/cliproxy/LICENSE。许可证或上游归属变化必须显式审查。UPSTREAM.md。先运行确定性审计:
bashbash .agents/skills/sync-cliproxy-core/scripts/verify_core_scope.sh --self-test bash .agents/skills/sync-cliproxy-core/scripts/verify.sh --tests --require-providers \ --upstream-repo /path/to/CLIProxyAPI \ --base-commit <previous-synchronized-commit>
--require-providers 是完整同步的完成门禁:它同时要求 --upstream-repo 和完整的 --base-commit。该 base 必须等于 Git HEAD 中修改前 UPSTREAM.md 记录的同步 SHA,调用者不能跳过较早变更;脚本随后强制 base 到工作区 UPSTREAM.md 目标提交的每个 core/provider 变更都已映射、删除或明确排除。若 base 已等于目标,说明快照本来就是最新版本,脚本改做目标树、review blob 和 provider 的确定性审计,不伪造空同步差异。任一 allowlist provider 尚未落地、review blob 陈旧或出现未知上游文件时必须失败。日常审计历史快照可以省略这些参数,但不得据此报告完整同步成功。
再运行仓库级检查:
bashgo test -tags sonic ./internal/... make build golangci-lint run ./... git diff --check
只在并发相关代码受影响时运行 make race-fast 或 make race。根据最终差异排查是否需要同步更新 CLAUDE.md、README.md 和 README.zh-CN.md。
出现以下任一念头,停下并回到对应章节,不要继续:
报告以下事实:
UPSTREAM.md、许可证和三份项目文档是否更新;| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-13 | fail→pass | 29,195 | 4,905 | -83% | 1 | 1 | 0% | 990 | 3,296 | +233% | 0 | 0 | — |
case-19 | pass→pass | 9,880 | 3,814 | -61% | 1 | 1 | 0% | 1,470 | 3,055 | +108% | 0 | 0 | — |
case-01 | fail→fail | 19,268 | 5,069 | -74% | 1 | 1 | 0% | 3,195 | 2,628 | -18% | 0 | 0 | — |
case-02 | fail→fail | 24,556 | 5,472 | -78% | 1 | 1 | 0% | 4,474 | 2,662 | -41% | 0 | 0 | — |
case-03 | fail→fail | 13,684 | 5,185 | -62% | 1 | 1 | 0% | 2,304 | 2,720 | +18% | 0 | 0 | — |
case-04 | fail→pass | 12,412 | 5,948 | -52% | 1 | 1 | 0% | 2,063 | 3,364 | +63% | 0 | 0 | — |
case-05 | fail→pass | 13,384 | 11,593 | -13% | 1 | 1 | 0% | 2,300 | 3,555 | +55% | 0 | 0 | — |
case-06 | fail→pass | 11,689 | 5,306 | -55% | 1 | 1 | 0% | 2,055 | 3,238 | +58% | 0 | 0 | — |
case-07 | pass→pass | 10,242 | 4,765 | -53% | 1 | 1 | 0% | 1,777 | 3,282 | +85% | 0 | 0 | — |
case-08 | pass→pass | 10,228 | 3,765 | -63% | 1 | 1 | 0% | 1,557 | 2,965 | +90% | 0 | 0 | — |
case-09 | fail→pass | 10,796 | 5,640 | -48% | 1 | 1 | 0% | 1,618 | 3,313 | +105% | 0 | 0 | — |
case-10 | fail→pass | 11,753 | 4,429 | -62% | 1 | 1 | 0% | 1,958 | 3,186 | +63% | 0 | 0 | — |
case-11 | fail→pass | 11,679 | 3,764 | -68% | 1 | 1 | 0% | 1,883 | 2,981 | +58% | 0 | 0 | — |
case-12 | fail→pass | 9,867 | 4,032 | -59% | 1 | 1 | 0% | 1,474 | 3,048 | +107% | 0 | 0 | — |
case-14 | fail→pass | 10,164 | 7,006 | -31% | 1 | 1 | 0% | 1,548 | 3,510 | +127% | 0 | 0 | — |
case-15 | fail→fail | 10,489 | 5,923 | -44% | 1 | 1 | 0% | 1,641 | 3,436 | +109% | 0 | 0 | — |
case-16 | fail→pass | 11,061 | 5,600 | -49% | 1 | 1 | 0% | 1,629 | 3,287 | +102% | 0 | 0 | — |
case-17 | pass→pass | 11,339 | 5,039 | -56% | 1 | 1 | 0% | 1,765 | 3,290 | +86% | 0 | 0 | — |
case-18 | pass→pass | 6,381 | 3,164 | -50% | 1 | 1 | 0% | 1,070 | 2,922 | +173% | 0 | 0 | — |
case-20 | fail→pass | 15,033 | 4,733 | -69% | 1 | 1 | 0% | 2,149 | 3,249 | +51% | 0 | 0 | — |
case-21 | fail→fail | 10,157 | 5,193 | -49% | 1 | 1 | 0% | 1,716 | 3,302 | +92% | 0 | 0 | — |
case-22 | pass→pass | 9,069 | 3,598 | -60% | 1 | 1 | 0% | 1,430 | 3,040 | +113% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 19 counted toward the lift figure. The other 3 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +50 percentage points is the difference between those two pass rates over the 19 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.