{"id":26290,"library":"remark-lint-write-good","title":"remark-lint-write-good","description":"A remark-lint rule that integrates the write-good library to check Markdown files for stylistic issues such as weasel words, passive voice, and clichés. Version 1.2.0 is stable without a defined release cadence. It differs from similar linting tools by leveraging write-good's natural language suggestions focused on plain English writing style, offering configurable checks and a whitelist for suppressing warnings on specific terms. Requires remark-lint as a peer dependency and is part of the unified/remark ecosystem.","status":"active","version":"1.2.0","language":"javascript","source_language":"en","source_url":null,"tags":["javascript"],"install":[{"cmd":"npm install remark-lint-write-good","lang":"bash","label":"npm"},{"cmd":"yarn add remark-lint-write-good","lang":"bash","label":"yarn"},{"cmd":"pnpm add remark-lint-write-good","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Core dependency that provides the natural language checking logic for stylistic issues.","package":"write-good","optional":false},{"reason":"Peer dependency: this package is a plugin for remark-lint and expects it to be installed.","package":"remark-lint","optional":false}],"imports":[{"note":"The rule is commonly used via remark-stringify configuration, not directly imported. If importing, use default ES import.","wrong":"const remarkLintWriteGood = require('remark-lint-write-good')","symbol":"remarkLintWriteGood (rule function)","correct":"import remarkLintWriteGood from 'remark-lint-write-good'"},{"note":"Options must be wrapped in an array as the second element of the plugin tuple in unified configuration.","wrong":"['remark-lint-write-good', { passive: false }]","symbol":"Plugin as array in remark configuration","correct":"['remark-lint-write-good', ['warn', { passive: false }]]"},{"note":"The whitelist property expects an array of strings, not a single string.","wrong":"['remark-lint-write-good', ['warn', { whitelist: 'read-only' }]]","symbol":"Whitelist option","correct":"['remark-lint-write-good', ['warn', { whitelist: ['read-only'] }]]"}],"quickstart":{"code":"import { readSync } from 'to-vfile';\nimport { remark } from 'remark';\nimport remarkLint from 'remark-lint';\nimport remarkLintWriteGood from 'remark-lint-write-good';\n\nconst file = readSync('example.md');\nremark()\n  .use(remarkLint)\n  .use(remarkLintWriteGood, ['warn', { passive: false, whitelist: ['read-only'] }])\n  .process(file)\n  .then((result) => {\n    console.log(result.messages);\n  });","lang":"javascript","description":"Creates a remark processor with remark-lint and the write-good plugin, then processes a Markdown file and logs lint messages."},"warnings":[{"fix":"Use ['remark-lint-write-good', ['warn', { ... }]] in config.","message":"Options must be provided as an array: [severity, options].","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Set whitelist to an array, e.g., whitelist: ['read-only'].","message":"whitelist option must be an array of strings.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Use write-good version ^1.0.0 or compatible.","message":"The package may require write-good version 1.x, which has its own breaking changes.","severity":"breaking","affected_versions":">=1.0.0"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"Run npm install write-good --save or add it to dependencies.","cause":"Missing write-good dependency.","error":"Error: Cannot find module 'write-good'"},{"fix":"Change configuration to ['remark-lint-write-good', ['warn', { ... }]].","cause":"Incorrect configuration: options not wrapped in an array.","error":"TypeError: The 'compilation' argument must be of type function. Received an instance of Array"},{"fix":"Set whitelist: ['read-only'] (an array).","cause":"whitelist option passed as a string instead of an array.","error":"Error: Expected a whitelist array (not a string) at ..."}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}