Agent skill

Skia Analyst

by mono in 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…

MITAuto-check passedDevelopment

Install Skia Analyst

skills CLI
$ npx skills add mono/SkiaSharp --skill skia-analyst -a claude-code

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

GitHub CLI
$ gh skill install mono/SkiaSharp skia-analyst --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/skia-analyst .claude/skills/skia-analyst && 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
skia-analyst
GitHub stars
5.6k
Token cost
~1.6k tokens
SKILL.md length
578 words
Files
8 (incl. scripts, references)
Skills in repo
21
Repo updated
First seen
Licence
MIT

At a glance

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…

  • Works in 5 steps: Setup → Launch Independent Agents → Synthesize → …
  • The user asks to write release notes
  • SKILL.md covers Key References, Input Flexibility and Workflow
  • Runs Python scripts from its folder; calls gh and python3

What it does

Skia Analyst is an agent skill from 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 APIs). Given any combination of git refs, milestones, or no input at all, it scans upstream Skia release notes, diffs bindings, and checks C++ headers to produce a unified report. Use whenever the user asks to "write release notes", "generate changelog", "what changed between versions", "what are we missing", "feature…

Its SKILL.md is about 1.6k 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/schema-cheatsheet.md`).

It sits in Development, covering Changelog and release notes, Project management and Code migrations. It works with Git, 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 to write release notes
  • Generate changelog
  • What changed between versions
  • What are we missing

Example prompts

  • “write release notes”
  • “generate changelog”
  • “what changed between versions”
  • “/skia-analyst”

Requirements

  • Python 3

Workflow steps

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

  1. Setup
  2. Launch Independent Agents
  3. Synthesize
  4. Generate Outputs
  5. Present Results

What it can do on your machine

Read from SKILL.md and the folder at commit cb51ed5. 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:

    • gh
    • python3

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

  • Network

    No URLs in SKILL.md. Its commands use gh, 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

Skia Analyst loads about 1.6k tokens when it runs, and up to ~6.5k if it reads all its reference files. Until then it costs about 231 tokens; SKILL.md has 578 words of instructions outside code blocks.

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

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 cb51ed5, republished under its MIT licence (© mono). 578 words, ~1,629 tokens.

Download SKILL.mdSave it as .claude/skills/skia-analyst/SKILL.md (or your agent's skills folder). This skill also uses 7 other files; get the full folder from GitHub.
name
skia-analyst
description
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 APIs). Given any combination of git refs, milestones, or no input at all, it scans upstream Skia release notes, diffs bindings, and checks C++ headers to produce a unified report. Use whenever the user asks to "write release notes", "generate changelog", "what changed between versions", "what are we missing", "feature gap analysis", "what should we bind next", "what's new in Skia", "scout features", "diff two tags", "what shipped in this release", "summarize changes since v3.x", "prepare release announcement", or any request to analyze SkiaSharp versions or Skia features. Also use proactively when the user mentions a Skia milestone bump, finishes a release cycle, or asks what went into a specific version.

Skia Analyst

You analyze Skia features for SkiaSharp from two angles simultaneously:

  1. What shipped — upstream engine benefits, PR links, migration guides
  2. What's missing — gap analysis with impact/priority/effort scoring, hidden API scan, action items

Every run produces both. Output is structured JSON and rendered GitHub-flavored Markdown.

This skill always runs in a SkiaSharp checkout. It uses:

  • externals/skia/ submodule for the C API (our fork at mono/skia)
  • binding/SkiaSharp/Generated for the C API reflected as P/Invoke externs
  • binding/SkiaSharp/*.cs for the C# wrappers
  • Upstream google/skia headers fetched via GitHub for hidden API comparison

Key References

Input Flexibility

The user may specify anything — infer the scan mode:

User saysModeWhat to do
Nothing, "scan everything"fullAll milestones, full gap analysis
"what's new since m133"windowedmilestoneFrom=133, milestoneTo=current
"between m133 and m147"windowedmilestoneFrom=133, milestoneTo=147
"diff v3.119.4..origin/main"diffGit diff + milestone analysis
"what changed in v4.147.0"diffAuto-detect previous tag, diff

If unclear, ask. But try to infer first.

Workflow

Phase 1: Setup (determine scan range, prepare sources)
Phase 2: Launch independent GPT-5.6 Sol and Terra agents in parallel
Phase 3: Synthesize — merge findings, dedupe, both lenses
Phase 4: Generate outputs (JSON → validate → Markdown)
Phase 5: Present results
Phase 1: Setup

1a. Determine scan range

Based on user input, establish:

  • scanMode: full, windowed, or diff
  • For windowed: milestoneFrom and milestoneTo
  • For diff: refFrom and refTo (resolve SHAs, dates, commit count)

1b. Determine current milestone

bash
cat externals/skia/include/core/SkMilestone.h

Or check commit messages for the latest Skia bump PR.

1c. Fetch Skia release notes

Fetch RELEASE_NOTES.md from google/skia using the GitHub MCP tool or gh api:

bash
gh api repos/google/skia/contents/RELEASE_NOTES.md -H "Accept: application/vnd.github.raw" > skia-release-notes.md

Save to a file in the working directory for agents to reference.

1d. Prepare upstream headers for hidden API scan

Agents will fetch upstream C++ headers directly from GitHub during their scan:

github-mcp-server-get_file_contents owner=google repo=skia path=include/core/SkImage.h

1e. Locate binding sources

The C API is reflected in binding/SkiaSharp/Generated as P/Invoke extern methods. The C# wrappers are in binding/SkiaSharp/*.cs. Both are in the worktree.

For the C API headers (our fork), check externals/skia/include/c/ and externals/skia/src/c/. If the submodule isn't checked out, agents can grep Generated/ for sk_* and gr_* extern function names — this reflects the full C API surface.

Show full SKILL.md (253 more words)Show less
Phase 2: Launch Independent Agents

Launch two background agents simultaneously: Sol for maximum depth and Terra for a cost-effective independent perspective.

task agent_type=general-purpose mode=background model=gpt-5.6-sol name=analyst-sol:
task agent_type=general-purpose mode=background model=gpt-5.6-terra name=analyst-terra:

Each agent does the complete job independently:

  1. Release notes scan — read Skia RELEASE_NOTES.md, extract features
  2. Hidden API scan — fetch upstream C++ headers from google/skia, compare against binding/SkiaSharp/Generated for P/Invoke externs and binding/SkiaSharp/*.cs for wrappers
  3. Binding verification — grep the actual code to set bindingStatus
  4. Git diff (if diff mode) — analyze API/build/dep changes between refs

For EVERY finding, classify with BOTH lenses:

  • Changelog: changeType + importance
  • Gap: bindingStatus + impact + priority + effort
Phase 3: Synthesize

When both agents complete, merge their findings:

  1. Deduplicate by name/skiaApi — keep richer data from each
  2. Resolve conflicts — more cautious bindingStatus wins, higher impact wins
  3. Union hidden APIs — combine both agents' header scan discoveries
Phase 4: Generate Outputs

4a. Generate JSON

Save to skia-analyst-report.json in the working directory.

4b. Validate

bash
python3 .agents/skills/skia-analyst/scripts/validate-skia-analyst.py skia-analyst-report.json

4c. Render Markdown

bash
python3 .agents/skills/skia-analyst/scripts/render-skia-analyst.py skia-analyst-report.json skia-analyst-report.md

This produces a GitHub-flavored Markdown file with collapsible details, suitable for pasting into a GitHub issue or sharing as a gist.

Phase 5: Present Results

Show highlights inline:

  • Top gaps — transformative and significant items
  • Quick wins — partial binding status (C API exists, just needs C# wrapper)
  • Breaking changes — if any findings have importance: breaking

Then offer next steps:

  1. "Want me to investigate any finding in more detail?"
  2. "Should I use the api-add-review skill to start binding a feature?"
  3. "Want to upload the markdown to a gist for sharing?"
  4. "Should I create a GitHub issue with the gap analysis?"

© 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/skia-analyst of mono/SkiaSharp.

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

Open the folder on GitHubat commit cb51ed5

Compare with similar skills

Skia Analyst 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.

Skia Analyst compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Skia Analyst this skillmono/SkiaSharp5.6k—~1.6kAutomated 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
ONNX Opset Bump Checklistmicrosoft/onnxruntime22k—~12kAutomated safety check: PassMIT
Draft Release Notesjamiepine/voicebox57k—~941Automated safety check: PassMIT
Mole Release Notes Publishertw93/Mole70k—~1.9kAutomated safety check: PassGPL-3.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 today
    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 7 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
  • Draft Release Notes

    jamiepine/voicebox

    Writes or refreshes the Unreleased section of CHANGELOG.md as a themed narrative built from the commits, PRs and diff since the last version tag.

    57k GitHub stars~941 tokensUpdated 3 days ago
    DevelopmentAuto-check passed
  • Publishes curated, bilingual release notes for an existing Mole version tag with gh release edit, including contributor thanks and reactions, after the release workflow finishes.

    70k GitHub stars~1.9k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Release Bump

    jamiepine/voicebox

    Ends a release cycle by moving the Unreleased changelog notes under a dated version heading, bumping version files with bumpversion and tagging the commit.

    57k GitHub stars~1.1k tokensUpdated 3 days ago
    DevelopmentAuto-check passed

More from mono/SkiaSharp

All 21 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
  • Sample Scout

    mono/SkiaSharp

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

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

Works with

Categories

Questions about Skia Analyst

What does Skia Analyst do?

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…. Skia Analyst is an agent skill from 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 APIs).

When should I use Skia Analyst?

Skia Analyst fits situations like: the user asks to write release notes; generate changelog; what changed between versions; what are we missing.

How do I install Skia Analyst in Claude Code?

Run `npx skills add mono/SkiaSharp --skill skia-analyst -a claude-code`. Or copy the skill folder (.agents/skills/skia-analyst in mono/SkiaSharp) into .claude/skills/skia-analyst in your project. Claude Code loads it when a task matches its description.

How do I install Skia Analyst in Codex?

Run `npx skills add mono/SkiaSharp --skill skia-analyst -a codex`. Or copy the skill folder (.agents/skills/skia-analyst in mono/SkiaSharp) into .agents/skills/skia-analyst in your project. Codex loads it when a task matches its description.

Can I use Skia Analyst 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 skia-analyst -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/skia-analyst, .gemini/skills/skia-analyst, .github/skills/skia-analyst and .opencode/skills/skia-analyst in your project.

What does Skia Analyst need to run?

Going by SKILL.md and its folder, Skia Analyst needs Python for the scripts in its folder and the command-line tools its instructions call (gh and python3). Our summary lists: Python 3.

Does Skia Analyst access the network?

SKILL.md contains no URLs. Its commands use gh, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Skia Analyst 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 Skia Analyst use?

Skia Analyst 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 Skia Analyst use?

About 1.6k tokens (SKILL.md is roughly 6.5k 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 4.8k tokens, read only when the agent opens those files.

What are the alternatives to Skia Analyst?

Skills that share tags, products or a category with Skia Analyst: pybind11 Release Publication (pybind/pybind11, 18k stars), OBS Plugin Dependency Upgrade (sorayuki/obs-multi-rtmp, 5.1k stars), ONNX Opset Bump Checklist (microsoft/onnxruntime, 22k stars) and Draft Release Notes (jamiepine/voicebox, 57k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Skia Analyst?

mono (a GitHub organization) maintains it in mono/SkiaSharp, which has 5,587 GitHub stars. The repository holds 21 skills in this directory. The repository was last updated on October 9, 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.