Agent skill

Sample Scout

by mono in mono/SkiaSharp

Scout Skia GM (golden master) samples in the externals/skia submodule to find demos worth porting to the SkiaSharp Gallery.

MITAuto-check passedDevelopment

Install Sample Scout

skills CLI
$ npx skills add mono/SkiaSharp --skill sample-scout -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install mono/SkiaSharp sample-scout --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ 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-src

Use ~/.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/

Facts

Skill name
sample-scout
GitHub stars
5.6k
Token cost
~1.5k tokens
SKILL.md length
490 words
Files
8 (incl. scripts, references)
Skills in repo
23
Repo updated
First seen
Licence
MIT

At a glance

Scout Skia GM (golden master) samples in the externals/skia submodule to find demos worth porting to the SkiaSharp Gallery.

  • Works in 5 steps: Setup → Analyze GM Files → Cross-Reference with Existing Gallery… → …
  • The user asks about what samples should we build
  • SKILL.md covers Why This Matters, Key References and Workflow
  • Runs Python scripts from its folder; calls python3 and git

What it does

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.

When your agent uses it

  • The user asks about what samples should we build
  • What demos are we missing
  • Find interesting Skia GMs
  • Sample gap analysis

Example prompts

  • “what samples should we build”
  • “what demos are we missing”
  • “find interesting Skia GMs”
  • “/sample-scout”

Requirements

  • Python 3

Workflow steps

5 steps, taken from the step headings in SKILL.md.

  1. Setup
  2. Analyze GM Files
  3. Cross-Reference with Existing Gallery Samples
  4. Validate and Render
  5. Present Results

What it can do on your machine

Read from SKILL.md and the folder at commit a74f7f9. 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 3 files in scripts/ (Python), which the agent can run.

    Shell commands in SKILL.md call:

    • python3
    • git

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    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.

  • 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

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.

Always · name and description, kept in context so the agent knows when to use it
~218
When it runs · the whole SKILL.md, loaded when a task matches
~1.5k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~4.2k

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.

SKILL.md

The full file from mono/SkiaSharp at commit a74f7f9, republished under its MIT licence (© mono). 490 words, ~1,535 tokens.

Download SKILL.mdSave it as .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.
name
sample-scout
description
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 user asks about "what samples should we build", "what demos are we missing", "find interesting Skia GMs", "sample gap analysis", "what can we port from Skia", "gallery ideas", "scout GM samples", or any request to discover demo opportunities from upstream Skia. Also use proactively after adding new APIs to find samples that showcase them.

Sample Scout

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.

Why This Matters

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.

Key References

Workflow

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 results
Phase 1: Setup

1a. Ensure the submodule is checked out

The GM files live in externals/skia/gm/. If the submodule isn't initialized:

bash
git submodule update --init --depth=1 externals/skia

1b. List all GM files

bash
ls externals/skia/gm/*.cpp | xargs -n1 basename | sort > gm-files.txt
wc -l < gm-files.txt

1c. List existing Gallery samples

bash
find samples/Gallery -name "*.cs" -path "*/Samples/*" | sort

For 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.

Phase 2: Analyze GM Files

Launch 5 parallel background agents (general-purpose), each analyzing one chunk. Each agent:

  1. For each .cpp file in its chunk, read it directly from the submodule:

    bash
    cat externals/skia/gm/{filename}
  2. Read the file and extract:

    • What it demonstrates (1-2 sentences)
    • Key Skia APIs used (class::method names)
    • Interest level: high / medium / low
    • API availability: check if the required APIs exist in SkiaSharp by grepping binding/SkiaSharp/
    • Missing APIs: list any APIs not available in SkiaSharp
    • Notes: GPU-only, Graphite-specific, bug regression, etc.
  3. 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.
Show full SKILL.md (198 more words)Show less

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 feature
  • similar — A Gallery sample covers a related topic (e.g., gradient GM → Gradient sample exists)
  • none — No Gallery sample covers this

Tag each finding with sampleStatus and matchedSample.

Save the merged findings as sample-scout-report.json in the working directory.

Phase 4: Validate and Render

4a. Validate

bash
python3 .agents/skills/sample-scout/scripts/validate-sample-scout.py sample-scout-report.json

4b. Render Markdown

bash
python3 .agents/skills/sample-scout/scripts/render-sample-scout.py sample-scout-report.json sample-scout-report.md

This produces a .md file with ###/#### headers suitable for GitHub issues.

Phase 5: Present Results

Show the summary with these key metrics:

  • Total samples analyzed
  • 🆕 No existing sample (opportunities)
  • 🔶 Similar sample exists (enhancement opportunities)
  • ✅ Already covered
  • 🎯 Opportunity count = high interest + APIs ready + no existing sample

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:

  1. "Want me to build Gallery samples for the top opportunities?"
  2. "Should I focus on samples that need new APIs first?"
  3. "Want to filter by a specific category (shaders, image filters, text, etc.)?"

© mono, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 7 other files (scripts, references) in .agents/skills/sample-scout of mono/SkiaSharp.

  • SKILL.md
  • evals/evals.json
  • references/analysis-instructions.md
  • references/sample-scout-schema.json
  • references/schema-cheatsheet.md
  • scripts/render-sample-scout.py
  • scripts/requirements.txt
  • scripts/validate-sample-scout.py

Open the folder on GitHubat commit a74f7f9

Compare with similar skills

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.

Sample Scout compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Sample Scout this skillmono/SkiaSharp5.6k—~1.5kAutomated safety check: PassMIT
pybind11 Release Publicationpybind/pybind1118k—~2.5kAutomated safety check: PassCustom licence
OBS Plugin Dependency Upgradesorayuki/obs-multi-rtmp5.1k—~609Automated safety check: PassGPL-2.0
OpenROAD Bug FixerThe-OpenROAD-Project/OpenROAD3.2k—~784Automated safety check: PassBSD-3-Clause
OpenROAD PR ReviewThe-OpenROAD-Project/OpenROAD3.2k—~1.4kAutomated safety check: PassBSD-3-Clause
Review PRspiriMirror/libuipc335—~1.7kAutomated safety check: PassApache-2.0

Similar skills

  • Walks a maintainer through publishing a pybind11 release after the preparation PR merges, with preflight checks, confirmations before each push and a GitHub release.

    18k GitHub stars~2.5k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • OBS Plugin Dependency Upgrade

    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.

    5.1k GitHub stars~609 tokensUpdated 5 days ago
    DevelopmentAuto-check passed
  • OpenROAD Bug Fixer

    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.

    3.2k GitHub stars~784 tokensUpdated yesterday
    DevelopmentAuto-check passed
  • OpenROAD PR Review

    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.

    3.2k GitHub stars~1.4k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Review PR

    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…

    335 GitHub stars~1.7k tokensUpdated 4 days ago
    DevelopmentAuto-check passed
  • ONNX Opset Bump Checklist

    microsoft/onnxruntime

    Official

    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.

    22k GitHub stars~12k tokensUpdated today
    DevelopmentAuto-check passed

More from mono/SkiaSharp

All 23 skills in this repo
  • Issue Fix

    mono/SkiaSharp

    Fix bugs in SkiaSharp C bindings. An agent skill from mono/SkiaSharp.

    5.6k GitHub stars~5.1k tokensUpdated today
    Auto-check passed
  • Issue Repro

    mono/SkiaSharp

    Reproduce a SkiaSharp issue systematically and capture structured reproduction results.

    5.6k GitHub stars~4.7k tokensUpdated today
    Auto-check passed
  • Issue Triage

    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.

    5.6k GitHub stars~3.4k tokensUpdated today
    Auto-check passed
  • Update native dependencies (libpng, libexpat, zlib, libwebp, harfbuzz, freetype, libjpeg-turbo, etc.) in SkiaSharp's Skia fork.

    5.6k GitHub stars~4.1k tokensUpdated today
    Auto-check passed
  • Review Skia Update

    mono/SkiaSharp

    Review a Skia upstream merge PR in mono/skia. An agent skill from mono/SkiaSharp.

    5.6k GitHub stars~1.6k tokensUpdated today
    Auto-check passed
  • Skia Analyst

    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…

    5.6k GitHub stars~1.6k tokensUpdated today
    Auto-check passed

Works with

Categories

Questions about Sample Scout

What does Sample Scout do?

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.

When should I use Sample Scout?

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.

How do I install Sample Scout in Claude Code?

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.

How do I install Sample Scout in Codex?

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.

Can I use Sample Scout 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 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.

What does Sample Scout need to run?

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.

Does Sample Scout access the network?

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.

Is Sample Scout 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 Sample Scout use?

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.

How many tokens does Sample Scout use?

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.

What are the alternatives to Sample Scout?

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.

Who maintains Sample Scout?

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.