skills/cloudflare-workers-url-shortner/SKILL.md
Build and operate a URL shortner on Cloudflare Workers with Upstash Redis and D1. Use when the user asks to create shortlinks, redirects, click tracking, analytics, request metadata capture (country/city/ip/user-agent), non-blocking tracking, or resilient alerting (for example Telegram) on failures.
npx skillsauth add ferminrp/agent-skills cloudflare-workers-url-shortnerInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Guia practica para disenar un URL shortner rapido, resiliente y observable usando Cloudflare Workers + Upstash Redis + D1.
Usar cuando el usuario pida:
/links/:id, /r/:slug, etc.)request.cfGET /links/:id).waitUntil() para tracking async.INCR).SET NX EX).shortlink:target:<id>: URL destinoshortlink:clicks:<id>: contador totalshortlink:last-clicked-at:<id>: ISO timestampshortlink:alert-lock:d1-persist: lock para throttle de alertasMantener eventos por click (append-only) con:
promo_id/link_idclicked_at, clicked_at_unix_msdestination_url, short_path, request_methodip_raw, ip_hash_sha256cf_ray, cf_connecting_ipv6user_agent, referer, accept_languagedevice_type, browser_family, os_familyrequest.cf):
country, city, region, region_code, continenttimezone, postal_code, latitude, longitude, metro_codecolo, asn, as_organization, client_tcp_rtthttp_protocol, tls_version, tls_cipher, request_prioritycf_jsonheaders_json (allowlist, no cookies/tokens)request.cfcountry, city, region, regionCode, continent, timezone, postalCode, latitude, longitude, metroCode, isEUCountrycolo, asn, asOrganization, clientTcpRtthttpProtocol, tlsVersion, tlsCipher, requestPrioritybotManagement (si disponible en plan/cuenta)cf-connecting-ip, cf-connecting-ipv6, cf-ipcountry, cf-rayuser-agent, referer, accept-language, sec-ch-ua, sec-ch-ua-mobile, sec-ch-ua-platform, accept, accept-encodingip_hash_sha256 (opcionalmente con salt)device_type (mobile/desktop/tablet)browser_family (chrome/safari/firefox/edge/opera/other)os_family (ios/android/windows/macos/linux/other)id/slug).404.waitUntil(registerClickNonFatal(...))302/307 de inmediato.registerClickNonFatal:
Promise.allSettled para:
INCR + last-clicked-at)SET key 1 NX EX 900)OK)redirect.Promise.allSettled en tareas de background.authorization, cookie u otros secretos.Shortlink D1 Persist, Shortlink Redis Tracking).link_id, path y modo degradado en alertas.Cubrir al menos:
302 aunque falle D1.302 aunque falle Redis tracking.waitUntil.country, city, cf_ray, ip_hash).cloudflaredurable-objectswaitUntildevelopment
Audit and improve user-provided writing for clarity, concision, and impact. Use when the user asks to audit, review, improve, edit, or rewrite text. Apply seven checks (sentence length, clutter, unsupported modifiers, weasel words, jargon/acronyms, "so what", and flow), then return severity-ranked findings and a full rewrite suggestion.
development
Consulta promociones de viajes desde Argentina usando Anduin Promos API. Usar cuando el usuario pida promos de viaje en Argentina, promociones de vuelos, hoteles o paquetes, mejores ofertas del dia, promos a brasil/usa/europa, ranking por score o ultimas promos de promociones-aereas.
development
Consulta riesgo pais de Argentina con serie historica desde Anduin API. Usar cuando el usuario pida "riesgo pais argentina", "ultimo riesgo pais", "serie historica de riesgo pais", "riesgo pais por fecha o periodo", o "evolucion del riesgo pais".
development
Technical guide to integrate mapcn in React + shadcn projects. Use when the user asks to integrate mapcn, add mapcn to a shadcn app, use mapcn MapControls/Markers/Routes/Clusters, implement controlled viewport state, use the useMap hook, or access MapLibre through mapcn.