# Copyright (C) 2026 Moko Consulting <hello@mokoconsulting.tech>
#
# This file is part of a Moko Consulting project.
#
# SPDX-License-Identifier: GPL-3.0-or-later
#
# YAML Lint Configuration
# Provides consistent YAML formatting rules for the project
# See: https://yamllint.readthedocs.io/

extends: default

rules:
  # Require explicit document start (---)
  document-start:
    present: false  # Not required for GitHub Actions

  # Line length limit
  # Note: GitHub Actions workflows often have long lines due to:
  # - Full commit hash references for security pinning (64+ characters)
  # - URLs in documentation and references
  # - File exclusion patterns
  # General guideline remains 120 characters, but YAML workflows use 180 to accommodate these patterns
  line-length:
    max: 180
    level: warning
    allow-non-breakable-inline-mappings: true
    allow-non-breakable-words: true

  # Indentation rules - allow tabs per .editorconfig
  indentation: disable

  # Trailing spaces
  trailing-spaces: enable

  # Empty lines
  empty-lines:
    max: 2
    max-start: 0
    max-end: 1

  # Comments
  comments:
    min-spaces-from-content: 1

  # Truthy values (yes/no vs true/false)
  truthy:
    allowed-values: ['true', 'false']
    check-keys: false

  # Brackets
  brackets:
    min-spaces-inside: 0
    max-spaces-inside: 1

  # Braces
  braces:
    min-spaces-inside: 0
    max-spaces-inside: 1

  # Colons
  colons:
    max-spaces-before: 0
    max-spaces-after: 1

  # Commas
  commas:
    max-spaces-before: 0
    min-spaces-after: 1
    max-spaces-after: 1

  # Hyphens
  hyphens:
    max-spaces-after: 1

  # Key duplicates
  key-duplicates: enable

  # New lines
  new-line-at-end-of-file: enable
  new-lines:
    type: unix

# Ignore certain files/directories
ignore: |
  node_modules/
  vendor/
  .git/
  build/
  dist/
