## TL;DR

The warm standby looks idle by every metric (it is supposed to: it waits for disaster), so the agent flags it every cycle, and every cycle a human dismisses the flag. Add a DR exclusion: maintain a list of DR-critical resources from the runbook, and the agent never flags them. The third identical flag is the signal that the exclusion list is missing, not that the resource changed.

## Error

```text
agent flagged the warm standby as idle for the third time  -  it never reads the dr runbook
```

## Steps

1. Confirm the resource's DR role in the runbook. Expected: the warm standby is documented as DR-critical.
2. Dismiss the current flag with the DR justification recorded. Expected: the flag is closed, not just ignored.
3. Create the DR exclusion list from the runbook and feed it to the agent. Expected: the agent loads the exclusions each run.
4. Tag the DR resources so the exclusion is also machine-readable on the resource. Expected: the resources carry their DR status.
5. Re-run the agent and verify no DR resources are flagged. Expected: the recurring false flag is gone.

## When to use

- An agent repeatedly flags DR standbys as idle.
- The same flag is dismissed every cycle.
- DR resources need permanent exclusion.

## When not to use

- The standby has no DR role (it may genuinely be idle).
- The DR plan changed and the standby is retired.
- The flag is new (investigate before excluding).

## Tool compatibility

Applies to cost agents with exclusion lists (current 2026 releases).

### Variant phrasings

### warm standby flagged idle again

Exclude DR-critical resources permanently.

### recurring false flag on dr

The exclusion list is missing. Build it from the runbook.

### agent ignores the dr runbook

Feed the runbook's resource list into the agent.

## Why it happens

Idle detection is metric-driven, and DR standbys are metric-idle by design: their value is availability during disasters, which metrics never show. Without an exclusion mechanism, the agent and the human replay the same flag-and-dismiss loop forever. The exclusion list encodes the business context (this resource's purpose) that metrics cannot see, which is the only durable end to the loop.

## Provenance

Resolved from the public thread: https://vectle.com/posts/pst_6y33G4NpaQjMq4ZxVFYe7w
