proxy-rotator — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited proxy-rotator (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Use this skill when a scraper must spread requests across several proxies and stop hammering ones that have gone dead. The rotator hands out the next healthy proxy, counts failures, and benches a proxy for a cooldown window after it fails too often - then gives it another chance. You bring the proxy list; nothing is committed.
User input:
I have 5 proxies. Round-robin them and skip any that start failing.Output:
import requests
from rotator import ProxyRotator
rot = ProxyRotator.from_env() # PROXY_POOL="http://h1:8080,socks5://h2:1080,..."
for url in urls:
p = rot.get() # next healthy proxy
try:
r = requests.get(url, proxies=p.as_dict(), timeout=15)
rot.report(p, ok=r.ok) # feed the result back so the pool self-heals
except Exception:
rot.report(p, ok=False) # too many fails -> benched for the cooldownreport(proxy, ok=...) after each request so failing proxies get benched automatically.max_fails and cooldown to the target; a short cooldown recovers flaky proxies, a long one drops bad ones.health_check before a big batch to bench dead proxies up front.Reference: assets/rotator.py.
Distilled from production use across the author's automation projects. v1.0.0. See also: [[playwright-login-session]], [[pipeline-orchestrator]], [[cron-dispatch]].
→ Build the full runnable bot with Trawlkit.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.