بنقرة واحدة
create-pr
负责《Paddle API 对齐 PyTorch 项目》中代码提交,分别对 Paddle、PaConvert、Docs 三个仓库创建或更新 Pull Request
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
负责《Paddle API 对齐 PyTorch 项目》中代码提交,分别对 Paddle、PaConvert、Docs 三个仓库创建或更新 Pull Request
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
负责《Paddle API 对齐 PyTorch 项目》中 Step2 代码修改,实施『C++下沉』方案。通过将 Python API 下沉至 C++层,可以减少 Python 装饰器带来的性能开销,提升 API 调度效率。
负责《Paddle API 对齐 PyTorch 项目》中 Step5 更新文档,在 API 代码修改完成后,同步更新中文 API 文档,确保文档准确反映 API 的最新行为
负责《Paddle API 对齐 PyTorch 项目》中 Step2 代码修改,实施『新增 API』方案。通过新增 Paddle API(新增 API 别名、新增 Python 层 API、新增 C++算子),覆盖 Pytorch API 调用路径,实现与 PyTorch API 行为对齐。
负责《Paddle API 对齐 PyTorch 项目》中 Step2 代码修改,实施『新增 compat 类型 API』方案。在 `paddle.compat` 命名空间下新增 API,实现与 PyTorch API 行为对齐。
开展《Paddle API 对齐 PyTorch 项目》,负责项目整体统筹规划,调用多个 skill,完成输入的 API 对齐
负责《Paddle API 对齐 PyTorch 项目》中 Step3 兼容测试,为已修改的 Paddle API 添加兼容性单测并执行验证,确保 API 的 Paddle 用法与 PyTorch 用法均能正常工作。
استنادا إلى تصنيف SOC المهني
| name | create-pr |
| description | 负责《Paddle API 对齐 PyTorch 项目》中代码提交,分别对 Paddle、PaConvert、Docs 三个仓库创建或更新 Pull Request |
| disable-model-invocation | false |
ROOT_DIR 变量定义:
${ROOT_DIR} 是项目的根工作目录变量,例如 /workspace、/home/user/projects 等${ROOT_DIR} 替换为实际路径该 skill 负责将三个代码库中的改动提交到远程仓库,并创建或更新 Pull Request:
| 本地目录 | 远程仓库 | 内容说明 | Base 分支 |
|---|---|---|---|
${ROOT_DIR}/Paddle | https://github.com/PaddlePaddle/Paddle | Paddle API 代码实现 | develop |
${ROOT_DIR}/docs | https://github.com/PaddlePaddle/docs | 中文 API 文档 | develop |
${ROOT_DIR}/PaConvert | https://github.com/PaddlePaddle/PaConvert | PyTorch 兼容性测试 | master |
从以下各个渠道获取 API 名单并取并集:
从以下来源获取 API 名单:
torch.relu、torch.sigmoid、torch.tanh 等直接分析仓库代码改动:
# 从 Paddle 仓库分析
git -C ${ROOT_DIR}/Paddle diff origin/develop -- '*.py' | grep -E "^\+.*def|^\+.*class"
git -C ${ROOT_DIR}/Paddle diff origin/develop -- python_api_info.yaml
# 从 PaConvert 仓库分析
git -C ${ROOT_DIR}/PaConvert diff origin/master -- api_mapping.json | grep -E "ChangePrefixMatcher|torch\."
将各渠道获取的 API 名单取并集,确保不重复,生成最终的统一 API 名单。
格式要求:
api_name_1/api_name_2/api_name_3/...torch.api_name三个仓库的本地目录名称分别为 Paddle、PaConvert、docs,分别检查三个仓库是否有未提交的改动:
git -C ${ROOT_DIR}/Paddle status --untracked-files=no
git -C ${ROOT_DIR}/PaConvert status --untracked-files=no
git -C ${ROOT_DIR}/docs status --untracked-files=no
重要约束:
仅对有代码改动的仓库执行以下操作。
执行顺序:Paddle → Docs → PaConvert(必须严格按此顺序执行)
# ===== Paddle 仓库 =====
git -C ${ROOT_DIR}/Paddle add -u
git -C ${ROOT_DIR}/Paddle commit -m "$(cat <<'EOF'
[API Compatibility] api_name_1/api_name_2/api_name_3/... Edit By AI Agent
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
EOF
)"
# 等待 pre-commit hook 完成
# 如果 pre-commit 失败,修复问题后重新 add 和 commit
# ===== docs 仓库 =====
git -C ${ROOT_DIR}/docs add -u
git -C ${ROOT_DIR}/docs commit -m "$(cat <<'EOF'
[API Compatibility] api_name_1/api_name_2/api_name_3/... Edit By AI Agent
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
EOF
)"
# 等待 pre-commit hook 完成
# 如果 pre-commit 失败,修复问题后重新 add 和 commit
# ===== PaConvert 仓库 =====
git -C ${ROOT_DIR}/PaConvert add -u
git -C ${ROOT_DIR}/PaConvert commit -m "$(cat <<'EOF'
[API Compatibility] api_name_1/api_name_2/api_name_3/... Edit By AI Agent
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
EOF
)"
# 等待 pre-commit hook 完成
# 如果 pre-commit 失败,修复问题后重新 add 和 commit
注意:将 api_name_1/api_name_2/... 替换为 Step 1 确认的实际 API 名单。
仅对有代码改动的仓库执行推送操作。
执行顺序:Paddle → Docs → PaConvert
# Paddle 仓库
git -C ${ROOT_DIR}/Paddle push upstream develop:claude -f
# docs 仓库
git -C ${ROOT_DIR}/docs push upstream develop:claude -f
# PaConvert 仓库
git -C ${ROOT_DIR}/PaConvert push upstream master:claude -f
推送完成后,检查各仓库的 claude 分支是否已存在打开的 PR:
# Paddle 仓库
gh pr list --repo PaddlePaddle/Paddle --head claude --state open --json number,title,url
# docs 仓库
gh pr list --repo PaddlePaddle/docs --head claude --state open --json number,title,url
# PaConvert 仓库
gh pr list --repo PaddlePaddle/PaConvert --head claude --state open --json number,title,url
记录结果:
number 不为空):记录 PR 号,该仓库需要更新 PR[]:该仓库需要创建新 PR根据 Step 5 的检查结果,对有代码改动的仓库执行相应操作。
PR 创建的依赖关系:
因此执行顺序必须是:Paddle PR → Docs PR → PaConvert PR
若仓库已有 PR,执行更新操作:
# Paddle PR 更新
gh pr edit {paddle_pr_number} --repo PaddlePaddle/Paddle \
--title "[API Compatibility] api_name_1/api_name_2/api_name_3/... Edit By AI Agent" \
--body "$(cat <<'EOF'
### PR Category
User Experience
### PR Types
Improvements
### Description
**API Compatibility Edit By AI Agent:**
- `torch.api_name_1`
- `torch.api_name_2`
- ...
### 是否引起精度变化
否
EOF
)"
# Docs PR 更新(依赖 Paddle PR 号)
gh pr edit {docs_pr_number} --repo PaddlePaddle/docs \
--title "[API Compatibility] api_name_1/api_name_2/api_name_3/... Edit By AI Agent" \
--body "$(cat <<'EOF'
**API Compatibility Edit By AI Agent:**
- `torch.api_name_1`
- `torch.api_name_2`
- ...
https://github.com/PaddlePaddle/Paddle/pull/{paddle_pr_number}
EOF
)"
# PaConvert PR 更新(依赖 Docs 和 Paddle PR 号)
gh pr edit {paconvert_pr_number} --repo PaddlePaddle/PaConvert \
--title "[API Compatibility] api_name_1/api_name_2/api_name_3/... Edit By AI Agent" \
--body "$(cat <<'EOF'
### PR Docs
https://github.com/PaddlePaddle/docs/pull/{docs_pr_number}
### PR APIs
**API Compatibility Edit By AI Agent:**
- `torch.api_name_1`
- `torch.api_name_2`
- ...
https://github.com/PaddlePaddle/Paddle/pull/{paddle_pr_number}
EOF
)"
若仓库没有 PR,执行创建操作:
# ===== Paddle PR 创建(无依赖,先创建) =====
gh pr create --repo PaddlePaddle/Paddle --base develop --head zhwesky20:claude \
--title "[API Compatibility] api_name_1/api_name_2/api_name_3/... Edit By AI Agent" \
--body "$(cat <<'EOF'
### PR Category
User Experience
### PR Types
Improvements
### Description
**API Compatibility Edit By AI Agent:**
- `torch.api_name_1`
- `torch.api_name_2`
- ...
### 是否引起精度变化
否
EOF
)"
# 记录返回的 PR 号作为 paddle_pr_number
# ===== Docs PR 创建(依赖 Paddle PR 号) =====
gh pr create --repo PaddlePaddle/docs --base develop --head zhwesky20:claude \
--title "[API Compatibility] api_name_1/api_name_2/api_name_3/... Edit By AI Agent" \
--body "$(cat <<'EOF'
**API Compatibility Edit By AI Agent:**
- `torch.api_name_1`
- `torch.api_name_2`
- ...
https://github.com/PaddlePaddle/Paddle/pull/{paddle_pr_number}
EOF
)"
# 记录返回的 PR 号作为 docs_pr_number
# ===== PaConvert PR 创建(依赖 Docs 和 Paddle PR 号) =====
gh pr create --repo PaddlePaddle/PaConvert --base master --head zhwesky20:claude \
--title "[API Compatibility] api_name_1/api_name_2/api_name_3/... Edit By AI Agent" \
--body "$(cat <<'EOF'
### PR Docs
https://github.com/PaddlePaddle/docs/pull/{docs_pr_number}
### PR APIs
**API Compatibility Edit By AI Agent:**
- `torch.api_name_1`
- `torch.api_name_2`
- ...
https://github.com/PaddlePaddle/Paddle/pull/{paddle_pr_number}
EOF
)"
# 记录返回的 PR 号作为 paconvert_pr_number
若部分仓库已有 PR、部分仓库需要新建,按以下逻辑处理:
| 场景 | 处理方式 |
|---|---|
| Paddle 有 PR,Docs 无 PR | 更新 Paddle PR → 创建 Docs PR(引用 Paddle PR 号) → 处理 PaConvert |
| Paddle 无 PR,Docs 有 PR | 创建 Paddle PR → 更新 Docs PR(更新引用) → 处理 PaConvert |
| 其他组合 | 遵循「Paddle → Docs → PaConvert」顺序,按实际情况更新或创建 |
(待补充)