Skip to content

Add JSON reporter for cspell spell-check #989

@WilliamBerryiii

Description

@WilliamBerryiii

Summary

cspell runs via npm run spell-check but produces only console output. No JSON results file is written to logs/. The tool supports reporters via its config, and the official @cspell/cspell-json-reporter package provides JSON output.

Current Behavior

Running npm run spell-check displays spelling issues in the console but writes nothing to logs/. Results are lost after the terminal closes.

Expected Behavior

Running npm run spell-check writes logs/cspell-results.json containing a structured report of spelling issues, while preserving console output.

Root Cause

.cspell.json has no reporters key configured.

Files Requiring Changes

File Change
package.json Add @cspell/cspell-json-reporter as devDependency (via npm install --save-dev)
.cspell.json Add reporters configuration with default + JSON reporter

Reproduction Steps

  1. Run npm run spell-check.
  2. Check logs/ for a cspell* file — none exists.
  3. Console output shows spelling issues but nothing persists.

Fix Guidance

  1. Install the reporter:
npm install @cspell/cspell-json-reporter --save-dev
  1. Add to .cspell.json:
"reporters": [
  ["default"],
  ["@cspell/cspell-json-reporter", { "outFile": "logs/cspell-results.json" }]
]

Including ["default"] preserves console output alongside JSON output. No npm script changes needed.

Unit Testing and Code Coverage Requirements

No Pester tests required — this is a Node.js tool configuration change. Manual verification: run npm run spell-check and confirm logs/cspell-results.json is created.


RPI Framework Starter Prompts

Research Phase

Select Task Researcher from the agent picker at the bottom of the GitHub Copilot Chat prompt pane, then send the following prompt:

Research JSON output options for cspell in hve-core. Investigate: (1) Read .cspell.json to understand the current configuration (language, ignorePaths, dictionaries, words). (2) Research the reporters configuration option in cspell documentation. (3) Verify @cspell/cspell-json-reporter is an official package — check its relationship to the main cspell package. (4) Review the JSON output schema produced by the reporter. (5) Check the cspell version in package.json for reporters API compatibility. (6) Determine whether ["default"] is needed to preserve console output when a reporter is configured.

Plan Phase

Select Task Planner from the agent picker at the bottom of the GitHub Copilot Chat prompt pane, then send the following prompt:

Plan the addition of JSON output for cspell using the research document. The plan should cover: (1) Installing @cspell/cspell-json-reporter as a devDependency. (2) Adding the reporters config to .cspell.json with both ["default"] and the JSON reporter. (3) Verifying console output is preserved alongside JSON file output. (4) Testing end-to-end via npm run spell-check. (5) Confirming the JSON output file path and schema.

Implement Phase

Select Task Implementor from the agent picker at the bottom of the GitHub Copilot Chat prompt pane, then send the following prompt:

Implement JSON output for cspell. Steps: (1) Run npm install @cspell/cspell-json-reporter --save-dev. (2) Add "reporters": [["default"], ["@cspell/cspell-json-reporter", { "outFile": "logs/cspell-results.json" }]] to .cspell.json. (3) Run npm run spell-check and verify logs/cspell-results.json is created. (4) Inspect the JSON to confirm it contains spelling issue details. (5) Verify console output still displays normally.

Review Phase

Select Task Reviewer from the agent picker at the bottom of the GitHub Copilot Chat prompt pane, then send the following prompt:

Review the cspell JSON reporter changes. Verify: (1) @cspell/cspell-json-reporter is added to devDependencies in package.json. (2) The reporters key in .cspell.json includes both ["default"] and the JSON reporter. (3) Console output is preserved (not suppressed by the reporter). (4) The output file logs/cspell-results.json is created in the correct location. (5) The JSON schema is valid and contains useful issue details. (6) No other .cspell.json changes were introduced. (7) npm run spell-check still passes or fails as expected.


References

  • .cspell.json — current configuration
  • package.json — devDependencies, spell-check script
  • npm: @cspell/cspell-json-reporter (official cspell package)

Metadata

Metadata

Assignees

Labels

good first issueGood for newcomerslintingLinting rules and validationscriptsPowerShell, Bash, or Python scripts

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions