Reference
Look up exact CLI commands, config glob and schema syntax, the built-in conventions, and the section-schema grammar.
- CLI commands, flags, exit codes, and output format.
- List workspace links that point at a file.
- Lint Markdown files for style issues.
- List a file’s dependency-graph edges (includes, links, catalogs, builds).
- Write a portable, directive-free copy of a Markdown file.
- Emit a schema-conformant Markdown file as a JSON/YAML/msgpack data tree.
- Auto-fix lint issues in Markdown files in place.
- Show built-in documentation for rules, metrics, and concept pages.
- Generate a default
.mdsmith.ymlconfig in the current directory, or convert an existing markdownlint config with--from-markdownlint. - Inspect declared file kinds and resolve effective rule config per file.
- Selection-style commands that walk the workspace and emit matches.
- Run a Language Server Protocol server on stdio for editor integrations.
- Git merge driver that resolves conflicts inside generated sections.
- List and rank shared Markdown metrics (file length, token estimate, readability, …).
- Install / manage a pre-merge-commit hook that runs
mdsmith fixafter a merge. - Select Markdown files by a CUE expression on front matter.
- Rename a heading or link-reference label and rewrite every dependent edit.
- Review the .mdsmith.yml diff since it was last trusted and update the build trust marker on this clone.
- Print the mdsmith build version and exit.
- Each file under
.mdsmith/conventions/declares one user convention. The basename is the convention name; the file body carries aflavor:plus arules:map. Sits alongside inlineconventions.<name>:in.mdsmith.yml. - Built-in Markdown conventions, the rule presets each one applies, and how user config layers on top via deep-merge.
- Glob pattern syntax across mdsmith config, directives, and CLI argument expansion, with the supported exclusion semantics for each surface.
- Each file under
.mdsmith/kinds/declares one kind. The basename is the kind name; the file body carries the fullKindBody— schema, rules,path-pattern:,extends:. Sits alongside inlinekinds.<name>:in.mdsmith.yml. - Every markdownlint rule and the mdsmith rule that covers it, generated from the rule README front matter — the same data
mdsmith init --from-markdownlintreads. - Each file under
.mdsmith/schemas/declares one named schema. The basename is the schema name; the body carries the inlineschemas.<name>:keys. A kind references one by name (schema: rfc-v1). - Named field-type shortcuts for inline schema frontmatter values — the registered names, the canonical CUE each one resolves to, and example usage.
- Section-schema reference for inline
kinds.<name>.schema:blocks. Covers theheading:discriminator, theregex:matcher (a Go RE2 body with\#(digits)and\#(fmvar(...))helpers), therepeat: {min, max}cardinality field, and the matching algorithm.proto.mdfiles are parsed into the same shape by the schema package, but MDS020’s file-schema check still uses its legacy parser; see the proto.md section below for what is and is not migrated. - mdsmith collects no telemetry, no usage analytics, no error reports, and no identifiers. The CLI and the LSP server make no outbound network calls at runtime.
- Settings and troubleshooting for the mdsmith VS Code extension: the five
mdsmith.*settings, fix-on-save wiring, and fixes for its known failure modes.