# Rule 3.4 — Do not use auxiliary verbs to make complex verb constructions.

> **Source:** Adapted from ASD-STE100 Issue 9, Rule 3.4

> Source: master.md#sec3-rule3.4

## Original Rule

Do not use the past participle form as a verb form together with the auxiliary verb "have." This construction will make a tense that is not approved.

> **Non-STE:** The operator has adjusted the linkage. (The present perfect tense is not approved.)
>
> **STE:** The operator adjusted the linkage. (The simple past tense is approved.)

Some complex verb constructions include other auxiliary verbs with the past participle form as a verb. Sentences with these constructions become complex sentences in the passive voice.

> **Non-STE:** The seat is to be installed before you install the cushion
>
> **STE:** Before you install the cushion, install the seat.
>
> **Non-STE:** The volume control can be adjusted.
>
> **STE:** You can adjust the volume control.
>
> **Non-STE:** The temperature must be adjusted.
>
> **STE:** Adjust the temperature.
>
> **Non-STE:** The sleeve will be adjusted by the robot.
>
> **STE:** The robot will adjust the sleeve.

## STE-Code Adaptation

Do not use the past participle form as a verb form together with the auxiliary verb "have." This construction will make a tense that is not approved.

Some complex verb constructions include other auxiliary verbs with the past participle form as a verb. Sentences with these constructions become complex sentences in the passive voice.

## Examples

> **Non-STE:** The build has compiled the module before the test runs. (The present perfect tense is not approved.)
>
> **STE:** The build compiled the module. Then the test runs. (The simple past tense is approved.)

> **Non-STE:** The migration is to be run before you deploy the service.
>
> **STE:** Before you deploy the service, run the migration.

> **Non-STE:** The cache can be cleared.
>
> **STE:** You can clear the cache.

> **Non-STE:** The timeout must be set before the job starts.
>
> **STE:** Set the timeout before the job starts.

> **Non-STE:** The report will be generated by the scheduler.
>
> **STE:** The scheduler will generate the report.
