# markdown An opinionated Markdown and documentation-standards skill for Claude Code. It auto-applies whenever Claude edits a file matching `**/*.md`, and it is hidden from the `/` menu (`user-invocable: false`). You never invoke it by hand — it behaves like an always-on documentation rule that shapes every Markdown change. ## Install ```sh pnpx @askviraj/ai-plugins --user markdown ``` ## What it standardizes The `documentation-standards` skill carries one ruleset, grouped by concern. ### Writing style - Short sentences. Present tense. Active voice. - No filler. Skip "This document describes…" and start writing. - Code blocks always use a language identifier for syntax highlighting. - Tables for structured comparisons. ### CHANGELOGs | Rule | Standard | | -------------- | ---------------------------------------------------------- | | Version blocks | One `## vMAJOR.MINOR.PATCH` heading per version | | Unreleased | None — always commit under a version heading | | Entry types | Match conventional-commit types: `feat`, `fix`, `refactor` | ### Keeping docs current - Update docs when you change a public API, add a module, or change behavior. - Update the CHANGELOG when bumping a version. - No documentation stubs — either write the file or don't create it. ### Diagrams The skill mandates `mermaid` for all diagrams, with portability and clarity rules: - Use `mermaid`, never external images. Diagrams must render on both GitHub and GitLab — no `%%{init}%%` config directives or custom themes, since portability across both is not guaranteed. - Pick the diagram type by purpose instead of defaulting to a flowchart: | Purpose | Diagram type | | ---------------------------------------- | --------------------- | | Process, topology, dependencies | `flowchart` (`graph`) | | Interactions over time, API/message flow | `sequenceDiagram` | | Data model, entities and relations | `erDiagram` | | Lifecycle, status machine | `stateDiagram-v2` | - Quote any label with special characters: `A["pay (USD)"]`, not `A[pay (USD)]`. Unquoted parens, brackets, and colons are the top cause of a diagram that won't render. - One concept per diagram. Split rather than cram. Keep node IDs short and alphanumeric, and put the prose in the label. - Use `%%` comments to explain complex parts. - Exception: things mermaid can't express, such as directory structures, may be ASCII inside a fenced block. ## See also - [../readme.md](../readme.md)