Switch CSpell to distributed form#2958
Open
chidozieononiwu wants to merge 1 commit into
Open
Conversation
chidozieononiwu
requested review from
a team,
HaofanLiao,
JialinXin,
JonathanCrd,
achyuth-ms,
alzimmermsft,
anannya03,
ankushbindlish2,
arunrab,
chenkennt,
conniey,
ericshape,
jeremyfrosti,
jongio,
kk-src,
kszobi,
mattkohnms,
msalaman,
pablocastro,
philon-msft,
ramnov,
sharedferret,
srnagar,
vladimisms,
wchigit,
xfz11 and
xiangyan99
as code owners
June 26, 2026 03:52
chidozieononiwu
requested review from
a team,
KarishmaGhiya,
akshayrohilla,
ankiga-MSFT,
audreyttt,
fanyang-mono,
g2vinay,
gossion,
ivarprudnikov,
jairmyree,
manvkaur,
saikoumudi,
taicchoumsft,
vcolin7,
vrdmr,
wbreza,
weng5e and
xiaomi7732
as code owners
June 26, 2026 03:52
Contributor
There was a problem hiding this comment.
Pull request overview
This PR switches the repository’s spell-checking setup to a distributed CSpell configuration model by introducing a root cspell.yaml (plus a compatibility cspell.json), adding a PR-triggered GitHub Actions workflow, and adding per-project cspell.yaml files for servers/toolsets to hold local spelling overrides.
Changes:
- Added a GitHub Actions workflow to run spell checking on PRs against
main. - Introduced root CSpell configuration (
cspell.yaml) plus a compatibilitycspell.json. - Added per-project
cspell.yamlfiles underservers/**andtools/**for project-scoped word lists/overrides.
Reviewed changes
Copilot reviewed 67 out of 67 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| .github/workflows/spelling.yaml | New PR workflow that runs spell-checking for changed files. |
| cspell.yaml | New root CSpell configuration and shared dictionaries/ignore paths. |
| cspell.json | Compatibility config intended to import the root YAML config. |
| .vscode/cspell.json | Removed legacy VS Code-scoped CSpell configuration. |
| servers/Azure.Mcp.Server/cspell.yaml | Adds server-scoped spelling overrides importing the root config. |
| servers/Fabric.Mcp.Server/cspell.yaml | Adds server-scoped spelling overrides importing the root config. |
| servers/Template.Mcp.Server/cspell.yaml | Adds server-scoped spelling overrides importing the root config. |
| tools/Azure.Mcp.Tools.Acr/cspell.yaml | Adds toolset-scoped spelling overrides importing the root config. |
| tools/Azure.Mcp.Tools.Advisor/cspell.yaml | Adds toolset-scoped spelling overrides importing the root config. |
| tools/Azure.Mcp.Tools.Aks/cspell.yaml | Adds toolset-scoped spelling overrides importing the root config. |
| tools/Azure.Mcp.Tools.AppConfig/cspell.yaml | Adds toolset-scoped spelling overrides importing the root config. |
| tools/Azure.Mcp.Tools.AppLens/cspell.yaml | Adds toolset-scoped spelling overrides importing the root config. |
| tools/Azure.Mcp.Tools.ApplicationInsights/cspell.yaml | Adds toolset-scoped spelling overrides importing the root config. |
| tools/Azure.Mcp.Tools.AppService/cspell.yaml | Adds toolset-scoped spelling overrides importing the root config. |
| tools/Azure.Mcp.Tools.Authorization/cspell.yaml | Adds toolset-scoped spelling overrides importing the root config. |
| tools/Azure.Mcp.Tools.AzureBackup/cspell.yaml | Adds toolset-scoped spelling overrides importing the root config. |
| tools/Azure.Mcp.Tools.AzureBestPractices/cspell.yaml | Adds toolset-scoped spelling overrides importing the root config. |
| tools/Azure.Mcp.Tools.AzureIsv/cspell.yaml | Adds toolset-scoped spelling overrides importing the root config. |
| tools/Azure.Mcp.Tools.AzureMigrate/cspell.yaml | Adds toolset-scoped spelling overrides importing the root config. |
| tools/Azure.Mcp.Tools.AzureTerraform/cspell.yaml | Adds toolset-scoped spelling overrides importing the root config. |
| tools/Azure.Mcp.Tools.AzureTerraformBestPractices/cspell.yaml | Adds toolset-scoped spelling overrides importing the root config. |
| tools/Azure.Mcp.Tools.AzureTerraformBestPractices/cspell.yaml | Adds toolset-scoped spelling overrides importing the root config. |
| tools/Azure.Mcp.Tools.BicepSchema/cspell.yaml | Adds toolset-scoped spelling overrides importing the root config. |
| tools/Azure.Mcp.Tools.CloudArchitect/cspell.yaml | Adds toolset-scoped spelling overrides importing the root config. |
| tools/Azure.Mcp.Tools.Communication/cspell.yaml | Adds toolset-scoped spelling overrides importing the root config. |
| tools/Azure.Mcp.Tools.Compute/cspell.yaml | Adds toolset-scoped spelling overrides importing the root config. |
| tools/Azure.Mcp.Tools.ConfidentialLedger/cspell.yaml | Adds toolset-scoped spelling overrides importing the root config. |
| tools/Azure.Mcp.Tools.ContainerApps/cspell.yaml | Adds toolset-scoped spelling overrides importing the root config. |
| tools/Azure.Mcp.Tools.Cosmos/cspell.yaml | Adds toolset-scoped spelling overrides importing the root config. |
| tools/Azure.Mcp.Tools.Deploy/cspell.yaml | Adds toolset-scoped spelling overrides importing the root config. |
| tools/Azure.Mcp.Tools.DeviceRegistry/cspell.yaml | Adds toolset-scoped spelling overrides importing the root config. |
| tools/Azure.Mcp.Tools.EventGrid/cspell.yaml | Adds toolset-scoped spelling overrides importing the root config. |
| tools/Azure.Mcp.Tools.EventHubs/cspell.yaml | Adds toolset-scoped spelling overrides importing the root config. |
| tools/Azure.Mcp.Tools.Extension/cspell.yaml | Adds toolset-scoped spelling overrides importing the root config. |
| tools/Azure.Mcp.Tools.FileShares/cspell.yaml | Adds toolset-scoped spelling overrides importing the root config. |
| tools/Azure.Mcp.Tools.FoundryExtensions/cspell.yaml | Adds toolset-scoped spelling overrides importing the root config. |
| tools/Azure.Mcp.Tools.FunctionApp/cspell.yaml | Adds toolset-scoped spelling overrides importing the root config. |
| tools/Azure.Mcp.Tools.Functions/cspell.yaml | Adds toolset-scoped spelling overrides importing the root config. |
| tools/Azure.Mcp.Tools.Grafana/cspell.yaml | Adds toolset-scoped spelling overrides importing the root config. |
| tools/Azure.Mcp.Tools.KeyVault/cspell.yaml | Adds toolset-scoped spelling overrides importing the root config. |
| tools/Azure.Mcp.Tools.Kusto/cspell.yaml | Adds toolset-scoped spelling overrides importing the root config. |
| tools/Azure.Mcp.Tools.LoadTesting/cspell.yaml | Adds toolset-scoped spelling overrides importing the root config. |
| tools/Azure.Mcp.Tools.ManagedLustre/cspell.yaml | Adds toolset-scoped spelling overrides importing the root config. |
| tools/Azure.Mcp.Tools.Marketplace/cspell.yaml | Adds toolset-scoped spelling overrides importing the root config. |
| tools/Azure.Mcp.Tools.Monitor/cspell.yaml | Adds toolset-scoped spelling overrides importing the root config. |
| tools/Azure.Mcp.Tools.MySql/cspell.yaml | Adds toolset-scoped spelling overrides importing the root config. |
| tools/Azure.Mcp.Tools.Policy/cspell.yaml | Adds toolset-scoped spelling overrides importing the root config. |
| tools/Azure.Mcp.Tools.Postgres/cspell.yaml | Adds toolset-scoped spelling overrides importing the root config. |
| tools/Azure.Mcp.Tools.Pricing/cspell.yaml | Adds toolset-scoped spelling overrides importing the root config. |
| tools/Azure.Mcp.Tools.Quota/cspell.yaml | Adds toolset-scoped spelling overrides importing the root config. |
| tools/Azure.Mcp.Tools.Redis/cspell.yaml | Adds toolset-scoped spelling overrides importing the root config. |
| tools/Azure.Mcp.Tools.ResourceHealth/cspell.yaml | Adds toolset-scoped spelling overrides importing the root config. |
| tools/Azure.Mcp.Tools.Search/cspell.yaml | Adds toolset-scoped spelling overrides importing the root config. |
| tools/Azure.Mcp.Tools.ServiceBus/cspell.yaml | Adds toolset-scoped spelling overrides importing the root config. |
| tools/Azure.Mcp.Tools.ServiceFabric/cspell.yaml | Adds toolset-scoped spelling overrides importing the root config. |
| tools/Azure.Mcp.Tools.SignalR/cspell.yaml | Adds toolset-scoped spelling overrides importing the root config. |
| tools/Azure.Mcp.Tools.Speech/cspell.yaml | Adds toolset-scoped spelling overrides importing the root config. |
| tools/Azure.Mcp.Tools.Sql/cspell.yaml | Adds toolset-scoped spelling overrides importing the root config. |
| tools/Azure.Mcp.Tools.SreAgent/cspell.yaml | Adds toolset-scoped spelling overrides importing the root config. |
| tools/Azure.Mcp.Tools.Storage/cspell.yaml | Adds toolset-scoped spelling overrides importing the root config. |
| tools/Azure.Mcp.Tools.StorageSync/cspell.yaml | Adds toolset-scoped spelling overrides importing the root config. |
| tools/Azure.Mcp.Tools.VirtualDesktop/cspell.yaml | Adds toolset-scoped spelling overrides importing the root config. |
| tools/Azure.Mcp.Tools.WellArchitectedFramework/cspell.yaml | Adds toolset-scoped spelling overrides importing the root config. |
| tools/Azure.Mcp.Tools.Workbooks/cspell.yaml | Adds toolset-scoped spelling overrides importing the root config. |
| tools/Fabric.Mcp.Tools.Core/cspell.yaml | Adds toolset-scoped spelling overrides importing the root config. |
| tools/Fabric.Mcp.Tools.DataFactory/cspell.yaml | Adds toolset-scoped spelling overrides importing the root config. |
| tools/Fabric.Mcp.Tools.Docs/cspell.yaml | Adds toolset-scoped spelling overrides importing the root config. |
| tools/Fabric.Mcp.Tools.OneLake/cspell.yaml | Adds toolset-scoped spelling overrides importing the root config. |
Comments suppressed due to low confidence (2)
servers/Template.Mcp.Server/cspell.yaml:10
words:is currently set with no value, which makes this config ambiguous (null) and may cause CSpell to fail to load the per-project config. Use an explicit empty list for consistency with the other per-project configs (or remove the key entirely).
- ../../cspell.yaml
words:
tools/Azure.Mcp.Tools.WellArchitectedFramework/cspell.yaml:10
words:is currently declared with no list items, which results in a null value and can break/disable the per-project overrides. Prefer an explicit empty list (words: []) for a valid, consistent config.
| - name: Run spelling check | ||
| run: | | ||
| ./eng/common/scripts/check-spelling-in-changed-files.ps1 ` | ||
| -CSpellConfigPath './cspell.yaml' ` |
Comment on lines
+1
to
+6
| { | ||
| "//purpose": "This file is needed for older spell check versions to specify the files to lint", | ||
| "version": "0.2", | ||
| "import": [ | ||
| "cspell.yaml" | ||
| ] |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This pull request adds a spell checking workflow to the repository and introduces per-project spell check configuration files to improve spelling validation and maintainability across the codebase. The main changes are the addition of a GitHub Actions workflow for spell checking on pull requests, a compatibility configuration file, and new or updated
cspell.yamlfiles for individual servers and tools.CI/CD and Spell Checking Infrastructure:
.github/workflows/spelling.yaml) that runs a spell check on pull requests targeting themainbranch, ensuring spelling errors are caught automatically in changed files.cspell.jsoncompatibility file at the root to support older spell check versions and specify files to lint, importing the maincspell.yaml.Per-Project Spell Check Configuration:
cspell.yamlfiles for various servers and tools (e.g.,Azure.Mcp.Server,Fabric.Mcp.Server,Template.Mcp.Server, and multiple undertools/Azure.Mcp.Tools.*). These files inherit from the root config and allow for project-specific spelling overrides, improving accuracy and maintainability of spell checking. [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13]Project-specific Word Lists:
wordssection in eachcspell.yamlwith terms relevant to that specific project or tool, while leaving the section empty for projects without unique terms. This helps prevent false positives from domain-specific terminology. [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13]These changes together establish a robust, maintainable spell checking process that is both automated and customizable per project.
Addresses #89