Thank you for contributing to Netwrix product documentation. This guide covers everything you need to get started.
- Node.js 22+
- npm
- Git
- Vale (style linter — optional for local use; issues are auto-fixed on PRs)
Vale is a command-line linter for prose. It checks your writing against a set of style rules — like a spell checker, but for grammar, word choice, and tone. Vale issues are auto-fixed on PRs, but you can install it locally to preview issues before pushing.
macOS:
brew install valeLinux:
sudo snap install valeWindows:
choco install valeManual install for any platform:
Download the latest release from github.com/errata-ai/vale/releases, extract the binary, and add it to your PATH.
Verify the installation:
vale --version# Clone the repository
git clone https://github.com/netwrix/docs.git
cd docs
# Install dependencies
npm install
# Start development server
npm run startThe dev server runs on port 4500 with hot reload — changes you make to documentation files appear immediately in the browser.
- Create a branch from
dev(never commit directly todevormain). - Make your changes to documentation files in
docs/. - Optionally run Vale on your changed files to preview issues (they'll be auto-fixed on the PR).
- Test the build with
npm run build. - Push your branch.
- Create a pull request (PR) targeting
dev.
After you open a PR, Vale and Dale issues are auto-fixed and a summary is posted. An editorial review also runs and posts results as a PR comment. To get help with editorial suggestions, comment @claude on the PR followed by your request.
See netwrix_style_guide.md in the project root for the full style guide covering voice, tone, formatting, and terminology.
- Location:
static/img/product_docs/<product>/ - Format:
.webp - Paths: Always absolute from project root
Every documentation page needs frontmatter:
---
title: 'Page Title'
sidebar_label: 'Sidebar Label'
description: 'SEO description'
---Vale enforces 43 Netwrix-specific rules covering word choice, punctuation, formatting, and common writing issues. Vale issues are auto-fixed on PRs, but you can run it locally to preview:
vale docs/path/to/file.mdRun Vale on all changed files compared to dev:
git diff --name-only dev | grep '^docs/.*\.md$' | xargs valedocs/<product>/<version>/— Versioned product documentation (e.g.,docs/accessanalyzer/12.0/)docs/<product>/— Single-version (SaaS) productsdocs/kb/— Knowledge base articles (canonical source; never manually copy into versioned folders)static/img/product_docs/<product>/— Product imagessidebars/<product>/<version>.js— Sidebar configs (auto-generated; rarely need manual editing)
Edits to one version don't propagate to others. Update each version that needs the change explicitly.
npm run start # Dev server on port 4500
npm run start-chok # Dev server with polling (for network drives)
npm run build # Full production build
npm run clear # Clear Docusaurus cache (fixes stale build issues)
npm run serve # Serve production buildYou can build or run documentation for a single product using the DOCS_PRODUCT environment variable, which speeds up development:
Windows (PowerShell):
$ENV:DOCS_PRODUCT="pingcastle"
npm run startUnix/Linux/macOS:
export DOCS_PRODUCT="pingcastle"
npm run startAvailable product IDs are in src/config/products.js.
Add DOCS_PRODUCT_LATEST_ONLY=true to also restrict the build to that product's latest version only (default false builds all versions).
If you have Claude Code installed, this repository includes skills and agents that can help with documentation work. These are entirely optional — you don't need Claude Code to contribute.
Dale is an AI linter that catches context-dependent issues that regex-based Vale can't — passive voice, misplaced modifiers, idioms, wordiness, and other patterns. Dale issues are auto-fixed on PRs alongside Vale.
Run Dale locally on any markdown file to preview context-dependent issues:
/dale docs/path/to/file.md
Ask Claude Code for help with your writing — brainstorming document structure, drafting a section, editing existing content, or understanding a style rule. Claude automatically uses the doc-help skill when you ask for writing assistance. You can also invoke it directly with /doc-help, followed by your request.
For well-defined tasks where the work is clear and doesn't need back-and-forth, Claude automatically uses the tech-writer agent to handle the work end-to-end.
Examples:
- "Fix all the Vale errors in
docs/accessanalyzer/12.0/install.md". - "Edit this procedure for clarity and Netwrix style".
- "Draft the installation steps based on this outline: [outline]"
For tasks that need design decisions first — like writing a new guide from scratch — Claude uses doc-help to brainstorm the structure with you, then hands the drafting off to the tech-writer agent.
| Task | Tool |
|---|---|
| Quick lint check on a file | /dale docs/path/to/file.md |
| Plan structure for a new document | doc-help then tech-writer agent |
| Review or improve existing content | doc-help |
| Fix Vale errors across a file | tech-writer agent |
| Edit a file for style and clarity | tech-writer agent |
| Understand a style rule or convention | doc-help |
- Don't manually copy KB content into versioned product folders — it's managed by the KB script.
- Vale issues are auto-fixed on PRs, but running Vale locally helps catch issues early.
- Don't commit directly to
devormain— create a branch fromdevfirst. - Don't target
mainin PRs — always usedev. - Don't use first person anywhere in documentation content.
- Don't omit examples — every concept introduced needs one.