NemoClaw nemoclaw-contributor-create-pr
Create GitHub pull requests that follow the NemoClaw PR template. Use when the user wants to create a new PR, submit code for review, open a pull request, or push changes for review. Trigger keywords - create PR, pull request, new PR, submit for review, open PR, push for review.
git clone https://github.com/NVIDIA/NemoClaw
T=$(mktemp -d) && git clone --depth=1 https://github.com/NVIDIA/NemoClaw "$T" && mkdir -p ~/.claude/skills && cp -r "$T/.agents/skills/nemoclaw-contributor-create-pr" ~/.claude/skills/nvidia-nemoclaw-nemoclaw-contributor-create-pr && rm -rf "$T"
.agents/skills/nemoclaw-contributor-create-pr/SKILL.mdCreate GitHub Pull Request
Create pull requests on the NemoClaw GitHub repository using the
gh CLI. This skill ensures every PR follows the project's PR template exactly.
Prerequisites
- The
CLI must be authenticated (gh
).gh auth status - You must be in the NemoClaw git repository.
- You must have commits on a branch that is pushed to the remote.
Step 1: Verify Branch State
Before creating a PR, verify the branch.
-
Not on main. Never create PRs from main.
git branch --show-current -
Branch has commits ahead of main.
git log main..HEAD --oneline -
Working tree is clean. Stage or stash any uncommitted changes first.
git status
Step 2: Run Pre-PR Checks
Run both checks and confirm they pass before proceeding. Do not skip this step.
npx prek run --all-files npm test
If either fails, fix the issues before creating the PR.
Step 3: Push the Branch
Ensure the branch is pushed to the remote.
git push -u origin HEAD
Step 4: Determine PR Metadata
Title
PR titles must follow Conventional Commits format:
<type>(<scope>): <description>
Types:
feat, fix, docs, chore, refactor, test, ci, perf
Scope is typically the component name (e.g.,
cli, blueprint, plugin, policy, docs).
Examples:
feat(cli): add offline mode for onboardingfix(blueprint): prevent SSRF bypass via redirectdocs: update quickstart for Windows prerequisites
Type of Change
Determine which type applies based on the diff:
- Code change for a new feature, bug fix, or refactor — most PRs.
- Code change with doc updates — code plus changes under
.docs/ - Doc only, prose changes without code sample modifications — only Markdown prose.
- Doc only, includes code sample changes — doc changes that modify fenced code blocks.
Related Issue
Check the branch name and commit messages for issue references. If an issue exists, use
Fixes #NNN or Closes #NNN.
DCO Sign-Off
The PR body must include a DCO sign-off line. Determine the user's name and email from git config:
git config user.name git config user.email
Step 5: Compose the PR Body
Use the exact template structure below. Fill in each section based on the diff (
git diff main...HEAD). Check the applicable boxes and leave others unchecked. Do not add, remove, or reorganize sections.
## Summary <!-- 1-3 sentences: what this PR does and why. --> ## Related Issue <!-- Fixes #NNN or Closes #NNN. Remove this section if none. --> ## Changes <!-- Bullet list of key changes. --> ## Type of Change - [ ] Code change (feature, bug fix, or refactor) - [ ] Code change with doc updates - [ ] Doc only (prose changes, no code sample modifications) - [ ] Doc only (includes code sample changes) ## Verification <!-- Check each item you ran and confirmed. Leave unchecked items you skipped. --> - [ ] `npx prek run --all-files` passes - [ ] `npm test` passes - [ ] Tests added or updated for new or changed behavior - [ ] No secrets, API keys, or credentials committed - [ ] Docs updated for user-facing behavior changes - [ ] `make docs` builds without warnings (doc changes only) - [ ] Doc pages follow the [style guide](https://github.com/NVIDIA/NemoClaw/blob/main/docs/CONTRIBUTING.md) (doc changes only) - [ ] New doc pages include SPDX header and frontmatter (new pages only) ## AI Disclosure <!-- If an AI agent authored or co-authored this PR, check the box and name the tool. Remove this section for fully human-authored PRs. --> - [ ] AI-assisted — tool: <!-- e.g., Claude Code, Cursor, GitHub Copilot --> --- <!-- DCO sign-off required by CI. Run: git config user.name && git config user.email --> Signed-off-by: {name} <{email}>
Populating the Template
Follow these rules when filling in the template:
- Summary: Write 1-3 sentences describing what the PR does and why. Derive this from the commit messages and diff, not from generic descriptions.
- Related Issue: Include
orFixes #NNN
if an issue exists. Remove the section entirely if there is no related issue.Closes #NNN - Changes: Bullet list of key changes. Be specific — reference file names, commands, or behaviors that changed.
- Type of Change: Check exactly one box. Use
for checked,[x]
for unchecked.[ ] - Verification: Check only the boxes for steps you actually ran and confirmed passing. Do not check boxes for steps you skipped or did not verify.
- AI Disclosure: As an AI agent, always check this box and name yourself (e.g., "Claude Code", "Cursor"). Do not remove this section. (Note: Human contributors may remove this section if the PR is fully human-authored.)
- DCO Sign-Off: Replace
and{name}
with values from{email}
andgit config user.name
.git config user.email
Step 6: Create the PR
Use
gh pr create with the --assignee @me flag and a HEREDOC for the body to preserve formatting.
gh pr create \ --title "<type>(<scope>): <description>" \ --assignee "@me" \ --body "$(cat <<'EOF' <full PR body from Step 5> EOF )"
Labels
Add labels when applicable:
--label "documentation" # for doc-only or doc-inclusive PRs --label "topic:security" # for security-related changes
Draft PRs
For work-in-progress that is not ready for review:
gh pr create --draft --title "..." --assignee "@me" --body "..."
Step 7: Report the Result
After the PR is created, display the PR URL as a clickable markdown link:
Created PR [#NNN](https://github.com/NVIDIA/NemoClaw/pull/NNN)
Common Mistakes to Avoid
- Do not invent your own PR body format. Use the template from Step 5 exactly.
- Do not omit sections. Even if a section is not applicable, keep it with the "Skip if..." comment.
- Do not check boxes for steps you did not run. If you did not run
, leave that box unchecked.make docs - Do not forget the DCO sign-off. CI will reject the PR without it.
- Do not forget
. Every PR must be assigned to its creator.--assignee @me - Do not create PRs from main. Always use a feature branch.