diff --git a/docs/gitlab/drupal/index.md b/docs/gitlab/drupal/index.md
index 2a8bbe4d4b7fb673ade2a03f7fae95b8c59755f8..c1d1b96bce27164395f3c051746f9be1eb46dd82 100644
--- a/docs/gitlab/drupal/index.md
+++ b/docs/gitlab/drupal/index.md
@@ -10,7 +10,7 @@ tags:
 # GitLab CI for Drupal pipelines
 
 This project contains a number of pre-configured tasks for GitLab CI/CD that
-allow to run very powerful pipelines which contain the following stages:
+allow to run very powerful pipelines which contain the following stage order:
 
 - [.pre (predefined)](#pre)
 - [execute](#execute)
@@ -21,9 +21,8 @@ allow to run very powerful pipelines which contain the following stages:
 - [validate](#validate)
 - [test (predefined)](#test)
 - [deploy (predefined)](#deploy)
-- finalize
-- release
-- .post (predefined)
+- [finalize](#finalize)
+- [release](#release-stage)
 
 We have a predefined `execute` job called `LakeDrops`, which looks like this:
 
@@ -61,9 +60,12 @@ available for configuration.
 The following chapters describes all stages and their jobs. The files:
 
 -  [lakedrops.yml](https://gitlab.lakedrops.com/gitlab-ci-cd/drupal/-/blob/main/lakedrops.yml?ref_type=heads).
+-  [tests/lakedrops.yml](https://gitlab.lakedrops.com/gitlab-ci-cd/drupal/-/blob/main/tests/lakedrops.yml?ref_type=heads).
 -  [test_deploy.yml](https://gitlab.lakedrops.com/gitlab-ci-cd/drupal/-/blob/main/test-and-deploy.yml?ref_type=heads).
+-  [check4updates.yml](https://gitlab.lakedrops.com/gitlab-ci-cd/drupal/-/blob/main/check4updates.yml?ref_type=heads).
 
 ### .pre
+
 To prepare and check, if the environment is good to go, we have a `.pre` stage, which contains the
 following jobs:
 
@@ -209,7 +211,6 @@ The job stores the artefacts in `check4updates`.
 
 
 
-
 Rules, when the job should run:
 
 - `$CHECKUPDATES` is set
@@ -465,6 +466,34 @@ Rules, when the job should run:
 
 ### Postprocess
 
+#### Check 4 Updates Commit
+
+We start a docker image for php with the specifies versions:
+
+- `PHP_MAJOR_VERSION`
+- `PHP_MINOR_VERSION`
+
+The following jobs must run before successfully. Some are optional, which means, if they exist, this job waits for them
+to complete:
+
+- [Check 4 Updates](#check-4-updates)
+    - uses its artefacts
+- [Check 4 Security Vulnerability Advisories](#check-4-security-vulnerability-advisories)
+    - optional
+- [Check 4 Outdated Packages](#check-4-outdated-packages)
+    - optional
+
+First we have to do some preparation. This is done in the `before_script` section.
+
+- [.prepareaccess](#prepareaccess)
+- [.preparecomposerplugins](#preparecomposerplugins)
+
+
+
+Rules, when the job should run:
+
+- `$CHECKUPDATES` is set
+- we are on the `develop` branch
 
 ### Test
 
@@ -648,6 +677,27 @@ This job simply stops and removes the docker container, which are started for th
 
 `docker compose down`
 
+### Release Stage
+
+This stage is responsible for creating a new release.
+
+#### Release Job
+
+This job extends the internal job [.merge](#merge).
+
+Rules, when the job should run:
+
+- `$CI_COMMIT_MESSAGE` contains `CREATE_RELEASE`
+- we are on the `develop` branch
+
+Rules, when the job must not run:
+
+- if the reference is a `tag`
+- `$CI_COMMIT_MESSAGE` contains `Merge tag`
+- if it is triggered by config auto export (CAE)
+- `$CHECKUPDATES` is set
+- `$TRIGGERTASK` is set
+
 
 ### Internal Stages
 
@@ -676,9 +726,53 @@ The following points will be prepared for [Composer](https://getcomposer.org/):
 - the configuration `audit.abandoned`, depend on `$IGNORE_COMPOSER_ABANDONED_AUDIT`
 - unsupported module versions, which are allowed to use
 
+#### .merge
+
+First we have to do some preparation. This is done in the `before_script` section.
+
+- [.prepareaccess](#prepareaccess)
+
+We start a docker image for php with the specifies versions:
+
+- `PHP_MAJOR_VERSION`
+- `PHP_MINOR_VERSION`
+
+We create a clean directory and clone the git project `$CI_PROJECT_PATH`
+for branch `$SOURCE_BRANCH` from `$CI_SERVER_HOST` right into it.
+
+After that we execute the [merge](https://gitlab.lakedrops.com/docker/gitlab-drupal-ci/-/blob/main/bin/merge?ref_type=heads) 
+script, which does a few checks and use the `gitlab` tool to merge.
+
+Finally, we remove the directory we created above.
+
 #### .retry-for-system-issues
 
-#### .cache_default
+This little job ste the amount of retries to "2", when:
+
+- runner_system_failure
+- stuck_or_timeout_failure
+
+#### .cache_paths
+
+All internal jobs concerning cache will use this job here. It defines the paths:
+
+- .docker-init/
+- assets/
+- drush/
+- files/
+- keys/
+- settings/
+- vendor/
+- web/core/
+- web/libraries/
+- web/modules/contrib/
+- web/profiles/contrib/
+- web/sites/
+- web/themes/contrib/
+- .ahoy.yml
+- .env
+- docker-compose.yml
+
 
 ## Configuration