Writes and maintains XML documentation comments for SkiaSharp APIs. Ensures code remains compliant with .NET documentation standards.
Install
mkdir -p .claude/skills/api-docs && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/2986" && unzip -o skill.zip -d .claude/skills/api-docs && rm skill.zipInstalls to .claude/skills/api-docs
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Write AND review XML API documentation for SkiaSharp (ECMA/mdoc XML in the docs submodule). Two modes: (1) ADD docs for new APIs with "To be added." placeholders; (2) REVIEW existing docs by scope for accuracy, freshness, examples, and hygiene. Triggers: "document class", "add XML docs", "write XML documentation", "fill in missing docs", "remove To be added placeholders", "review documentation", "check docs for errors", "fix doc issues", "audit the docs", "review the font docs", "are the examples correct", "update out-of-date docs", any request to add, validate, correct, or expand SkiaSharp API documentation.Key capabilities
- →Add XML documentation to SkiaSharp classes
- →Review existing documentation for accuracy
- →Apply .NET XML comment conventions
- →Validate documentation format and hygiene
How it works
The skill routes documentation tasks to specific procedures that edit ECMA/mdoc XML files, ensuring compliance with .NET standards and SkiaSharp patterns.
Inputs & outputs
When to use api-docs
- →Add XML documentation to classes and methods
- →Review existing documentation for errors
- →Apply standard .NET XML comment conventions
- →Document API class structures
About this skill
API Documentation
Add and review SkiaSharp API documentation. This file is a router: it picks a procedure and points to
the reference and tooling files that do the work. The detailed instructions live in references/ so they
load only when needed.
Key facts
docs/is themono/SkiaSharp-API-docssubmodule — one ECMA/mdoc.xmlper type, generated from NuGet assemblies viamdoc. CDATA<remarks>may holdcsharpcode fences. Rungit submodule update --init docsif it is empty.- Each
<Type>.xmlmaps 1:1 tobinding/SkiaSharp/<Type>.cs(orbinding/HarfBuzzSharp/) → always read source before documenting. - Edit the XML directly. Safety comes from
docs-format-docs, which formats every file and fails the build on broken XML/CDATA (references/validation.md). - Never edit generated files:
index.xml,ns-*.xml,_filter.xml,FrameworksIndex/.
How to work
One agent does the whole pass. Read the relevant reference, resolve scope into an explicit file list, then work in batches of ~25–40 files so each pass stays auditable and resumable.
| If the task is… | Read |
|---|---|
Documenting new APIs / filling To be added. placeholders | references/adding.md |
| Reviewing/correcting/expanding existing docs (one type, a theme, what changed, or all) | references/reviewing.md |
The user asks in plain language ("review the font docs", "fill in what's missing"). The docs live at
docs/SkiaSharpAPI/<Namespace>/<Type>.xml; list them directly, and use
git -C docs diff --name-only origin/main...HEAD for "what changed". Each <Type>.xml maps to its source
at binding/<Namespace>/<Type>.cs, and you pick the files a request covers — for a theme, scan the
list and select the matching types yourself; the chosen procedure file covers the rest.
All findings use one machine-parseable contract: SEVERITY | class | file | docId | message.
References (canonical facts)
references/patterns.md— .NET XML doc syntax, verb conventions, formatting.references/skia-patterns.md— domain facts (color layouts, struct defaults, standard-based enums, caller-owned vs parent-owned).references/checklist.md— CRITICAL/IMPORTANT/MINOR severity taxonomy.references/obsolete-api-map.md— obsolete members and their modern replacements; the writer and example reviewer read it (not the linter — obsolete use is a model judgement, see the reference for why).
DRY rule: the procedures describe what to do; the reference tables hold the facts. Procedures point to references — they must not restate the tables. Keep reference chains one level deep.
Tooling & validation
- Format + checks (one Cake target in
scripts/infra/docs/docs.cake):docs-format-docsformats every type file and runs the deterministic content checks — warnings for missing/quality issues, build-failing errors for broken XML/CDATA. Seereferences/validation.md. - Snippet build (C#-only, download is fine):
dotnet cake --target=externals-downloadthendotnet build binding/SkiaSharp/SkiaSharp.csproj.
Landing changes
The docs submodule protects main — commit on a dev/... branch and open a PR (per-wave). Skill asset
changes land in the parent mono/SkiaSharp repo; the auto-api-docs-writer agentic workflow that runs
this skill on CI lives in mono/SkiaSharp-API-docs.
When not to use it
- →For non-SkiaSharp API documentation
- →When editing generated index files
Prerequisites
Limitations
- →Only supports SkiaSharp/HarfBuzzSharp components
- →Requires manual submodule initialization
How it compares
It enforces a structured, machine-validated documentation workflow compared to manual, ad-hoc comment writing.
Compared to similar skills
api-docs side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| api-docs (this skill) | 1 | 1mo | No flags | Intermediate |
| csharp-developer | 43 | 2mo | No flags | Advanced |
| csharp-pro | 9 | 4mo | No flags | Intermediate |
| performance-benchmark | 3 | 4mo | No flags | Intermediate |
Try saying
Example prompts that trigger this skill in your AI assistant.
More by mono
View all by mono →You might also like
csharp-developer
zenobi-us
Expert C# developer specializing in modern .NET development, ASP.NET Core, and cloud-native applications. Masters C# 12 features, Blazor, and cross-platform development with emphasis on performance and clean architecture.
csharp-pro
sickn33
Write modern C# code with advanced features like records, pattern matching, and async/await. Optimizes .NET applications, implements enterprise patterns, and ensures comprehensive testing. Use PROACTIVELY for C# refactoring, performance optimization, or complex .NET solutions.
performance-benchmark
dotnet
Generate and run ad hoc performance benchmarks to validate code changes. Use this when asked to benchmark, profile, or validate the performance impact of a code change in dotnet/runtime.
dotnet-backend-patterns
wshobson
Master C#/.NET backend development patterns for building robust APIs, MCP servers, and enterprise applications. Covers async/await, dependency injection, Entity Framework Core, Dapper, configuration, caching, and testing with xUnit. Use when developing .NET backends, reviewing C# code, or designing API architectures.
azure-servicebus-dotnet
microsoft
Azure Service Bus SDK for .NET. Enterprise messaging with queues, topics, subscriptions, and sessions. Use for reliable message delivery, pub/sub patterns, dead letter handling, and background processing. Triggers: "Service Bus", "ServiceBusClient", "ServiceBusSender", "ServiceBusReceiver", "ServiceBusProcessor", "message queue", "pub/sub .NET", "dead letter queue".
backend-testing
exceptionless
Backend testing with xUnit, Foundatio.Xunit, integration tests with AppWebHostFactory, FluentClient, ProxyTimeProvider for time manipulation, and test data builders. Keywords: xUnit, Fact, Theory, integration tests, AppWebHostFactory, FluentClient, ProxyTimeProvider, TimeProvider, Foundatio.Xunit, TestWithLoggingBase, test data builders