radar-source-heallisted
Install: claude install-skill Neetx/ai-research-radar
# Source self-healing
Logging "degraded" run after run is a failure of the radar, not of the source.
If you logged the same breakage last run (check the recent tail of
`logs/source_rotation.md` and SOURCES.md notes), **fix it this run** — don't just re-log it.
## The heal worklist comes from the log (don't guess)
Coverage-honesty means every sweep logs each source as `opened` or
`degraded: <reason>` in `logs/source_rotation.md`. So the heal worklist is a
precise, queryable set — you do not guess what to fix:
- `grep 'degraded:' logs/source_rotation.md | tail` → the candidates. A source
marked `degraded` in 2+ recent runs (or obviously degraded NOW — empty feed,
404, JSON/parse error, a feed whose newest item is months old) is OWED a heal
this run. One transient blip → log it, retry next run; don't heal on a single
failure.
- A source that is in a SOURCES.md "swept every run" list but is MISSING from the
log entirely (neither opened nor degraded — a coverage lie) is also a heal
target: it is usually being skipped because it has no recorded access method and
falls out of the list-iteration (this is the alphamatch failure class). Find a
working method and record it.
The fix is written back into SOURCES.md (below), so the NEXT list-iteration
consumes it automatically — that is what closes the loop: iterate → degraded /
missing → heal → SOURCES.md method → next iteration succeeds.
## Diagnose the failure class, then repair
**Class A — broken / moved / stale