diff --git a/doc/ci/yaml/index.md b/doc/ci/yaml/index.md
index fc903144a87c08d90d954761335c6b6db0f0aeec..681e1937c268eaf1aca4041d5c52cf7867a1e6b8 100644
--- a/doc/ci/yaml/index.md
+++ b/doc/ci/yaml/index.md
@@ -3501,6 +3501,7 @@ docker build:
 - If the pipeline is a merge request pipeline, check `Dockerfile` for changes.
 - If `Dockerfile` has changed, add the job to the pipeline as a manual job, and the pipeline
   continues running even if the job is not triggered (`allow_failure: true`).
+- A maximum of 50 patterns or file paths can be defined per `rules:changes` section.
 - If `Dockerfile` has not changed, do not add job to any pipeline (same as `when: never`).
 - [`rules:changes:paths`](#ruleschangespaths) is the same as `rules:changes` without
   any subkeys.
@@ -3613,11 +3614,12 @@ job:
 
 - Glob patterns are interpreted with Ruby [`File.fnmatch`](https://docs.ruby-lang.org/en/2.7.0/File.html#method-c-fnmatch)
   with the flags `File::FNM_PATHNAME | File::FNM_DOTMATCH | File::FNM_EXTGLOB`.
-- For performance reasons, GitLab matches a maximum of 10,000 `exists` patterns or
-  file paths. After the 10,000th check, rules with patterned globs always match.
-  In other words, `exists` always reports `true` if more than 10,000 checks
-  run. Repositories with less than 10,000 files might still be impacted if the `exists`
-  rules are checked more than 10,000 times.
+- For performance reasons, GitLab performs a maximum of 10,000 checks against
+  `exists` patterns or file paths. After the 10,000th check, rules with patterned
+  globs always match. In other words, the `exists` rule always assumes a match in
+  projects with more than 10,000 files, or if there are fewer than 10,000 files but
+  the `exists` rules are checked more than 10,000 times.
+- A maximum of 50 patterns or file paths can be defined per `rules:exists` section.
 - `exists` resolves to `true` if any of the listed files are found (an `OR` operation).
 
 #### `rules:allow_failure`