agentsclimarketplace

Dotnet xml docs

Skill jzills/claude-marketplace/plugins/dotnet-xml-docs/skills/dotnet-xml-docs

Use when writing, reviewing, or generating XML documentation comments (///) for C# or .NET code. Trigger on: "add XML docs", "document this class", "write doc comments", "add IntelliSense comments", "document the API", "add triple-slash comments", "add summary comments", or any request involving /// documentation in C#/.NET. Also trigger proactively when the user asks to review or complete a public API surface that lacks documentation.From its SKILL.md

Install
npx -y skills add jzills/claude-marketplace --skill dotnet-xml-docs

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
  • 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

5.5 KB, ~1.2k tokens by cl100k_base, as published. Nobody here has run it

.NET XML Documentation Writer

You are writing production-quality XML documentation comments for C# public APIs. Documentation should be accurate, concise, and useful in IntelliSense — not verbose padding.

For the complete tag specification and attribute reference, see @xml-doc-reference.md.


Tag Quick Reference

TagApplied toPurpose
<summary>Any memberOne-sentence description (required for all public members)
<remarks>Any memberSupplemental detail beyond the summary
<param>Methods, constructorsDocuments a single parameter
<returns>MethodsDescribes the return value
<exception>Methods, propertiesDocuments a thrown exception
<typeparam>Generic types/methodsDocuments a type parameter
<value>PropertiesDescribes what the property represents
<example>Any memberUsage example, typically contains <code>
<see>InlineInline cross-reference to another member or URL
<seealso>Top-levelGenerates a "See Also" section
<inheritdoc>Overrides/implementationsInherits docs from base or interface
<para>Inside other tagsDouble-spaced paragraph break
<c>InlineInline monospace code
<code>BlockMulti-line code block
<list>BlockBulleted, numbered, or table list
<br/>InlineSingle-spaced line break

Core Patterns

Type and method documentation

/// <summary>
/// Processes a payment and returns the resulting transaction.
/// </summary>
/// <remarks>
/// Retries up to three times on transient failures before throwing.
/// </remarks>
/// <param name="request">The payment details to process.</param>
/// <returns>A <see cref="Transaction"/> representing the completed payment.</returns>
/// <exception cref="PaymentDeclinedException">Thrown when the payment is declined.</exception>
/// <exception cref="ArgumentNullException">Thrown when <paramref name="request"/> is <see langword="null"/>.</exception>
public Transaction ProcessPayment(PaymentRequest request)

Generic types and methods

/// <summary>
/// A thread-safe pool of reusable <typeparamref name="T"/> instances.
/// </summary>
/// <typeparam name="T">The type of object to pool. Must be a class with a parameterless constructor.</typeparam>
public class ObjectPool<T> where T : class, new()

Properties

/// <summary>
/// Gets or sets the maximum number of concurrent connections.
/// </summary>
/// <value>The connection limit. Defaults to <c>100</c>.</value>
public int MaxConnections { get; set; }

Inheriting from interface or base class

/// <inheritdoc/>
public override string ToString()

// Or inherit from a specific member:
/// <inheritdoc cref="IDisposable.Dispose"/>
public void Dispose()

Cross-references

// Code member reference (compiler-verified):
/// See <see cref="PaymentService.ProcessPayment"/> for the synchronous version.

// Language keyword:
/// Returns <see langword="null"/> if the user is not found.

// External URL:
/// See <see href="https://learn.microsoft.com/dotnet/csharp">C# Guide</see> for background.

// "See Also" section:
/// <seealso cref="Transaction"/>
/// <seealso cref="PaymentRequest"/>

Usage examples

/// <example>
/// <code>
/// var pool = new ObjectPool&lt;Connection&gt;();
/// var conn = pool.Rent();
/// try { /* use conn */ }
/// finally { pool.Return(conn); }
/// </code>
/// </example>

Lists inside remarks

/// <remarks>
/// Supported modes:
/// <list type="bullet">
///   <item><term>Fast</term><description>Low latency, higher memory usage.</description></item>
///   <item><term>Balanced</term><description>Default mode for most workloads.</description></item>
///   <item><term>Efficient</term><description>Lower memory, higher latency.</description></item>
/// </list>
/// </remarks>

Rules

  • Write <summary> as a complete sentence ending with a period.
  • Document every public parameter, return value, and thrown exception.
  • Use cref for code references — the compiler validates them. Use href for external URLs.
  • Prefer List{T} brace syntax over List&lt;T&gt; in cref attributes — it's less noisy.
  • Don't write <remarks> just to repeat the summary. Only add it when there's genuinely more to say.
  • Don't document obvious things: <param name="value">The value.</param> adds nothing.
  • Keep <summary> to one sentence. Move longer explanations to <remarks>.

Output Format

When documenting a class:

  1. Read the class — understand every public member, its parameters, return types, and generic constraints.
  2. Identify what needs docs — all public types, methods, properties, events, and constructors.
  3. Write complete, compilable comments — no TODO placeholders, no orphaned tags.
  4. Verify cref targets exist — don't reference types or members that aren't in scope.

Output the fully documented file unless the user asks for isolated snippets.

What ships with it: 1 file

8.0 KB alongside SKILL.md

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.