Create a pull request for the current branch. Handles uncommitted changes, generates a PR title matching the `[{modules}] {type}: {description}` format enforced by CI, and fills in the PR description template. Trigger: 'create pr', 'open pr', 'submit pr', 'make pr'.
80
100%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
Minimize confirmations. The only user confirmation is for uncommitted changes (Step 1.3). Everything after that — drafting, writing file, pushing, creating PR — runs automatically. Tool-level permission prompts (file write, git push) serve as implicit confirmation; do not add extra "are you sure?" pauses on top.
Identify current branch:
git branch --show-currentIf on main — stop and ask the user to create a feature branch first.
Determine base branch: use main unless the user specifies otherwise.
Check for uncommitted changes (only confirmation point):
git status
git diff --statIf there are staged or unstaged changes, show a summary and ask the user:
"There are uncommitted changes. Commit them before creating the PR?"
make quality, stage relevant files (skip .env, credentials, large binaries), commit.make quality fails: stop and report errors.Check for existing PR on this branch:
gh pr view --json number,title,body 2>/dev/nullNote the PR number if one exists.
Check commits ahead of base:
git log origin/main..HEAD --onelineIf the branch has no commits ahead of main, stop — nothing to open a PR for.
Collect the full diff against the base branch:
git diff main...HEAD
git log main..HEAD --onelineIdentify affected modules by mapping changed file paths to allowed module names:
| Path prefix | Module |
|---|---|
veomni/models/ | model |
veomni/trainer/ | trainer |
veomni/data/ | data |
veomni/distributed/ | dist |
veomni/parallel/ | parallel |
veomni/ops/ | ops |
veomni/checkpoint/ | ckpt |
veomni/optim/ | optim |
veomni/logging/ | logging |
veomni/lora/ | lora |
configs/ | config |
docs/ | docs |
tests/, .github/workflows/ | ci |
docker/ | docker |
tasks/ | task |
veomni/omni/ | omni |
.agents/ | agent |
| other / mixed | misc |
Allowed modules: misc, ci, config, docs, data, dist, omni, logging, model, optim, ckpt, release, task, perf, ops, parallel, docker, trainer, agent, lora
Determine change type:
| Type | When |
|---|---|
feat | New functionality or capability |
fix | Bug fix |
refactor | Same behavior, better structure |
chore | Maintenance, cleanup, config changes |
test | Test-only changes |
Draft PR title in [{modules}] {type}: {description} format:
[model, data] feat: ...[BREAKING].github/workflows/check_pr_title.ymlDraft PR description following .github/PULL_REQUEST_TEMPLATE.md.
Write to .pr-drafts/ (already in .gitignore):
mkdir -p .pr-draftsFilename convention:
.pr-drafts/<pr-number>.md (e.g. .pr-drafts/123.md).pr-drafts/<branch-name>.md — renamed to PR# after creation.File format — first line is the PR title, blank line, then the description body:
[model] feat: add support for Qwen4
### What does this PR do?
> Summary here.
### Checklist Before Starting
- Search for relative PRs/issues and link here: ...
- PR title follows `[{modules}] {type}: {description}` format
### Test
> Test description here.
### API and Usage Example
> N/A
### Design & Code Changes
> - Change 1
> - Change 2
### Checklist Before Submitting
- [ ] Read the [Contribute Guide](https://github.com/ByteDance-Seed/VeOmni/blob/main/CONTRIBUTING.md)
- [ ] Applied pre-commit checks
- [ ] Added/updated documentation
- [ ] Added tests to CI workflow (or explained why not feasible)Tell the user the draft file path (so they know where to find it if they want to review later).
Push the branch:
git push -u origin HEADCreate or update:
--body-file to avoid shell escaping issues):
# Extract body from draft file (everything after the first blank line)
tail -n +3 .pr-drafts/<branch-name>.md > /tmp/pr-body.md
gh pr create --base <base-branch> --title "<title>" --body-file /tmp/pr-body.md<branch-name>.md to <pr-number>.md.tail -n +3 .pr-drafts/<pr-number>.md > /tmp/pr-body.md
gh pr edit <pr-number> --title "<title>" --body-file /tmp/pr-body.mdOutput the PR URL and the draft file path.
.env, credentials, large binaries and warn the user.9ff4858
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.