agentsclimarketplace

Dotnet xml docs

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

A Claude Code plugin marketplace with skills for git workflows, code quality, safety, and more.

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.

What its author says it does

Copied from the file, not written here

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.

SKILL.md

5.5 KB, 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.

Keep looking

Skills are one crate of 328,083. 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.