.agents/skills/api-docs/references/checklist.md
Based on official .NET API documentation guidelines.
Classify issues by severity when reviewing documentation.
Issues that damage credibility or break functionality:
[Obsolete("...", true)] in a code example. These are compile errors, so the example never builds. Most common: legacy text rendering (SKPaint.TextSize/Typeface/TextAlign, old SKCanvas.DrawText(string,float,float,SKPaint)) — use SKFont instead. The extract JSON flags these in an obsolete field.MemberValue and the member name, which usually encodes the exact standard (SmpteRp4312 = SMPTE RP 431-2, not 432-2; SmpteSt4281 in SKColorspaceTransferFnCicp = SMPTE ST 428-1, a gamma-2.6 transfer, not linear). Note the same member name can mean different things in sibling enums (SmpteSt4281 is also a primaries member). Verify both the identifier and the described behavior against the member's own enum.<, >, &; missing closing tags; mismatched tag names<xref: appearing in CDATA blocks means CDATA was destroyed during editingIssues that violate standards or leave gaps:
<value />, <summary />, <returns />, or <summary></summary> with only whitespace (note: <remarks /> is acceptable for simple members)signature field ({ get; } → "Gets", { get; set; } → "Gets or sets")<see cref> class" (or "struct" for value types) — a shortened "Initializes a new <see cref> from..." is wrong<value> using "true to..." instead of "true if..." — a property value describes a state, like a return value, so it reads "true if..." (only parameters use "true to...")<see langword> for true/false/null<see langword="default" /> instead of <see langword="null" /> for nullable params<xref:T:...>, <xref:M:...>, <xref:P:...> are broken links. Inside CDATA an xref takes the bare UID (<xref:SkiaSharp.SKPath>); the prefix is only for <see cref> outside CDATA.0 / null / false unless the source explicitly sets it. A "typical" constant exposed elsewhere (e.g. SKDocument.DefaultRasterDpi = 72) is NOT the struct's default and must be documented separately. Verify against the C# source in binding/, not against a value that "looks typical". (Recurring error: SKDocumentXpsOptions.Dpi documented as "default 72" — it is actually 0.)bitmap2 when only bitmap was declared) — examples must be self-containedusing) an object owned by a parent — e.g. the canvas from SKDocument.BeginPage(...) is owned by the document, and SKSurface.Canvas is owned by the surface; calling Dispose()/using on them is wrong (see skia-patterns.md "Caller-owned vs parent-owned")Style improvements that enhance quality:
<paramref> when referring to parameters<remarks> that would add valueWhen reporting issues, organize by severity and include:
### CRITICAL
- **File**: `docs/SkiaSharpAPI/SkiaSharp/SKPaint.xml`
- **Issue**: Spelling error "recieve"
- **Current**: `<summary>Recieve the paint data.</summary>`
- **Fix**: `<summary>Receives the paint data.</summary>`
### IMPORTANT
- **File**: `docs/SkiaSharpAPI/SkiaSharp/SKCanvas.xml`
- **Member**: `DrawRect`
- **Issue**: Empty param tag
- **Current**: `<param name="rect" />`
- **Fix**: `<param name="rect">The rectangle to draw.</param>`
End reviews with: