Claude Code Plugins

Community-maintained marketplace

Feedback
11
0

Analyzes website safety and trustworthiness by checking domain registration, WHOIS data, DNS records, and Trustpilot reviews. Returns a comprehensive trust score and security report. Use when checking if a website is safe, legitimate, trustworthy, or when analyzing domain reputation.

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

name is-website-safe
description Analyzes website safety and trustworthiness by checking domain registration, WHOIS data, DNS records, and Trustpilot reviews. Returns a comprehensive trust score and security report. Use when checking if a website is safe, legitimate, trustworthy, or when analyzing domain reputation.
allowed-tools Bash(whois:*), Bash(dig:*), Bash(curl:*), WebSearch, WebFetch

Website Safety Analyzer

This skill performs a comprehensive safety and trustworthiness analysis of any website by examining domain registration details, DNS configuration, online reviews, and security indicators.

When to Use

digraph when_to_use {
    "User asks about website safety?" [shape=diamond];
    "User provides URL or domain?" [shape=diamond];
    "is-website-safe" [shape=box style=filled fillcolor=lightgreen];
    "Ask for URL/domain" [shape=box];
    "Use other skill" [shape=box];

    "User asks about website safety?" -> "User provides URL or domain?" [label="yes\n(safe, trustworthy,\nlegitimate, scam)"];
    "User asks about website safety?" -> "Use other skill" [label="no"];
    "User provides URL or domain?" -> "is-website-safe" [label="yes"];
    "User provides URL or domain?" -> "Ask for URL/domain" [label="no"];
}

Use this skill when:

  • User asks "Is [website] safe?"
  • User wants to check if a site is trustworthy/legitimate
  • User asks about domain reputation or age
  • User wants to avoid scams or phishing sites

Process Flow

digraph process_flow {
    rankdir=TB;

    subgraph cluster_extraction {
        label="Step 1: Domain Extraction";
        style=filled;
        fillcolor=lightblue;
        "Extract domain from URL" [shape=box];
        "Normalize domain" [shape=box];
    }

    subgraph cluster_parallel {
        label="Step 2: Parallel Data Collection";
        style=filled;
        fillcolor=lightgreen;
        "Run WHOIS lookup" [shape=box];
        "Run DNS queries (A, MX, NS)" [shape=box];
        "Search Trustpilot reviews" [shape=box];
    }

    subgraph cluster_scoring {
        label="Step 3: Trust Score Calculation";
        style=filled;
        fillcolor=lightyellow;
        "Calculate domain age score (25pts)" [shape=box];
        "Calculate WHOIS info score (20pts)" [shape=box];
        "Calculate DNS config score (15pts)" [shape=box];
        "Calculate Trustpilot score (30pts)" [shape=box];
        "Calculate additional indicators (10pts)" [shape=box];
        "Sum total score (0-100%)" [shape=box];
    }

    "Start: Receive URL/domain" [shape=oval style=filled fillcolor=lightgray];
    "Lookup failed?" [shape=diamond];
    "Note missing data" [shape=box];
    "Adjust scoring proportionally" [shape=box];
    "Format report" [shape=box];
    "End: Return safety report" [shape=oval style=filled fillcolor=lightgray];

    "Start: Receive URL/domain" -> "Extract domain from URL";
    "Extract domain from URL" -> "Normalize domain";
    "Normalize domain" -> "Run WHOIS lookup";
    "Normalize domain" -> "Run DNS queries (A, MX, NS)";
    "Normalize domain" -> "Search Trustpilot reviews";
    
    "Run WHOIS lookup" -> "Lookup failed?";
    "Run DNS queries (A, MX, NS)" -> "Lookup failed?";
    "Search Trustpilot reviews" -> "Lookup failed?";
    
    "Lookup failed?" -> "Note missing data" [label="yes"];
    "Note missing data" -> "Adjust scoring proportionally";
    "Lookup failed?" -> "Calculate domain age score (25pts)" [label="no"];
    "Adjust scoring proportionally" -> "Calculate domain age score (25pts)";
    
    "Calculate domain age score (25pts)" -> "Calculate WHOIS info score (20pts)";
    "Calculate WHOIS info score (20pts)" -> "Calculate DNS config score (15pts)";
    "Calculate DNS config score (15pts)" -> "Calculate Trustpilot score (30pts)";
    "Calculate Trustpilot score (30pts)" -> "Calculate additional indicators (10pts)";
    "Calculate additional indicators (10pts)" -> "Sum total score (0-100%)";
    "Sum total score (0-100%)" -> "Format report";
    "Format report" -> "End: Return safety report";
}

Instructions

When the user provides a website URL, follow these steps:

1. Extract and Normalize the Domain

Extract the domain from the provided URL:

  • Remove protocol (http://, https://)
  • Remove www. prefix if present
  • Remove path, query parameters, and fragments
  • Handle both bare domains (example.com) and full URLs (https://www.example.com/path)

2. Gather Domain Intelligence

Collect data using these tools in parallel:

WHOIS Lookup:

whois [domain]

Extract: registrar, creation date, expiration date, registrant info (if available), nameservers

DNS Information:

dig [domain] ANY +noall +answer
dig [domain] A +short
dig [domain] MX +short

Extract: A records (IP addresses), MX records (email servers), nameservers

Trustpilot Reviews: Search for "[domain] trustpilot" using WebSearch and analyze:

  • Overall rating (out of 5 stars)
  • Number of reviews
  • Recent review sentiment
  • Common complaints or praise

3. Calculate Trust Score

Calculate a trust score (0-100%) based on these weighted factors:

Domain Age (25 points):

  • 10+ years: 25 points
  • 5-10 years: 20 points
  • 2-5 years: 15 points
  • 1-2 years: 10 points
  • 6-12 months: 5 points
  • Less than 6 months: 0 points

WHOIS Information (20 points):

  • Complete registrant info visible: 20 points
  • Partial info (privacy protection): 10 points
  • No info or suspicious: 0 points
  • Deduct 10 if expiring within 30 days

DNS Configuration (15 points):

  • Valid A records: 5 points
  • MX records present: 5 points
  • Multiple nameservers: 5 points

Trustpilot Rating (30 points):

  • 4.5-5.0 stars: 30 points
  • 4.0-4.4 stars: 25 points
  • 3.5-3.9 stars: 20 points
  • 3.0-3.4 stars: 15 points
  • 2.5-2.9 stars: 10 points
  • 2.0-2.4 stars: 5 points
  • Below 2.0 stars: 0 points
  • No reviews found: 15 points (neutral)

Additional Indicators (10 points):

  • HTTPS available: 5 points
  • Known brand/established site: 5 points

4. Format the Results

Present the results in a clear, structured format:

# Website Safety Report: [domain]

## Trust Score: [X]% - [RATING]

[RATING] categories:
- 80-100%: TRUSTED ✓
- 60-79%: LIKELY SAFE (Proceed with Caution)
- 40-59%: MODERATE RISK (Exercise Caution)
- 20-39%: HIGH RISK (Not Recommended)
- 0-19%: DANGEROUS (Avoid)

## Detailed Analysis

| Category | Details |
|----------|---------|
| Domain Age | [X years/months] - Registered on [date] |
| Expiration | [date] ([X days remaining]) |
| Registrar | [registrar name] |
| Registrant | [info or "Hidden (Privacy Protected)"] |
| IP Address | [primary IP] |
| Location | [country/region if detectable] |
| Email Server | [MX records or "None found"] |
| Nameservers | [list of NS] |
| Trustpilot Rating | [X.X stars] ([Y reviews]) or "No reviews found" |
| HTTPS Support | [Yes/No] |

## Security Indicators

[List positive and negative indicators found]

**Positive:**
- [e.g., "Domain registered for 8 years"]
- [e.g., "Strong Trustpilot rating (4.7/5)"]

**Concerns:**
- [e.g., "Registrant information hidden"]
- [e.g., "Domain expiring soon"]

## Recommendation

[Provide a clear recommendation based on the trust score and analysis]

5. Error Handling

If any lookup fails:

  • Note which information is unavailable
  • Continue with remaining checks
  • Adjust trust score calculation accordingly (use proportional scoring)
  • Mention data limitations in the report

6. Important Notes

  • Some domains use privacy protection services (normal for personal sites)
  • New domains aren't necessarily unsafe (lack of history ≠ malicious)
  • Trustpilot absence doesn't mean untrustworthy (many legitimate sites have no reviews)
  • Consider context: small business sites may have less data than major brands
  • Always mention if the analysis is limited by missing data

Example Usage

User: "Is amazon.com safe?" User: "Check if suspicious-deals-2024.xyz is trustworthy" User: "Analyze the safety of https://www.example-shop.com/products"

Tips

  • When Trustpilot data is found via WebSearch, use WebFetch to extract the specific rating and review count
  • For well-known domains (google.com, microsoft.com, etc.), you can add bonus points
  • If WHOIS returns rate limiting errors, note this and proceed with other checks
  • DNS lookups are usually fast - run them in parallel with WHOIS
  • Consider domain extension (.com, .org vs. .xyz, .tk) as a minor factor