- Introduction
- Style Guide
- Tooling
- Linting and Style Checks
- Writing at 80 Characters in VS Code
- Contribution Process
All documentation should be written in Markdown and maintained in Git repositories. To ensure consistency and high-quality documentation, please follow the guidelines below.
-
Follow the GitHub Style Guide
Use the GitHub Style Guide as the baseline for tone, formatting, and structure. Prioritize clarity and simplicity. -
Keep line length under 80 characters
Use hard line breaks at 80 characters to improve readability in diffs, editors, and terminals. This also makes reviews and collaboration easier across different tooling environments. -
Use semantic Markdown
Structure documents using appropriate headings (#,##, etc.), lists, code blocks, and tables. Use descriptive link text instead of raw URLs.Examples of Semantic Markdown:
Intent Use this Markdown Not this Section title # Section Title**Section Title**Subsection ## Subsection*Subsection*or> SubsectionOrdered steps 1. Step one- Step oneUnordered list - Itemor* Item1. ItemCode snippet (inline) `code()`'code()'Link with description [VC Spec](https://...)https://...Quote or citation > This is a quote.Italics or just text -
Code blocks (multiline) Use fenced code blocks for multiple lines of code:
```bash some_command_here ```
Avoid manually indenting or quoting code blocks.
-
Be concise and technical
Write for a skilled technical audience. Avoid fluff. Include implementation details, protocol logic, and references to relevant specifications. -
Version control friendly
Use consistent formatting and break lines logically to minimize diff noise in pull requests.
To enforce style and consistency automatically, we recommend the following tools:
- markdownlint
A Markdown linter that checks formatting rules like line length, heading style, and list indentation. Configured via.markdownlint.json.
Configuration files for tools are included in the repository.
Please lint your Markdown files before submitting a pull request.
You can run markdownlint in several ways depending on your environment and
preferences. Choose whichever works best for your setup:
The easiest way to lint Markdown while writing.
- Open VS Code.
- Go to Extensions (
Ctrl+Shift+XorCmd+Shift+X). - Search for markdownlint by David Anson.
- Install it.
This provides real-time linting as you write, with inline warnings and quick fixes.
Recommended if you want to lint manually or use markdownlint in automation/CI.
-
Install Node.js if you don’t already have it:
Node.js -
Install markdownlint CLI globally:
npm install -g markdownlint-cli
-
Run it on your Markdown files:
markdownlint '**/*.md'
If the project includes a .markdownlint.json, it will be used automatically.
Useful if you don't want to install anything locally.
docker run --rm -v "$(pwd)":/work ghcr.io/igorshubovych/markdownlint-cli2 \
markdownlint-cli2 "**/*.md"- This mounts your current folder into the container and runs the linter.
- It will respect your local
.markdownlint.jsonconfig if present.
To help follow the 80-character line length guideline, we recommend the following setup in Visual Studio Code:
To help you follow the 80-character line limit, add a vertical guide in VS Code:
-
Open
File → Preferences → Settings -
Search for
rulers -
Click “Edit in settings.json” (required because
editor.rulersis an array) -
Add the following setting:
"editor.rulers": [80]
This will show a vertical line at column 80 in all files, making it easier to break lines consistently.
Install the Rewrap extension to automatically insert hard line breaks at 80 characters:
- Go to the Extensions view (
Ctrl+Shift+XorCmd+Shift+X) - Search for Rewrap
- Install it
Then:
- Select a paragraph in a Markdown file
- Press
Alt+Q(Cmd+Qon Mac) to rewrap it to 80 characters per line
You can set the wrapping column explicitly in your user settings:
"rewrap.wrappingColumn": 80This ensures the file has real line breaks, which makes Git diffs smaller and more readable in pull requests.
Soft wrapping (i.e. just enabling
"editor.wordWrap": "on") is not enough — it doesn’t insert real line breaks and won’t help with diff noise.
- Submit documentation updates or new content via pull request.
- Use clear commit messages and group related changes together.
- PRs will be reviewed for content, structure, and adherence to the style guide.
We may formalize these rules further over time, but this is the current working standard.
Thank you for contributing!