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:
- Extract the numeric portion, such as
CS0463to463. - Find the
ERR_orWRN_constant assigned that number inErrorCode.cs. - Find the
<data>element inCSharpResources.resxwhosenameexactly matches the constant. - Read the verbatim message from its
<value>child.
- Extract the numeric portion, such as
- 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
f1_keywordsandhelpviewer_keywordsin numeric order.Add it to the destination master error list in numeric order:
- [**CS{NNNN}**](#anchor-tbd): *{verbatim error message from CSharpResources.resx}*Use
#anchor-tbduntil 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}'becomesConstant 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.