skia-analyst

Analyze Skia feature changes and binding gaps for SkiaSharp releases.

5.6k|645|Updated Feb 22, 2016
One-click install
npx skills add https://github.com/mono/SkiaSharp --skill skia-analyst
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: skia-analyst
Source: https://github.com/mono/SkiaSharp/tree/main/.agents/skills/skia-analyst
Command: npx skills add https://github.com/mono/SkiaSharp --skill skia-analyst

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires jsonschema, and includes scripts (resource) and references (resource) components.

What problem does it solve?

Tracking what changed in upstream Skia and what SkiaSharp still lacks requires manually reading release notes, diffing git refs, and comparing C++ headers against C# bindings, which is slow and error-prone.

Core Features & Use Cases

  • Unified dual-lens analysis: Every finding is classified both as a changelog entry (changeType, importance) and as a gap item (bindingStatus, impact, priority, effort).
  • Flexible scan modes: Supports full scans, milestone-windowed scans (e.g., m133 to m147), and git ref diffs (e.g., v3.119.4..origin/main).
  • Hidden API discovery: Compares upstream google/skia C++ headers against SkiaSharp's C API externs and C# wrappers to find unbound features.
  • Validated outputs: Produces schema-validated JSON plus a rendered GitHub-flavored Markdown report with collapsible sections.
  • Use Case: After a Skia milestone bump, ask what shipped and what is missing to get a prioritized gap report with quick wins (partial bindings) and breaking changes ready to paste into a GitHub issue.

Quick Start

Ask the agent to analyze what changed between Skia milestone 133 and 147 and generate the gap analysis report.

Frequently Asked Questions about skia-analyst

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I generate SkiaSharp release notes between two versions?

Provide two git refs such as v3.119.4 and origin/main, and the skill runs in diff mode, analyzing API, build, and dependency changes plus upstream Skia milestone benefits. It outputs a validated JSON report and a rendered Markdown file suitable for a GitHub issue or gist.

How do I find Skia features that SkiaSharp has not bound yet?

Run a full or windowed scan and the skill compares upstream google/skia C++ headers against SkiaSharp's C API externs in SkiaApi.generated.cs and the C# wrappers. Findings are classified by bindingStatus, with partial items flagged as quick wins needing only a C# wrapper.

What scan modes does the Skia analysis support?

Three modes are supported: full (all milestones), windowed (a milestone range such as m133 to m147), and diff (between two git refs or tags). The mode is inferred from your input, so you can specify milestones, refs, or nothing at all.

Does the analysis require the skia submodule to be checked out?

No. If externals/skia is not checked out, the skill greps SkiaApi.generated.cs for sk_* and gr_* P/Invoke externs, which reflect the full C API surface. Upstream C++ headers are fetched directly from GitHub for comparison.

Why does the report JSON fail validation?

Validation fails when required finding fields are missing, enum values are invalid, or summary counts do not match the findings array. Run validate-skia-analyst.py to see specific errors; it exits with code 1 for fixable issues and lists each schema violation.