# 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 in code documentation.

Do not use auxiliary verbs ("have," "be," "will," "can," "must," "should," "is to be") with a past participle to build compound tenses or passive voice. These constructions make complex verb forms that STE-Code does not approve. Write the action with a simple, approved verb form instead:

- Use the simple past instead of "have/has/had + past participle" (present or past perfect).
- Use the active voice with a clear agent instead of "be + past participle" (passive voice). See Rule 3.6.
- Use the imperative (command) form for instructions instead of "is to be + past participle."
- Use "you can + base verb" instead of "can be + past participle" when the reader is the agent.
- Use "will + base verb" with a named agent instead of "will be + past participle + by + agent."

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. Convert them to a simple active form.

When a compound construction is unavoidable for correctness (for example, a progressive state that the code is genuinely in), split it into separate simple sentences. Rule 3.2 lists the only approved verb forms: infinitive, imperative, simple present, simple past, simple future, and past participle as an adjective.

## 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.)
>
> *Adapted from spec pair: Non-STE: "The operator has adjusted the linkage." (present perfect is not approved) | STE: "The operator adjusted the linkage." (simple past is approved)*

> **Non-STE:** The migration is to be run before you deploy the service.
>
> **STE:** Before you deploy the service, run the migration.
>
> *Adapted from spec pair: 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 cache can be cleared.
>
> **STE:** You can clear the cache.
>
> *Adapted from spec pair: Non-STE: "The volume control can be adjusted." | STE: "You can adjust the volume control."*

> **Non-STE:** The timeout must be set before the job starts.
>
> **STE:** Set the timeout before the job starts.
>
> *Adapted from spec pair: Non-STE: "The temperature must be adjusted." | STE: "Adjust the temperature."*

> **Non-STE:** The report will be generated by the scheduler.
>
> **STE:** The scheduler will generate the report.
>
> *Adapted from spec pair: Non-STE: "The sleeve will be adjusted by the robot." | STE: "The robot will adjust the sleeve."*

> **Non-STE:** The connection pool has been created before the first query is sent.
>
> **STE:** The connection pool was created. Then the first query is sent.
>
> *Adapted from spec principle: "have/has + been + past participle" (present perfect passive) is not approved. Use the simple past and separate the clauses.*

> **Non-STE:** The configuration file must be validated before the server starts.
>
> **STE:** Validate the configuration file before the server starts.
>
> *Adapted from spec pair: Non-STE: "The temperature must be adjusted." | STE: "Adjust the temperature." (imperative for procedural instruction)*

> **Non-STE:** The user credentials are to be encrypted at rest and the key is rotated monthly.
>
> **STE:** Encrypt the user credentials at rest. Rotate the key every month.
>
> *Adapted from spec pair: 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 log entries can be exported to a CSV file by the admin.
>
> **STE:** The admin can export the log entries to a CSV file.
>
> *Adapted from spec pair: Non-STE: "The volume control can be adjusted." | STE: "You can adjust the volume control." (name the agent, use active voice)*

> **Non-STE:** An error message will be shown by the validator if the input is empty.
>
> **STE:** The validator will show an error message if the input is empty.
>
> *Adapted from spec pair: Non-STE: "The sleeve will be adjusted by the robot." | STE: "The robot will adjust the sleeve."*

> **Non-STE:** The temporary files had been deleted by the cleanup task before the backup started.
>
> **STE:** The cleanup task deleted the temporary files. Then the backup started.
>
> *Adapted from spec principle: "had + been + past participle" (past perfect passive) is not approved. Use the simple past and sequence with "Then."*

> **See also:** Rule 3.2 — Use only these verb forms and tenses of verbs.
>
> **See also:** Rule 3.3 — Use the past participle form as an adjective.
>
> **See also:** Rule 3.5 — Use the "-ing" form of a verb only as a technical noun or as a modifier in a technical noun.
>
> **See also:** Rule 3.6 — Use the Active Voice.
