.github/skills/check-spelling/SKILL.md
Check and fix spelling in project source files using cSpell.
npx skillsauth add azure/azure-sdk-for-rust check-spellingInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Get all staged and unstaged non-deleted files, then pipe them to the spell check script:
{ git diff --staged --name-only --diff-filter=d; git diff --name-only --diff-filter=d; } | sort -u | ./eng/common/spelling/Invoke-Cspell.ps1
The root configuration is .vscode/cspell.json, and CI runs cSpell with this config via eng/common/spelling/Invoke-Cspell.ps1.
Each service directory (e.g., sdk/{service-directory}) or crate directory (e.g., sdk/{service-directory}/{crate-directory}) can have a .cspell.json that should import either a parent .cspell.json or .vscode/cspell.json from the root of the repo. Per-directory configs are loaded based on the paths of files being checked.
Show a summary of the misspellings to the user. Prompt the user for which words should be replaced and which should be ignored.
For words that should be replaced, fix the misspellings directly in the source files. If you cannot confidently determine the correct spelling, ask the user.
For words that should be ignored, add them to the ignoreWords array in a .cspell.json file under sdk/{service-directory} or lower. If the file doesn't exist, create it with an import of either a parent .cspell.json or ../../.vscode/cspell.json from the root of the repo.
Example sdk/keyvault/.cspell.json:
{
"import": [
"../../.vscode/cspell.json"
],
"ignoreWords": [
"ciphertext",
"purgeable"
]
}
Seldom used words can be ignored within the file they are used by adding an appropriate comment e.g.:
// cspell:ignore <word>
Run the same command again used to check spelling. All misspellings should be fixed.
development
Enforce consistent struct design conventions across sdk/cosmos crates. Validates visibility modifiers, field privacy, #[non_exhaustive] usage, and construction API patterns (`Default`/`new` with `with_*` setters, or optional separate builders with `builder()`/`build()`), and construction correctness on public structs. Can auto-fix violations or report them as errors.
development
Run pre-commit checks for a specific set of crates. Use this when validating changes under sdk/cosmos before committing or during code review.
tools
Update the TypeSpec emitter for Rust and optionally regenerate all clients
tools
Check and fix formatting and other issues in markdown files using markdownlint-cli2.