Running pre-commit-update without any args as a pre-commit hook destructively jumbles .pre-commit-config.yaml

Before running pre-commit run --files .pre-commit-config.yaml:

---
# See https://pre-commit.com for more information
# See https://pre-commit.com/hooks.html for more hooks
repos:
  - repo: https://gitlab.com/vojko.pribudic/pre-commit-update
    rev: v0.0.9
    hooks:
      - id: pre-commit-update
  - repo: https://github.com/pre-commit/pre-commit-hooks
    rev: v4.4.0
    hooks:
      - id: check-added-large-files  # prevents giant files from being committed
        args: [--enforce-all]
      - id: check-ast  # simply checks whether the files parse as valid python
      - id: check-builtin-literals  # requires literal syntax for builtin types
      - id: check-case-conflict  # checks case-insensitive naming conflicts
      - id: check-docstring-first  # checks for docstrings defined after code
      - id: check-executables-have-shebangs  # ensures executables have shebangs
      - id: check-json  # checks json files for parseable syntax
      - id: check-shebang-scripts-are-executable  # makes shebangers executable
      - id: pretty-format-json  # sets a standard for formatting json files
        args: [--autofix, --indent]
      - id: check-merge-conflict  # checks for files containing merge conflicts
      - id: check-symlinks  # checks for symlinks which do not point to anything
      - id: check-toml  # checks toml files for parseable syntax
      - id: check-vcs-permalinks  # ensures that links to vcs are permalinks
      - id: check-xml  # checks xml files for parseable syntax
      - id: check-yaml  # checks yaml files for parseable syntax
      - id: debug-statements  # checks for debugger imports and `breakpoint()`
      - id: destroyed-symlinks  # detects symlinks which are changed to text
      - id: detect-private-key  # detects the presence of private keys
      - id: end-of-file-fixer  # ensures non-empty files end in newlines
      - id: fix-byte-order-marker  # removes utf-8 byte order marker
      - id: fix-encoding-pragma  # removes encoding from the top of python files
        args: [--remove]
      - id: forbid-submodules  # forbids any submodules in the repository
      - id: mixed-line-ending  # replaces or checks mixed line ending
      - id: name-tests-test  # verifies that test files are named correctly
        args: [--pytest-test-first]
      - id: requirements-txt-fixer  # sorts entries in requirements.txt
      - id: trailing-whitespace  # trims trailing whitespace
        args: [--markdown-linebreak-ext=md]
  - repo: https://github.com/astral-sh/ruff-pre-commit
    rev: v0.0.290
    hooks:
      - id: ruff
        # args: [--fix-only]
  - repo: https://github.com/psf/black
    rev: 23.9.1
    hooks:
      - id: black
      - id: black-jupyter
  - repo: https://github.com/executablebooks/mdformat
    rev: 0.7.17
    hooks:
      - id: mdformat
        args: [--number]
  - repo: https://github.com/abravalheri/validate-pyproject
    rev: v0.14
    hooks:
      - id: validate-pyproject

After running pre-commit run --files .pre-commit-config.yaml:

repos:
-   hooks:
    -   id: pre-commit-update
    repo: https://gitlab.com/vojko.pribudic/pre-commit-update
    rev: v0.0.9
-   hooks:
    -   args:
        - --enforce-all
        id: check-added-large-files
    -   id: check-ast
    -   id: check-builtin-literals
    -   id: check-case-conflict
    -   id: check-docstring-first
    -   id: check-executables-have-shebangs
    -   id: check-json
    -   id: check-shebang-scripts-are-executable
    -   args:
        - --autofix
        - --indent
        id: pretty-format-json
    -   id: check-merge-conflict
    -   id: check-symlinks
    -   id: check-toml
    -   id: check-vcs-permalinks
    -   id: check-xml
    -   id: check-yaml
    -   id: debug-statements
    -   id: destroyed-symlinks
    -   id: detect-private-key
    -   id: end-of-file-fixer
    -   id: fix-byte-order-marker
    -   args:
        - --remove
        id: fix-encoding-pragma
    -   id: forbid-submodules
    -   id: mixed-line-ending
    -   args:
        - --pytest-test-first
        id: name-tests-test
    -   id: requirements-txt-fixer
    -   args:
        - --markdown-linebreak-ext=md
        id: trailing-whitespace
    repo: https://github.com/pre-commit/pre-commit-hooks
    rev: v4.4.0
-   hooks:
    -   id: ruff
    repo: https://github.com/astral-sh/ruff-pre-commit
    rev: v0.0.292
-   hooks:
    -   id: black
    -   id: black-jupyter
    repo: https://github.com/psf/black
    rev: 23.9.1
-   hooks:
    -   args:
        - --number
        id: mdformat
    repo: https://github.com/executablebooks/mdformat
    rev: 0.7.17
-   hooks:
    -   id: validate-pyproject
    repo: https://github.com/abravalheri/validate-pyproject
    rev: v0.14