diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index 2b9617222381e073708e21f37b81b4def01a5526..12a5225b43b9d74cf9ca52134bb8c0b72b184395 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -45,9 +45,33 @@ repos:
     hooks:
       - id: yamllint
         name: Check YAML syntax with yamllint
-        args: [--strict, '.']
-        always_run: true
-        pass_filenames: false
+        args: [--strict]
+        types: [file]
+        # Files to include
+        # 1. Obvious YAML files
+        # 2. `pillar.example` and similar files
+        # 3. SLS files under directory `test/` which are pillar files
+        # Files to exclude
+        # 1. SLS files under directory `test/` which are state files
+        # 2. `kitchen.vagrant.yml`, which contains Embedded Ruby (ERB) template syntax
+        # 3. YAML files heavily reliant on Jinja
+        files: |
+          (?x)^(
+                .*\.yaml|
+                .*\.yml|
+                \.salt-lint|
+                \.yamllint|
+                .*\.example|
+                test/.*\.sls
+          )$
+        exclude: |
+          (?x)^(
+                kitchen.vagrant.yml|
+                test/.*/states/.*\.sls|
+                salt/osfamilymap.yaml|
+                salt/osmap.yaml|
+                salt/osfingermap.yaml
+          )$
   - repo: https://github.com/warpnet/salt-lint
     rev: v0.9.2
     hooks:
diff --git a/.yamllint b/.yamllint
index ada644b86da2602e0e7404c3876ed4a3900e7cff..b4087884067845a993c1a7ed970c3b7f99217a70 100644
--- a/.yamllint
+++ b/.yamllint
@@ -4,37 +4,6 @@
 # Extend the `default` configuration provided by `yamllint`
 extends: 'default'
 
-# Files to ignore completely
-# 1. All YAML files under directory `.bundle/`, introduced if gems are installed locally
-# 2. All YAML files under directory `.cache/`, introduced during the CI run
-# 3. All YAML files under directory `.git/`
-# 4. All YAML files under directory `node_modules/`, introduced during the CI run
-# 5. Any SLS files under directory `test/`, which are actually state files
-# 6. Any YAML files under directory `.kitchen/`, introduced during local testing
-# 7. `kitchen.vagrant.yml`, which contains Embedded Ruby (ERB) template syntax
-# 8. All YAML files heavily reliant on Jinja; these can be tackled in a subsequent PR
-ignore: |
-  .bundle/
-  .cache/
-  .git/
-  node_modules/
-  test/**/states/**/*.sls
-  .kitchen/
-  kitchen.vagrant.yml
-  salt/osfamilymap.yaml
-  salt/osmap.yaml
-  salt/osfingermap.yaml
-
-yaml-files:
-  # Default settings
-  - '*.yaml'
-  - '*.yml'
-  - .salt-lint
-  - .yamllint
-  # SaltStack Formulas additional settings
-  - '*.example'
-  - test/**/*.sls
-
 rules:
   empty-values:
     forbid-in-block-mappings: true