diff --git a/system/default_ad_api/README.md b/system/default_ad_api/README.md
new file mode 100644
index 0000000000000..0b6cdf30778a2
--- /dev/null
+++ b/system/default_ad_api/README.md
@@ -0,0 +1,11 @@
+# default_ad_api
+
+This package is a default implementation AD API.
+
+- [autoware state (backward compatibility)](document/autoware-state.md)
+- [fail-safe](document/fail-safe.md)
+- [interface](document/interface.md)
+- [localization](document/localization.md)
+- [motion](document/motion.md)
+- [operation mode](document/operation-mode.md)
+- [routing](document/routing.md)
diff --git a/system/default_ad_api/document/autoware-state.md b/system/default_ad_api/document/autoware-state.md
new file mode 100644
index 0000000000000..e26756de1f4ba
--- /dev/null
+++ b/system/default_ad_api/document/autoware-state.md
@@ -0,0 +1,16 @@
+# Autoware state compatibility
+
+## Overview
+
+Since `/autoware/state` was so widely used, default_ad_api creates it from the states of AD API for backwards compatibility.
+The diagnostic checks that ad_service_state_monitor used to perform have been replaced by component_state_monitor.
+The service `/autoware/shutdown` to change autoware state to finalizing is also supported for compatibility.
+
+![autoware-state-architecture](images/autoware-state-architecture.drawio.svg)
+
+## Conversion
+
+This is the correspondence between AD API states and autoware states.
+The launch state is the data that default_ad_api node holds internally.
+
+![autoware-state-table](images/autoware-state-table.drawio.svg)
diff --git a/system/default_ad_api/document/fail-safe.md b/system/default_ad_api/document/fail-safe.md
new file mode 100644
index 0000000000000..b9967089c5e3a
--- /dev/null
+++ b/system/default_ad_api/document/fail-safe.md
@@ -0,0 +1,5 @@
+# Fail-safe API
+
+## Overview
+
+The fail-safe API simply relays the MRM state. See the [autoware-documentation](https://autowarefoundation.github.io/autoware-documentation/main/design/autoware-interfaces/ad-api/list/api/fail_safe/) for AD API specifications.
diff --git a/system/default_ad_api/document/images/autoware-state-architecture.drawio.svg b/system/default_ad_api/document/images/autoware-state-architecture.drawio.svg
new file mode 100644
index 0000000000000..40aebd20ae43f
--- /dev/null
+++ b/system/default_ad_api/document/images/autoware-state-architecture.drawio.svg
@@ -0,0 +1,332 @@
+
diff --git a/system/default_ad_api/document/images/autoware-state-table.drawio.svg b/system/default_ad_api/document/images/autoware-state-table.drawio.svg
new file mode 100644
index 0000000000000..ab21c1b865407
--- /dev/null
+++ b/system/default_ad_api/document/images/autoware-state-table.drawio.svg
@@ -0,0 +1,457 @@
+
diff --git a/system/default_ad_api/document/images/localization.drawio.svg b/system/default_ad_api/document/images/localization.drawio.svg
new file mode 100644
index 0000000000000..3c1347e8b4a3c
--- /dev/null
+++ b/system/default_ad_api/document/images/localization.drawio.svg
@@ -0,0 +1,553 @@
+
diff --git a/system/default_ad_api/document/images/motion-architecture.drawio.svg b/system/default_ad_api/document/images/motion-architecture.drawio.svg
new file mode 100644
index 0000000000000..24271b1c65643
--- /dev/null
+++ b/system/default_ad_api/document/images/motion-architecture.drawio.svg
@@ -0,0 +1,255 @@
+
diff --git a/system/default_ad_api/document/motion.drawio.svg b/system/default_ad_api/document/images/motion-state.drawio.svg
similarity index 74%
rename from system/default_ad_api/document/motion.drawio.svg
rename to system/default_ad_api/document/images/motion-state.drawio.svg
index c6e2593ed0eb7..3387b8ed29bb7 100644
--- a/system/default_ad_api/document/motion.drawio.svg
+++ b/system/default_ad_api/document/images/motion-state.drawio.svg
@@ -3,13 +3,31 @@
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
version="1.1"
- width="342px"
+ width="521px"
height="282px"
- viewBox="-0.5 -0.5 342 282"
- content="<mxfile><diagram id="Cz8Q8T6vesO4MC4sh1-d" name="Page-1">5VpNc5swEP01vmZAAhkf2zRpL5nJ1IeeZZCBqUCMkL/66ytAfIo4tgE7iXPIoGUl0Nu3T9LiGXyM9j85ToIX5hE6A4a3n8EfMwDmAMr/meFQGCwTFAafh15hMmvDMvxHlNFQ1k3okbTlKBijIkzaRpfFMXFFy4Y5Z7u225rR9lMT7BPNsHQx1a1/Qk8EymqiRX3jFwn9QD3aAfPiRoRLZzWTNMAe2zVM8GkGHzljoriK9o+EZtiVuBT9nt+4W70YJ7E4pQNUPVJxKCdHPDlX1WRcBMxnMaZPtfU7Z5vYI9kIhmwFIqLy0pSXqcBcfMsAlgaX4jQN3dL8HNLSrXhk9pw337p8LbbhrvJSFJFj+UR5wQoxyTTCIiL4QbpwQrEIt+3RsYq5X/nVsMgLhcwbKNmfGiVrIEx5V/nC+NBwSFgYi7Qx8mtmkA4qyYGhKK5yfNEh4lnu8qJ4fh2uaiInRVDBssV0o+b7ijepjE43rnXUshjsglCQZYJzdHdSy9qRXMtoPTLKeN4Xrh2XuEUoOftLGndWjm3ZRhXULeGC7I+HVY9X2QG1kTJLLdnVUuQoU9AQIcsYngjAOZoIMYvJEa6r202iGxcTHepEH8rzk+VAI9Nvkm6iMPZHpZNnE8ez+ujkgBVEaBw6QXBDOi0u0NUz2dWW4cu4ZulcQ7fQVNhJfYCOi+o7/oNVFcLJ1sVRtaInfvaVtMLq14qRV57bSEW1Zl9DKtCHWXlsnU3gSmyyNTZl25ixF57b7GOuySZoaIB9yIUHjS9co2zmwfy83XzHf/DCg7Q8eGHbz7n/0tLA0dOg4vzYeTDXcNTzIvY6RPdwGlSQNuA7leI6FI2p2j0zLW3ncVwjZRdoe/GA7EX9N28PWOShGuMI160u11EnMEX2agNdQHtHC1cqWCItecMQXJq78ZPMFF3xatJZBbXJfWXCNPRj2aRknY2QsTx0Mf2mzFHoebku9mVVn/gNSpNu8KzTFgswQpIsjqO+xjS9G9jR9WAvi713KU7mXIoTGkeQTGcyQTJNLUZJVle7R0kyr5kb4B3c70mUzJ4d01TAw+PH0A9T8YA9JY+hX0tGKVmZxnklq47/8JKVXpBZZoiPfoZer0H/GdpDK2RPdHjo2RVNdnaA+r4Iuy5JxASy40o8CL+58MD+j1RNuNFEwmPpHx10Jfqqu6HF4sGeDz+pVatCR1sm2BhZusy4kZfzj1aLtF6E+qIL9ImVvVHyRC+R5sAjHGVTjVdpksOTR6G0+iKf990E5IobJuuuSkxdhdFqQbeXKtmsf15UuNe/0YJP/wE=</diagram></mxfile>"
+ viewBox="-0.5 -0.5 521 282"
+ content="<mxfile><diagram id="Cz8Q8T6vesO4MC4sh1-d" name="Page-1">5Vpdc6IwFP01vnaAQMRHa223D906a2f3OUIEZoE4IWq7v36DhM+gxRq0rT44cEkgOffck5sLAzCJXh8oWvlPxMXhwNDc1wG4GxjGSDf4f2p4ywwW1DKDRwM3M+mlYR78w8KYN1sHLk5qDRkhIQtWdaND4hg7rGZDlJJtvdmShPWnrpCHJcPcQaFs/RO4zBdWHY7KCz9w4Pni0bYxzC5EKG8sZpL4yCXbiglMB2BCCWHZUfQ6wWGKXY5L1u9+z9ViYBTHrEsHU4x4g8K1mNycIYbTJjH/G9+lf7NHMVr2lkNAyTp2cXoXbQBut37A8HyFnPTqlvuc23wWhfxM54dLEjPhRe56cLvBlAUcznEYeDE3MpJ2ECPh1/Dr3unoBUicXJhEmNE33kR0ME2BqyCWLU63FS/l0PsVBxmaMCLBDK+4dQkePxD4tWMJdAkl7HLeiFNCmU88EqNwWlpv6zhWMEsYomyckpUbnBAlSeDk5vsgzJvtQYiPgqypI4Yhwo139bBoBTJTOsCDwFIcIhZs6sQ/CSXrK6FkqoZp15UPGL1VGqxIELOkcudZaihprdt1Wo8aQX1Uc36QPb90VzGRTh40JMmYoXXCvbNfI/QOGsG9NSEhobu+YGk72MlcSclfXLmysC3T0g45VZKQvXqhN/SiEIeKYNgtemEqkAvDPhgIMYnxAa6Ly1WiH8SkSnQgE105zzvLgUSmXzhZR0HsKaWTa2HbNdvoZBsLAKEaOgHtgnQafUBXj2RXXYY7cc2UuQY/haaCRugb8LCovtP+ZFUFoLd18RStaPGfdSmtMNu1QvHKcxmpKDLQc0gFvNTKY8lsMi7FJktiU5rGqF54LpPHnJNNQJMA+wwLDzyDcClJ5o3hcdl8o/3JCw+U4uCJbL5m/iWFQcv+v+C86jgYSjjKcRG7DaK7KPELSCvw7QXjXfJWpmq1zDS3HcdxiZRNoK3RDbRG5W9Yv2EWmOIeh5KsJtdhwzFZOEs3+gDtbcldSVqG4hl7eqIxys1N/3EasqZ4VeksnFrlvjAhUekK8ZK1FMCiwHV3utgWVR3Fr3uYNJ1ndlssDAVBIpcba6gvUZhcDezwfLDnhfOrFCd9yMUJqhGkYjFWL0i6LvloldbVrlGS9HPGhvEO7tckSnpLxtQX8ODwNvRSFQ/QUvJQ/rZESclK144rWTXan16ykgsy8xRx5Xvo5dJo30O7cAGtnjYPLVlRb3sHIOdFyHHwivUgOw6HCNOLC4/R/pKqCjfsSXhM+aWDrETfNRsajW6s4ek7tcI5DW3pITEyZZlxIndHtrBYpOUi1DddoDtW9pTEiVwi3QEPUZRONV4kqx08Oy/kVo/t5n01DjljwmReVYmpqTBSLegzSpVcVZq/jH+9PP58kDx1lozotK+prAZww5bPqbSeUqL82dW69PNv1UB2rksrBbJ4Z3IWIOW6wvzleTab3qmlZNcXXWopqfeHJD8tP8TMxKD8mhVM/wM=</diagram></mxfile>"
>
+
+
+
+
+
+
+
+ State in AD API
+
+
+
+
+ State in AD API
+
+
@@ -265,6 +283,57 @@
+
+
+
+
+
+
+
+ STARTING
+
+
+
+
+ STARTING
+
+
+
+
+
+
+
+
+
+ MOVING
+
+
+
+
+ MOVING
+
+
+
+
+
+
+
+
+
+ STOPPED
+
+
+
+
+ STOPPED
+
+
diff --git a/system/default_ad_api/document/images/operation-mode-architecture.drawio.svg b/system/default_ad_api/document/images/operation-mode-architecture.drawio.svg
new file mode 100644
index 0000000000000..4a879e98ed09d
--- /dev/null
+++ b/system/default_ad_api/document/images/operation-mode-architecture.drawio.svg
@@ -0,0 +1,323 @@
+
diff --git a/system/default_ad_api/document/images/operation-mode-state.drawio.svg b/system/default_ad_api/document/images/operation-mode-state.drawio.svg
new file mode 100644
index 0000000000000..3a008fd8a64f3
--- /dev/null
+++ b/system/default_ad_api/document/images/operation-mode-state.drawio.svg
@@ -0,0 +1,418 @@
+
diff --git a/system/default_ad_api/document/images/operation-mode-table.drawio.svg b/system/default_ad_api/document/images/operation-mode-table.drawio.svg
new file mode 100644
index 0000000000000..19a3ea5bd1133
--- /dev/null
+++ b/system/default_ad_api/document/images/operation-mode-table.drawio.svg
@@ -0,0 +1,317 @@
+
diff --git a/system/default_ad_api/document/images/routing.drawio.svg b/system/default_ad_api/document/images/routing.drawio.svg
new file mode 100644
index 0000000000000..6742bfe4c12b0
--- /dev/null
+++ b/system/default_ad_api/document/images/routing.drawio.svg
@@ -0,0 +1,398 @@
+
diff --git a/system/default_ad_api/document/interface.md b/system/default_ad_api/document/interface.md
new file mode 100644
index 0000000000000..f3fc6a389c294
--- /dev/null
+++ b/system/default_ad_api/document/interface.md
@@ -0,0 +1,5 @@
+# Interface API
+
+## Overview
+
+The interface API simply returns a version number. See the [autoware-documentation](https://autowarefoundation.github.io/autoware-documentation/main/design/autoware-interfaces/ad-api/list/api/interface/) for AD API specifications.
diff --git a/system/default_ad_api/document/localization.md b/system/default_ad_api/document/localization.md
new file mode 100644
index 0000000000000..866322ed807cf
--- /dev/null
+++ b/system/default_ad_api/document/localization.md
@@ -0,0 +1,7 @@
+# Localization API
+
+## Overview
+
+Unify the location initialization method to the service. The topic `/initialpose` from rviz is now only subscribed to by adapter node and converted to API call. This API call is forwarded to the pose initializer node so it can centralize the state of pose initialization. For other nodes that require initialpose, pose initializer node publishes as `/initialpose3d`. See the [autoware-documentation](https://autowarefoundation.github.io/autoware-documentation/main/design/autoware-interfaces/ad-api/list/api/localization/) for AD API specifications.
+
+![localization-architecture](images/localization.drawio.svg)
diff --git a/system/default_ad_api/document/motion.md b/system/default_ad_api/document/motion.md
new file mode 100644
index 0000000000000..fd01a8f56ed7f
--- /dev/null
+++ b/system/default_ad_api/document/motion.md
@@ -0,0 +1,13 @@
+# Motion API
+
+## Overview
+
+Provides a hook for when the vehicle starts. It is typically used for announcements that call attention to the surroundings. Add a pause function to the vehicle_cmd_gate, and API will control it based on vehicle stopped and start requested. See the [autoware-documentation](https://autowarefoundation.github.io/autoware-documentation/main/design/autoware-interfaces/ad-api/list/api/motion/) for AD API specifications.
+
+![motion-architecture](images/motion-architecture.drawio.svg)
+
+## States
+
+The implementation has more detailed state transitions to manage pause state synchronization. The correspondence with the AD API state is as follows.
+
+![motion-state](images/motion-state.drawio.svg)
diff --git a/system/default_ad_api/document/operation-mode.md b/system/default_ad_api/document/operation-mode.md
new file mode 100644
index 0000000000000..703f6aa47b50d
--- /dev/null
+++ b/system/default_ad_api/document/operation-mode.md
@@ -0,0 +1,24 @@
+# Operation mode API
+
+## Overview
+
+Introduce operation mode. It handles autoware engage, gate_mode, external_cmd_selector and control_mode abstractly. When the mode is changed, it will be in-transition state, and if the transition completion condition to that mode is not satisfied, it will be returned to the previous mode. Also, currently, the condition for mode change is only `WaitingForEngage` in `/autoware/state`, and the engage state is shared between modes. After introducing the operation mode, each mode will have a transition available flag. See the [autoware-documentation](https://autowarefoundation.github.io/autoware-documentation/main/design/autoware-interfaces/ad-api/list/api/operation_mode/) for AD API specifications.
+
+![operation-mode-architecture](images/operation-mode-architecture.drawio.svg)
+
+## States
+
+The operation mode has the following state transitions. Disabling autoware control and changing operation mode when autoware control is disabled can be done immediately.
+Otherwise, enabling autoware control and changing operation mode when autoware control is enabled causes the state will be transition state.
+If the mode change completion condition is not satisfied within the timeout in the transition state, it will return to the previous mode.
+
+![operation-mode-state](images/operation-mode-state.drawio.svg)
+
+## Compatibility
+
+Ideally, vehicle_cmd_gate and external_cmd_selector should be merged so that the operation mode can be handled directly.
+However, currently the operation mode transition manager performs the following conversions to match the implementation.
+The transition manager monitors each topic in the previous interface and synchronizes the operation mode when it changes.
+When the operation mode is changed with the new interface, the transition manager disables synchronization and changes the operation mode using the previous interface.
+
+![operation-mode-table](images/operation-mode-table.drawio.svg)
diff --git a/system/default_ad_api/document/routing.md b/system/default_ad_api/document/routing.md
new file mode 100644
index 0000000000000..899136f2d9e50
--- /dev/null
+++ b/system/default_ad_api/document/routing.md
@@ -0,0 +1,7 @@
+# Routing API
+
+## Overview
+
+Unify the route setting method to the service. This API supports two waypoint formats, poses and lanelet segments. The goal and checkpoint topics from rviz is only subscribed to by adapter node and converted to API call. This API call is forwarded to the mission planner node so it can centralize the state of routing. For other nodes that require route, mission planner node publishes as `/planning/mission_planning/route`. See the [autoware-documentation](https://autowarefoundation.github.io/autoware-documentation/main/design/autoware-interfaces/ad-api/list/api/routing/) for AD API specifications.
+
+![routing-architecture](images/routing.drawio.svg)