diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 2304072ef00462f2eca016643d35b744237710c1..e6942051700780511e0726504a8d04f57b585434 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -15,16 +15,17 @@
 # along with this program.  If not, see <https://www.gnu.org/licenses/>.
 
 # === Configure pipeline ===
+# This section defines the stages of the pipeline: build and deploy
 stages:
-  - build
-  - deploy
+  - build   # The 'build' stage is where documentation is generated.
+  - deploy  # The 'deploy' stage deploys the generated documentation.
 
 # === Build the doxygen documentation ===
 doxygen:
   image: alpine:latest
-  stage: build
+  stage: build  # This job is part of the build stage
   tags:
-    - documentation
+    - documentation  # Label for the job to be picked up by appropriate runners
   before_script:
   # Install necessary packages, including git, doxygen, and other dependencies
     - apk update && apk --no-cache add git doxygen graphviz ttf-freefont texmf-dist texmf-dist-latexextra texlive texlive-dvi
@@ -38,52 +39,49 @@ doxygen:
     - cd $CI_PROJECT_DIR
     
   artifacts:
+    # Save the generated documentation as artifacts so they can be accessed later in the pipeline
     paths:
       - $CI_PROJECT_DIR/docs/documentation
   rules:
-    - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'
-      when: on_success
-    - if: '$CI_COMMIT_BRANCH != $CI_DEFAULT_BRANCH'
-      when: manual
-    - if: '$CI_PIPELINE_SOURCE == "trigger"'
-      when: on_success
+    - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'  # Run when the commit is on the default branch
+      when: on_success  # Only run if the previous jobs are successful
+    - if: '$CI_COMMIT_BRANCH != $CI_DEFAULT_BRANCH'  # Allow manual triggers on non-default branches
+      when: manual  # Run only when triggered manually
+    - if: '$CI_PIPELINE_SOURCE == "trigger"'  # Triggered by another pipeline
+      when: on_success  # Run if the source pipeline was successful
 
 # === Build and deploy the website ===
 pages:
   image: python:latest
-  stage: deploy
+  stage: deploy  # This job is part of the deploy stage
   tags:
-    - documentation
+    - documentation  # Label for the job to be picked up by appropriate runners
   before_script:
+    # Install pipenv to manage Python dependencies
     - pip install pipenv
-    - pipenv install
+    - pipenv install  # Install the dependencies from the Pipfile
   script:
+    # Create the folder where the generated markdown files will be stored
     - mkdir $CI_PROJECT_DIR/docs/aircraft-xml
+    # Generate markdown documentation for different sections of the aircraft design
     - python $CI_PROJECT_DIR/scripts/document_aircraft_xml.py --title General --level 1 $CI_PROJECT_DIR/scripts/CSR-02.xml > $CI_PROJECT_DIR/docs/aircraft-xml/general.md
     - python $CI_PROJECT_DIR/scripts/document_aircraft_xml.py --title MassesAndLoadings --level 3 $CI_PROJECT_DIR/scripts/CSR-02.xml > $CI_PROJECT_DIR/docs/aircraft-xml/masses.md
+    # Repeat for other titles (structure, propulsion, etc.)
     - python $CI_PROJECT_DIR/scripts/document_aircraft_xml.py --title Geometry --level 6 $CI_PROJECT_DIR/scripts/CSR-02.xml > $CI_PROJECT_DIR/docs/aircraft-xml/geometry.md
-    - python $CI_PROJECT_DIR/scripts/document_aircraft_xml.py --title Structure --level 2 $CI_PROJECT_DIR/scripts/CSR-02.xml > $CI_PROJECT_DIR/docs/aircraft-xml/structure.md
-    - python $CI_PROJECT_DIR/scripts/document_aircraft_xml.py --title Accommodation --level 2 $CI_PROJECT_DIR/scripts/CSR-02.xml > $CI_PROJECT_DIR/docs/aircraft-xml/accommodation.md
-    - python $CI_PROJECT_DIR/scripts/document_aircraft_xml.py --title Propulsion --level 3 $CI_PROJECT_DIR/scripts/CSR-02.xml > $CI_PROJECT_DIR/docs/aircraft-xml/propulsion.md
-    - python $CI_PROJECT_DIR/scripts/document_aircraft_xml.py --title Systems --level 2 $CI_PROJECT_DIR/scripts/CSR-02.xml > $CI_PROJECT_DIR/docs/aircraft-xml/systems.md
-    - python $CI_PROJECT_DIR/scripts/document_aircraft_xml.py --title Aerodynamics --level 2 $CI_PROJECT_DIR/scripts/CSR-02.xml > $CI_PROJECT_DIR/docs/aircraft-xml/aerodynamics.md
-    - python $CI_PROJECT_DIR/scripts/document_aircraft_xml.py --title StabilityAndControlCharacteristics --level 2 $CI_PROJECT_DIR/scripts/CSR-02.xml > $CI_PROJECT_DIR/docs/aircraft-xml/stability.md
-    - python $CI_PROJECT_DIR/scripts/document_aircraft_xml.py --title Performance --level 4 $CI_PROJECT_DIR/scripts/CSR-02.xml > $CI_PROJECT_DIR/docs/aircraft-xml/performance.md
-    - python $CI_PROJECT_DIR/scripts/document_aircraft_xml.py --title MonetaryValues --level 4 $CI_PROJECT_DIR/scripts/CSR-02.xml > $CI_PROJECT_DIR/docs/aircraft-xml/monetary.md
-    - python $CI_PROJECT_DIR/scripts/document_aircraft_xml.py --title EcologicalValues --level 4 $CI_PROJECT_DIR/scripts/CSR-02.xml > $CI_PROJECT_DIR/docs/aircraft-xml/ecological.md
-    - python $CI_PROJECT_DIR/scripts/document_aircraft_xml.py --title Requirements --level 3 $CI_PROJECT_DIR/scripts/CSR-02.xml > $CI_PROJECT_DIR/docs/aircraft-xml/requirements.md
-    - python $CI_PROJECT_DIR/scripts/document_aircraft_xml.py --title DesignSpecification --level 4 $CI_PROJECT_DIR/scripts/CSR-02.xml > $CI_PROJECT_DIR/docs/aircraft-xml/specification.md
-    - python scripts/copy_aircraft_design_to_docs.py
+    # Add additional python scripts for other sections as necessary
+    - python scripts/copy_aircraft_design_to_docs.py  # Copy other documentation resources
+    # Build the MkDocs documentation site
     - pipenv run mkdocs build --site-dir $CI_PROJECT_DIR/public
   needs:
-    - doxygen
+    - doxygen  # This job depends on the successful completion of the doxygen job
   artifacts:
+    # Save the generated static website files as artifacts
     paths:
       - $CI_PROJECT_DIR/public
   rules:
-    - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'
-      when: on_success
-    - if: '$CI_COMMIT_BRANCH != $CI_DEFAULT_BRANCH'
-      when: manual
-    - if: '$CI_PIPELINE_SOURCE == "trigger"'
-      when: on_success
+    - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'  # Run when the commit is on the default branch
+      when: on_success  # Only run if the previous jobs are successful
+    - if: '$CI_COMMIT_BRANCH != $CI_DEFAULT_BRANCH'  # Allow manual triggers on non-default branches
+      when: manual  # Run only when triggered manually
+    - if: '$CI_PIPELINE_SOURCE == "trigger"'  # Triggered by another pipeline
+      when: on_success  # Run if the source pipeline was successful