{"id":"6eb941a4-b20e-47a3-a852-b7c8922a32cd","shortId":"67Emg7","kind":"skill","title":"csharp-docs","tagline":"Ensure that C# types are documented with XML comments and follow best practices for documentation.","description":"# C# Documentation Best Practices\n\n- Public members should be documented with XML comments.\n- It is encouraged to document internal members as well, especially if they are complex or not self-explanatory.\n\n## Guidance for all APIs\n\n- Use `<summary>` to provide a brief, one sentence, description of what the type or member does. Start the summary with a present-tense, third-person verb.\n- Use `<remarks>` for additional information, which can include implementation details, usage notes, or any other relevant context.\n- Use `<see langword>` for language-specific keywords like `null`, `true`, `false`, `int`, `bool`, etc.\n- Use `<c>` for inline code snippets.\n- Use `<example>` for usage examples on how to use the member.\n  - Use `<code>` for code blocks. `<code>` tags should be placed within an `<example>` tag. Add the language of the code example using the `language` attribute, for example, `<code language=\"csharp\">`.\n- Use `<see cref>` to reference other types or members inline (in a sentence).\n- Use `<seealso>` for standalone (not in a sentence) references to other types or members in the \"See also\" section of the online docs.\n- Use `<inheritdoc/>` to inherit documentation from base classes or interfaces.\n  - Unless there is major behavior change, in which case you should document the differences.\n\n## Methods\n\n- Use `<param>` to describe method parameters.\n  - The description should be a noun phrase that doesn't specify the data type.\n  - Begin with an introductory article.\n  - If the parameter is a flag enum, start the description with \"A bitwise combination of the enumeration values that specifies...\".\n  - If the parameter is a non-flag enum, start the description with \"One of the enumeration values that specifies...\".\n  - If the parameter is a Boolean, the wording should be of the form \"`<see langword=\"true\" />` to ...; otherwise, `<see langword=\"false\" />`.\".\n  - If the parameter is an \"out\" parameter, the wording should be of the form \"When this method returns, contains .... This parameter is treated as uninitialized.\".\n- Use `<paramref>` to reference parameter names in documentation.\n- Use `<typeparam>` to describe type parameters in generic types or methods.\n- Use `<typeparamref>` to reference type parameters in documentation.\n- Use `<returns>` to describe what the method returns.\n  - The description should be a noun phrase that doesn't specify the data type.\n  - Begin with an introductory article.\n  - If the return type is Boolean, the wording should be of the form \"`<see langword=\"true\" />` if ...; otherwise, `<see langword=\"false\" />`.\".\n\n## Constructors\n\n- The summary wording should be \"Initializes a new instance of the <Class> class [or struct].\".\n\n## Properties\n\n- The `<summary>` should start with:\n  - \"Gets or sets...\" for a read-write property.\n  - \"Gets...\" for a read-only property.\n  - \"Gets [or sets] a value that indicates whether...\" for properties that return a Boolean value.\n- Use `<value>` to describe the value of the property.\n  - The description should be a noun phrase that doesn't specify the data type.\n  - If the property has a default value, add it in a separate sentence, for example, \"The default is `<see langword=\"false\" />`\".\n  - If the value type is Boolean, the wording should be of the form \"`<see langword=\"true\" />` if ...; otherwise, `<see langword=\"false\" />`. The default is ...\".\n\n## Exceptions\n\n- Use `<exception cref>` to document exceptions thrown by constructors, properties, indexers, methods, operators, and events.\n- Document all exceptions thrown directly by the member.\n- For exceptions thrown by nested members, document only the exceptions users are most likely to encounter.\n- The description of the exception describes the condition under which it's thrown.\n  - Omit \"Thrown if ...\" or \"If ...\" at the beginning of the sentence. Just state the condition directly, for example \"An error occurred when accessing a Message Queuing API.\"","tags":["csharp","docs","awesome","copilot","github","agent-skills","agents","custom-agents","github-copilot","hacktoberfest","prompt-engineering"],"capabilities":["skill","source-github","skill-csharp-docs","topic-agent-skills","topic-agents","topic-awesome","topic-custom-agents","topic-github-copilot","topic-hacktoberfest","topic-prompt-engineering"],"categories":["awesome-copilot"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/github/awesome-copilot/csharp-docs","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add github/awesome-copilot","source_repo":"https://github.com/github/awesome-copilot","install_from":"skills.sh"}},"qualityScore":"0.700","qualityRationale":"deterministic score 0.70 from registry signals: · indexed on github topic:agent-skills · 33270 github stars · SKILL.md body (3,940 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-18T18:52:09.120Z","embedding":null,"createdAt":"2026-04-18T20:25:49.881Z","updatedAt":"2026-05-18T18:52:09.120Z","lastSeenAt":"2026-05-18T18:52:09.120Z","tsv":"'access':557 'add':136,455 'addit':83 'also':176 'api':53,561 'articl':229,359 'attribut':146 'base':187 'begin':225,355,542 'behavior':195 'best':15,21 'bitwis':242 'block':128 'bool':108 'boolean':275,365,424,471 'brief':58 'c':6,19 'case':199 'chang':196 'class':188,387 'code':113,127,141 'combin':243 'comment':12,30 'complex':44 'condit':529,549 'constructor':375,491 'contain':303 'context':96 'csharp':2 'csharp-doc':1 'data':223,353,446 'default':453,464,482 'describ':208,319,336,428,527 'descript':61,212,239,261,342,435,523 'detail':89 'differ':204 'direct':502,550 'doc':3,181 'document':9,18,20,27,35,185,202,316,333,487,498,512 'doesn':219,349,442 'encount':521 'encourag':33 'ensur':4 'enum':236,258 'enumer':246,266 'error':554 'especi':40 'etc':109 'event':497 'exampl':118,142,148,462,552 'except':484,488,500,507,515,526 'explanatori':49 'fals':106 'flag':235,257 'follow':14 'form':282,298,372,478 'generic':323 'get':395,404,411 'guidanc':50 'implement':88 'includ':87 'index':493 'indic':417 'inform':84 'inherit':184 'initi':381 'inlin':112,156 'instanc':384 'int':107 'interfac':190 'intern':36 'introductori':228,358 'keyword':102 'languag':100,138,145 'language-specif':99 'like':103,519 'major':194 'member':24,37,67,124,155,172,505,511 'messag':559 'method':205,209,301,326,339,494 'name':314 'nest':510 'new':383 'non':256 'non-flag':255 'note':91 'noun':216,346,439 'null':104 'occur':555 'omit':535 'one':59,263 'onlin':180 'oper':495 'otherwis':284,374,480 'paramet':210,232,252,272,287,291,305,313,321,331 'person':79 'phrase':217,347,440 'place':132 'practic':16,22 'present':75 'present-tens':74 'properti':390,403,410,420,433,450,492 'provid':56 'public':23 'queu':560 'read':401,408 'read-on':407 'read-writ':400 'refer':151,167,312,329 'relev':95 'return':302,340,362,422 'section':177 'see':175 'self':48 'self-explanatori':47 'sentenc':60,159,166,460,545 'separ':459 'set':397,413 'skill' 'skill-csharp-docs' 'snippet':114 'source-github' 'specif':101 'specifi':221,249,269,351,444 'standalon':162 'start':69,237,259,393 'state':547 'struct':389 'summari':71,377 'tag':129,135 'tens':76 'third':78 'third-person':77 'thrown':489,501,508,534,536 'topic-agent-skills' 'topic-agents' 'topic-awesome' 'topic-custom-agents' 'topic-github-copilot' 'topic-hacktoberfest' 'topic-prompt-engineering' 'treat':307 'true':105 'type':7,65,153,170,224,320,324,330,354,363,447,469 'uniniti':309 'unless':191 'usag':90,117 'use':54,81,97,110,115,122,125,143,149,160,182,206,310,317,327,334,426,485 'user':516 'valu':247,267,415,425,430,454,468 'verb':80 'well':39 'whether':418 'within':133 'word':277,293,367,378,473 'write':402 'xml':11,29","prices":[{"id":"2c27a963-5cfb-4246-9edb-4928ca9db679","listingId":"6eb941a4-b20e-47a3-a852-b7c8922a32cd","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"github","category":"awesome-copilot","install_from":"skills.sh"},"createdAt":"2026-04-18T20:25:49.881Z"}],"sources":[{"listingId":"6eb941a4-b20e-47a3-a852-b7c8922a32cd","source":"github","sourceId":"github/awesome-copilot/csharp-docs","sourceUrl":"https://github.com/github/awesome-copilot/tree/main/skills/csharp-docs","isPrimary":false,"firstSeenAt":"2026-04-18T21:48:59.437Z","lastSeenAt":"2026-05-18T18:52:09.120Z"},{"listingId":"6eb941a4-b20e-47a3-a852-b7c8922a32cd","source":"skills_sh","sourceId":"github/awesome-copilot/csharp-docs","sourceUrl":"https://skills.sh/github/awesome-copilot/csharp-docs","isPrimary":true,"firstSeenAt":"2026-04-18T20:25:49.881Z","lastSeenAt":"2026-05-07T22:40:18.046Z"}],"details":{"listingId":"6eb941a4-b20e-47a3-a852-b7c8922a32cd","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"github","slug":"csharp-docs","github":{"repo":"github/awesome-copilot","stars":33270,"topics":["agent-skills","agents","ai","awesome","custom-agents","github-copilot","hacktoberfest","prompt-engineering"],"license":"mit","html_url":"https://github.com/github/awesome-copilot","pushed_at":"2026-05-18T01:26:59Z","description":"Community-contributed instructions, agents, skills, and configurations to help you make the most of GitHub Copilot.","skill_md_sha":"6c673064bec2251911e563b05536f6e89cc5c0ca","skill_md_path":"skills/csharp-docs/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/github/awesome-copilot/tree/main/skills/csharp-docs"},"layout":"multi","source":"github","category":"awesome-copilot","frontmatter":{"name":"csharp-docs","description":"Ensure that C# types are documented with XML comments and follow best practices for documentation."},"skills_sh_url":"https://skills.sh/github/awesome-copilot/csharp-docs"},"updatedAt":"2026-05-18T18:52:09.120Z"}}