Skip to content

Add sitk-upload-binary-data skill - #2637

Merged
blowekamp merged 2 commits into
SimpleITK:mainfrom
blowekamp:sitk-upload-binary-data-skill
Jul 16, 2026
Merged

blowekamp merged 2 commits into
SimpleITK:mainfrom
blowekamp:sitk-upload-binary-data-skill

Conversation

@blowekamp

Copy link
Copy Markdown
Member

Summary

Adds an agent skill (.github/skills/sitk-upload-binary-data/) for uploading binary testing data to the SimpleITK/SimpleITKExternalData repository:

  • Hashes files with SHA-512, stages them in the local .ExternalData object store, and creates CMake ExternalData content links.
  • Opens a draft PR against the ExternalData repo instead of assuming a fork exists (never auto-forks; prompts for the push remote to use).
  • Background on CMake ExternalData, the object store/URL resolution, and the legacy MD5 → SHA-512 migration is documented in an auxiliary resource file (resources/external-data-background.md) to keep the main skill concise.

Also adds a few technical terms (algo, auth, codebase, gitignore, rm, shasum, subshell) to .github/workflows/additional_dictionary.txt so the new skill files pass the comment spell-check pre-commit hook.

Adds an agent skill for uploading binary testing data to the
SimpleITK/SimpleITKExternalData repository: hashing files with SHA-512,
staging them in the local .ExternalData object store, creating CMake
ExternalData content links, and opening a draft PR against the
ExternalData repo. Background on ExternalData and the legacy MD5
migration is documented in an auxiliary resource file.
@blowekamp
blowekamp marked this pull request as ready for review July 16, 2026 13:58
@blowekamp
blowekamp requested review from Copilot, dave3d and zivy July 16, 2026 13:58

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a new GitHub agent skill to standardize how SimpleITK contributors stage binary test data into the SimpleITK/SimpleITKExternalData object store using SHA-512 content links, and updates the workflow dictionary to accommodate terminology used by the new documentation/scripts.

Changes:

  • Added a new skill (sitk-upload-binary-data) documenting an end-to-end procedure for staging ExternalData objects and opening a draft PR to the ExternalData repo.
  • Added a bundled bash helper script to hash files, stage them into .ExternalData/SHA512/, and generate .sha512 content links.
  • Extended the comment spell-check dictionary with several technical terms used in the new skill content.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 4 comments.

File Description
.github/workflows/additional_dictionary.txt Adds technical terms so CI/pre-commit spell-check passes for new skill content.
.github/skills/sitk-upload-binary-data/SKILL.md Documents the upload workflow, including remote selection and PR creation steps.
.github/skills/sitk-upload-binary-data/scripts/hash_and_stage.sh Implements hashing/staging/link-creation for one or more binaries.
.github/skills/sitk-upload-binary-data/resources/external-data-background.md Provides background/reference material on CMake ExternalData and SHA-512 usage.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread .github/skills/sitk-upload-binary-data/scripts/hash_and_stage.sh
Comment thread .github/skills/sitk-upload-binary-data/scripts/hash_and_stage.sh
Comment thread .github/skills/sitk-upload-binary-data/SKILL.md Outdated
Comment thread .github/skills/sitk-upload-binary-data/SKILL.md Outdated
@blowekamp
blowekamp marked this pull request as draft July 16, 2026 14:30
- hash_and_stage.sh: use an array for the hash command instead of an
  unquoted string, validate the computed hash is 128 hex chars, and
  guard cp/rm/hash invocations with -- so filenames starting with '-'
  cannot be misinterpreted as options.
- SKILL.md: Step 2 now explicitly identifies <upstream-remote> (the
  remote pointing at SimpleITK/SimpleITKExternalData) in addition to
  <push-remote>, and Step 4 fetches/bases the branch on
  <upstream-remote> instead of assuming it is named 'origin'.
@blowekamp
blowekamp marked this pull request as ready for review July 16, 2026 15:18
@blowekamp
blowekamp merged commit ba2f1e0 into SimpleITK:main Jul 16, 2026
3 checks passed
@blowekamp
blowekamp deleted the sitk-upload-binary-data-skill branch September 9, 2026 12:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants