SKILL.md
Search for Related Error Codes
Search for theme-related diagnostics that may have been missed during initial consolidation. Preserve all three phase boundaries and approval gates.
Required Inputs
Collect these inputs from the user:
- Destination filename: The consolidated
.mdfile indocs/csharp/language-reference/compiler-messages/. - Theme description: The theme to search for.
Key Paths
- Destination:
docs/csharp/language-reference/compiler-messages/{destination-filename} - TOC:
docs/csharp/language-reference/toc.yml - Catch-all:
docs/csharp/misc/sorry-we-don-t-have-specifics-on-this-csharp-error.md - Roslyn error codes:
../roslyn/src/Compilers/CSharp/Portable/Errors/ErrorCode.cs - Roslyn resources:
../roslyn/src/Compilers/CSharp/Portable/CSharpResources.resx
Phase A: Search Existing Documentation
- Read the destination and collect all included error codes.
- Search all files whose names begin with
csin:
- docs/csharp/language-reference/compiler-messages/ - docs/csharp/misc/
- Read every candidate and decide whether its diagnostic relates to the theme.
- Build a candidate list containing the file, error code, and a brief reason it matches.
Present the list and stop:
| File | Error Code | Reason |
|------|------------|--------|
| cs0220.md | CS0220 | Describes compile-time overflow |
Tell the user:
Review this list. Approve the files you want merged, then run the
error-consolidation-merge-existingskill with the approved list.
Wait for the user before proceeding to Phase B. Do not merge candidates in this skill.
Phase B: Search Undocumented Catch-All Errors
After the Phase A gate is satisfied:
- Read
f1_keywordsfrom the catch-all file's front matter. - For each listed code:
1. Extract the numeric portion, such as CS0463 to 463. 2. Find the ERR or WRN constant assigned that number in ErrorCode.cs. 3. Find the <data> element in CSharpResources.resx whose name exactly matches the constant. 4. Read the verbatim message from its <value> child.
- Keep only messages related to the theme.
- Exclude codes already present in the destination.
Present the filtered list and stop:
| Error Code | Error Message |
|------------|---------------|
| CS0463 | Evaluation of the decimal constant expression failed |
| CS1021 | Integral constant is too large |
Tell the user:
Review this list. Tell me which error codes to add.
Wait for explicit approval before proceeding to Phase C.
Phase C: Add Approved Error Codes
Process all approved codes as one batch.
For each code:
- Add it to destination
f1keywordsandhelpviewerkeywordsin numeric order. - Add it to the destination master error list in numeric order:
``markdown - [CS{NNNN}](#anchor-tbd): {verbatim error message from CSharpResources.resx} ``
Use #anchor-tbd until the consolidation phase assigns thematic anchors. Replace Roslyn format placeholders such as '{0}' and '{1}' with descriptive terms while preserving the static message text and producing a coherent sentence. Prefer context-appropriate generic terms such as 'type', 'value', 'operator', 'member', or 'method'. For example, Constant value '{0}' cannot be converted to a '{1}' becomes Constant value 'value' cannot be converted to a 'type'. Use the following XML <comment> element, when present, to identify placeholder meanings.
- Add it to the destination TOC entry's
displayNamein numeric order. - Remove it from
f1_keywordsin the catch-all file.
Do not create redirects for these codes because they had no standalone articles.
Present a summary of all changes made.