Communitygithub.com

Varnan-Tech/opendirectory

Auditoría brutalmente honesta de la experiencia del desarrollador (DX) para un repositorio de GitHub. Puntúa 10 dimensiones DX, escribe una crítica personalizable, un plan de acción priorizado y un README ideal.

¿Qué es opendirectory?

Este skill de agente de IA realiza una auditoría completa y automatizada de la experiencia del desarrollador (Developer Experience, DX) para cualquier repositorio de GitHub. Su objetivo es ayudar a mantenedores de OSS y fundadores de herramientas para desarrolladores a identificar puntos débiles antes de un lanzamiento público (como Show HN o Product Hunt). El skill analiza el repositorio en busca de 10 dimensiones clave (claridad del README, instalación, ejemplos, señales de comunidad, etc.) y asigna una puntuación numérica de 0 a 10 para cada una, generando una calificación final (A-F). A partir de esta puntuación, el agente produce cuatro archivos: un informe crítico (roast.md) en el tono solicitado (brutal, honesto o amable), un plan de acción priorizado por impacto y esfuerzo (action-plan.md), un modelo de README ideal (ideal-readme.md) y un archivo JSON con las puntuaciones detalladas (score.json). Está diseñado para ser implacable pero constructivo, citando hallazgos específicos y evitando comentarios genéricos o personales. Es compatible con Claude Code, Cursor y Codex, y se activa con frases como "audita mi README" o "revisa mi repositorio".

Compatible con✓Claude Code~Codex CLI~Cursor✓Gemini CLI
npx skills add https://github.com/Varnan-Tech/opendirectory/tree/main/skills/dx-roaster

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

dx-roaster

Crítica la experiencia del desarrollador de un repositorio de GitHub. Produce cuatro archivos: roast.md, action-plan.md, ideal-readme.md, score.json. Creado para mantenedores de OSS y fundadores de herramientas para desarrolladores que se preparan para Show HN, Product Hunt o cualquier lanzamiento donde los primeros cinco minutos importan.


Reglas críticas (leer antes de cada ejecución)

  1. Lee los tres archivos de referencia ANTES de puntuar. references/scoring-rubric.md, references/roast-voice-guide.md, references/readme-template.md. La rúbrica no es negociable: usa las 10 dimensiones exactas.

  2. Puntúa cada dimensión en la escala 0–10. Nunca omitas. Datos faltantes = puntuación 0, no "N/A".

  3. La crítica debe citar hallazgos específicos. Cita líneas textuales malas. Haz referencia a las rutas de los archivos. Cita números de línea cuando sea posible. Nunca escribas lugares comunes genéricos como "la documentación podría ser mejor".

  4. El tono importa. Por defecto honest. Cambia la voz según references/roast-voice-guide.md. El tono brutal es divertido pero nunca personal. El tono amable es alentador pero sigue siendo específico.

  5. El plan de acción está ordenado por impacto, no por severidad. Usa impacto × (1 / esfuerzo). Una solución de 5 minutos que suma 10 puntos está por encima de una solución de 2 horas que suma 12 puntos.

  6. Nunca inventes URLs. Al escribir ideal-readme.md, usa la sintaxis <placeholder> para los enlaces faltantes. La crítica le dirá al mantenedor que los complete.

  7. Nunca nombres a los mantenedores o contribuyentes. Critica el trabajo, no a las personas.

  8. Genera exactamente cuatro archivos en dx-roast/. No escribas en otras ubicaciones. No omitas archivos.


Paso 1: Entrada

Requerido:

  • repo — ruta local (por defecto .) O URL https://github.com/owner/repo

Opcional:

ParámetroPor defectoDescripción
tonehonestbrutal / honest / kind
output_dirdx-roast/Dónde escribir los 4 archivos de salida
compare_toningunoURL opcional de un segundo repositorio para comparación comparativa

Si repo es una URL: clónalo a un directorio temporal usando git clone <url> /tmp/dx-roast-<hash-corto>. Escanea desde allí. Elimina el directorio temporal después de la ejecución.

Si repo es . o una ruta local: escanea en el lugar, no modifiques nada.


Paso 2: Descubrimiento

Lee estos archivos (cada uno puede estar ausente; anota la ausencia):

  • README.md — contenido completo, estructura (encabezados), bloques de código, referencias a imágenes, URLs de insignias
  • CONTRIBUTING.md, CODE_OF_CONDUCT.md
  • .github/ISSUE_TEMPLATE/, .github/PULL_REQUEST_TEMPLATE.md, .github/CODEOWNERS
  • package.json (descripción, homepage, repository, license, scripts), pyproject.toml, Cargo.toml, go.mod
  • LICENSE (existencia + tipo)
  • Contenido de la carpeta docs/ (solo nombres de archivo + tamaños)
  • Carpeta examples/ o samples/ o cookbook/
  • .github/workflows/*.yml (solo nombres + verificación breve de presencia de CI)

Si repo es una URL, también obtén datos mediante gh:

github api repos/<owner>/<repo> --jq '{stars: .stargazers_count, forks: .forks_count, watchers: .subscribers_count, pushed_at, description, homepage, topics, default_branch}'
github api repos/<owner>/<repo>/commits --jq '.[0].commit.author.date' | head -1
github api repos/<owner>/<repo>/contributors --paginate --jq '[.[] | .login] | length'

Captura y continúa si alguna llamada de GitHub falla.


Paso 3: Puntuación de 10 dimensiones

Para cada una de las 10 dimensiones en references/scoring-rubric.md, genera {score: 0–10, evidence: [...]} donde evidence es una lista de 1 a 3 cadenas cortas que citen lo que encontraste.

Ejemplo:

"visual_proof": {
  "score": 4,
  "evidence": [
    "Se encontró 1 captura de pantalla en la línea 89 (debajo del pliegue)",
    "Sin demostración animada / gif",
    "Sin video"
  ]
}

Suma las puntuaciones → total (0–100) → calificación (A/B/C/D/F según la rúbrica).

Guarda en dx-roast/score.json con esta forma exacta:

{
  "repo": "<owner/repo o ruta local>",
  "scanned_at": "<marca de tiempo ISO 8601>",
  "dimensions": {
    "time_to_first_success": { "score": 7, "evidence": ["..."] },
    "what_is_this_clarity": { "score": 5, "evidence": ["..."] },
    "visual_proof": { "score": 4, "evidence": ["..."] },
    "install_simplicity": { "score": 9, "evidence": ["..."] },
    "runnable_quick_start": { "score": 8, "evidence": ["..."] },
    "documentation_depth": { "score": 6, "evidence": ["..."] },
    "examples": { "score": 5, "evidence": ["..."] },
    "community_signals": { "score": 3, "evidence": ["..."] },
    "trust_signals": { "score": 7, "evidence": ["..."] },
    "marketing_signals": { "score": 4, "evidence": ["..."] }
  },
  "total": 58,
  "grade": "D",
  "tone": "honest"
}

Paso 4: Escribe la crítica

Lee references/roast-voice-guide.md. Aplica el tono solicitado. Escribe de 250 a 500 palabras en dx-roast/roast.md.

Estructura requerida:

# DX Roast: <nombre del repo>

**Calificación: <letra> (<total>/100)** · Tono: <tone>

<Párrafo 1: el veredicto. Lo que funciona + la gran brecha.>

<Párrafo 2: cita 2 hallazgos específicos con referencias a archivos.>

<Párrafo 3: cita 2 hallazgos más, relacionalos con las puntuaciones de las dimensiones.>

<Párrafo 4 (opcional): un giro final o comparación con un repositorio conocido como bueno.>

<Párrafo de cierre: apunta a `action-plan.md` para el camino a seguir.>

Cada crítica debe hacer referencia a al menos 3 hallazgos específicos de los arrays de evidencia de score.json.


Paso 5: Generar plan de acción

Calcula prioridad = impacto / minutos_esfuerzo para cada posible solución. Toma las 5–10 mejores. Ordena descendente por prioridad.

Para cada solución, escribe en dx-roast/action-plan.md:

### N. <Solución en voz imperativa, una línea>

**Por qué:** <Justificación de una oración. Haz referencia a qué dimensión mejora.>

**Impacto:** +<X> puntos · **Esfuerzo:** <5min / 30min / 2h / medio-día>

**Cómo:**

1. <Paso concreto 1>
2. <Paso concreto 2>
3. <Paso concreto 3>

<Fragmento de código/markdown opcional que muestre el cambio exacto>

Abre action-plan.md con:

# Plan de acción — <nombre del repo>

Calificación actual: <letra> (<total>/100)
Mejores soluciones ordenadas por impacto × esfuerzo. Hazlas en orden.

---

Paso 6: Generar README ideal

Lee references/readme-template.md. Completa la plantilla según la sección "Reglas de llenado". Escribe en dx-roast/ideal-readme.md.

Usa marcadores de posición <homepage_url> etc. para valores faltantes. Límite de longitud: 100 líneas.


Paso 7: Resumen en terminal

Imprime este formato exacto al usuario:

DX Roast completo — Calificación: <letra> (<total>/100)

3 mejores soluciones (ordenadas por impacto):
  1. <solución 1>                                +<X> pts  · <esfuerzo>
  2. <solución 2>                                +<X> pts  · <esfuerzo>
  3. <solución 3>                                +<X> pts  · <esfuerzo>

Archivos:
  → dx-roast/roast.md          (veredicto compartible)
  → dx-roast/action-plan.md    (soluciones priorizadas)
  → dx-roast/ideal-readme.md   (estado objetivo)
  → dx-roast/score.json        (puntuaciones crudas)

Si se proporcionó compare_to, agrega una línea de comparación:

Referencia: <otro repo> puntúa <X>/100 (calificación <Y>) — diferencia de <delta> puntos.

Auto-QA (cada ejecución, antes de imprimir el resumen en terminal)

  • Las 10 dimensiones en score.json tienen puntuación + evidencia
  • El total es igual a la suma de las dimensiones
  • La letra de calificación coincide con el total según los umbrales de la rúbrica
  • La crítica hace referencia a al menos 3 elementos de evidencia de score.json
  • La crítica no nombra a ningún mantenedor / contribuyente
  • El plan de acción tiene 5–10 elementos, ordenados descendente por prioridad
  • El README ideal tiene < 100 líneas
  • El README ideal usa <placeholder> para cualquier URL no encontrada en el escaneo
  • Los 4 archivos existen en output_dir
  • No hay marcadores de posición <TBD> / <TODO> en roast.md o action-plan.md

Si algún chequeo falla, corrige y vuelve a ejecutar ese paso.


Manejo de errores

Estos cuatro modos de fallo reciben un manejo explícito: nunca permitas que el skill produzca silenciosamente una salida parcial sin mostrar la causa.

CasoComportamiento
repo no existe O no se puede clonar O no se puede leerSalir inmediatamente con el mensaje Repo no encontrado o inaccesible: <repo>. No escribir ningún archivo de salida.
README.md faltaEjecutar de todas formas. Puntuar what_is_this_clarity, visual_proof, runnable_quick_start y marketing_signals cerca de 0. Usar la ausencia como apertura de la crítica ("Sin README es una declaración en sí misma").
El repo es privado + no hay autenticación de GitHub disponibleIntentar un clon local (git clone <url>); si falla, salir con El repo es privado y no hay autenticación disponible. Sugerir al usuario que configure GITHUB_TOKEN o pase una ruta local.
La URL de compare_to falla (red, 404, privado, etc.)Continuar sin la comparativa. Agregar una sola línea a la crítica: Nota: la comparativa solicitada contra <compare_to> no se pudo obtener. Omitir la línea Referencia: del resumen en terminal.

Cualquier error de la API de GitHub (límite de tasa, 5xx transitorio) durante la obtención de metadatos del Paso 2 se captura y se registra en score.json bajo trust_signals.evidence como "metadatos de github no disponibles". El resto de la ejecución continúa.


Ejemplos

Buena invocación:

"Critica mi repo en https://github.com/myorg/mytool — tono: brutal."

→ El skill clona, escanea, puntúa, escribe 4 archivos en dx-roast/, imprime el resumen. Tiempo total de ejecución <60s para un repositorio típico.

Buena comparación:

"Auditoría DX en el directorio actual. Comparativa con https://github.com/vercel/next.js."

→ Escanea ambos, puntúa el actual, incluye línea de comparativa en la crítica y el resumen.


Lo que este skill NO hace

  • No modifica el repositorio objetivo (escaneo de solo lectura)
  • No realiza auditorías de seguridad ni escaneos de dependencias
  • No genera copias de marketing (las acciones son concretas, no "reescribe para el tono")
  • No produce imágenes ni activos (solo marcadores de posición)
  • No publica en redes sociales (escribe solo texto compartible)

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

Varnan-Tech/opendirectory

Use when the user asks to generate a blog cover image, thumbnail, or article header. Automatically uses modern typography, brand logos, and Google Search grounding to create beautiful 16:9 images with Gemini 3.1 Flash Image Preview.

Varnan-Tech/opendirectory

World-class brand strategist and naming expert. Uses an interrogation-led discovery phase to extract your brand's DNA, then applies scientific naming frameworks (Phonosemantics) and automated multi-TLD domain checking.

Varnan-Tech/opendirectory

Use when the user asks to generate or update a project's CLAUDE or AGENTS context file from a codebase scan. Writes a focused file under 100 lines containing only the non-obvious build commands, conventions, and gotchas Claude Code needs.

Varnan-Tech/opendirectory

Use when the user wants to verify cold emails, enrich a lead list, or autonomously guess email addresses from a CSV using ValidEmail.co or the open-source Reacher engine.

Varnan-Tech/opendirectory

Competitive intelligence orchestrator tracking companies across 8+ platforms (GitHub, Twitter, Reddit, HN, PH, YC Jobs) with heat scores and AI briefings.

Varnan-Tech/opendirectory

Give it your product URL or description. It finds your top 5 competitors, runs three-track PR research across all of them (editorial, podcasts, communities), identifies which channels appear most frequently, looks up the journalist or host for each, and returns a tiered outreach list with story angles and ready-to-send cold pitch drafts tailored to your product. Use when asked to find PR opportunities, discover where competitors got featured, build a media outreach list, find which journalists cover my space, or get pitch templates for press coverage.

Varnan-Tech/opendirectory

Generate high-converting, deep-dive growth case studies in MDX format. Use this skill when asked to write a case study or blog post about a company's growth, tech stack, or product-led strategy. It handles the full pipeline (researching the company via Tavily, generating a 16:9 cover image, quality checking the draft, uploading assets to cloud storage, and pushing directly to the target repository).

Varnan-Tech/opendirectory

Scans your project for outdated npm, pip, Cargo, Go, or Ruby packages. Runs a CVE security audit. Fetches changelogs, summarizes breaking changes with Gemini, and opens one PR per risk group (patch, minor, major). Includes Diagnosis Mode for install conflicts. Use when asked to update dependencies, check for outdated packages, open dependency PRs, scan for package updates, audit for CVEs, or flag breaking changes in upgrades. Trigger when a user says "check for outdated packages", "update my dependencies", "open PRs for dependency updates", "scan for CVEs", or "which packages need upgrading".

Varnan-Tech/opendirectory

Generates and updates README.md and API reference docs by reading your codebase's functions, routes, types, schemas, and architecture. Uses graphify to build a knowledge graph first, then writes accurate docs from it. Use when asked to write docs, generate a README, document an API, update stale docs, create an API reference from code, add an architecture section, or document a project in any language. Trigger when a user says their docs are missing, outdated, or wants to document their codebase without writing it manually.

Varnan-Tech/opendirectory

Evaluates expired domain candidates against a target niche, scores them by topical relevance, historical activity level, and history cleanliness, then outputs a ranked shortlist with explainable reasoning and risk flags.

Varnan-Tech/opendirectory

Drafts and designs a complete HTML email newsletter from a topic or content brief. Outputs paste-ready HTML for Loops, Mailchimp, Beehiiv, Resend, or any standard email platform. Includes subject line options and plain-text fallback. Trigger when a user says "write a newsletter", "draft an email newsletter", "create an HTML email", "design an email for my subscribers", or "write a newsletter about [topic]".

Varnan-Tech/opendirectory

Takes a GitHub PR URL or the current branch and writes a plain-English explanation of what it does and why, then posts it as a PR comment. Use when asked to explain a PR, summarize a pull request, write a plain-English description of a PR, add a summary comment to a PR, or understand what a PR changes. Trigger when a user says "explain this PR", "summarize this pull request", "what does this PR do", "add a comment explaining the PR", or shares a GitHub PR URL and asks what it does.

Varnan-Tech/opendirectory

Audit how often LLMs recommend your brand vs competitors and generate a GEO action plan.

Varnan-Tech/opendirectory

Takes a competitor's public GitHub repo URL, fetches their open issues via the GitHub REST API, filters noise locally, clusters issues into 6 demand categories, computes a demand score per issue and per cluster, and outputs a ranked demand gap report with a GTM messaging brief. Use when asked to scan a competitor's GitHub issues, find what their users are begging for, turn GitHub complaints into product positioning, identify competitor feature gaps, or generate messaging from real user demand. Trigger when a user says "scan competitor issues", "what are users asking for on X repo", "find demand gaps in Y", "turn GitHub issues into messaging", or "what should I build based on competitor complaints".

Varnan-Tech/opendirectory

Find recurring confusion in your repo's GitHub Discussions, rank it by urgency, and draft the actual docs fixes and content angles — with verbatim community quotes and source links as evidence.

Varnan-Tech/opendirectory

SEO keyword research workflow for blog generation using Google Trends data. Use when writing blog posts, planning content calendars, or optimizing articles for search engines. Finds breakout keywords, builds content structure, and generates SEO-optimized blog outlines targeting tech and developer audiences.

Varnan-Tech/opendirectory

Generates a professionally designed case study PDF for B2B SaaS sales and marketing. Supports 7 page layouts, 9 style presets, 1-4 page output. Trigger when user says "create a case study", "write a customer story", "make a case study PDF", "design a success story", "turn this customer win into a PDF".

Varnan-Tech/opendirectory

Generates data visualization charts (bar, line, area, pie, doughnut, scatter, radar, treemap) as PNG using Apache ECharts v6. 1080×1080px default, 5 style presets, highlight annotations. Trigger when user says "create a chart", "visualize data", "make a bar chart", "line graph", "pie chart", "data visualization", "chart this data", "plot", "graph", or "visualize these numbers".

Varnan-Tech/opendirectory

Creates professionally designed B2B SaaS e-books in HTML + CSS, exported as print-ready PDF. 3–10 pages, 9 style presets, 11 page layout types. Trigger when user says "create an ebook", "design a lead magnet", "make a PDF guide", "build a gated content piece", "write a B2B ebook", "design a white paper", "create a nurture asset", or "make a PDF report".

Varnan-Tech/opendirectory

Fetches low-star App Store and Google Play reviews, clusters them into broken-promise patterns, and generates a ranked copy brief with positioning opportunities.

Skills relacionados