// Markdownlint-cli2 Configuration
// Documentation quality enforcement for technical projects
// See: https://github.com/DavidAnson/markdownlint-cli2
// Generated by dev-system/ci

{
  "config": {
    "default": true,

    // Headings - enforce proper hierarchy
    "MD001": false, // heading-increment (relaxed - allow flexibility)
    "MD026": { "punctuation": ".,;:!?" },  // heading-punctuation

    // Lists - enforce consistency
    "MD004": { "style": "consistent" },  // ul-style (consistent list markers)
    "MD005": false, // inconsistent-indentation (relaxed)
    "MD007": { "indent": 2 },  // ul-indent
    "MD029": false,  // ol-prefix (allow flexible list numbering)
    "MD030": { "ul_single": 1, "ol_single": 1, "ul_multi": 1, "ol_multi": 1 },

    // Code blocks - fenced only
    "MD046": { "style": "fenced" },  // code-block-style

    // CRITICAL: MD040 only checks opening fences, NOT closing fences
    // It does NOT catch malformed closing fences with language specifiers (e.g., ```plaintext)
    // CommonMark spec requires closing fences to be ``` only (no language)
    // Use separate validation script to check closing fences
    "MD040": true,  // fenced-code-language (code blocks need language on OPENING fence)

    // Formatting - strict whitespace
    "MD009": true,  // no-hard-tabs
    "MD010": true,  // hard-tabs
    "MD011": true,  // reversed-link-syntax
    "MD018": true,  // no-missing-space-atx
    "MD019": true,  // no-multiple-space-atx
    "MD020": true,  // no-missing-space-closed-atx
    "MD021": true,  // no-multiple-space-closed-atx
    "MD023": true,  // heading-starts-line
    "MD027": true,  // no-multiple-spaces-blockquote
    "MD037": true,  // no-space-in-emphasis
    "MD039": true,  // no-space-in-links

    // Trailing content
    "MD012": false, // no-multiple-blanks (relaxed - allow formatting space)
    "MD024": false, // no-duplicate-heading (too strict for docs)
    "MD028": false, // no-blanks-blockquote (relaxed)
    "MD047": true,  // single-trailing-newline

    // Links and references
    "MD034": true,  // no-bare-urls (links must be formatted)
    "MD042": true,  // no-empty-links

    // HTML - allow for documentation formatting and images
    "MD033": { "allowed_elements": ["br", "hr", "details", "summary", "p", "img"] },

    // Line length - relaxed for technical documentation
    "MD013": {
      "line_length": 150,
      "heading_line_length": 150,
      "code_block_line_length": 150,
      "code_blocks": true,
      "tables": true,
      "headers": true,
      "headers_line_length": 150,
      "strict": false,
      "stern": false
    },

    // Images
    "MD045": true,  // image-alt-text

    // Tables - enforce proper formatting
    "MD060": true,  // table-column-style (proper spacing: | ---- | not |------|)

    // Disable rules that conflict with relaxed style
    "MD003": false,  // consistent-indentation
    "MD041": false,  // first-line-heading
    "MD025": false,  // single-h1 / multiple-top-level-headings
    "MD022": false,  // blanks-around-headings (flexible spacing)
    "MD032": false,  // blanks-around-lists (flexible spacing)
    "MD035": false,  // hr-style (consistent)
    "MD036": false,  // no-emphasis-as-heading
    "MD044": false   // proper-names
  },

  // Documentation patterns
  "globs": [
    "**/*.md",
    "!node_modules/**",
    "!target/**",
    "!.git/**",
    "!build/**",
    "!dist/**"
  ],

  // Ignore build artifacts, external content, and operational directories
  "ignores": [
    "node_modules/**",
    "target/**",
    ".git/**",
    "build/**",
    "dist/**",
    "COPY/**",
    ".coder/**",
    ".claude/**",
    ".wrks/**",
    ".vale/**",
    "vendor/**"
  ]
}
