* Add precision support audit tooling Introduces two slash commands for auditing data-type support across ROCm libraries between releases: - /precision-check: scopes to libraries changed in the manifest diff - /precision-check-delta: scopes to libraries whose source file SHA changed between releases (faster for routine release-over-release use) precision_fetch.py fetches raw source files (RST, C headers) and YAML snapshots from GitHub to /tmp/. The slash commands read them directly and do semantic comparison — no regex parsers. Auto-updates the YAML for unambiguous missing entries; flags ambiguous findings (macro expansion, combination tables, support level mismatches, typedef-only sources) for human review. manifest_diff.py fetches and diffs ROCm manifests between two versions, with branch-first and tag fallback for pre-GA use. Also includes: - .claude/settings.json: pre-approved permissions so the commands run without repeated prompts - tools/autotag/precision-update-log/: gitignored directory for local audit logs - README updates documenting the commands, prerequisites, and how to extend coverage to new libraries * Fix markdown issues * Move precision support scripts to tools/precision-support/ * Fix precision-check command path after script move to tools/precision-support --------- Co-authored-by: Istvan Kiss <[email protected]>
Autotag
Pre-requisites
- Python 3.10
- Create a GitHub Personal Access Token.
- Tested with all the read-only permissions, but public_repo, read:project read:user, and repo:status should be enough.
- Copy the token somewhere safe.
- Configure SSO for this token by authorizing it for the following organizations:
- ROCm-Developer-Tools
- RadeonOpenCompute
- ROCmSoftwarePlatform
Updating the changelog and release notes
IMPORTANT: It is key to update the template Markdown files in
tools/autotag/templates/<name of change type>(eg:5.6.0.md) and not theCHANGELOG.mdorRELEASE.mditself to ensure that updates are not overwritten by the autotag script. The template should only have content from changelogs that are not included by the script to avoid duplicating data.
- Add or update the release specific notes in
tools/autotag/templates/<name of change type> - Ensure the all the repositories have their release specific branch with the updated changelogs
- Run this for 5.6.0 (change for whatever version you require)
GITHUB_ACCESS_TOKEN=my_token_here
To generate the changelog from 5.0.0 up to and including 6.4.0:
python3 tag_script.py -t $GITHUB_ACCESS_TOKEN --no-release --no-pulls --starting-version=5.0.0 --compile_file ../../CHANGELOG.md --branch release/rocm-rel-6.4 6.4.0
To generate the release notes only for 6.4.0:
python3 tag_script.py -t $GITHUB_ACCESS_TOKEN --no-release --no-pulls --compile_file ../../RELEASE.md --branch release/rocm-rel-6.4 6.4.0
Notes
If branch cannot be found, edit default.xml at root. Sometimes the script doesn't know whether to include or exclude an entry for a specific release. Continue this part by accepting (Y) or rejecting (N) entries. The end result should be a newly generated changelog in the project root. If the
--starting-versionflag is not set, the script will not get changelogs from previous versions. Trying to run without a token is possible but GitHub enforces stricter rate limits and is therefore not advised.
- Copy over the first part of the changelog and replace the old release notes in RELEASE.md.
Precision support audit (/precision-check, /precision-check-delta)
Audits data-type support across ROCm libraries between two releases. Uses a hybrid
approach: precision_fetch.py fetches raw source files and YAML snapshots from
GitHub to /tmp/, then Claude reads and compares them semantically via a slash
command — no regex parsers.
Commands
| Command | When to use |
|---|---|
/precision-check PREV CURR |
Full audit — checks all libraries that changed in the manifest |
/precision-check-delta PREV CURR |
SHA-filtered — only checks libraries whose source file itself changed |
Use /precision-check-delta for routine release-to-release audits. Use
/precision-check for a full sweep regardless of source file changes.
Prerequisites
-
Claude Code installed and running in this repo.
-
$GITHUB_TOKENset to a GitHub Personal Access Token with read access to the ROCm org. Add it to your shell profile or pass it inline:export GITHUB_TOKEN=your_token_here
Running an audit
Open Claude Code in this repo and run:
/precision-check 7.1.1 7.2.0
# or
/precision-check-delta 7.1.1 7.2.0
Claude will:
- Run
precision_fetch.pyto download source files and YAML snapshots to/tmp/. - Read and compare each library's source against
precision-support.yaml. - Auto-update the YAML for clear missing entries.
- Flag ambiguous findings (macro expansion, combination tables, support level mismatches) for human review.
- Write a timestamped log to
tools/autotag/precision-update-log/(gitignored — local only).
Commit any YAML changes. The YAML being audited lives at docs/data/reference/precision-support/precision-support.yaml.
Adding new libraries to precision support
- Add an entry to
MANIFEST_TO_TAGinprecision_fetch.pymapping the manifest component name to the YAML tag. - Add an entry to
SOURCE_CONFIGinprecision_fetch.pywith the org, repo, and path to the source file. Add anotefield if the library should be permanently skipped. - Update
MONOREPO_LIBSinprecision_fetch.pyif the library lives inside a monorepo (e.g.rocm-libraries).
Adding new libraries/repositories
- Add the name or group of the repository (retrieved in default.xml in the ROCm project root) to: included_names or included_groups to auto_tag.py.
- At the moment of writing, this is only in the 5.6 branch and not the develop branch.
- Re-run the command specified in the steps above.
- Some libraries do not have the changelog for every point release. The tool will give out warnings, but it is okay to ignore them.