AGENT SKILL

ort-release-notes

Draft ONNX Runtime release notes using preset configurations for full ORT or scoped component releases. Use when generating highlights with PR links, compiling human contributor acknowledgments from compile_contributors.py output, and applying preset path filtering.

License 许可
MIT
最近更新
2026-11-12
Stars
★ 2.2w
Forks
4.4k

01 前言 Front Matter

name
ort-release-notes
description
Draft ONNX Runtime release notes using preset configurations for full ORT or scoped component releases. Use when generating highlights with PR links, compiling human contributor acknowledgments from compile_contributors.py output, and applying preset path filtering.
argument-hint
preset base_ref target_ref [version] [output_dir]

02 资源文件 1

03 SKILL.md 正文

ONNX Runtime Release Notes

Use this skill to produce a consistent release-note draft from commit history and contributor metadata.

When To Use

Use this skill when you need to:

  • Draft release notes for a full ONNX Runtime release
  • Draft release notes for a scoped component (e.g., in-tree plugin EP) release
  • Select a release profile by preset name instead of manually supplying path/version files
  • Add PR links to highlight bullets
  • Build a human-only contributor acknowledgment list from contributor metadata

Required Inputs

Collect these inputs from the user or infer from context:

  1. preset: release profile name (for example, ort, webgpu-plugin-ep, cuda-plugin-ep)
  2. base_ref: previous release tag
  3. target_ref: release commit/tag/branch tip

Optional inputs:

  • version override
  • output_dir override

Presets

Read preset definitions from presets.json.

The config defines shared output defaults:

  1. outputDirPattern
  2. draftFileName

Each preset defines:

  1. displayName: reader-facing product or component name
  2. versionFile
  3. pathsFile (nullable): file of git pathspecs to filter to, one per line. Use :(top) to anchor an entry at repo root.

Example presets:

  1. ort (full ONNX Runtime)
  2. webgpu-plugin-ep (scoped WebGPU Plugin EP)
  3. cuda-plugin-ep (scoped CUDA Plugin EP)

CUDA Plugin EP Scope

The cuda-plugin-ep preset uses the pathspecs in plugin-ep-cuda/paths.txt to scope release-note changes.

Workflow

  1. Determine release mode.
    • Select preset and load configuration from presets.json.
    • Use the preset's displayName whenever the release-note content names the product or component. The preset key is internal and must not appear in published content.
    • If preset has pathsFile, run in scoped mode. Otherwise run full mode.
  2. Resolve version, in this order:
    1. explicit version input
    2. value from preset versionFile
  3. Resolve output directory, referred to as resolved_output_dir after this step. The output directory contains contributor artifacts and the release notes draft. Resolve it in this order:
    1. explicit output_dir input
    2. shared outputDirPattern rendered with preset name and resolved version
  4. Gather metadata.
    • If the output directory is missing or lacks contributor artifacts, generate them with tools/python/compile_contributors.py.
    • Generation can take a while because it scans commit history and fetches PR metadata.
    • Use --paths-file only when preset has a pathsFile.
    • If existing contributor artifacts are reused, verify resolved_output_dir/logs.txt matches base/target before trusting them.
  5. Read resolved_output_dir/detail.csv as the primary source for PR numbers, titles, authors, target commits, and cherry-pick mapping.
    • Use resolved_output_dir/logs.txt for contributor summary context and base/target verification.
    • Use git log only as a fallback sanity check when artifacts are present but incomplete or suspect.
    • Check PRs with unexpectedly large author lists for rebased history that imported unrelated commits. Replace those authors with the actual PR author or authors before building contributor acknowledgments; do not credit authors solely because they authored an unrelated imported commit. For example, PR #28299, the rebased history contains unrelated commits and co-author metadata.
  6. Build highlight categories.
    • Full ORT example categories: performance, model/operator support, execution providers, API/languages, reliability/security, build/packaging/tooling, docs/dev workflow.
    • Scoped mode: narrow categories to the component domain.
  7. Draft markdown.
    • Write the release-note draft to resolved_output_dir/<draftFileName>.
    • Contents:
      • Intro sentence
      • ## Highlights
      • Inline PR links on every highlight bullet
      • ## Contributors
      • Optional scope note for scoped-component releases
        • Use the preset's reader-facing displayName, not the internal preset key.
        • Describe the scope in reader-facing terms, such as "commits affecting WebGPU Plugin EP code and packaging."
      • AI disclaimer if AI drafted
    • Do not mention presets, pathsFile, configuration files, or other release-note-generation implementation details in the release-note content.
    • Do not refer to the release notes as a "draft" in their content. "Draft" is only an internal workflow and file-naming concept.
  8. Build contributors section.
    • Start from detail.csv output
    • Include humans only
    • Exclude bots/agents (for example: github-actions[bot], app/copilot-swe-agent, claude)
    • Sort alphabetically
  9. Validate draft quality.
    • Every highlight bullet has at least one PR link
    • PRs are traceable to metadata or git history
    • Contributor list is human-only and alphabetical
    • Scope is correct for full vs component release

PowerShell Command Patterns

compile_contributors.py

Full ORT metadata:

python .\tools\python\compile_contributors.py \
  --base <previous_tag> \
  --target <target_ref> \
  --dir <resolved_output_dir>

Scoped metadata:

python .\tools\python\compile_contributors.py \
   --base <previous_tag> \
   --target <target_ref> \
   --dir <resolved_output_dir> \
   --paths-file <paths_file>

Style and Policy

Default policy unless release owners override:

  1. Treat the range as changes since the previous release.
  2. Keep PR links inline with highlight claims.
  3. Keep contributor acknowledgments human-only and best effort.
  4. Include an AI disclaimer when highlights are AI drafted.
  5. Use GitHub Releases pages as preferred style references. E.g., ORT 1.28 release page.
  6. Prefer preset-driven configuration over ad-hoc path/version arguments.
  7. Use a single output_dir for contributor artifacts, logs, and the release-note draft.

04 同仓库更多 Skills

microsoft
microsoft/onnxruntime

workspace-estimation-shared-header

Use when editing a boundary-safe shared header meant to be included by both in-tree and shared-provider/plugin-bridge code (e.g. include/onnxruntime/core/framework/workspace_requirement.h, or any future header supporting OrtKernelWorkspaceEstimateFunc / DeclareWorkspaceRequirements per issue #29775's Phase-A workspace-estimation roadmap), or when a workspace-estimation math helper needs to be callable from a future plugin EP DLL. Covers a Node forward-declaration ODR trap and the math-helper vs. graph-parsing-wrapper reuse boundary discovered while implementing PR #29811 (MatMulNBits pilot).

产品经理
★ 2.2w
microsoft
microsoft/onnxruntime

webgpu-local-testing

Build and run ONNX Runtime WebGPU provider tests on Linux WITHOUT a real GPU, using a software Vulkan adapter (Mesa lavapipe). Use when you need to exercise WebGPU EP kernels off-Mac — the Linux webgpu CI leg is build-only, so software Vulkan is how you actually run WebGPU correctness tests locally. SCOPE - lavapipe only validates host-side enforce/shape bugs and MatMul-free kernels; any graph containing MatMul (including the expanded-Attention node tests) crashes lavapipe and runs ONLY on macOS-arm64 Metal, which is the source of truth for those. Covers install (dnf on Azure Linux), the --use_webgpu build flag, the onnxruntime_provider_test target, VK_ICD_FILENAMES, and the lavapipe MatMul crash gotcha.

测试与质量
★ 2.2w
microsoft
microsoft/onnxruntime

python-kwargs-setattr-security

When reviewing or fixing Python code that uses setattr() with user-controlled kwargs to configure C++ extension objects (SessionOptions, RunOptions, etc.) in ONNX Runtime. Use this to apply the allowlist pattern that prevents arbitrary file writes and other attacks via reflected property access.

★ 2.2w
microsoft
microsoft/onnxruntime

ort-transformers-gpu-pytest

Run the ONNX Runtime transformers Python tests (onnxruntime/test/python/transformers) against a GPU wheel, and confirm real cuDNN/flash SDPA dispatch. Use when a transformers pytest fails with ModuleNotFoundError onnxruntime.capi, when torch's bundled CUDA/cuDNN libs shadow the ORT-built ones (wrong-version dispatch or load errors), or when you must PROVE a test exercised the cuDNN SDPA decode tier instead of silently skipping/falling back to MATH.

★ 2.2w
microsoft
microsoft/onnxruntime

ort-test

Run ONNX Runtime tests. Use this skill when asked to run tests, debug test failures, or find and execute specific test cases in ONNX Runtime.

测试与质量
★ 2.2w
microsoft
microsoft/onnxruntime

ort-lint

Lint and format ONNX Runtime code. Use this skill when asked to lint, format, or check code style for C++ or Python files in ONNX Runtime.

代码审查
★ 2.2w