fix-compat-api
根据 PR 链接、GitHub Actions 链接或 review/comment 链接定位问题并修复 Paddle C++ compat 接口。Use when: 需要按外部链接驱动修复 c10/ATen/torch 兼容层接口并完成编译、测试和回归。
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
根据 PR 链接、GitHub Actions 链接或 review/comment 链接定位问题并修复 Paddle C++ compat 接口。Use when: 需要按外部链接驱动修复 c10/ATen/torch 兼容层接口并完成编译、测试和回归。
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
循环新增 Paddle 对 PyTorch C++ 兼容接口。Use when: 有新增 PyTorch C++ API 需求时,在 Paddle compat 层新增接口与测试,并执行双仓编译、ctest、wheel 安装和回归验证。
定期触发验证并自动更新 API 映射表。基于 verify_api_mapping.py 全量验证,检测分类漂移,自动修复高置信度问题,低置信度进入Agent 审核队列。
按需验证单个或批次 API 的映射准确性,基于 Step 2-1 追踪方法深入 PyTorch 实现链路。支持发现问题、给出修复建议、执行修复。
编写或更新 Paddle 与 PyTorch C++ API 兼容性文档。Use when: 添加兼容文档、补充 API 对比表、补全兼容性统计、拆分 typeid 类级文档、统一文档格式。
编写或更新 Paddle 与 PyTorch C++ API 兼容性文档。Use when: 添加兼容文档、补充 API 对比表、补全兼容性统计、拆分 typeid 类级文档、统一文档格式。
PaddlePaddle 与 PyTorch C++ API 兼容性测试开发规范。适用于:编写或扩展 test/ 目录下的兼容性测试、验证 Paddle 兼容层与 PyTorch 同一 API 的行为一致性、定位接口输出差异、新增算子测试、覆盖 Shape/Dtype/值域/API 变体。Use when: writing compatibility tests, adding operator tests, checking ATen/c10 API behavior differences between Paddle and PyTorch.
SOC 직업 분류 기준
| name | fix-compat-api |
| description | 根据 PR 链接、GitHub Actions 链接或 review/comment 链接定位问题并修复 Paddle C++ compat 接口。Use when: 需要按外部链接驱动修复 c10/ATen/torch 兼容层接口并完成编译、测试和回归。 |
| argument-hint | 传入一个链接(PR / Actions / review comment)与仓库路径参数 |
根据外部链接定位兼容性问题来源,执行最小修复并完成验证闭环。
流程参考 ~/Paddle/.humanize 中的兼容修复实践。
INPUT_LINK: 必填。三选一:
https://github.com/<org>/<repo>/pull/<number>https://github.com/<org>/<repo>/actions/runs/<run_id>https://github.com/<org>/<repo>/pull/<number>#discussion_r...https://github.com/<org>/<repo>/pull/<number>/files#r...https://github.com/<org>/<repo>/pull/<number>#issuecomment-...PADDLE_ROOT: 默认 ~/PaddlePYTORCH_ROOT: 默认 ~/pytorchPCAT_ROOT: 默认 ~/PaddleCppAPITestTORCH_DIR: 默认 ~/libtorch建议先设置:
PADDLE_ROOT=~/Paddle
PYTORCH_ROOT=~/pytorch
PCAT_ROOT=~/PaddleCppAPITest
TORCH_DIR=~/libtorch
paddle/phi/api/include/compat、test/cpp/compat)若 Step 1 解析后发现链接所指根因是 "Paddle 侧完全没有该接口"
(而非行为不一致),本 skill 不直接走 Step 2–5。
请退出当前 fix 循环,改用 add-compat-api skill
启动新增循环。add-compat-api 完成后,回到本 skill 重新输入原链接,
验证问题是否消失。
本引用为说明性引用,不会自动触发
add-compat-api——避免一次输入 同时启动两条驱动型循环造成递归。请用户/Claude 明确在两个 skill 间切换。
进入主流程之前,按以下顺序检测并按需配置环境。完整命令模板与 fallback 决策见 ../add-compat-api/references/Step0.md(与 add-compat-api 共享同一份 references)。
nvidia-smi)origin/upstream)pip install,因为版本须与 Paddle build 输出一致)安全约定:克隆、下载、
pip install这类"本地、可逆"操作可在用户已知意图下直接执行;但不要主动改用户已存在仓库的remote(remote 是用户工作流,意外覆盖会丢失工作)。
$PYTORCH_ROOT 查找目标接口声明与实现修改 compat 接口实现:$PADDLE_ROOT/paddle/phi/api/include/compat
新增或补充测试:$PADDLE_ROOT/test/cpp/compat
若本轮修复涉及 $PCAT_ROOT/test 下用例(链接指向 result_cmp diff、
或修复改变了输出格式 / dtype / 异常路径),按统一规范扩写或新增。
测试规范见 compatibility-testing,
本文档不复述。
调用该 skill 时传入:
PCAT_ROOT=$PCAT_ROOTdtype 推导 / 异常路径 / shape 边界 / API 变体 等$PCAT_ROOT/test/<分类>/<OpName>Test.cpp返回后只针对修复点新增最小化用例,不重排无关测试。
必要时补充 $PCAT_ROOT/test 下其余兼容回归用例
(按上一调用返回的 checklist 自检强制项)。
cd "$PADDLE_ROOT/build"
ninja -j"$(nproc)"
ctest -R "ATen|c10|torch"
pip install "$PADDLE_ROOT"/build/python/dist/*.whl --force-reinstall --no-deps
cd "$PCAT_ROOT/build"
cmake .. -DTORCH_DIR="$TORCH_DIR" -DENABLE_COVERAGE=ON -G Ninja
ninja -j"$(nproc)"
cd "$PCAT_ROOT"
bash test/result_cmp.sh ./build/
同时满足以下条件才算完成:
$PADDLE_ROOT/build 下 ninja -j"$(nproc)" 成功ctest -R "ATen|c10|torch" 全部通过$PCAT_ROOT 下 bash test/result_cmp.sh ./build/ 中相关用例通过完成后更新文档(固定写入 $PCAT_ROOT/doc/ 对应专题文档):
## Compat 修复记录(YYYY-MM-DD)
### 1) 输入链接
- 链接类型:PR / Actions / review comment
- 原始链接:
- 关联 PR(如可定位):
### 2) 问题与根因
- 问题接口:
- 触发场景:
- 根因说明:
### 3) 修复内容
- Paddle compat 改动文件:
- 新增/修改测试:
- PyTorch 对齐依据:
### 4) 验证结果
- ninja:通过/失败
- ctest -R "ATen|c10|torch":通过/失败
- result_cmp:通过/失败
### 5) 风险与后续
- 已知风险:
- 后续待办:
按上节"Compat 修复记录"模板填好五段后,调用 compat-doc-authoring 完成入库与格式校验。
调用该 skill 时传入:
PCAT_ROOT=$PCAT_ROOTappend-to-existing$PCAT_ROOT/doc/<topic>.mdCompat 修复记录下游会做的事:
🔧 ↔ ✅),由下游负责改表## 兼容性统计 数字闭环验证通过且文档已回填后,按以下流程提交。完整命令模板见 ../add-compat-api/references/Step7.md(与 add-compat-api 共享同一份 references)。
git checkout develop && git pull --ff-only origin develop && git checkout -b fix/<pr-or-issue-num>-<YYYYMMDD>)[Cpp API Compatibility] <Compat 修复记录标题>)git push origin <branch>——这是发出去的动作,push 前必须明确询问用户)gh pr create 到 upstream(--repo PaddlePaddle/Paddle --base develop——同样需要用户确认;若本轮修复源自外部 PR/Actions/comment 链接,PR 描述里应引用原链接便于追溯)$PCAT_ROOT 上重复 1-4 步,--repo PFCCLab/PaddleCppAPITest --base mastergh pr checks <PR_NUM> --watch)
../add-compat-api/references/Step7.md 第 6 节):
Step 2 修复;同一分支上 commit + push(push 仍需用户同意),PR 自动更新,不发新 PRgh pr comment <PR_NUM> --body "/re-run all-failed" 重新触发 CI,回到本步骤继续 watch安全约定:
git push与gh pr create每一次执行前必须征求用户同意(不是"在整个 Step 7 开始时一次性确认",而是这两条命令各确认一次)。修复后的 push 同样适用——同一分支不豁免。这与系统提示"对影响他人的动作要逐次确认"一致。
ctest 或 result_cmp 直接结束