# Self-healing log

Verified fixes for runtime failures. Each entry documents a failure, its root cause, the applied fix, and the verification proof.

**Pattern-Key discipline:** before filing a new HEAL, search this file for an existing Pattern-Key. If found, increment `Recurrence-Count` and update `Last-Seen` — do not duplicate.

**Lifecycle:** verified heals at Recurrence-Count ≥ 3 across distinct tasks get a `Handoff` block for promotion to project memory (`CLAUDE.md`, `AGENTS.md`, or a skill).

---

## [HEAL-YYYYMMDD-XXX] short_kebab_name

**Logged**: ISO-8601 timestamp
**Status**: pending-verify
**Trigger**: tool-failure | missing-capability | env-issue | external-change | <free-form>
**Area**: free-form tag (e.g. `build`, `tests`, `ci`, `auth`, `data-pipeline`)
**Priority**: low | medium | high | critical

### Failure
Concrete error: command, error message, exit code, blocked action.

### Diagnosis
Root cause as understood after investigation. What was verified during diagnosis.

### Fix
Patch applied. Verbatim commands, code snippets, or pointers to `.learnings/heals/<HEAL-ID>/`.

### Verification
What was run after the fix and what it returned. Exit code, output snippet, test pass count. **Proof.**

### Metadata
- Related Files: path/to/file.ext
- See Also: HEAL-... | LRN-... | ERR-...
- Pattern-Key: lower.snake.case (e.g. `env.lockfile_mismatch`)
- Recurrence-Count: 1
- First-Seen: YYYY-MM-DD
- Last-Seen: YYYY-MM-DD
