Skip to content

chore: add spell checking and fix typos#180

Open
thephez wants to merge 4 commits intodashpay:masterfrom
thephez:feat/spell-check
Open

chore: add spell checking and fix typos#180
thephez wants to merge 4 commits intodashpay:masterfrom
thephez:feat/spell-check

Conversation

@thephez
Copy link
Collaborator

@thephez thephez commented Mar 3, 2026

Summary

  • Add cspell spell checking configuration with a project-specific dictionary of ~165 Dash/crypto terms
  • Fix typos found across multiple DIPs:
    • DIP-6: duplicate "of of" → "of" (line 287)
    • DIP-10: "becomes" → "become" - grammar fix (line 198)
    • DIP-14: ser<sub>p</sub>ser<sub>P</sub> - case consistency (line 158); 0X0x - hex prefix (line 187)
    • DIP-15: publishMessagepublicMessage - wrong field name (line 671)
    • DIP-29: capitalize month names; "31th" → "31st" (lines 334, 339)
  • Add cspell inline ignores for intentional non-dictionary words (DIP-3, DIP-28, DIP-29)

Summary by CodeRabbit

  • Bug Fixes

    • Corrected documentation errors including typos, grammar mistakes, and formatting inconsistencies across specification documents.
    • Fixed serialization format documentation accuracy in technical specifications.
  • Documentation

    • Editorial improvements clarifying terminology and content in specification documents.
  • Chores

    • Added spell-checking infrastructure and configuration.
    • Added project-level custom word dictionary for validation.

thephez added 4 commits March 2, 2026 16:55
Due to how cspell splits words, some partial terms are detected as typos, like "Serv" (part of ProUpServTx), etc
@thephez thephez marked this pull request as ready for review March 3, 2026 15:38
@coderabbitai
Copy link

coderabbitai bot commented Mar 3, 2026

📝 Walkthrough

Walkthrough

This PR establishes spell-checking infrastructure by introducing cspell configuration, a custom project-words dictionary, and package dependency. Documentation files are updated with spell-checker directives and minor corrections including a serialization format fix and field name change.

Changes

Cohort / File(s) Summary
Spell-checking infrastructure
.cspell.json, package.json, project-words.txt
Adds cspell configuration (v0.2) with language definitions, custom dictionary referencing project-words.txt, exclusion rules for node_modules, and a regex override to ignore long letter-only strings in Markdown files. Package dependency added for cspell v9.7.0. Project-words file contains technical terms, acronyms, domain-specific tokens, and names for spell validation.
Build configuration
.gitignore
Adds node_modules/ to ignored paths.
Documentation updates
dip-0003.md, dip-0006.md, dip-0010.md, dip-0014.md, dip-0015.md, dip-0028.md, dip-0029.md
Multiple DIP documents updated with spell-checker ignore directives. dip-0006.md fixes duplicate "of" typo. dip-0010.md corrects grammar ("becomes" → "become"). dip-0014.md fixes serialization format (ser_P vs ser_p) and hex prefix casing (0X → 0x). dip-0015.md renames field reference from publishMessage to publicMessage. dip-0029.md includes editorial corrections.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main objectives: adding spell-checking infrastructure (cspell configuration, project dictionary, dependencies) and fixing typos across multiple DIP documents.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
dip-0003.md (1)

269-278: ⚠️ Potential issue | 🟠 Major

Fix markdownlint MD032 list spacing in validation rules.

CI is currently failing at Line 270 (MD032/blanks-around-lists). Add blank lines before the ordered lists under “In the case of type 0:”, “In the case of type 1:”, and “Applicable to any type:” so the markdownlint workflow passes.

Proposed fix
 In the case of type 0:
+
   1. collateralOutpoint `hash` is null but an output with 1000 DASH is not present at position `n` of the ProRegTx outputs
   2. collateralOutpoint `hash` is not null but an output with 1000 DASH can't be found in the UTXO specified by the `hash` and `n`
 
 In the case of type 1:
+
   1. collateralOutpoint `hash` is null but an output with 4000 DASH is not present at position `n` of the ProRegTx outputs
   2. collateralOutpoint `hash` is not null but an output with 4000 DASH can't be found in the UTXO specified by the `hash` and `n`
 
 Applicable to any type:
+
   1. Any KeyId* field is null (KeyIdOwner, KeyIdOperator or KeyIdVoting)
   2. KeyIdOwner or PubKeyOperator was already used by any entry in the registered masternodes set

As per coding guidelines, “Markdown linting is enforced on all changed .md files via GitHub Actions using markdownlint-cli2 with the .markdownlint.json configuration”.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@dip-0003.md` around lines 269 - 278, The markdown lists under the headings
"In the case of type 0:", "In the case of type 1:", and "Applicable to any
type:" are missing a blank line before the ordered lists, causing markdownlint
MD032 failures; fix by inserting a single blank line immediately before each
ordered list (the lines starting with "1.") so each heading is followed by a
blank line then the numbered list, ensuring the three sections ("In the case of
type 0:", "In the case of type 1:", "Applicable to any type:") conform to
markdownlint spacing rules.
🧹 Nitpick comments (1)
package.json (1)

2-4: Move cspell to devDependencies.

cspell is development-only tooling (used only for spell-checking in markdown documentation via <!-- cspell:ignore --> comments) and has no runtime usage. Keeping it in dependencies unnecessarily bloats production installations.

Proposed fix
 {
-  "dependencies": {
+  "devDependencies": {
     "cspell": "9.7.0"
   }
 }
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@package.json` around lines 2 - 4, The package.json currently lists "cspell"
under "dependencies"; move "cspell": "9.7.0" from the dependencies object into
devDependencies so it’s only installed for development. Update package.json to
remove the entry from "dependencies" and add it under "devDependencies" (keeping
the same version string "9.7.0"), then run your package manager to update
lockfiles (e.g., npm install or pnpm install) so the lockfile reflects the
change.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Outside diff comments:
In `@dip-0003.md`:
- Around line 269-278: The markdown lists under the headings "In the case of
type 0:", "In the case of type 1:", and "Applicable to any type:" are missing a
blank line before the ordered lists, causing markdownlint MD032 failures; fix by
inserting a single blank line immediately before each ordered list (the lines
starting with "1.") so each heading is followed by a blank line then the
numbered list, ensuring the three sections ("In the case of type 0:", "In the
case of type 1:", "Applicable to any type:") conform to markdownlint spacing
rules.

---

Nitpick comments:
In `@package.json`:
- Around line 2-4: The package.json currently lists "cspell" under
"dependencies"; move "cspell": "9.7.0" from the dependencies object into
devDependencies so it’s only installed for development. Update package.json to
remove the entry from "dependencies" and add it under "devDependencies" (keeping
the same version string "9.7.0"), then run your package manager to update
lockfiles (e.g., npm install or pnpm install) so the lockfile reflects the
change.

ℹ️ Review info

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 40b74e9 and 134c084.

⛔ Files ignored due to path filters (1)
  • package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (11)
  • .cspell.json
  • .gitignore
  • dip-0003.md
  • dip-0006.md
  • dip-0010.md
  • dip-0014.md
  • dip-0015.md
  • dip-0028.md
  • dip-0029.md
  • package.json
  • project-words.txt

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant