---
# ansible-lint configuration
# https://ansible.readthedocs.io/projects/lint/configuring/
#
# Run with: ansible-lint
#
# Use the 'production' profile - the strictest built-in profile, which
# includes the checks from every lower profile as well.
# Profiles in ascending order of strictness:
#   min → basic → moderate → safety → shared → production
profile: production

# Paths to exclude from linting.
exclude_paths:
  - .venv/
  - .git/
  - .molecule/
  - site/
  - dist/
  - examples/
  - playbooks/host_vars/
  - playbooks/group_vars/
  - mkdocs.yml

# Rules to warn about instead of failing on.
# These are either stylistic preferences or rules that generate too many
# false-positives for the patterns used in this project.
warn_list:
  # 'no-changed-when' fires on shell tasks that use '|| true' for idempotent reads.
  # The preflight tasks set changed_when: false explicitly where it matters.
  - command-instead-of-shell
  # Jinja2 control flow ({% for %}, {% if %}) inside shell: cmd blocks is
  # intentional in preflight.yaml and is not a mistake.
  - no-jinja-when

# Rules to skip entirely.
skip_list:
  - name[casing]

# Do not add a `kinds:` mapping back. The default kind detection already
# covers every path in this repository; remapping role `defaults/` or `vars/`
# files to a custom kind silently disables `var-naming[no-role-prefix]`, and
# remapping Molecule playbooks to the plain "yaml" kind skips playbook rules.
