Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
e9296f6
feat(security): onboard security-suite (secret + CodeQL) scanning. (#…
gmanal Aug 11, 2026
844124c
fix(cuda.core): avoid truncating graph queries (#2587)
yimoj Aug 11, 2026
a14557b
ci: add selective wheel build plumbing (#2464)
kkraus14 Aug 12, 2026
b5fbaa6
Fix Windows binary utility discovery on Arm64 (#2586)
isVoid Aug 12, 2026
3cd31be
Use pathlib in cuda.pathfinder._static_libs (part 2 of #2410) (#2493)
LeSingh1 Aug 12, 2026
7c9dc09
chore: fix Apache-2.0 license notice and attribution gaps (#2605)
rparolin Aug 12, 2026
bf366e4
Use pathlib in toolshed and ci helper scripts (part 7 of #2410) (#2496)
LeSingh1 Aug 12, 2026
231100b
Fix operator precedence in test_cudart.supportsCudaAPI (#2554)
LeSingh1 Aug 12, 2026
ffb776c
Catch up to current generator main (#2603)
mdboom Aug 13, 2026
8e34ede
Fix the field-id enum name in the nvml test helper supports_nvlink (#…
LeSingh1 Aug 13, 2026
21c4b70
fix(core): don't crash `import cuda.core` on a non-integer opt-out va…
LeSingh1 Aug 13, 2026
b448d2f
PERF: Inline return code checks in cuda_core (#2608)
mdboom Aug 13, 2026
9c7f19d
test: skip LatchKernel event test without __nanosleep (#2611)
rluo8 Aug 13, 2026
2ea2302
docs(cuda.core): use PEP 604 unions in docstrings (#2601)
aryanputta Aug 13, 2026
e353f29
Use subtests where appropriate everywhere (#2391)
mdboom Aug 13, 2026
635bfb1
[no-ci] Support organization-owned forks in AGENTS.md (#2378)
rwgk Aug 13, 2026
b8a255d
Do not report a registered type as "Unknown type" in get_cuda_native_…
LeSingh1 Aug 13, 2026
b1c5024
Resolve BENCH_DIR at call time in the benchmark runner's main() (#2563)
LeSingh1 Aug 13, 2026
29acb74
cuda.core: Add copy_batch to cuda.core.utils (#2593)
juenglin Aug 13, 2026
8457bb0
fix(cuda.bindings): make cythonization warning-clean and enable -Werr…
atiaomar1978-hub Aug 13, 2026
bc2e590
fix(toolshed): accept `//` seals so C/C++ generated files can be seal…
LeSingh1 Aug 13, 2026
c78c596
ci: add selective sdist build plumbing (#2465)
kkraus14 Aug 13, 2026
4736d4a
cuda.core: capture complete Buffer deallocation recipe at creation (#…
Andy-Jost Aug 13, 2026
e3ff57c
cuda.core: minor refactoring to prepare for copy with options (#2618)
juenglin Aug 14, 2026
3a839b0
ci: add selective wheel test plumbing (#2466)
kkraus14 Aug 14, 2026
a6ca4f9
Merge remote-tracking branch 'upstream/main' into 13.4.x-merge-main-c…
rwgk Aug 14, 2026
f08474b
ci: Skip pixi CUDA version check for 13.4.x
rwgk Aug 14, 2026
d31a58c
Regenerate CUDA 13.4 bindings with current cybind
rwgk Aug 14, 2026
5830ba7
Avoid aggregate CUmemLocation initialization
rwgk Aug 14, 2026
24fd7b0
Regenerate cuda.core stubs after main merge
rwgk Aug 14, 2026
df5356d
Fix clock event coverage with older bindings
rwgk Aug 15, 2026
1ebebc5
Harden prior-branch artifact lookup
rwgk Aug 15, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
127 changes: 127 additions & 0 deletions .agents/skills/create-cuda-python-pull-request/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,127 @@
---
name: create-cuda-python-pull-request
description: Create a CUDA Python pull request from an approved personal or organization-owned fork, including the GitHub CLI GraphQL fallback for renamed organization-owned forks. Use when the user directly requests creating or opening a CUDA Python pull request. Do not use for local implementation, commits, pushes, branch preparation, PR advice, or general GitHub work without that direct request.
---

# Create CUDA Python Pull Request

This skill supplies technical procedure after the user directly asks to create
a pull request. It does not define when a pull request should be created or
authorize one without that direct request. Do not infer the request from
completed work, a local commit, a push request, or the existence of a suitable
fork.

## Inspect the topology and proposed change

1. Run `git status --short --branch`, inspect the branch diff, and confirm the
intended base branch.
2. Run `git remote -v` and resolve the complete `OWNER/REPOSITORY` names of the
base repository and intended fork. Do not rely on remote names alone.
3. Confirm through GitHub that the push target is a fork of the base repository
and is not the base repository itself.
4. Confirm that the intended push target complies with the repository's
remote-write policy and the user's request.
5. Inspect the repository's pull-request template, available labels, and open
milestones. Do not guess required metadata; ask the user when it is unclear.

## Validate and push

Run the checks appropriate to the change and review the final diff. Push the
current branch to the approved fork using the explicit remote and branch:

```bash
git push <fork-remote> <branch>
```

## Create the pull request

Prepare a complete body from the repository's pull-request template. Every
pull request must have at least one assignee, one label, and a milestone; CI
enforces this through `pr-metadata-check`.

Use `gh pr create` when it can identify the fork unambiguously. Select the base
repository and branch explicitly and supply the required metadata:

```bash
gh pr create \
--repo <base-owner>/<base-repository> \
--base <base-branch> \
--head <fork-owner>:<head-branch> \
--title "<title>" \
--body-file <path-to-pr-body> \
--assignee <assignee> \
--label <label> \
--milestone <milestone>
```

Add `--draft` when the user requests a draft pull request.

## Handle renamed organization-owned forks

[GitHub CLI issue cli/cli#10093](https://github.com/cli/cli/issues/10093)
tracks `gh pr create` support for cross-repository pull requests within one
organization. Check whether the issue has been resolved before using the
workaround.

If `gh pr create` cannot identify an organization-owned fork whose repository
name differs from the base repository, create the pull request with GitHub's
GraphQL API and pass `headRepositoryId` explicitly.

Resolve the repository node IDs:

```bash
BASE_REPO="<base-owner>/<base-repository>"
HEAD_REPO="<fork-owner>/<fork-repository>"
BASE_REPO_ID="$(gh api "repos/${BASE_REPO}" --jq '.node_id')"
HEAD_REPO_ID="$(gh api "repos/${HEAD_REPO}" --jq '.node_id')"
```

Create the pull request. Set `draft` to match the user's request.

```bash
gh api graphql \
-f repositoryId="${BASE_REPO_ID}" \
-f headRepositoryId="${HEAD_REPO_ID}" \
-f baseRefName="<base-branch>" \
-f headRefName="<head-branch>" \
-f title="<title>" \
-F body="@<path-to-pr-body>" \
-F draft=false \
-f query='
mutation CreatePullRequest(
$repositoryId: ID!
$headRepositoryId: ID!
$baseRefName: String!
$headRefName: String!
$title: String!
$body: String!
$draft: Boolean!
) {
createPullRequest(input: {
repositoryId: $repositoryId
headRepositoryId: $headRepositoryId
baseRefName: $baseRefName
headRefName: $headRefName
title: $title
body: $body
draft: $draft
}) {
pullRequest { number url }
}
}' \
--jq '.data.createPullRequest.pullRequest'
```

The GraphQL API does not populate the pull-request template automatically.
After creation, add the required metadata to the returned pull-request number:

```bash
gh pr edit <pr-number> \
--repo "${BASE_REPO}" \
--add-assignee "<assignee>" \
--add-label "<label>" \
--milestone "<milestone>"
```

Verify the resulting URL, base branch, head repository and branch, draft state,
body, assignee, label, and milestone before reporting completion.
10 changes: 10 additions & 0 deletions .agents/skills/create-cuda-python-pull-request/agents/openai.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
#
# SPDX-License-Identifier: Apache-2.0

interface:
display_name: "Create CUDA Python PR"
short_description: "Open an explicitly requested CUDA Python pull request"
default_prompt: "Use $create-cuda-python-pull-request to create the CUDA Python pull request I explicitly requested."
policy:
allow_implicit_invocation: true
Loading
Loading