dart-backport-pr
GitHub自动化将已合并至 main 的 PR 或提交 Cherry-pick 到发布分支,包含冲突检查、Changelog 决策及 lint 验证,确保向后兼容发布的正确性。
Trigger Scenarios
Install
npx skills add dartsim/dart --skill dart-backport-pr -g -y
SKILL.md
Frontmatter
{
"name": "dart-backport-pr",
"description": "DART Backport PR: backport a merged main PR to a release branch"
}
dart-backport-pr
Use this skill in Codex to run the DART dart-backport-pr workflow. The editable
workflow source lives in .claude/commands/; this file is its generated adapter
in the shared .agents/skills/ catalog.
Invocation
- Claude Code/OpenCode:
/dart-backport-pr <arguments> - Codex:
$dart-backport-pr <arguments>
Treat the text after the skill name as $ARGUMENTS. When the workflow
references $1, $2, etc., map those to the positional values supplied by the
user.
Command Body
Backport PR or commits: $ARGUMENTS
Required Reading
@AGENTS.md @docs/onboarding/contributing.md @docs/onboarding/release-management.md @docs/onboarding/changelog.md
Workflow
For a source change that depends on 3D structure or behavior, use the target
branch's dart-verify-sim workflow to preserve the text oracle and assessed
visual evidence, or record why the target branch cannot render the claim.
- Verify the source PR or commit is merged to
main:gh pr view <SOURCE_PR> --json state,mergedAt,baseRefName,mergeCommit - Check whether an equivalent change already exists on the release branch:
git fetch origin <RELEASE_BRANCH> main git cherry -v --abbrev=40 origin/<RELEASE_BRANCH> origin/main | grep <COMMIT_HASH> - For AI-infra or workflow-doc backports, compare the release branch capability
inventory and adapter directories against
main. If the release branch has a smaller workflow surface, adapt to the release branch instead of importing main-only workflows. - Create a release branch from the release target without resetting an
existing local branch:
BRANCH=backport/<SOURCE_PR>-to-<RELEASE_BRANCH> if git show-ref --verify --quiet "refs/heads/$BRANCH"; then if [ -n "$(git status --short)" ] || [ "$(git rev-parse "$BRANCH")" \ != "$(git rev-parse "origin/<RELEASE_BRANCH>")" ]; then echo "existing $BRANCH is dirty or diverges from the release tip" >&2 exit 1 # stop and ask before resetting or cherry-picking onto it fi git switch "$BRANCH" else git switch --no-track -c "$BRANCH" origin/<RELEASE_BRANCH> fi - Cherry-pick with provenance:
git cherry-pick -x <COMMIT_HASH>. - Resolve conflicts minimally; stop and ask if conflicts are broad or change behavior.
- Run
/dart-changelog decideor$dart-changelog decideagainst the backport diff and release target before opening the backport PR. If an entry is required but needs the backport PR number, draft the decision and keep the finalize/update follow-up local until explicit approval permits another push. Do not skip the changelog decision just because this is a backport. - Run
pixi run lintand the smallest relevant release-branch checks. - Ask for explicit maintainer/user approval before pushing or opening the PR. After approval, open the PR against the release branch with milestone matching that release branch and use the PR template.
Output
- Backport PR URL
- Source PR/commit
- Conflicts resolved, if any
- Changelog decision
- Checks run and CI status
Version History
-
bcd584e
Current 2026-09-02 23:39
更新触发条件:针对涉及模型/场景结构、物理行为或 GUI 输出的变更,强制使用目标分支的 dart-verify-sim 工作流以保留视觉证据;新增对 AI-infra 和 workflow-doc 类型 backport 的能力库存对比逻辑。
- b9fbefc 2026-07-19 11:29


