integrity-check — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited integrity-check (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.
scripts/integrity-check.ts samples random harvested campgrounds and random dates, then compares our cached availability (getCachedAvailability) against a fresh live fetch (rawAvailability) from the upstream site. It counts sites with the whole stay available for each, and flags only divergences beyond a churn tolerance (±max(2, 10%)) — small deltas are expected cancellation churn since the last harvest.
Must run where upstream is reachable — the deploy host / container (Aspira's Queue-it blocks datacenter IPs). Inside the running container:
bun run scripts/integrity-check.ts # 50 parks, 1 date each
bun run scripts/integrity-check.ts --parks 30 --dates 2
bun run scripts/integrity-check.ts --seed 7 # reproducible sampleExit code 0 = all within tolerance; 1 = divergences to review (also printed per line).
✗ cached N vs live M (Δ, age) — a real divergence. A large Δ on a freshly-harvestedpark (low age) suggests a bug (parser, window, campground split); a small Δ on an old park is just churn.
? no cache for window — date fell outside the park's harvested window.! <error> — the live fetch failed (e.g., Queue-it block, upstream down).Aspira parks paginate and are slow; a 50-park run takes a few minutes. Lower --parks for a quick check, raise --dates for deeper coverage per park.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.