# Install Controls

This page covers intent enforcement settings that apply when inventory is installed into an assembly.

## Install Intent Match

Setting key: `requireInstallIntentMatch`

### What it does

Install Intent Match enforces that inventory meets the intent requirement of the parent assembly when it is installed to the aBOM. If the installed inventory's intent does not meet the parent's intent, the installation is blocked with an error.

### When it runs

On aBOM install - when inventory is installed into an assembly via the as-built BOM.

### Configuration options

| Field     | Possible Values         | Description                                 |
| --------- | ----------------------- | ------------------------------------------- |
| `enabled` | `true` / `false`        | Turns the check on or off. Default: `false` |
| `mode`    | `hierarchical`, `exact` | How the intent comparison is evaluated.     |

### Mode values

| Mode           | Behavior                                                                                                                                                             |
| -------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `hierarchical` | The inventory's intent must be **equal or higher rank** than the assembly's intent. Lower-grade inventory is blocked from installation into higher-grade assemblies. |
| `exact`        | The inventory's intent must **exactly match** the assembly's intent. Only exact-match intent is accepted.                                                            |

### Example scenario

A technician attempts to install a Development-grade sensor into a Flight-grade assembly during a run. With `requireInstallIntentMatch` enabled and `mode: hierarchical`, the installation is blocked and the technician sees an error. They must either source a Flight-grade sensor or reclassify the inventory before proceeding.

***

## Downgrade on Install

Setting key: `downgradeOnInstall`

### What it does

Downgrade on Install automatically lowers the intent of inventory to match the parent assembly's intent when the inventory is installed. For Made on Assembly (MOA) installs, the child's intent is synced to the parent assembly's intent.

This setting reflects the principle that an installed component takes on the quality level of what it becomes part of. A Flight-grade component installed into a Development assembly effectively becomes a Development component, because the resulting assembly is Development.

### When it runs

At the moment of aBOM installation - when inventory is installed into an assembly.

The downgrade happens only when the assembly's intent is lower than the inventory's current intent. If the assembly's intent is equal or higher, no change is made. It is recommended to enable this setting in combination with Install Intent Match above.

### Configuration options

| Field     | Possible Values  | Description                                 |
| --------- | ---------------- | ------------------------------------------- |
| `enabled` | `true` / `false` | Turns the check on or off. Default: `false` |

### Example scenario

A Flight-grade actuator is in stock. A technician installs it into a Development assembly. With `downgradeOnInstall` enabled, the actuator's intent is automatically changed to Development at the moment of installation — because it is now part of a Development assembly and can no longer be treated as Flight-grade inventory.

If the technician instead installed the same actuator into a Flight-grade assembly, no downgrade would occur.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://manual-v2.firstresonance.io/quality/intent-management/install-controls.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
