Uploads a binary test file to the SimpleITK ExternalData repository by hashing it with SHA-512, staging it in the object store, writing a content-link file and opening a draft PR.
Install the "sitk-upload-binary-data" agent skill from https://github.com/SimpleITK/SimpleITK/tree/main/.github/skills/sitk-upload-binary-data into .claude/skills/sitk-upload-binary-data/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sitk-upload-binary-data", then confirm the skill loads.
Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
Type this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
skills CLI
$ npx skills add SimpleITK/SimpleITK --skill sitk-upload-binary-data -a codex
Project install goes to .agents/skills/; add -g for ~/.codex/skills/.
Install the "sitk-upload-binary-data" agent skill from https://github.com/SimpleITK/SimpleITK/tree/main/.github/skills/sitk-upload-binary-data into .agents/skills/sitk-upload-binary-data/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sitk-upload-binary-data", then confirm the skill loads.
Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
skills CLI
$ npx skills add SimpleITK/SimpleITK --skill sitk-upload-binary-data -a cursor
Project install goes to .agents/skills/; add -g for ~/.cursor/skills/.
Install the "sitk-upload-binary-data" agent skill from https://github.com/SimpleITK/SimpleITK/tree/main/.github/skills/sitk-upload-binary-data into .cursor/skills/sitk-upload-binary-data/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sitk-upload-binary-data", then confirm the skill loads.
Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
skills CLI
$ npx skills add SimpleITK/SimpleITK --skill sitk-upload-binary-data -a gemini-cli
Project install goes to .agents/skills/; add -g for ~/.gemini/skills/.
Install the "sitk-upload-binary-data" agent skill from https://github.com/SimpleITK/SimpleITK/tree/main/.github/skills/sitk-upload-binary-data into .gemini/skills/sitk-upload-binary-data/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sitk-upload-binary-data", then confirm the skill loads.
Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
Installs for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
skills CLI
$ npx skills add SimpleITK/SimpleITK --skill sitk-upload-binary-data -a github-copilot
Project install goes to .agents/skills/; add -g for ~/.copilot/skills/.
Install the "sitk-upload-binary-data" agent skill from https://github.com/SimpleITK/SimpleITK/tree/main/.github/skills/sitk-upload-binary-data into .github/skills/sitk-upload-binary-data/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sitk-upload-binary-data", then confirm the skill loads.
GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
skills CLI
$ npx skills add SimpleITK/SimpleITK --skill sitk-upload-binary-data -a opencode
OpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
Install the "sitk-upload-binary-data" agent skill from https://github.com/SimpleITK/SimpleITK/tree/main/.github/skills/sitk-upload-binary-data into .opencode/skills/sitk-upload-binary-data/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sitk-upload-binary-data", then confirm the skill loads.
OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
Facts
Skill name
sitk-upload-binary-data
GitHub stars
1.1k
Token cost
~1.9k tokens
SKILL.md length
799 words
Files
3 (incl. scripts)
Skills in repo
1
Repo updated
First seen
Licence
Apache-2.0
At a glance
Uploads a binary test file to the SimpleITK ExternalData repository by hashing it with SHA-512, staging it in the object store, writing a content-link file and opening a draft PR.
Works in 6 steps: Verify the file exists → Verify the .ExternalData clone and… → Hash, copy, create content links, remove… → …
Adding a new binary test image or baseline output to SimpleITK
SKILL.md covers When to Use, Required Tools, Background and Bundled Script, plus 1 more section
Runs Shell scripts from its folder; calls git, bash and gh
What it does
Binary test inputs and baseline images in SimpleITK are not committed directly; instead a CMake ExternalData content-link file holding only a 128-character lowercase SHA-512 hash replaces the binary in the main repository, while the actual file lives in the SimpleITKExternalData repository, cloned locally into a gitignored .ExternalData folder that also serves as the local CMake object store.
A bundled bash script, hash_and_stage.sh, run from the SimpleITK source root with one or more file paths, checks that sha512sum, git and the ExternalData clone are present, then for each file computes its hash, copies it into .ExternalData/SHA512/<hash> unless that hash already exists, writes the matching .sha512 content-link file, removes the original binary, and flags any existing .md5 content link for removal. It prints the suggested git add and git rm commands rather than running them, and the skill requires git and the gh CLI to be available for the fork and PR step.
When your agent uses it
Adding a new binary test image or baseline output to SimpleITK
Replacing a binary file in the repo with a CMake ExternalData content link
Uploading test data too large to commit directly to the SimpleITK Git repo
Example prompts
“Upload this new baseline image as ExternalData and open a draft PR.”
“Create a sha512 content link for Testing/Data/Input/newscan.nrrd.”
“Stage these three test images in the ExternalData object store.”
Requirements
git and the gh CLI
sha512sum or shasum
A clone of SimpleITK/SimpleITKExternalData at .ExternalData
Workflow steps
6 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit bb259aa. It shows what the files ask for, not the result of running them.
Tool permissions
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Runs code
Ships 1 file in scripts/ (Shell), which the agent can run.
Shell commands in SKILL.md call:
git
bash
gh
From the folder's file list and the shell code blocks in SKILL.md.
Network
Links to these hosts (documentation or services it may open):
cmake.org
From URLs in SKILL.md, links to its own repository left out.
Credentials
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Context cost
SimpleITK Binary Data Upload loads about 1.9k tokens when it runs. Until then it costs about 55 tokens; SKILL.md has 799 words of instructions outside code blocks.
Always· name and description, kept in context so the agent knows when to use it
~55
When it runs· the whole SKILL.md, loaded when a task matches
~1.9k
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
Safety
Auto-check passed
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
Download SKILL.mdSave it as .claude/skills/sitk-upload-binary-data/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.
name
sitk-upload-binary-data
description
Upload binary testing data to SimpleITK ExternalData repository. Use when: adding test data, uploading binary file, creating content link, new test input, ExternalData upload, sha512 content link.
argument-hint
Relative path to binary file, e.g. Testing/Data/Baseline/MyFilter_output.nrrd
Upload Binary Data to SimpleITK ExternalData
Upload binary files (test inputs, baseline images, etc.) to the
SimpleITK/SimpleITKExternalData GitHub repository by computing their
SHA-512 hash, placing them in the .ExternalData object store, creating
content link files, and opening a draft PR.
When to Use
Adding new test input images or baseline outputs
Uploading any binary file that should not be committed to the SimpleITK Git repo
Replaces input file with a .sha512 CMake ExternalData content link
Required Tools
Verify these are available before proceeding:
Tool
Purpose
Check command
git
Repository operations
git --version
gh
GitHub CLI for forking/PRs
gh auth status
sha512sum or shasum
Compute file hashes
sha512sum --version (Linux) or shasum --version (macOS)
Background
Binary test data in SimpleITK uses
CMake ExternalData.
Content link files (e.g. Testing/Data/Input/image.nrrd.sha512) contain
only a 128-character lowercase hex SHA-512 hash followed by a newline.
The .ExternalData directory at the SimpleITK source root is a clone of
SimpleITK/SimpleITKExternalData and also a local CMake ExternalData
object store (listed in .gitignore), so builds work immediately once a
file is placed there.
Always create .sha512 content links and SHA512/<hash> objects. See
resources/external-data-background.md
for full history, legacy considerations, and object store/URL resolution
details.
Bundled Script
scripts/hash_and_stage.sh
A bash script that handles hashing, copying, content-link creation, and
cleanup for one or more binary files. Run from the SimpleITK source root.
Copies the binary to .ExternalData/SHA512/<hash> (skips if the
hash already exists).
Writes <file>.sha512 containing the 128-char hex hash + newline.
Removes the original binary file.
Notes any existing .md5 content link for removal.
Prints suggested git add / git rm commands.
Output labels:
COPY — binary copied to object store
SKIP — hash already present, no copy needed
LINK — .sha512 content link created
DEL — original binary removed
Does NOT: create branches, commit, push, or open PRs — those steps
are performed separately (see Step 4 below).
Exit codes: non-zero on any error (missing file, bad .ExternalData
directory, missing sha512sum). The error message explains the problem.
Procedure
Given one or more binary file paths relative to the SimpleITK source root.
Example: Testing/Data/Baseline/BasicFilters_NormalizedCorrelationImageFilter_NoMask.nrrd
Step 1 — Verify the file exists
Confirm each binary file is present at the given path. If not, stop and
tell the user.
Show full SKILL.md (423 more words)Show less
Step 2 — Verify the .ExternalData clone and select a push remote
All commands run from the SimpleITK source root. First confirm
.ExternalData is a real git clone:
bash
test -d .ExternalData/.git
If this fails, stop and tell the user:
The .ExternalData directory must be a clone of
SimpleITK/SimpleITKExternalData. To set it up (including a
configured push remote), run:
Utilities/GitSetup/setup-externaldata
Otherwise, list its remotes to identify both the upstream and the remote
to push to:
bash
git -C .ExternalData remote -v
The remote pointing at SimpleITK/SimpleITKExternalData itself
(typically origin) is <upstream-remote> — used in Step 4 to fetch
and base the branch on main. Do not assume it is named origin, read
the actual name from the remote -v output.
Utilities/GitSetup/setup-externaldata configures a fork push remote
in .ExternalData automatically, using the same remote name as
github.fork.remote in the main SimpleITK repo (mirroring the fork
account already set up for SimpleITK's own GitHub remote via
setup-github). Prefer this convention over guessing:
If <fork_remote> is non-empty and also exists as a remote in
.ExternalData (per the remote -v output above), use it directly as
<push-remote> — no need to ask the user.
Otherwise, fall back to inspecting the other remotes (not
<upstream-remote>):
If exactly one remains, use its name as <push-remote>.
Otherwise (zero or multiple candidates), ask the user to rerun the SetupForDevelopment scripts.
Use <upstream-remote> and <push-remote> in Step 4.
SimpleITK Binary Data Upload next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
SimpleITK Binary Data Upload compared with similar skills
Skill
Stars
Used in
Tokens
Auto-check
Licence
Repo updated
SimpleITK Binary Data Upload this skillSimpleITK/SimpleITK
Refreshes stored golden values from a GitHub Actions run, reports signed percentage changes per model, and writes a summary ready for a pull request description.
Validates OpenHarness features by running real multi-turn agent loops with live LLM calls against an unfamiliar codebase, checking actual tool execution.
Jest patterns for React Native style tests: TDD discipline, mock factory functions, module and GraphQL hook mocking, custom render helpers and anti-patterns to avoid.
Creates a Java SDK end-to-end test for the Copilot SDK that runs against a recorded YAML snapshot through a replay proxy, so CI needs no real authentication.
Uploads a binary test file to the SimpleITK ExternalData repository by hashing it with SHA-512, staging it in the object store, writing a content-link file and opening a draft PR. ExternalData folder that also serves as the local CMake object store.
When should I use SimpleITK Binary Data Upload?
SimpleITK Binary Data Upload fits situations like: adding a new binary test image or baseline output to SimpleITK; replacing a binary file in the repo with a CMake ExternalData content link; uploading test data too large to commit directly to the SimpleITK Git repo.
How do I install SimpleITK Binary Data Upload in Claude Code?
Run `npx skills add SimpleITK/SimpleITK --skill sitk-upload-binary-data -a claude-code`. Or copy the skill folder (.github/skills/sitk-upload-binary-data in SimpleITK/SimpleITK) into .claude/skills/sitk-upload-binary-data in your project. Claude Code loads it when a task matches its description.
How do I install SimpleITK Binary Data Upload in Codex?
Run `npx skills add SimpleITK/SimpleITK --skill sitk-upload-binary-data -a codex`. Or copy the skill folder (.github/skills/sitk-upload-binary-data in SimpleITK/SimpleITK) into .agents/skills/sitk-upload-binary-data in your project. Codex loads it when a task matches its description.
Can I use SimpleITK Binary Data Upload in Cursor, Gemini CLI or GitHub Copilot?
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add SimpleITK/SimpleITK --skill sitk-upload-binary-data -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/sitk-upload-binary-data, .gemini/skills/sitk-upload-binary-data, .github/skills/sitk-upload-binary-data and .opencode/skills/sitk-upload-binary-data in your project.
What does SimpleITK Binary Data Upload need to run?
Going by SKILL.md and its folder, SimpleITK Binary Data Upload needs a shell for the scripts in its folder and the command-line tools its instructions call (git, bash and gh). Our summary lists: git and the gh CLI; sha512sum or shasum; A clone of SimpleITK/SimpleITKExternalData at .ExternalData.
Does SimpleITK Binary Data Upload access the network?
SKILL.md names 1 domain. As links in the text: cmake.org. This is read from the text; nothing was executed.
Is SimpleITK Binary Data Upload safe to install?
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
What licence does SimpleITK Binary Data Upload use?
SimpleITK Binary Data Upload is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
How many tokens does SimpleITK Binary Data Upload use?
About 1.9k tokens (SKILL.md is roughly 7.4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
What are the alternatives to SimpleITK Binary Data Upload?
Skills that share tags, products or a category with SimpleITK Binary Data Upload: Update Megatron Golden Values (NVIDIA/Megatron-LM, 18k stars), Audit AI Code (jxnl/personal-monorepo-template, 562 stars), Adf Master (Kilo-Org/kilo-marketplace, 189 stars) and OpenHarness End-to-End Evals (HKUDS/OpenHarness, 16k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
Who maintains SimpleITK Binary Data Upload?
SimpleITK (a GitHub organization) maintains it in SimpleITK/SimpleITK, which has 1,092 GitHub stars. The repository was last updated on October 5, 2026.
Source: SimpleITK/SimpleITK on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.