{"id":"6eb941a4-b20e-47a3-a852-b7c8922a32cd","shortId":"67Emg7","kind":"skill","title":"Csharp Docs","tagline":"Awesome Copilot skill by Github","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"],"capabilities":["skill","source-github","category-awesome-copilot"],"categories":["awesome-copilot"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/github/awesome-copilot/csharp-docs","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"install_from":"skills.sh"}},"qualityScore":"0.300","qualityRationale":"deterministic score 0.30 from registry signals: · indexed on skills.sh · published under github/awesome-copilot","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:v1","enrichmentVersion":1,"enrichedAt":"2026-04-22T14:40:17.444Z","embedding":null,"createdAt":"2026-04-18T20:25:49.881Z","updatedAt":"2026-04-22T14:40:17.444Z","lastSeenAt":"2026-04-22T14:40:17.444Z","tsv":"'access':546 'add':125,444 'addit':72 'also':165 'api':42,550 'articl':218,348 'attribut':135 'awesom':3 'base':176 'begin':214,344,531 'behavior':184 'best':10 'bitwis':231 'block':117 'bool':97 'boolean':264,354,413,460 'brief':47 'c':8 'case':188 'category-awesome-copilot' 'chang':185 'class':177,376 'code':102,116,130 'combin':232 'comment':19 'complex':33 'condit':518,538 'constructor':364,480 'contain':292 'context':85 'copilot':4 'csharp':1 'data':212,342,435 'default':442,453,471 'describ':197,308,325,417,516 'descript':50,201,228,250,331,424,512 'detail':78 'differ':193 'direct':491,539 'doc':2,170 'document':9,16,24,174,191,305,322,476,487,501 'doesn':208,338,431 'encount':510 'encourag':22 'enum':225,247 'enumer':235,255 'error':543 'especi':29 'etc':98 'event':486 'exampl':107,131,137,451,541 'except':473,477,489,496,504,515 'explanatori':38 'fals':95 'flag':224,246 'form':271,287,361,467 'generic':312 'get':384,393,400 'github':7 'guidanc':39 'implement':77 'includ':76 'index':482 'indic':406 'inform':73 'inherit':173 'initi':370 'inlin':101,145 'instanc':373 'int':96 'interfac':179 'intern':25 'introductori':217,347 'keyword':91 'languag':89,127,134 'language-specif':88 'like':92,508 'major':183 'member':13,26,56,113,144,161,494,500 'messag':548 'method':194,198,290,315,328,483 'name':303 'nest':499 'new':372 'non':245 'non-flag':244 'note':80 'noun':205,335,428 'null':93 'occur':544 'omit':524 'one':48,252 'onlin':169 'oper':484 'otherwis':273,363,469 'paramet':199,221,241,261,276,280,294,302,310,320 'person':68 'phrase':206,336,429 'place':121 'practic':11 'present':64 'present-tens':63 'properti':379,392,399,409,422,439,481 'provid':45 'public':12 'queu':549 'read':390,397 'read-on':396 'read-writ':389 'refer':140,156,301,318 'relev':84 'return':291,329,351,411 'section':166 'see':164 'self':37 'self-explanatori':36 'sentenc':49,148,155,449,534 'separ':448 'set':386,402 'skill':5 'snippet':103 'source-github' 'specif':90 'specifi':210,238,258,340,433 'standalon':151 'start':58,226,248,382 'state':536 'struct':378 'summari':60,366 'tag':118,124 'tens':65 'third':67 'third-person':66 'thrown':478,490,497,523,525 'treat':296 'true':94 'type':54,142,159,213,309,313,319,343,352,436,458 'uniniti':298 'unless':180 'usag':79,106 'use':43,70,86,99,104,111,114,132,138,149,171,195,299,306,316,323,415,474 'user':505 'valu':236,256,404,414,419,443,457 'verb':69 'well':28 'whether':407 'within':122 'word':266,282,356,367,462 'write':391 'xml':18","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-04-22T12:52:10.241Z"},{"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-04-22T14:40:17.444Z"}],"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","source":"skills_sh","category":"awesome-copilot","skills_sh_url":"https://skills.sh/github/awesome-copilot/csharp-docs"},"updatedAt":"2026-04-22T14:40:17.444Z"}}