Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Answer 'is this site down or is it just me' properly — curl status/timing diagnostics, DNS cross-check, and TLS certificate reads, assembled into a where-it's-broken diagnosis. Use when asked is this website down, why can't I reach this site, check if my site is up, or is the SSL certificate expired. Produces the layered diagnosis (DNS → TLS → HTTP → content), response timing, cert expiry, and the rerunnable commands.
.claude/skills/mohitagw15856-site-check/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 61% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 66% | 0% |
| case-13 | ✗→✓ | ▲ Improved | 29% | 0% |
| case-21 | ✗→✓ | ▲ Improved | 145% | 0% |
| case-22 | ✗→✓ | ▲ Improved | 70% | 0% |
"Is it down or is it me?" is a diagnosis, not a yes/no — a site can fail at DNS, at TLS, at HTTP, or only from your network, and each failure names a different fix. This skill runs the layers in order with plain curl, reads the evidence (status codes, cert dates, resolver agreement), and answers with where it's broken, which is the answer that was actually needed.
Ask for these if not provided:
example.com up and example.com/app down is a real and common state)curl -sI -m 10 -o /dev/null -w "%{http_code} %{time_total}s %{remote_ip}\n" "https://example.com" — status, total time, and which IP answered in one line. 200/301 = up · 4xx = up but refusing this request · 5xx = up but broken behind the server · 000 = never connected → walk down the stack.curl -s "https://dns.google/resolve?name=example.com&type=A" — NXDOMAIN vs. records-exist separates "domain problem" from "server problem"; two public resolvers agreeing ≈ not a DNS issue (the dns-lookup skill has the full treatment).curl -svo /dev/null "https://example.com" 2>&1 | grep -E "expire|subject|issuer" — expired cert, wrong-host cert, or incomplete chain each read differently; quote the expiry date and say how long ago/until.curl from another network if possible, flush DNS, try the resolved IP) rather than declaring the site dead from one vantage point.-w breakdowns (time_namelookup, time_connect, time_starttransfer) locate slowness — slow DNS vs. slow TLS vs. slow server are different tickets; a 12-second time_starttransfer with fast connect is the backend's confession.The verdict: "Down at the HTTP layer — DNS and TLS fine, server returning 503; not your network." ]
| Layer | Result | Read | |---|---|---| | DNS | records / NXDOMAIN] | … | | TLS | handshake ok · cert expires date]] | … | | HTTP | code, time, IP] | … |
Cert questions: expiry with the countdown · Slowness: the timing breakdown and which phase owns it]
Rerun: [the curl(s)] One vantage point — "up for me" ≠ up for everyone; for your own production site, real monitoring beats spot checks.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 25,227 | 26,385 | +5% | 1 | 1 | 0% | 3,114 | 5,013 | +61% | 0 | 0 | — |
case-02 | fail→fail | 23,476 | 21,139 | -10% | 1 | 1 | 0% | 3,131 | 3,472 | +11% | 0 | 0 | — |
case-03 | fail→fail | 14,446 | 16,371 | +13% | 1 | 1 | 0% | 2,410 | 3,777 | +57% | 0 | 0 | — |
case-04 | pass→pass | 15,694 | 18,750 | +19% | 1 | 1 | 0% | 2,730 | 3,234 | +18% | 0 | 0 | — |
case-05 | fail→fail | 19,354 | 14,984 | -23% | 1 | 1 | 0% | 2,225 | 3,740 | +68% | 0 | 0 | — |
case-06 | pass→pass | 11,356 | 18,274 | +61% | 1 | 1 | 0% | 1,772 | 3,342 | +89% | 0 | 0 | — |
case-07 | fail→pass | 13,955 | 13,938 | -0% | 1 | 1 | 0% | 1,533 | 2,542 | +66% | 0 | 0 | — |
case-08 | pass→pass | 18,433 | 15,878 | -14% | 1 | 1 | 0% | 1,970 | 2,802 | +42% | 0 | 0 | — |
case-09 | fail→fail | 13,540 | 17,409 | +29% | 1 | 1 | 0% | 1,150 | 2,840 | +147% | 0 | 0 | — |
case-10 | pass→pass | 13,629 | 16,823 | +23% | 1 | 1 | 0% | 1,218 | 3,014 | +147% | 0 | 0 | — |
case-11 | pass→pass | 14,561 | 17,264 | +19% | 1 | 1 | 0% | 1,656 | 3,060 | +85% | 0 | 0 | — |
case-12 | pass→pass | 16,726 | 14,389 | -14% | 1 | 1 | 0% | 2,026 | 2,421 | +19% | 0 | 0 | — |
case-13 | fail→pass | 16,259 | 17,804 | +10% | 1 | 1 | 0% | 2,686 | 3,463 | +29% | 0 | 0 | — |
case-14 | fail→fail | 8,593 | 8,250 | -4% | 1 | 1 | 0% | 1,494 | 2,637 | +77% | 0 | 0 | — |
case-15 | pass→pass | 18,337 | 18,603 | +1% | 1 | 1 | 0% | 2,250 | 3,205 | +42% | 0 | 0 | — |
case-16 | pass→pass | 23,249 | 13,423 | -42% | 1 | 1 | 0% | 2,272 | 2,365 | +4% | 0 | 0 | — |
case-17 | pass→pass | 9,382 | 11,309 | +21% | 1 | 1 | 0% | 1,332 | 2,192 | +65% | 0 | 0 | — |
case-18 | pass→pass | 14,670 | 17,397 | +19% | 1 | 1 | 0% | 1,759 | 2,844 | +62% | 0 | 0 | — |
case-19 | pass→pass | 13,739 | 16,180 | +18% | 1 | 1 | 0% | 2,063 | 3,197 | +55% | 0 | 0 | — |
case-20 | pass→pass | 13,178 | 11,941 | -9% | 1 | 1 | 0% | 1,140 | 1,867 | +64% | 0 | 0 | — |
case-21 | fail→pass | 9,177 | 7,454 | -19% | 1 | 1 | 0% | 566 | 1,389 | +145% | 0 | 0 | — |
case-22 | fail→pass | 11,995 | 12,275 | +2% | 1 | 1 | 0% | 1,287 | 2,192 | +70% | 0 | 0 | — |
case-23 | pass→pass | 15,912 | 13,925 | -12% | 1 | 1 | 0% | 1,647 | 2,209 | +34% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 23 cases were attempted. The headline lift of +22 percentage points is the difference between those two pass rates over the 23 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.