pihole-csv-analyzer — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited pihole-csv-analyzer (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.
Analyze Pi-hole CSV exports to identify query patterns, noisy clients, allowlist candidates, blocklist candidates, and cleanup actions.
pihole-csv-analyzer.Analyze Pi-hole CSV exports and turn them into practical, reviewable cleanup actions.
This skill should handle:
If the format is ambiguous, inspect the header row and the first few rows before proceeding.
Use the CSV header to identify the likely export type.
| Export Type | Typical Columns | Typical Source |
|---|---|---|
| Query Log | time, type, domain, client, status, reply_type, reply_time, dnssec | Pi-hole web UI query log export |
| Top Domains | domain, count or hits | Dashboard top permitted or blocked domains |
| Top Clients | client, count or hits | Dashboard top clients |
| Blocklist or Adlist | address, enabled, comment, group, date_added | Adlist or domain export |
Pi-hole v6 exports can vary slightly. Normalize column names before applying logic.
When analyzing query-log exports, use Pi-hole's documented query-database status meanings.
Common blocked status values:
1 blocked by gravity4 blocked by regex denylist5 blocked by exact denylist6 blocked by upstream known blocking IP7 blocked by upstream null response8 blocked by upstream NXDOMAIN with RA bit unset9 blocked by gravity during deep CNAME inspection10 blocked by regex during deep CNAME inspection11 blocked by exact denylist during deep CNAME inspection15 blocked while the database is busy16 blocked special domains18 blocked by upstream EDE 15Common allowed status values:
2 allowed and forwarded3 allowed and replied from cache12 allowed retried query13 allowed retried but ignored query14 allowed already forwarded17 allowed and replied from stale cacheTreat unknown or new status values carefully and flag them instead of guessing.
For query-log exports, compute:
For top domains or top clients exports, normalize the columns and rank by count.
For blocklist or adlist exports, summarize enabled versus disabled state and obvious cleanup opportunities.
#### Blocklist candidates
Flag allowed domains that look suspicious based on signals such as:
.tk, .cf, .gq, .mlAvoid recommending major infrastructure or obviously essential domains without a strong reason. Be conservative.
#### Allowlist candidates
Flag blocked domains that may be legitimate when they:
Not every finding deserves equal attention. Rank what gets surfaced first by leverage:
Group findings by client so problem traffic traces to a device, not just a domain:
Separate every recommendation into one of four explicit paths so nothing reads as a vague suggestion:
Always provide an in-chat summary with:
Also produce reviewable candidate outputs named:
blocklist_candidates.txtallowlist_candidates.txtIf the environment supports file output, create those files. Otherwise, present their contents inline in clearly separated sections.
Use Pi-hole's documented status values as the source of truth. For example, a basic numeric mapping can start like this:
BLOCKED_STATUSES = {1, 4, 5, 6, 7, 8, 9, 10, 11, 15, 16, 18}
ALLOWED_STATUSES = {2, 3, 12, 13, 14, 17}When string-style status values appear instead of integers, use cautious text matching and keep uncertainty visible.
If the user is not sure how to use this skill, asks what it needs, or asks for examples:
Minimum useful input:
Example prompts:
Use pihole-csv-analyzer to review this Pi-hole export and tell me what cleanup actions make sense.Analyze this Pi-hole CSV and surface the top noisy domains, trends, and practical next steps.Show me an example prompt for using this skill with a pasted CSV summary.~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.