---
# ansible-lint configuration
#
# We exclude inventory host/group vars because many contain vault-encrypted content
# that cannot be parsed without vault secrets in CI/dev environments.
exclude_paths:
  - inventories/production/host_vars/
  - inventories/production/group_vars/all/vault.yml
  - inventories/production/group_vars/all/vault.example.yml

# Exclude patterns
  - .cache/
  - .github/
  - .gitea/
  - .ansible/

# Skip specific rules
skip_list:
  - yaml[line-length]  # Allow longer lines in some cases
  - yaml[document-start]  # Allow missing document start in vault files
  - yaml[truthy]  # Allow different truthy values in workflow files
  - name[casing]       # Allow mixed case in task names
  - args[module]       # Skip args rule that causes "file name too long" issues
  - var-naming[no-role-prefix]  # Allow shorter variable names for readability
  - risky-shell-pipe  # Allow shell pipes in maintenance scripts
  - run-once[play]  # Allow strategy: free for parallel execution

# Warn instead of error for these
warn_list:
  - experimental  # Allow experimental features
  - jinja[spacing]  # Allow flexible jinja spacing

# Don't try to decrypt vault files during linting
offline: true

# Verbosity level (0-2)
verbosity: 1
