diff --git a/docs/design/autoware-interfaces/ad-api/features/cooperation.md b/docs/design/autoware-interfaces/ad-api/features/cooperation.md
new file mode 100644
index 00000000000..b094e41340f
--- /dev/null
+++ b/docs/design/autoware-interfaces/ad-api/features/cooperation.md
@@ -0,0 +1,94 @@
+# Cooperation
+
+## Related API
+
+- {{ link_ad_api('/api/planning/velocity_factors') }}
+- {{ link_ad_api('/api/planning/steering_factors') }}
+- {{ link_ad_api('/api/planning/cooperation/set_commands') }}
+- {{ link_ad_api('/api/planning/cooperation/set_policies') }}
+- {{ link_ad_api('/api/planning/cooperation/get_policies') }}
+
+## Description
+
+Request to cooperate (RTC) is a feature that enables a human operator to support the decision in autonomous driving mode.
+Autoware usually drives the vehicle using its own decisions, but the operator may prefer to make their decisions in experiments and complex situations.
+
+The planning component manages each situation that requires decision as a scene.
+Each scene has an ID that doesn't change until the scene is completed or canceled.
+The operator can override the decision of the target scene using this ID.
+In practice, the user interface application can hides the specification of the ID and provides an abstracted interface to the operator.
+
+For example, in the situation in the diagram below, vehicle is expected to make two lane changes and turning left at the intersection.
+Therefore the planning component generates three scene instances for each required action, and each scene instance will wait for the decision to be made, in this case "changing or keeping lane" and "turning left or waiting at the intersection".
+Here Autoware decides not to change lanes a second time due to the obstacle, so the vehicle will stop there.
+However, operator could overwrite that decision through RTC function and force the lane change so that vehicle could reach to it's goal.
+Using RTC, the operator can override these decisions to continue driving the vehicle to the goal.
+
+![cooperation-scenes](./cooperation/scenes.drawio.svg)
+
+## Architecture
+
+Modules that support RTC have the operator decision and cooperation policy in addition to the module decision as shown below.
+These modules use the merged decision that is determined by these values when planning vehicle behavior.
+See decisions section for details of these values.
+The cooperation policy is used when there is no operator decision and has a default value set by the system settings.
+If the module supports RTC, these information are available in [velocity factors or steering factors](./planning-factors.md) as [cooperation status](../types/autoware_adapi_v1_msgs/msg/CooperationStatus.md).
+
+![cooperation-architecture](./cooperation/architecture.drawio.svg)
+
+## Sequence
+
+This is an example sequence that overrides the scene decision to force a lane change. It is for the second scene in the diagram in the architecture section.
+Here let's assume the cooperation policy is set to optional, see the decisions section described later for details.
+
+1. A planning module creates a scene instance with unique ID when approaching a place where a lane change is needed.
+2. The scene instance generates the module decision from the current situation. In this case, the module decision is not to do a lane change due to the obstacle.
+3. The scene instance generates the merged decision. At this point, there is no operator decision yet, so it is based on the module decision.
+4. The scene instance plans the vehicle to keep the lane according to the merged decision.
+5. The scene instance sends a cooperation status.
+6. The operator receives the cooperation status.
+7. The operator sends a cooperation command to override the module decision and to do a lane change.
+8. The scene instance receives the cooperation command and update the operator decision.
+9. The scene instance updates the module decision from the current situation.
+10. The scene instance updates the merged decision. It is based on the operator decision received.
+11. The scene instance plans the vehicle to change the lane according to the merged decision.
+
+## Decisions
+
+The merged decision is determined by the module decision, operator decision, and cooperation policy, each of which takes the value shown in the table below.
+
+| Status | Values |
+| ------------------ | -------------------------------------- |
+| merged decision | deactivate, activate |
+| module decision | deactivate, activate |
+| operator decision | deactivate, activate, autonomous, none |
+| cooperation policy | required, optional |
+
+The meanings of these values are as follows. Note that the cooperation policy is common per module, so changing it will affect all scenes in the same module.
+
+| Value | Description |
+| ---------- | ------------------------------------------------------------------------------------------ |
+| deactivate | An operator/module decision to plan vehicle behavior with priority on safety. |
+| activate | An operator/module decision to plan vehicle behavior with priority on driving. |
+| autonomous | An operator decision that follows the module decision. |
+| none | An initial value for operator decision, indicating that there is no operator decision yet. |
+| required | A policy that requires the operator decision to continue driving. |
+| optional | A policy that does not require the operator decision to continue driving. |
+
+The following flow is how the merged decision is determined.
+
+![cooperation-decisions](./cooperation/decisions.drawio.svg)
+
+## Examples
+
+This is an example of cooperation for lane change module. The behaviors by the combination of decisions are as follows.
+
+| Operator decision | Policy | Module decision | Description |
+| ----------------- | -------- | --------------- | ------------------------------------------------------------------------------------------------------------------------------- |
+| deactivate | - | - | The operator instructs to keep lane regardless the module decision. So the vehicle keeps the lane by the operator decision. |
+| activate | - | - | The operator instructs to change lane regardless the module decision. So the vehicle changes the lane by the operator decision. |
+| autonomous | - | deactivate | The operator instructs to follow the module decision. So the vehicle keeps the lane by the module decision. |
+| autonomous | - | activate | The operator instructs to follow the module decision. So the vehicle changes the lane by the module decision. |
+| none | required | - | The required policy is used because no operator instruction. So the vehicle keeps the lane by the cooperation policy. |
+| none | optional | deactivate | The optional policy is used because no operator instruction. So the vehicle keeps the lane by the module decision. |
+| none | optional | activate | The optional policy is used because no operator instruction. So the vehicle change the lane by the module decision. |
diff --git a/docs/design/autoware-interfaces/ad-api/features/cooperation/architecture.drawio.svg b/docs/design/autoware-interfaces/ad-api/features/cooperation/architecture.drawio.svg
new file mode 100644
index 00000000000..77f18865950
--- /dev/null
+++ b/docs/design/autoware-interfaces/ad-api/features/cooperation/architecture.drawio.svg
@@ -0,0 +1,260 @@
+
\ No newline at end of file
diff --git a/docs/design/autoware-interfaces/ad-api/features/cooperation/decisions.drawio.svg b/docs/design/autoware-interfaces/ad-api/features/cooperation/decisions.drawio.svg
new file mode 100644
index 00000000000..14ce9fee5f4
--- /dev/null
+++ b/docs/design/autoware-interfaces/ad-api/features/cooperation/decisions.drawio.svg
@@ -0,0 +1,337 @@
+
\ No newline at end of file
diff --git a/docs/design/autoware-interfaces/ad-api/features/cooperation/scenes.drawio.svg b/docs/design/autoware-interfaces/ad-api/features/cooperation/scenes.drawio.svg
new file mode 100644
index 00000000000..9b813850ed5
--- /dev/null
+++ b/docs/design/autoware-interfaces/ad-api/features/cooperation/scenes.drawio.svg
@@ -0,0 +1,140 @@
+
\ No newline at end of file
diff --git a/docs/design/autoware-interfaces/ad-api/features/planning-factors.md b/docs/design/autoware-interfaces/ad-api/features/planning-factors.md
index eff614ae230..d595448687f 100644
--- a/docs/design/autoware-interfaces/ad-api/features/planning-factors.md
+++ b/docs/design/autoware-interfaces/ad-api/features/planning-factors.md
@@ -12,59 +12,58 @@ Applications can notify the vehicle behavior to the people around and visualize
## Velocity factors
-The velocity factors is an array of information on the behavior that the vehicle stops (or slows down).
-Each factor has a type shown below, pose in the base link, distance, status, and detailed data depending on its type.
+The velocity factors is an array of information on the behavior that the vehicle stops or slows down.
+Each factor has a behavior type which is described below.
+Some behavior types have sequence and details as additional information.
+
+| Behavior | Description |
+| --------------------------- | ----------------------------------------------------------------------------------- |
+| surrounding-obstacle | There are obstacles immediately around the vehicle. |
+| route-obstacle | There are obstacles along the route ahead. |
+| intersection | There are obstacles in other lanes in the path. |
+| crosswalk | There are obstacles on the crosswalk. |
+| rear-check | There are obstacles behind that would be in a human driver's blind spot. |
+| user-defined-attention-area | There are obstacles in the predefined attention area. |
+| no-stopping-area | There is not enough space beyond the no stopping area. |
+| stop-sign | A stop by a stop sign. |
+| traffic-signal | A stop by a traffic signal. |
+| v2x-gate-area | A stop by a gate area. It has enter and leave as sequences and v2x type as details. |
+| merge | A stop before merging lanes. |
+| sidewalk | A stop before crossing the sidewalk. |
+| lane-change | A lane change. |
+| avoidance | A path change to avoid an obstacle in the current lane. |
+| emergency-operation | A stop by emergency instruction from the operator. |
+
+Each factor also provides status, poses in the base link frame, and distance from that pose.
As the vehicle approaches the stop position, this factor appears with a status of APPROACHING.
And when the vehicle reaches that position and stops, the status will be STOPPED.
-The pose indicates the stop position or the base link if the stop position cannot be calculated.
+The pose indicates the stop position, or the base link if the stop position cannot be calculated.
![velocity-factors](./planning-factors/velocity-factors.drawio.svg)
-| Factor Type | Description |
-| --------------------------- | ------------------------------------------------------------------------ |
-| SURROUNDING_OBSTACLE | There are obstacles immediately around the vehicle. |
-| ROUTE_OBSTACLE | There are obstacles along the route ahead. |
-| INTERSECTION | There are obstacles in other lanes in the path. |
-| CROSSWALK | There are obstacles on the crosswalk. |
-| REAR_CHECK | There are obstacles behind that would be in a human driver's blind spot. |
-| USER_DEFINED_DETECTION_AREA | There are obstacles in the predefined detection area. |
-| NO_STOPPING_AREA | There is not enough space beyond the no stopping area. |
-| STOP_SIGN | A stop by a stop sign. |
-| TRAFFIC_SIGNAL | A stop by a traffic signal. |
-| V2I_GATE_CONTROL_ENTER | A stop by a V2I gate entering. |
-| V2I_GATE_CONTROL_LEAVE | A stop by a V2I gate leaving. |
-| MERGE | A stop before merging lanes. |
-| SIDEWALK | A stop before crossing the sidewalk. |
-| LANE_CHANGE | A lane change. |
-| AVOIDANCE | A path change to avoid an obstacle in the current lane. |
-| EMERGENCY_OPERATION | A stop by emergency instruction from the operator. |
-
## Steering factors
The steering factors is an array of information on the maneuver that requires use of turn indicators, such as turning left or right.
-Each factor has a type shown below, pose in the base link, distance, status, and detailed data depending on its type.
+Each factor has a behavior type which is described below and steering direction.
+Some behavior types have sequence and details as additional information.
+
+| Behavior | Description |
+| ------------------- | --------------------------------------------------------------------------- |
+| intersection | A turning left or right at an intersection. |
+| lane-change | A lane change. |
+| avoidance | A path change to avoid an obstacle. It has a sequence of change and return. |
+| start-planner | T.B.D. |
+| goal-planner | T.B.D. |
+| emergency-operation | A path change by emergency instruction from the operator. |
+
+Each factor also provides status, poses in the base link frame, and distances from that poses.
As the vehicle approaches the position to start steering, this factor appears with a status of APPROACHING.
And when the vehicle reaches that position, the status will be TURNING.
-The pose indicates the start position when APPROACHING and the end position when TURNING.
+The poses indicate the start and end position of the section where the status is TURNING.
![steering-factors-1](./planning-factors/steering-factors-1.drawio.svg)
In cases such as lane change and avoidance, the vehicle will start steering at any position in the range depending on the situation.
-As the vehicle approaches the start position of the range, this factor appears with a status of APPROACHING.
-And when the vehicle reaches that position, the status will be TRYING.
-Then, when it is possible, the vehicle will start steering and the status will be TURNING.
-The pose indicates the start of the range (A) when APPROACHING and the end of the range (B) when TRYING.
-The position to end steering (C to D) for TURNING depends on the position to start steering.
+For these types, the section where the status is TURNING will be updated dynamically and the poses will follow that.
![steering-factors-2](./planning-factors/steering-factors-2.drawio.svg)
-
-| Factor Type | Description |
-| --------------------- | ------------------------------------------------------------------------ |
-| INTERSECTION | A turning left or right at an intersection. |
-| LANE_CHANGE | A lane change. |
-| AVOIDANCE_PATH_CHANGE | A path change to avoid an obstacle in the current lane. |
-| AVOIDANCE_PATH_RETURN | A path change to return to the original lane after avoiding an obstacle. |
-| STATION | T.B.D. (bus stop) |
-| PULL_OUT | T.B.D. |
-| PULL_OVER | T.B.D. |
-| EMERGENCY_OPERATION | A path change by emergency instruction from the operator. |
diff --git a/docs/design/autoware-interfaces/ad-api/features/planning-factors/steering-factors-1.drawio.svg b/docs/design/autoware-interfaces/ad-api/features/planning-factors/steering-factors-1.drawio.svg
index a47339dbf64..b5c1d2eb3f3 100644
--- a/docs/design/autoware-interfaces/ad-api/features/planning-factors/steering-factors-1.drawio.svg
+++ b/docs/design/autoware-interfaces/ad-api/features/planning-factors/steering-factors-1.drawio.svg
@@ -1,4 +1,4 @@
-