diff --git a/Spec-template.docx b/Spec-template.docx
index cf93ab990246578bfb08e998b64100570df19995..7e9c91b6f150831a106ccf56b23558c0c65e1096 100644
Binary files a/Spec-template.docx and b/Spec-template.docx differ
diff --git a/generateChangemarks/.gitlab-ci.yml b/generateChangemarks/.gitlab-ci.yml
index 285529b9e35335a33797e756f4d27993d24df038..6678654b5beff6c950045031793f0f905602648c 100644
--- a/generateChangemarks/.gitlab-ci.yml
+++ b/generateChangemarks/.gitlab-ci.yml
@@ -22,8 +22,9 @@ stages:
 
 Word CR:
   stage: generation
-  only:
-    - merge_requests
+  rules:
+    - if: $CI_MERGE_REQUEST_TITLE =~ /v.*_baseline$/ && $CI_PIPELINE_SOURCE == "merge_request_event"
+      when: never
   before_script:
     - |
      curl "${CI_API_V4_URL}/projects/$TOOLS_SCRIPTS_PROJECT_ID/repository/files/generate_changemarks%2Esh/raw?ref=master" >> generate_changemarks.sh
@@ -44,7 +45,30 @@ Word CR:
     paths:
       - docs/
     expose_as: 'Word CR'
-
+    
+Baseline contribution:
+  stage: generation
+  rules:
+    - if: $CI_MERGE_REQUEST_TITLE =~ /v.*_baseline$/ && $CI_PIPELINE_SOURCE == "merge_request_event"
+      when: always
+  before_script:
+    - |
+     curl "${CI_API_V4_URL}/projects/$TOOLS_SCRIPTS_PROJECT_ID/repository/files/publish_spec%2Esh/raw?ref=master" >> publish_spec.sh
+    - chmod +x publish_spec.sh
+    - |
+     curl "${CI_API_V4_URL}/projects/$TOOLS_SCRIPTS_PROJECT_ID/repository/files/Spec-template%2Edocx/raw?ref=master" >> onem2m_spec_template.docx
+    - |
+     export SPEC_NAME=$(ls | grep T*.md | cut -d'.' -f1)
+     export BASELINE_VERSION=$(echo ${CI_MERGE_REQUEST_TITLE} | grep -o v.*_baseline | cut -d'_' -f1-3 )
+  script:
+    - echo 'Generating baseline'
+    - ./publish_spec.sh ${CI_PROJECT_URL} ${BASELINE_VERSION} onem2m_spec_template.docx $SPEC_NAME "onlyDocx"
+  artifacts:
+    name: "Baseline"
+    paths:
+      - baseline/
+    expose_as: 'Baseline'
+      
 # Do not protect branch until creation and update of merge request can be differenciated for triggering pipeline, otherwise branch is protected_branches
 # with a single update of a merge request (which is not desired). This should be run only for a creation of merge request
 # Protect branch:
@@ -76,9 +100,9 @@ Publish spec:
   artifacts:
     name: "${SPEC_NAME}_${CI_COMMIT_TAG}"
     paths:
-      - "*_${CI_COMMIT_TAG}.docx"
-      - "*_${CI_COMMIT_TAG}.pdf"
-      - "*_${CI_COMMIT_TAG}.epub"
+      - "baseline/*_${CI_COMMIT_TAG}.docx"
+      - "baseline/*_${CI_COMMIT_TAG}.pdf"
+      - "baseline/*_${CI_COMMIT_TAG}.epub"
 
 pages:
   stage: web
diff --git a/publish_spec.sh b/publish_spec.sh
index fcb2baade1e1f41b7f0f01247f015bbfd003036f..faaa51e404ea8374193119063783d86e20201e82 100755
--- a/publish_spec.sh
+++ b/publish_spec.sh
@@ -34,14 +34,17 @@ for i in *.md ;  do
 	    echo "\n------ Preparaing spec --------"
 	    docker run --rm -v $(pwd):/tmp/ -u $(id -u):$(id -g) "$TOOLS_DOCKER_IMAGE" pandocFilter -o "/tmp/" "/tmp/$i"
 	    echo "\n------ Publishing spec --------"
+		mkdir baseline
 	    # Word output
-	    docker run --rm -v $(pwd):/data -u $(id -u):$(id -g) "$DOCKER_IMAGE" "/data/$i" -F mermaid-filter -f markdown+escaped_line_breaks -t docx --reference-doc "/data/${3}" -o "${4}_${2}.docx"
+	    docker run --rm -v $(pwd):/data -u $(id -u):$(id -g) "$DOCKER_IMAGE" "/data/$i" -F mermaid-filter -f markdown+escaped_line_breaks -t docx --reference-doc "/data/${3}" -o "baseline/${4}_${2}.docx"
 	    #echo 'docker run --rm -v $(pwd):/data -u $(id -u):$(id -g) "$DOCKER_IMAGE" "/data/$i" -F mermaid-filter -f markdown+escaped_line_breaks -t pdf -o "${4}_${2}.pdf"'
-	    # PDF Output
-	    docker run --rm -v $(pwd):/data -u $(id -u):$(id -g) "$DOCKER_IMAGE" "/data/$i" -F mermaid-filter -f markdown+escaped_line_breaks -t pdf -o "${4}_${2}.pdf"
-	    # EPUB Output
-	    docker run --rm -v $(pwd):/data -u $(id -u):$(id -g) "$DOCKER_IMAGE" "/data/$i" -f markdown+escaped_line_breaks -t epub3 -o "${4}_${2}.epub" --metadata title="${PROJECT_NAME}_${2}" --metadata creator="oneM2M Partnership Project" --metadata rights="Copyright 2024 oneM2M Partners
+	    if [ "$5" != "onlyDocx" ]; then
+			# PDF Output
+			docker run --rm -v $(pwd):/data -u $(id -u):$(id -g) "$DOCKER_IMAGE" "/data/$i" -F mermaid-filter -f markdown+escaped_line_breaks -t pdf -o "baseline/${4}_${2}.pdf"
+			# EPUB Output
+			docker run --rm -v $(pwd):/data -u $(id -u):$(id -g) "$DOCKER_IMAGE" "/data/$i" -f markdown+escaped_line_breaks -t epub3 -o "baseline/${4}_${2}.epub" --metadata title="${PROJECT_NAME}_${2}" --metadata creator="oneM2M Partnership Project" --metadata rights="Copyright 2024 oneM2M Partners
 hip Project"
+		fi
 	fi
 done
 
diff --git a/spec_on_pages.sh b/spec_on_pages.sh
index 9e29fd9c0e9f12c2b4f9736aaf99c6fc3333b2c1..002e0c34f88994a938e4bbdba90c6c34a609aef0 100644
--- a/spec_on_pages.sh
+++ b/spec_on_pages.sh
@@ -52,17 +52,17 @@ sed -i 's/##PROJECT/'${9^^}'/g' mkdocs.yml
 if [[ ${10} == v* ]]; then
     echo "Adding download tab for version ${10}..."
     mkdir -p "docs/download"
-    mv "$8_${10}.docx" docs/download
+    mv "baseline/$8_${10}.docx" docs/download
     spec_name=$(echo ${8/&/and})
     file_name=$(ls docs/download/*.docx)
     filename_corrected=$(echo ${file_name/&/and})
     mv docs/download/"$8_${10}.docx" ${filename_corrected}
-    mv "$8_${10}.pdf" docs/download
+    mv "baseline/$8_${10}.pdf" docs/download
     spec_name=$(echo ${8/&/and})
     file_name=$(ls docs/download/*.pdf)
     filename_corrected=$(echo ${file_name/&/and})
     mv docs/download/"$8_${10}.pdf" ${filename_corrected}
-    mv "$8_${10}.epub" docs/download
+    mv "baseline/$8_${10}.epub" docs/download
     spec_name=$(echo ${8/&/and})
     file_name=$(ls docs/download/*.epub)
     filename_corrected=$(echo ${file_name/&/and})