pybind11 Release Publication
pybind/pybind11
Walks a maintainer through publishing a pybind11 release after the preparation PR merges, with preflight checks, confirmations before each push and a GitHub release.
Scout Skia GM (golden master) samples in the externals/skia submodule to find demos worth porting to the SkiaSharp Gallery.
$ npx skills add mono/SkiaSharp --skill sample-scout -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install mono/SkiaSharp sample-scout --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/mono/SkiaSharp.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/sample-scout .claude/skills/sample-scout && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "sample-scout" agent skill from https://github.com/mono/SkiaSharp/tree/main/.agents/skills/sample-scout into .claude/skills/sample-scout/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sample-scout", 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.
$skill-installer install https://github.com/mono/SkiaSharp/tree/main/.agents/skills/sample-scoutType 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.
$ npx skills add mono/SkiaSharp --skill sample-scout -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install mono/SkiaSharp sample-scout --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/mono/SkiaSharp.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/sample-scout .agents/skills/sample-scout && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "sample-scout" agent skill from https://github.com/mono/SkiaSharp/tree/main/.agents/skills/sample-scout into .agents/skills/sample-scout/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sample-scout", 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.
$ npx skills add mono/SkiaSharp --skill sample-scout -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install mono/SkiaSharp sample-scout --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/mono/SkiaSharp.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/sample-scout .cursor/skills/sample-scout && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "sample-scout" agent skill from https://github.com/mono/SkiaSharp/tree/main/.agents/skills/sample-scout into .cursor/skills/sample-scout/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sample-scout", 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.
$ gemini skills install https://github.com/mono/SkiaSharp.git --path .agents/skills/sample-scout--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add mono/SkiaSharp --skill sample-scout -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install mono/SkiaSharp sample-scout --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/mono/SkiaSharp.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/sample-scout .gemini/skills/sample-scout && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "sample-scout" agent skill from https://github.com/mono/SkiaSharp/tree/main/.agents/skills/sample-scout into .gemini/skills/sample-scout/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sample-scout", 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.
$ gh skill install mono/SkiaSharp sample-scoutInstalls 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).
$ npx skills add mono/SkiaSharp --skill sample-scout -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/mono/SkiaSharp.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/sample-scout .github/skills/sample-scout && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "sample-scout" agent skill from https://github.com/mono/SkiaSharp/tree/main/.agents/skills/sample-scout into .github/skills/sample-scout/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sample-scout", 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.
$ npx skills add mono/SkiaSharp --skill sample-scout -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install mono/SkiaSharp sample-scout --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/mono/SkiaSharp.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/sample-scout .opencode/skills/sample-scout && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "sample-scout" agent skill from https://github.com/mono/SkiaSharp/tree/main/.agents/skills/sample-scout into .opencode/skills/sample-scout/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sample-scout", 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.
sample-scoutScout Skia GM (golden master) samples in the externals/skia submodule to find demos worth porting to the SkiaSharp Gallery.
Sample Scout is an agent skill from mono/SkiaSharp. Scout Skia GM (golden master) samples in the externals/skia submodule to find demos worth porting to the SkiaSharp Gallery. Reads .cpp files directly from the checked-out submodule, analyzes what each demonstrates, checks whether the required APIs exist in SkiaSharp, and cross-references against existing Gallery samples to identify gaps. Produces a structured JSON report and a GitHub-flavored Markdown report for filtering by interest level, API availability, and sample coverage status. Use this skill whenever the…
Its SKILL.md is about 1.5k tokens, which your agent loads only when the skill is triggered. The skill folder holds 10 other files, including scripts and reference files (for example `evals/evals.json`, `references/analysis-instructions.md` and `references/sample-scout-schema.json`).
It sits in Development. It works with C++ and GitHub. The repository describes itself as: SkiaSharp is a cross-platform 2D graphics API for .NET platforms based on Google's Skia Graphics Library. It provides a comprehensive 2D API that can be used across mobile… The licence is MIT.
5 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit a74f7f9. It shows what the files ask for, not the result of running them.
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.
Ships 3 files in scripts/ (Python), which the agent can run.
Shell commands in SKILL.md call:
python3gitFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Sample Scout loads about 1.5k tokens when it runs, and up to ~4.2k if it reads all its reference files. Until then it costs about 218 tokens; SKILL.md has 490 words of instructions outside code blocks.
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.
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.
The full file from mono/SkiaSharp at commit a74f7f9, republished under its MIT licence (© mono). 490 words, ~1,535 tokens.
.claude/skills/sample-scout/SKILL.md (or your agent's skills folder). This skill also uses 7 other files; get the full folder from GitHub.You analyze Skia GM (golden master) sample files from the externals/skia submodule to discover
demos worth porting to the SkiaSharp Gallery. The goal is to find visually impressive, educationally
valuable samples that showcase SkiaSharp's capabilities — and identify which ones we can build today
vs. which need new APIs first.
Skia has 400+ GM samples that exercise every API and visual technique. These are a goldmine for the SkiaSharp Gallery — each one is a proven, tested visual that demonstrates something users would want to learn. But nobody can manually review 400+ C++ files to find the gems. This skill automates the discovery.
Phase 1: Setup (list GM files, list existing Gallery samples)
Phase 2: Analyze GM files (parallel agents, each handles a chunk)
Phase 3: Cross-reference with existing Gallery samples
Phase 4: Validate and render
Phase 5: Present results1a. Ensure the submodule is checked out
The GM files live in externals/skia/gm/. If the submodule isn't initialized:
git submodule update --init --depth=1 externals/skia1b. List all GM files
ls externals/skia/gm/*.cpp | xargs -n1 basename | sort > gm-files.txt
wc -l < gm-files.txt1c. List existing Gallery samples
find samples/Gallery -name "*.cs" -path "*/Samples/*" | sortFor each sample, extract the Title, Description, and Category to build a coverage map.
1d. Split into chunks for parallel processing
With 400+ files, split into 5 chunks of ~80-90 files each for parallel analysis.
Launch 5 parallel background agents (general-purpose), each analyzing one chunk. Each agent:
For each .cpp file in its chunk, read it directly from the submodule:
cat externals/skia/gm/{filename}Read the file and extract:
binding/SkiaSharp/Save findings as JSON array to a temp file.
See references/analysis-instructions.md for the classification criteria and decision guidelines.
Agent prompt template:
Analyze Skia GM sample files. For EACH file, read it from externals/skia/gm/FILENAME
and produce a JSON entry.
Files: {comma-separated list}
Read .agents/skills/sample-scout/references/analysis-instructions.md for classification criteria.
For each file output: file, name, description, interesting (high/medium/low),
apis_available (true/false), missing_apis [], key_apis [], notes,
visualGoal (what the rendered output looks like), suggestedControls [],
category (Gallery category), skiaSharpApis [] (C# equivalents).
Check API availability by grepping binding/SkiaSharp/ for the C# equivalents.
Save as JSON array to {output_path}.
Must produce exactly {N} entries — count at the end to confirm.After all agents complete, merge their findings and cross-reference against existing Gallery samples:
For each GM entry, check if an existing Gallery sample covers the same topic:
existing — A Gallery sample directly covers this GM's main featuresimilar — A Gallery sample covers a related topic (e.g., gradient GM → Gradient sample exists)none — No Gallery sample covers thisTag each finding with sampleStatus and matchedSample.
Save the merged findings as sample-scout-report.json in the working directory.
4a. Validate
python3 .agents/skills/sample-scout/scripts/validate-sample-scout.py sample-scout-report.json4b. Render Markdown
python3 .agents/skills/sample-scout/scripts/render-sample-scout.py sample-scout-report.json sample-scout-report.mdThis produces a .md file with ###/#### headers suitable for GitHub issues.
Show the summary with these key metrics:
Then present the top opportunities — samples that are high-interest, have all APIs available, and have no existing Gallery coverage. These are the ones to build next.
Offer:
© mono, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 7 other files (scripts, references) in .agents/skills/sample-scout of mono/SkiaSharp.
Open the folder on GitHubat commit a74f7f9
Sample Scout 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Sample Scout this skillmono/SkiaSharp | 5.6k | — | ~1.5k | Automated safety check: Pass | MIT | |
| pybind11 Release Publicationpybind/pybind11 | 18k | — | ~2.5k | Automated safety check: Pass | Custom licence | |
| OBS Plugin Dependency Upgradesorayuki/obs-multi-rtmp | 5.1k | — | ~609 | Automated safety check: Pass | GPL-2.0 | |
| OpenROAD Bug FixerThe-OpenROAD-Project/OpenROAD | 3.2k | — | ~784 | Automated safety check: Pass | BSD-3-Clause | |
| OpenROAD PR ReviewThe-OpenROAD-Project/OpenROAD | 3.2k | — | ~1.4k | Automated safety check: Pass | BSD-3-Clause | |
| Review PRspiriMirror/libuipc | 335 | — | ~1.7k | Automated safety check: Pass | Apache-2.0 |
pybind/pybind11
Walks a maintainer through publishing a pybind11 release after the preparation PR merges, with preflight checks, confirmations before each push and a GitHub release.
sorayuki/obs-multi-rtmp
Updates the obs-multi-rtmp plugin repo to the latest upstream plugin template and OBS Studio version, including dependency metadata, then rebuilds it with CMake.
The-OpenROAD-Project/OpenROAD
Fixes an OpenROAD bug from a GitHub issue or error code: finds the root cause, implements the fix, adds a regression test and prepares a signed-off commit.
The-OpenROAD-Project/OpenROAD
Reviews an OpenROAD pull request in the project's priority order and prints draft review notes for a human reviewer to inspect and post.
spiriMirror/libuipc
Review a libuipc pull request end-to-end: checkout the PR, summarize changes, list files for the human reviewer, and perform a domain-aware AI review covering physics correctness, backend…
microsoft/onnxruntime
A checklist for upgrading the pinned ONNX version and opset in ONNX Runtime, covering the files to change, archive hashes, patch rebasing and release-candidate handling.
mono/SkiaSharp
Fix bugs in SkiaSharp C bindings. An agent skill from mono/SkiaSharp.
mono/SkiaSharp
Reproduce a SkiaSharp issue systematically and capture structured reproduction results.
mono/SkiaSharp
Triage a SkiaSharp GitHub issue or PR into structured JSON with classification (type, area, platform, severity), suggested response, automatable actions, and companion Markdown/HTML reports.
mono/SkiaSharp
Update native dependencies (libpng, libexpat, zlib, libwebp, harfbuzz, freetype, libjpeg-turbo, etc.) in SkiaSharp's Skia fork.
mono/SkiaSharp
Review a Skia upstream merge PR in mono/skia. An agent skill from mono/SkiaSharp.
mono/SkiaSharp
Analyze Skia features for SkiaSharp - produces a unified analysis of what shipped (upstream engine benefits, PR links, migration guides) and what's missing (impact/priority/effort scoring, hidden…
Categories
Scout Skia GM (golden master) samples in the externals/skia submodule to find demos worth porting to the SkiaSharp Gallery. Sample Scout is an agent skill from mono/SkiaSharp. Scout Skia GM (golden master) samples in the externals/skia submodule to find demos worth porting to the SkiaSharp Gallery.
Sample Scout fits situations like: the user asks about what samples should we build; what demos are we missing; find interesting Skia GMs; sample gap analysis.
Run `npx skills add mono/SkiaSharp --skill sample-scout -a claude-code`. Or copy the skill folder (.agents/skills/sample-scout in mono/SkiaSharp) into .claude/skills/sample-scout in your project. Claude Code loads it when a task matches its description.
Run `npx skills add mono/SkiaSharp --skill sample-scout -a codex`. Or copy the skill folder (.agents/skills/sample-scout in mono/SkiaSharp) into .agents/skills/sample-scout in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add mono/SkiaSharp --skill sample-scout -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/sample-scout, .gemini/skills/sample-scout, .github/skills/sample-scout and .opencode/skills/sample-scout in your project.
Going by SKILL.md and its folder, Sample Scout needs Python for the scripts in its folder and the command-line tools its instructions call (python3 and git). Our summary lists: Python 3.
SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
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.
Sample Scout is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.5k tokens (SKILL.md is roughly 6.1k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 2.6k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Sample Scout: pybind11 Release Publication (pybind/pybind11, 18k stars), OBS Plugin Dependency Upgrade (sorayuki/obs-multi-rtmp, 5.1k stars), OpenROAD Bug Fixer (The-OpenROAD-Project/OpenROAD, 3.2k stars) and OpenROAD PR Review (The-OpenROAD-Project/OpenROAD, 3.2k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
mono (a GitHub organization) maintains it in mono/SkiaSharp, which has 5,585 GitHub stars. The repository holds 23 skills in this directory. The repository was last updated on October 7, 2026.
Source: mono/SkiaSharp on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.