dns-record-analyzer
Audits and troubleshoots DNS records for domains including A, AAAA, CNAME, MX, TXT, SPF, DKIM, DMARC, CAA, and NS records. Use when someone needs to verify DNS configuration, debug DNS propagation issues, check email authentication records, or audit domain security. Trigger words: DNS records, dig, nslookup, SPF, DKIM, DMARC, MX records, DNS propagation, nameservers, CAA, domain configuration.
Best use case
dns-record-analyzer is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Audits and troubleshoots DNS records for domains including A, AAAA, CNAME, MX, TXT, SPF, DKIM, DMARC, CAA, and NS records. Use when someone needs to verify DNS configuration, debug DNS propagation issues, check email authentication records, or audit domain security. Trigger words: DNS records, dig, nslookup, SPF, DKIM, DMARC, MX records, DNS propagation, nameservers, CAA, domain configuration.
Teams using dns-record-analyzer should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/dns-record-analyzer/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How dns-record-analyzer Compares
| Feature / Agent | dns-record-analyzer | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Audits and troubleshoots DNS records for domains including A, AAAA, CNAME, MX, TXT, SPF, DKIM, DMARC, CAA, and NS records. Use when someone needs to verify DNS configuration, debug DNS propagation issues, check email authentication records, or audit domain security. Trigger words: DNS records, dig, nslookup, SPF, DKIM, DMARC, MX records, DNS propagation, nameservers, CAA, domain configuration.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# DNS Record Analyzer
## Overview
This skill queries and analyzes DNS records for domains, checking for correctness, security best practices, and common misconfigurations. It covers standard records (A, CNAME, MX) and email authentication records (SPF, DKIM, DMARC) with specific validation rules for each.
## Instructions
### Step 1: Query All Record Types
```bash
DOMAIN="example.com"
# Core records
dig +short A $DOMAIN
dig +short AAAA $DOMAIN
dig +short CNAME $DOMAIN
dig +short MX $DOMAIN
dig +short NS $DOMAIN
dig +short TXT $DOMAIN
# Email authentication
dig +short TXT $DOMAIN | grep "v=spf1"
dig +short TXT _dmarc.$DOMAIN
dig +short TXT default._domainkey.$DOMAIN
# Security
dig +short CAA $DOMAIN
dig +short SOA $DOMAIN
```
### Step 2: Validate SPF
Check these rules:
- Starts with `v=spf1`
- Ends with `-all` (hardfail) or `~all` (softfail) — recommend `-all`
- Total DNS lookups ≤ 10 (count `include:`, `a:`, `mx:`, `redirect=`, `exists:`)
- No duplicate mechanisms
- All referenced includes resolve (no NXDOMAIN)
- No `+all` (this allows anyone to send as your domain)
### Step 3: Validate DKIM
For each sending service, check the expected selector:
- Record exists and is a valid RSA public key
- Key is ≥ 1024 bits (recommend 2048)
- `t=y` (testing mode) should NOT be present in production
### Step 4: Validate DMARC
```
v=DMARC1; p=reject; rua=mailto:dmarc@example.com; ruf=mailto:forensic@example.com; pct=100
```
Check:
- `p=` is `quarantine` or `reject` (not `none` in production)
- `rua=` is present (aggregate reports)
- `pct=100` (applies to all emails, not a percentage)
- Subdomain policy `sp=` if subdomains send email
### Step 5: Check MX Records
- MX records exist and resolve to valid hostnames
- Priority values are reasonable (lower = higher priority)
- No MX pointing to IP addresses (must be hostnames)
- Hostnames have valid A/AAAA records
### Step 6: Produce Audit Report
Categorize findings as:
- ✅ Correct and secure
- ⚠ Works but suboptimal (with recommendation)
- ❌ Broken or insecure (with exact fix)
## Examples
### Example 1: Full Domain Audit
**User prompt:**
```
Audit all DNS records for myapp.io
```
**Agent output:**
```
DNS Audit — myapp.io
────────────────────
A Records:
✅ 104.21.45.12 (Cloudflare)
✅ 172.67.182.88 (Cloudflare)
AAAA Records:
✅ 2606:4700:3030::6815:2d0c
✅ 2606:4700:3037::ac43:b658
MX Records:
✅ 1 aspmx.l.google.com
✅ 5 alt1.aspmx.l.google.com
✅ 10 alt2.aspmx.l.google.com
NS Records:
✅ cody.ns.cloudflare.com
✅ krystal.ns.cloudflare.com
SPF:
v=spf1 include:_spf.google.com include:sendgrid.net ~all
✅ Google Workspace authorized
✅ SendGrid authorized
⚠ Using ~all (softfail) — recommend changing to -all
✅ Lookup count: 5 of 10
DKIM:
✅ google._domainkey → valid 2048-bit RSA
❌ s1._domainkey → NXDOMAIN (SendGrid DKIM not configured!)
Fix: Add CNAME s1._domainkey.myapp.io → s1.domainkey.u1234.wl.sendgrid.net
DMARC:
v=DMARC1; p=none; rua=mailto:admin@myapp.io
❌ p=none provides no protection
Fix: Change to p=quarantine (after fixing DKIM above)
CAA:
❌ No CAA records — any CA can issue certificates for your domain
Fix: Add CAA 0 issue "letsencrypt.org" (and any other CAs you use)
Summary: 2 critical fixes, 2 recommendations
```
### Example 2: SPF Lookup Count
**User prompt:**
```
Are we over the SPF lookup limit? We use Google, SendGrid, Mailchimp, Zendesk, and HubSpot.
```
**Agent output:**
```
SPF Lookup Analysis — example.com
Current record:
v=spf1 include:_spf.google.com include:sendgrid.net include:servers.mcsv.net
include:mail.zendesk.com include:spf.hubspot.com -all
Lookup breakdown:
include:_spf.google.com → 3 lookups (nested includes)
include:sendgrid.net → 1 lookup
include:servers.mcsv.net → 2 lookups (nested)
include:mail.zendesk.com → 2 lookups (nested)
include:spf.hubspot.com → 1 lookup
Top-level includes: 5 lookups
─────────────────────────────────────
Total: 14 lookups ❌ OVER LIMIT (max 10)
Impact: Receiving servers stop evaluating SPF after 10 lookups.
HubSpot and some Zendesk lookups are never checked → those emails fail SPF.
Fix options:
1. SPF flattening: Replace includes with direct IP ranges (needs maintenance)
2. Remove unused services from SPF
3. Use a subdomain for some services (e.g., mail.example.com for Zendesk)
```
## Guidelines
- **Always check recursively** — an SPF `include:` may itself include others; count ALL lookups
- **DKIM selectors vary by provider** — check provider documentation for the correct selector name
- **TTL matters for changes** — note the current TTL when recommending DNS changes; high TTL means slow propagation
- **Test from multiple resolvers** — DNS can vary by location; check from 8.8.8.8 and 1.1.1.1
- **CAA records are underused** — always recommend them to prevent unauthorized certificate issuance
- **Don't forget subdomains** — `www.example.com` and `mail.example.com` may have different records that need auditingRelated Skills
web-vitals-analyzer
Analyze and optimize Core Web Vitals (LCP, CLS, INP) and frontend performance. Use when a user asks to improve page speed, fix layout shifts, reduce loading times, analyze Lighthouse reports, optimize bundle size, or improve Google PageSpeed scores. Covers image optimization, code splitting, font loading, render-blocking resources, and JavaScript execution costs.
tech-debt-analyzer
Scans codebases for technical debt signals and prioritizes them by business impact. Finds TODO/FIXME/HACK comments, outdated dependencies, code duplication, and correlates with git history to identify high-churn debt hotspots. Use when someone asks about technical debt, code quality audit, refactoring priorities, or maintainability assessment. Trigger words: tech debt, code quality, refactoring, TODOs, maintainability, code health.
pdf-analyzer
Extract text, tables, metadata, and structured data from PDF files. Use when a user asks to read a PDF, parse a PDF, extract data from a PDF, summarize a PDF document, pull tables from a PDF, or convert PDF content to structured formats like JSON or CSV. Handles single and multi-page documents, scanned PDFs, and PDFs with complex table layouts.
log-analyzer
Analyze application logs, server logs, and error traces to identify root causes, patterns, and anomalies. Use when debugging production incidents, investigating error spikes, parsing crash reports, or correlating events across multiple log sources. Trigger words: logs, errors, stack trace, crash, exception, debug, incident, 500 errors, timeout, latency spike.
cloud-resource-analyzer
Finds orphaned, idle, and underutilized cloud resources across AWS, GCP, or Azure accounts. Use when someone needs to audit cloud spending, find unused EBS volumes, stale snapshots, unattached IPs, idle load balancers, or oversized RDS instances. Trigger words: cloud waste, orphaned resources, unused volumes, cloud audit, infrastructure cleanup, cloud bill analysis.
zustand
You are an expert in Zustand, the small, fast, and scalable state management library for React. You help developers manage global state without boilerplate using Zustand's hook-based stores, selectors for performance, middleware (persist, devtools, immer), computed values, and async actions — replacing Redux complexity with a simple, un-opinionated API in under 1KB.
zoho
Integrate and automate Zoho products. Use when a user asks to work with Zoho CRM, Zoho Books, Zoho Desk, Zoho Projects, Zoho Mail, or Zoho Creator, build custom integrations via Zoho APIs, automate workflows with Deluge scripting, sync data between Zoho apps and external systems, manage leads and deals, automate invoicing, build custom Zoho Creator apps, set up webhooks, or manage Zoho organization settings. Covers Zoho CRM, Books, Desk, Projects, Creator, and cross-product integrations.
zod
You are an expert in Zod, the TypeScript-first schema declaration and validation library. You help developers define schemas that validate data at runtime AND infer TypeScript types at compile time — eliminating the need to write types and validators separately. Used for API input validation, form validation, environment variables, config files, and any data boundary.
zipkin
Deploy and configure Zipkin for distributed tracing and request flow visualization. Use when a user needs to set up trace collection, instrument Java/Spring or other services with Zipkin, analyze service dependencies, or configure storage backends for trace data.
zig
Expert guidance for Zig, the systems programming language focused on performance, safety, and readability. Helps developers write high-performance code with compile-time evaluation, seamless C interop, no hidden control flow, and no garbage collector. Zig is used for game engines, operating systems, networking, and as a C/C++ replacement.
zed
Expert guidance for Zed, the high-performance code editor built in Rust with native collaboration, AI integration, and GPU-accelerated rendering. Helps developers configure Zed, create custom extensions, set up collaborative editing sessions, and integrate AI assistants for productive coding.
zeabur
Expert guidance for Zeabur, the cloud deployment platform that auto-detects frameworks, builds and deploys applications with zero configuration, and provides managed services like databases and message queues. Helps developers deploy full-stack applications with automatic scaling and one-click marketplace services.