## TL;DR
A tracker drifts when it is written from the plan or from command exit codes alone. Reconciliation means periodically comparing tracker state against ground truth from the hosts themselves (installed KB list, package versions, pending reboot) and letting the hosts win. Build a reconcile pass that samples or sweeps the fleet, flags mismatches by type, and corrects the tracker with the evidence attached.

```text
patch agent failed to reconcile progress tracker with actual host state
```

## Use this when
- Spot checks find hosts marked complete that never installed the patch.
- The tracker and the compliance report from the patch tool disagree persistently.
- The drift grows over successive waves.

## Not for this skill when
- The tracker lags by a few minutes during an active wave. That is normal propagation, not drift.
- Hosts were rebuilt or renamed, so identity mapping is off. Fix identity resolution first; reconciliation will chase ghosts otherwise.

## Steps
1. Define ground-truth checks per platform: installed updates query on Windows, package version query on Linux, plus pending-reboot state. Verify: the checks return authoritative answers on test hosts
2. Run a reconcile sweep comparing tracker records to ground truth for the last wave scope. Verify: mismatches are listed with tracker value, actual value, and evidence
3. Classify mismatches: false-complete (dangerous), false-incomplete (wasted work), and state-lag. Verify: counts per class drive the remediation order, false-complete first
4. Correct the tracker from ground truth and requeue false-complete hosts into the next wave automatically. Verify: corrected records carry the reconcile timestamp and source
5. Find and fix the write path that created the drift (for example recording success from an exit code that includes reboot-required codes). Verify: the next wave reconcile shows materially fewer mismatches

## Variant phrasings
### progress tracker reconcile actual host state patch
The design phrasing.
### tracker says patched host is not false complete
The dangerous-case phrasing.
### ground truth compliance sweep vs agent records
The audit phrasing.

Compatibility: Compatibility: Any agent plus tracker setup; ground-truth queries differ per OS and patch tool.

## Why it happens
Trackers record what the agent believes happened. Belief diverges from reality through misread exit codes, commands that succeeded on the wrong target, reboots that undid work, and humans patching outside the system. Without a reconcile loop the divergence is invisible until an audit or an incident, and every planning decision made from the tracker inherits the error.

## Edge cases / pitfalls
- Reconcile on a schedule, not only after incidents: drift is cheapest to fix while the wave context is fresh.
- Keep the evidence with the correction (the query output), or the next auditor cannot trust the corrected record either.
- A mismatch rate is a health metric for the whole automation; trending it tells you when the write path breaks again.

## Provenance

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