diff --git a/.clang-tidy-ci b/.clang-tidy-ci
new file mode 100644
index 00000000000..04a9f8bacce
--- /dev/null
+++ b/.clang-tidy-ci
@@ -0,0 +1,480 @@
+Checks: "
+  -*,
+  boost-use-to-string,
+  bugprone-argument-comment,
+  bugprone-assert-side-effect,
+  bugprone-bad-signal-to-kill-thread,
+  bugprone-bool-pointer-implicit-conversion,
+  bugprone-branch-clone,
+  bugprone-copy-constructor-init,
+  bugprone-dangling-handle,
+  bugprone-dynamic-static-initializers,
+  bugprone-exception-escape,
+  bugprone-fold-init-type,
+  bugprone-forward-declaration-namespace,
+  bugprone-forwarding-reference-overload,
+  bugprone-inaccurate-erase,
+  bugprone-incorrect-roundings,
+  bugprone-integer-division,
+  bugprone-lambda-function-name,
+  bugprone-macro-parentheses,
+  bugprone-macro-repeated-side-effects,
+  bugprone-misplaced-operator-in-strlen-in-alloc,
+  bugprone-misplaced-widening-cast,
+  bugprone-move-forwarding-reference,
+  bugprone-multiple-statement-macro,
+  bugprone-not-null-terminated-result,
+  bugprone-parent-virtual-call,
+  bugprone-posix-return,
+  bugprone-signed-char-misuse,
+  bugprone-sizeof-container,
+  bugprone-sizeof-expression,
+  bugprone-string-constructor,
+  bugprone-string-integer-assignment,
+  bugprone-string-literal-with-embedded-nul,
+  bugprone-suspicious-enum-usage,
+  bugprone-suspicious-memset-usage,
+  bugprone-suspicious-missing-comma,
+  bugprone-suspicious-semicolon,
+  bugprone-suspicious-string-compare,
+  bugprone-swapped-arguments,
+  bugprone-terminating-continue,
+  bugprone-throw-keyword-missing,
+  bugprone-too-small-loop-variable,
+  bugprone-unchecked-optional-access,
+  bugprone-undefined-memory-manipulation,
+  bugprone-undelegated-constructor,
+  bugprone-unhandled-self-assignment,
+  bugprone-unused-raii,
+  bugprone-unused-return-value,
+  bugprone-use-after-move,
+  bugprone-virtual-near-miss,
+  cppcoreguidelines-avoid-goto,
+  cppcoreguidelines-init-variables,
+  cppcoreguidelines-interfaces-global-init,
+  cppcoreguidelines-macro-usage,
+  cppcoreguidelines-narrowing-conversions,
+  cppcoreguidelines-no-malloc,
+  cppcoreguidelines-pro-bounds-pointer-arithmetic,
+  cppcoreguidelines-pro-type-const-cast,
+  cppcoreguidelines-pro-type-cstyle-cast,
+  cppcoreguidelines-pro-type-member-init,
+  cppcoreguidelines-pro-type-reinterpret-cast,
+  cppcoreguidelines-pro-type-static-cast-downcast,
+  cppcoreguidelines-pro-type-union-access,
+  cppcoreguidelines-slicing,
+  cppcoreguidelines-special-member-functions,
+  google-build-explicit-make-pair,
+  google-build-namespaces,
+  google-build-using-namespace,
+  google-explicit-constructor,
+  google-global-names-in-headers,
+  google-upgrade-googletest-case,
+  hicpp-exception-baseclass,
+  hicpp-multiway-paths-covered,
+  hicpp-no-assembler,
+  hicpp-signed-bitwise,
+  llvm-namespace-comment,
+  misc-definitions-in-headers,
+  misc-misplaced-const,
+  misc-new-delete-overloads,
+  misc-non-copyable-objects,
+  misc-redundant-expression,
+  misc-static-assert,
+  misc-throw-by-value-catch-by-reference,
+  misc-unconventional-assign-operator,
+  misc-uniqueptr-reset-release,
+  misc-unused-alias-decls,
+  misc-unused-parameters,
+  misc-unused-using-decls,
+  modernize-concat-nested-namespaces,
+  modernize-deprecated-headers,
+  modernize-deprecated-ios-base-aliases,
+  modernize-loop-convert,
+  modernize-make-shared,
+  modernize-make-unique,
+  modernize-pass-by-value,
+  modernize-raw-string-literal,
+  modernize-redundant-void-arg,
+  modernize-replace-auto-ptr,
+  modernize-replace-disallow-copy-and-assign-macro,
+  modernize-replace-random-shuffle,
+  modernize-return-braced-init-list,
+  modernize-shrink-to-fit,
+  modernize-unary-static-assert,
+  modernize-use-auto,
+  modernize-use-bool-literals,
+  modernize-use-default-member-init,
+  modernize-use-emplace,
+  modernize-use-equals-default,
+  modernize-use-equals-delete,
+  modernize-use-nodiscard,
+  modernize-use-noexcept,
+  modernize-use-nullptr,
+  modernize-use-override,
+  modernize-use-transparent-functors,
+  modernize-use-uncaught-exceptions,
+  modernize-use-using,
+  openmp-use-default-none,
+  performance-faster-string-find,
+  performance-for-range-copy,
+  performance-implicit-conversion-in-loop,
+  performance-inefficient-algorithm,
+  performance-inefficient-string-concatenation,
+  performance-inefficient-vector-operation,
+  performance-move-const-arg,
+  performance-move-constructor-init,
+  performance-no-automatic-move,
+  performance-no-int-to-ptr,
+  performance-noexcept-move-constructor,
+  performance-trivially-destructible,
+  performance-type-promotion-in-math-fn,
+  performance-unnecessary-copy-initialization,
+  performance-unnecessary-value-param,
+  portability-simd-intrinsics,
+  readability-const-return-type,
+  readability-container-size-empty,
+  readability-convert-member-functions-to-static,
+  readability-delete-null-pointer,
+  readability-else-after-return,
+  readability-function-cognitive-complexity,
+  readability-identifier-naming,
+  readability-inconsistent-declaration-parameter-name,
+  readability-isolate-declaration,
+  readability-make-member-function-const,
+  readability-misleading-indentation,
+  readability-misplaced-array-index,
+  readability-non-const-parameter,
+  readability-redundant-access-specifiers,
+  readability-redundant-control-flow,
+  readability-redundant-declaration,
+  readability-redundant-function-ptr-dereference,
+  readability-redundant-member-init,
+  readability-redundant-smartptr-get,
+  readability-redundant-string-cstr,
+  readability-redundant-string-init,
+  readability-simplify-boolean-expr,
+  readability-simplify-subscript-expr,
+  readability-static-accessed-through-instance,
+  readability-static-definition-in-anonymous-namespace,
+  readability-string-compare,
+  readability-uniqueptr-delete-release"
+
+WarningsAsErrors: "
+  // severity: HIGH
+  bugprone-dangling-handle,
+  bugprone-fold-init-type,
+  bugprone-inaccurate-erase,
+  // bugprone-incorrect-roundings,
+  // bugprone-misplaced-widening-cast,
+  bugprone-sizeof-container,
+  bugprone-sizeof-expression,
+  bugprone-string-constructor,
+  bugprone-suspicious-enum-usage,
+  bugprone-suspicious-memset-usage,
+  bugprone-suspicious-missing-comma,
+  bugprone-suspicious-semicolon,
+  bugprone-swapped-arguments,
+  bugprone-unchecked-optional-access,
+  // bugprone-unused-raii,
+  bugprone-use-after-move,
+  misc-non-copyable-objects,
+  misc-throw-by-value-catch-by-reference,
+
+  // severity: MEDIUM
+  bugprone-assert-side-effect,
+  bugprone-bad-signal-to-kill-thread,
+  bugprone-copy-constructor-init,
+  bugprone-dynamic-static-initializers,
+  // bugprone-exception-escape,
+  // bugprone-integer-division,
+  // bugprone-macro-parentheses,
+  bugprone-macro-repeated-side-effects,
+  bugprone-misplaced-operator-in-strlen-in-alloc,
+  bugprone-move-forwarding-reference,
+  bugprone-multiple-statement-macro,
+  bugprone-not-null-terminated-result,
+  // bugprone-parent-virtual-call,
+  bugprone-posix-return,
+  // bugprone-signed-char-misuse,
+  bugprone-string-literal-with-embedded-nul,
+  bugprone-suspicious-string-compare,
+  bugprone-terminating-continue,
+  // bugprone-throw-keyword-missing,
+  bugprone-too-small-loop-variable,
+  bugprone-undefined-memory-manipulation,
+  bugprone-undelegated-constructor,
+  bugprone-unhandled-self-assignment,
+  bugprone-unused-return-value,
+  bugprone-virtual-near-miss,
+  // cppcoreguidelines-init-variables,
+  // cppcoreguidelines-narrowing-conversions,
+  google-build-explicit-make-pair,
+  google-build-namespaces,
+  // google-explicit-constructor,
+  misc-definitions-in-headers,
+  misc-new-delete-overloads,
+  misc-redundant-expression,
+  misc-unconventional-assign-operator,
+  misc-uniqueptr-reset-release,
+  performance-inefficient-algorithm,
+  // performance-move-const-arg,
+  performance-move-constructor-init,
+  performance-noexcept-move-constructor,
+  // readability-simplify-boolean-expr"
+
+HeaderFilterRegex: ^(?!\/usr)(?!\/opt)
+
+CheckOptions:
+  - key: bugprone-argument-comment.CommentBoolLiterals
+    value: "0"
+  - key: bugprone-argument-comment.CommentCharacterLiterals
+    value: "0"
+  - key: bugprone-argument-comment.CommentFloatLiterals
+    value: "0"
+  - key: bugprone-argument-comment.CommentIntegerLiterals
+    value: "0"
+  - key: bugprone-argument-comment.CommentNullPtrs
+    value: "0"
+  - key: bugprone-argument-comment.CommentStringLiterals
+    value: "0"
+  - key: bugprone-argument-comment.CommentUserDefinedLiterals
+    value: "0"
+  - key: bugprone-argument-comment.IgnoreSingleArgument
+    value: "0"
+  - key: bugprone-argument-comment.StrictMode
+    value: "0"
+  - key: bugprone-assert-side-effect.AssertMacros
+    value: assert
+  - key: bugprone-assert-side-effect.CheckFunctionCalls
+    value: "0"
+  - key: bugprone-dangling-handle.HandleClasses
+    value: std::basic_string_view;std::experimental::basic_string_view
+  - key: bugprone-dynamic-static-initializers.HeaderFileExtensions
+    value: ",h,hh,hpp,hxx"
+  - key: bugprone-exception-escape.FunctionsThatShouldNotThrow
+    value: ""
+  - key: bugprone-exception-escape.IgnoredExceptions
+    value: ""
+  - key: bugprone-misplaced-widening-cast.CheckImplicitCasts
+    value: "0"
+  - key: bugprone-not-null-terminated-result.WantToUseSafeFunctions
+    value: "1"
+  - key: bugprone-signed-char-misuse.CharTypdefsToIgnore
+    value: ""
+  - key: bugprone-sizeof-expression.WarnOnSizeOfCompareToConstant
+    value: "1"
+  - key: bugprone-sizeof-expression.WarnOnSizeOfConstant
+    value: "1"
+  - key: bugprone-sizeof-expression.WarnOnSizeOfIntegerExpression
+    value: "0"
+  - key: bugprone-sizeof-expression.WarnOnSizeOfThis
+    value: "1"
+  - key: bugprone-string-constructor.LargeLengthThreshold
+    value: "8388608"
+  - key: bugprone-string-constructor.WarnOnLargeLength
+    value: "1"
+  - key: bugprone-suspicious-enum-usage.StrictMode
+    value: "0"
+  - key: bugprone-suspicious-missing-comma.MaxConcatenatedTokens
+    value: "5"
+  - key: bugprone-suspicious-missing-comma.RatioThreshold
+    value: "0.200000"
+  - key: bugprone-suspicious-missing-comma.SizeThreshold
+    value: "5"
+  - key: bugprone-suspicious-string-compare.StringCompareLikeFunctions
+    value: ""
+  - key: bugprone-suspicious-string-compare.WarnOnImplicitComparison
+    value: "1"
+  - key: bugprone-suspicious-string-compare.WarnOnLogicalNotComparison
+    value: "0"
+  - key: bugprone-too-small-loop-variable.MagnitudeBitsUpperLimit
+    value: "16"
+  - key: bugprone-unhandled-self-assignment.WarnOnlyIfThisHasSuspiciousField
+    value: "1"
+  - key: bugprone-unused-return-value.CheckedFunctions
+    value: ::std::async;::std::launder;::std::remove;::std::remove_if;::std::unique;::std::unique_ptr::release;::std::basic_string::empty;::std::vector::empty
+  - key: cert-dcl16-c.NewSuffixes
+    value: L;LL;LU;LLU
+  - key: cert-oop54-cpp.WarnOnlyIfThisHasSuspiciousField
+    value: "0"
+  - key: cppcoreguidelines-explicit-virtual-functions.IgnoreDestructors
+    value: "1"
+  - key: cppcoreguidelines-macro-usage.AllowedRegexp
+    value: ^DEBUG_*
+  - key: cppcoreguidelines-macro-usage.CheckCapsOnly
+    value: "0"
+  - key: cppcoreguidelines-macro-usage.IgnoreCommandLineMacros
+    value: "1"
+  - key: cppcoreguidelines-no-malloc.Allocations
+    value: ::malloc;::calloc
+  - key: cppcoreguidelines-no-malloc.Deallocations
+    value: ::free
+  - key: cppcoreguidelines-no-malloc.Reallocations
+    value: ::realloc
+  - key: cppcoreguidelines-non-private-member-variables-in-classes.IgnoreClassesWithAllMemberVariablesBeingPublic
+    value: "1"
+  - key: cppcoreguidelines-pro-type-member-init.IgnoreArrays
+    value: "0"
+  - key: cppcoreguidelines-pro-type-member-init.UseAssignment
+    value: "0"
+  - key: cppcoreguidelines-special-member-functions.AllowMissingMoveFunctions
+    value: "0"
+  - key: cppcoreguidelines-special-member-functions.AllowSoleDefaultDtor
+    value: "0"
+  - key: google-readability-braces-around-statements.ShortStatementLines
+    value: "1"
+  - key: google-readability-function-size.StatementThreshold
+    value: "800"
+  - key: google-readability-namespace-comments.ShortNamespaceLines
+    value: "10"
+  - key: google-readability-namespace-comments.SpacesBeforeComments
+    value: "2"
+  - key: hicpp-multiway-paths-covered.WarnOnMissingElse
+    value: "0"
+  - key: hicpp-signed-bitwise.IgnorePositiveIntegerLiterals
+    value: "0"
+  - key: misc-definitions-in-headers.HeaderFileExtensions
+    value: ",h,hh,hpp,hxx"
+  - key: misc-definitions-in-headers.UseHeaderFileExtension
+    value: "1"
+  - key: misc-throw-by-value-catch-by-reference.CheckThrowTemporaries
+    value: "1"
+  - key: misc-unused-parameters.StrictMode
+    value: "0"
+  - key: modernize-loop-convert.MaxCopySize
+    value: "16"
+  - key: modernize-loop-convert.MinConfidence
+    value: reasonable
+  - key: modernize-loop-convert.NamingStyle
+    value: CamelCase
+  - key: modernize-make-shared.IgnoreMacros
+    value: "1"
+  - key: modernize-make-shared.IncludeStyle
+    value: google
+  - key: modernize-make-shared.MakeSmartPtrFunction
+    value: std::make_shared
+  - key: modernize-make-shared.MakeSmartPtrFunctionHeader
+    value: memory
+  - key: modernize-make-unique.IgnoreMacros
+    value: "1"
+  - key: modernize-make-unique.IncludeStyle
+    value: google
+  - key: modernize-make-unique.MakeSmartPtrFunction
+    value: std::make_unique
+  - key: modernize-make-unique.MakeSmartPtrFunctionHeader
+    value: memory
+  - key: modernize-pass-by-value.IncludeStyle
+    value: google
+  - key: modernize-pass-by-value.ValuesOnly
+    value: "0"
+  - key: modernize-raw-string-literal.ReplaceShorterLiterals
+    value: "0"
+  - key: modernize-replace-auto-ptr.IncludeStyle
+    value: google
+  - key: modernize-replace-random-shuffle.IncludeStyle
+    value: google
+  - key: modernize-use-auto.MinTypeNameLength
+    value: "5"
+  - key: modernize-use-auto.RemoveStars
+    value: "0"
+  - key: modernize-use-default-member-init.IgnoreMacros
+    value: "1"
+  - key: modernize-use-default-member-init.UseAssignment
+    value: "0"
+  - key: modernize-use-emplace.ContainersWithPushBack
+    value: ::std::vector;::std::list;::std::deque
+  - key: modernize-use-emplace.SmartPointers
+    value: ::std::shared_ptr;::std::unique_ptr;::std::auto_ptr;::std::weak_ptr
+  - key: modernize-use-emplace.TupleMakeFunctions
+    value: ::std::make_pair;::std::make_tuple
+  - key: modernize-use-emplace.TupleTypes
+    value: ::std::pair;::std::tuple
+  - key: modernize-use-equals-default.IgnoreMacros
+    value: "1"
+  - key: modernize-use-equals-delete.IgnoreMacros
+    value: "1"
+  - key: modernize-use-nodiscard.ReplacementString
+    value: "[[nodiscard]]"
+  - key: modernize-use-noexcept.ReplacementString
+    value: ""
+  - key: modernize-use-noexcept.UseNoexceptFalse
+    value: "1"
+  - key: modernize-use-nullptr.NullMacros
+    value: "NULL"
+  - key: modernize-use-override.AllowOverrideAndFinal
+    value: "0"
+  - key: modernize-use-override.FinalSpelling
+    value: final
+  - key: modernize-use-override.IgnoreDestructors
+    value: "0"
+  - key: modernize-use-override.OverrideSpelling
+    value: override
+  - key: modernize-use-transparent-functors.SafeMode
+    value: "0"
+  - key: modernize-use-using.IgnoreMacros
+    value: "1"
+  - key: performance-faster-string-find.StringLikeClasses
+    value: std::basic_string
+  - key: performance-for-range-copy.AllowedTypes
+    value: ""
+  - key: performance-for-range-copy.WarnOnAllAutoCopies
+    value: "0"
+  - key: performance-inefficient-string-concatenation.StrictMode
+    value: "0"
+  - key: performance-inefficient-vector-operation.EnableProto
+    value: "0"
+  - key: performance-inefficient-vector-operation.VectorLikeClasses
+    value: ::std::vector
+  - key: performance-move-const-arg.CheckTriviallyCopyableMove
+    value: "1"
+  - key: performance-move-constructor-init.IncludeStyle
+    value: google
+  - key: performance-no-automatic-move.AllowedTypes
+    value: ""
+  - key: performance-type-promotion-in-math-fn.IncludeStyle
+    value: google
+  - key: performance-unnecessary-copy-initialization.AllowedTypes
+    value: ""
+  - key: performance-unnecessary-value-param.AllowedTypes
+    value: .*Ptr;.*SharedFuture
+  - key: performance-unnecessary-value-param.IncludeStyle
+    value: google
+  - key: portability-simd-intrinsics.Std
+    value: ""
+  - key: portability-simd-intrinsics.Suggest
+    value: "0"
+  - key: readability-function-cognitive-complexity.IgnoreMacros
+    value: "1"
+  - key: readability-else-after-return.WarnOnUnfixable
+    value: "1"
+  - key: readability-identifier-naming.NamespaceCase
+    value: lower_case
+  - key: readability-identifier-naming.ClassCase
+    value: CamelCase
+  - key: readability-identifier-naming.PrivateMemberSuffix
+    value: _
+  - key: readability-identifier-naming.StructCase
+    value: CamelCase
+  - key: readability-identifier-naming.FunctionCase
+    value: lower_case
+  - key: readability-identifier-naming.VariableCase
+    value: lower_case
+  - key: readability-identifier-naming.GlobalConstantCase
+    value: lower_case
+  - key: readability-identifier-naming.GlobalConstantPrefix
+    value: g_
+  - key: readability-identifier-naming.ConstexprVariableCase
+    value: lower_case
+  - key: readability-inconsistent-declaration-parameter-name.IgnoreMacros
+    value: "1"
+  - key: readability-inconsistent-declaration-parameter-name.Strict
+    value: "0"
+  - key: readability-redundant-smartptr-get.IgnoreMacros
+    value: "1"
+  - key: readability-redundant-string-init.StringNames
+    value: ::std::basic_string
+  - key: readability-simplify-subscript-expr.Types
+    value: ::std::basic_string;::std::basic_string_view;::std::vector;::std::array
+  - key: readability-static-accessed-through-instance.NameSpecifierNestingThreshold
+    value: "3"
diff --git a/.github/workflows/docker-build-and-push-main-self-hosted.yaml b/.github/workflows/docker-build-and-push-main-self-hosted.yaml
index 8a6030ee416..09acb0b3c58 100644
--- a/.github/workflows/docker-build-and-push-main-self-hosted.yaml
+++ b/.github/workflows/docker-build-and-push-main-self-hosted.yaml
@@ -79,7 +79,7 @@ jobs:
             cache-${{ matrix.platform }}-
 
       - name: Inject cache into docker
-        uses: reproducible-containers/buildkit-cache-dance@v3.1.1
+        uses: reproducible-containers/buildkit-cache-dance@v3.1.2
         with:
           cache-map: |
             {
diff --git a/.github/workflows/docker-build-and-push-main.yaml b/.github/workflows/docker-build-and-push-main.yaml
index f81a5bebd4a..20211a09e0b 100644
--- a/.github/workflows/docker-build-and-push-main.yaml
+++ b/.github/workflows/docker-build-and-push-main.yaml
@@ -79,7 +79,7 @@ jobs:
             cache-${{ matrix.platform }}-
 
       - name: Inject cache into docker
-        uses: reproducible-containers/buildkit-cache-dance@v3.1.1
+        uses: reproducible-containers/buildkit-cache-dance@v3.1.2
         with:
           cache-map: |
             {
diff --git a/.gitignore b/.gitignore
index 1ceb054951d..024b426a3b1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -26,6 +26,3 @@ capture/
 
 # Node.js
 node_modules/
-
-# Docker build
-docker/src
diff --git a/autoware.repos b/autoware.repos
index 9ac8154c683..f5b4fe9e934 100644
--- a/autoware.repos
+++ b/autoware.repos
@@ -12,9 +12,22 @@ repositories:
     type: git
     url: https://github.com/autowarefoundation/autoware_internal_msgs.git
     version: main
+  # TODO(youtalk): Remove autoware_common when https://github.com/autowarefoundation/autoware/issues/4911 is closed
   core/autoware_common:
     type: git
     url: https://github.com/autowarefoundation/autoware_common.git
+    version: remove-autoware-cmake-utils
+  core/autoware_cmake:
+    type: git
+    url: https://github.com/autowarefoundation/autoware_cmake.git
+    version: main
+  core/autoware_utils:
+    type: git
+    url: https://github.com/autowarefoundation/autoware_utils.git
+    version: main
+  core/autoware_lanelet2_extension:
+    type: git
+    url: https://github.com/autowarefoundation/autoware_lanelet2_extension.git
     version: main
   core/autoware.core:
     type: git
diff --git a/docker/build.sh b/docker/build.sh
index 5c2d3e634ee..cdaa092c410 100755
--- a/docker/build.sh
+++ b/docker/build.sh
@@ -100,13 +100,13 @@ load_env() {
 # Clone repositories
 clone_repositories() {
     cd "$WORKSPACE_ROOT"
-    if [ ! -d "docker/src" ]; then
-        mkdir -p docker/src
-        vcs import docker/src <autoware.repos
+    if [ ! -d "src" ]; then
+        mkdir -p src
+        vcs import src <autoware.repos
     else
         echo "Source directory already exists. Updating repositories..."
-        vcs import docker/src <autoware.repos
-        vcs pull docker/src
+        vcs import src <autoware.repos
+        vcs pull src
     fi
 }
 
@@ -140,11 +140,6 @@ build_images() {
     set +x
 }
 
-# Remove temporary source directory
-remove_tmp_src() {
-    rm -rf "$WORKSPACE_ROOT/docker/src"
-}
-
 # Remove dangling images
 remove_dangling_images() {
     docker image prune -f
@@ -159,5 +154,4 @@ set_arch_lib_dir
 load_env
 clone_repositories
 build_images
-remove_tmp_src
 remove_dangling_images