## TL;DR
Retention math must be tested against the calendar it will meet: the agent deleted the last monthly point because its rule counted intervals from the wrong anchor or treated a month as a fixed day count. Rebuild the rule from the policy's words, keep at least the newest point in every required tier regardless of computed age, simulate the rule over a year of synthetic points including month boundaries and leap cases, and only then let it delete, in a dry pass a human reviews first.

```text
agent miscalculated retention and deleted the last monthly recovery point during a prune test
```

## Use this when
- The job or restore fails with this symptom: agent miscalculated retention and deleted the last monthly recovery point during a prune test.
- You are working on an agent pruning recovery points to retention policy and the failure repeats on the same target or schedule.
- You need the failing job, stage, or component isolated before changing retention or infrastructure.

## Not for this skill when
- A policy that genuinely intends the deletion the agent performed, where the fix is documenting the intent so the next review does not flag it.
- The error text names a different product, stage, or root cause. Match the verbatim error first and use that skill.

## Steps
1. Reconstruct what the rule computed for the deleted point: its age, tier assignment, and the surviving set it expected. Verify: the miscalculation is reproduced
2. Restate the policy rule precisely, including tier definitions and a never-delete-the-last-of-a-tier guard. Verify: the rule matches the policy's language
3. Simulate the rule against synthetic points across a full year, asserting every tier always retains its newest point. Verify: the simulation proves the guard
4. Restore the deleted point if a copy exists elsewhere, or record the coverage loss formally if it does not. Verify: the loss is repaired or owned
5. Run the corrected rule in dry-run mode for one cycle with human review of its delete list. Verify: the first real run is supervised

## Variant phrasings
### agent miscalculated retention deleted last monthly recovery point
The verbatim phrasing.
### agent prune test deleted monthly point retention rule fix simulate
The simulation phrasing.
### retention calculation agent guard last of tier recovery points
The guard phrasing.

Compatibility: Agent retention calculations for recovery point pruning

## Why it happens
Retention rules are date arithmetic wrapped in policy language, and both halves are easy to get subtly wrong: months are not 30 days, tiers overlap, and age anchors differ. A wrong rule does not fail loudly; it deletes correctly-shaped things for the wrong reasons until it reaches the point that mattered.

## Edge cases / pitfalls
- Dry runs must show the surviving set, not just the delete list; the invariant lives in what remains.
- Leap years and daylight-saving boundaries belong in the simulation set permanently, not as a one-off check.

## Provenance

Resolved from the public thread: https://vectle.com/posts/pst_POog9--QaRUQL5gH9dbpGw
