npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@alexprietoromani/research-suite

v1.1.0

Published

Suite de investigacion y documentacion: descubre literatura via MCP (openalex/arxiv), redacta informes, grafica datos, diagrama flujos y exporta a .tex/.pdf/.docx.

Readme


Le pides un informe a un agente sin este plugin y te da prosa segura y fluida sin una sola fuente real detrás — cifras de memoria, "estudios demuestran", nada que puedas verificar.

Con research-suite, cada afirmación factual del documento final lleva un DOI, un arXiv ID o una URL. Si no hay fuente, no se escribe: se reformula como hipótesis explícita o se elimina.

Antes / después

Sin el plugin, un informe típico suena así:

Los modelos de horas frío subestiman la floración en climas tropicales,
según diversos estudios recientes.

Cero fuentes. No puedes verificar nada de esa oración.

Con investigar + redactar-informe:

El Dynamic Model supera al umbral fijo (HF ≤ 7 °C) en zonas tropicales porque
captura la destrucción térmica del intermediario de frío [@fishman1987b],
aunque no está calibrado para *Vaccinium* [@lobos2015].

Cada claim, su cita. refs.bib lo genera investigar; exportar lo formatea al estilo que pidas (APA, Vancouver, el que sea) vía Pandoc + CSL.

Cómo funciona

investigar          redactar-informe          graficar-datos  (datos → matplotlib/seaborn/ggplot2)    exportar
(openalex/arxiv) → (técnico/científico/    → diagramar        (flujos → Mermaid/Graphviz)          → (.md → .tex/.pdf/.docx
 + web → refs.bib   mercado/general, .md)     generar-figuras  (proceso, para publicar → paperbanana)   vía Pandoc + LaTeX)
  1. investigar descubre fuentes reales (openalex para impacto/tendencias, arxiv para full-text, web para lo no académico) y las devuelve trazables en refs.bib. Temas amplios se paralelizan con el agente investigador, uno por sub-tema.
  2. redactar-informe convierte ese mapa de fuentes en un documento — técnico, científico, de mercado o general — cada afirmación anclada a su cita.
  3. Visuales por tipo, no por capricho: datos siempre vía código (graficar-datos, nunca IA generativa para gráficos); flujos/procesos en Mermaid/Graphviz (diagramar); solo las figuras de publicación pasan por generar-figuras (paperbanana).
  4. exportar convierte el .md final a .tex/.pdf/.docx con Pandoc + TeX Live, resolviendo las citas de refs.bib.
  5. /revisar-informe lanza revisor-informe + verificador-citas en paralelo antes de cerrar: estructura, registro, lenguaje-IA, DOIs huérfanos, citas retractadas.

Idioma de salida: español o inglés (default_output_language, por defecto español; pídelo distinto por documento).

Skills

| Skill | Rol | Herramienta | |---|---|---| | investigar | Descubre y sintetiza fuentes | MCP openalex, arxiv, web | | redactar-informe | Redacta según tipo de documento | MCP context7 | | graficar-datos | Grafica datos vía código | matplotlib/seaborn (Python), ggplot2 (R) | | diagramar | Diagramas de flujo/proceso/esquema para .md | Mermaid (por defecto), Graphviz | | generar-figuras | Figuras de proceso/metodología para publicar | MCP paperbanana | | exportar | Convierte el .md a .tex / .pdf / .docx con citas | Pandoc + TeX Live (xelatex) |

Regla de visuales: datos = código, siempre — nunca paperbanana para un gráfico de barras. paperbanana es solo para la figura de proceso/metodología con calidad de publicación.

Agentes

| Agente | Rol | Se lanza en… | |---|---|---| | investigador | Explora un sub-tema y devuelve fuentes + BibTeX, sin redactar | investigar (paralelo, uno por sub-tema) | | revisor-informe | Revisión crítica: estructura, registro, claims, lenguaje-IA, rigor | /revisar-informe | | verificador-citas | Integridad de citas: huérfanas, DOIs, afirmación↔fuente, retractadas | /revisar-informe (paralelo con el revisor) |

Comandos

| Comando | Qué hace | |---|---| | /research-suite [tema] | Pipeline completo: tipo → investiga (con agentes) → redacta → visuales → revisa → exporta. Pide solo investigar y se detiene ahí. | | /revisar-informe [ruta] | Revisa un documento existente con revisor-informe + verificador-citas en paralelo. |

Tipos de documento: informe-tecnico · articulo-cientifico · analisis-mercado · general (plantilla propia en skills/redactar-informe/references/).

Install

Claude Code

/plugin marketplace add AlexPrietoRomani/research-suite
/plugin install research-suite@research-suite-marketplace

(Envía los dos comandos como prompts separados)

La app de escritorio no tiene /plugin. Instálalo desde la UI: Customize → el + junto a personal plugins → Create plugin and add marketplace → Add from repository → pega la URL del repo.

Trae sus propios MCP (arxiv, openalex, paperbanana, context7) vía .mcp.json — no hay que configurarlos a mano. Si ya tienes alguno a nivel usuario, el tuyo gana (precedencia de scope) y el del plugin se ignora, sin duplicados.

Credenciales pedidas al activar (userConfig, las sensibles van al keychain):

| Config | Para | Sensible | |---|---|---| | context7_api_key | context7 | Sí | | google_api_key | paperbanana (Gemini) | Sí | | openalex_mailto | openalex (polite pool) | No | | arxiv_storage_path | cache de papers de arxiv | No | | default_output_language | idioma de salida (es | en) | No |

opencode

Desde npm (recomendado, sin clonar):

{ "plugin": ["@alexprietoromani/research-suite"] }

Desde checkout local:

El repo trae un árbol generado desde la misma fuente:

  • .opencode/skills/ — las 6 skills (SKILL.md nativo de opencode)
  • .opencode/command//research-suite, /revisar-informe (sin prefijo)
  • .opencode/agent/ — los 3 subagentes (mode: subagent)
  • .opencode/plugins/research-suite.mjs — plugin que registra comandos y skills
  • opencode.json — los 4 MCP, reescritos a formato opencode con {env:VAR}

Exporta las variables de entorno necesarias antes de usar: ARXIV_STORAGE_PATH, OPENALEX_MAILTO, GOOGLE_API_KEY, CONTEXT7_API_KEY.

Abre opencode dentro del repo (lee .opencode/ + opencode.json solo), o copia .opencode/* a ~/.config/opencode/ y fusiona el bloque mcp.

.opencode/ y opencode.json son generados, no los edites a mano. Tras tocar skills/, commands/, agents/ o .mcp.json: python scripts/sync_opencode.py.

Gemini CLI

gemini extensions install https://github.com/AlexPrietoRomani/research-suite

Carga las reglas como contexto siempre activo y registra los comandos /research-suite y /revisar-informe de forma automática usando gemini-extension.json.

Antigravity CLI

El binario agy es la evolución de Gemini CLI; la misma extensión funciona ahí:

agy plugin install https://github.com/AlexPrietoRomani/research-suite

Reutiliza gemini-extension.json para registrar los comandos y skills automáticamente. En Antigravity los comandos se escriben directamente como mensajes en el chat (por ejemplo, /revisar-informe como mensaje).

Dependencias externas

| Herramienta | Para | Estado | |---|---|---| | Pandoc 3.10 | exportar → PDF/LaTeX/DOCX | Instalado | | TeX Live 2026 (xelatex) | compilar PDF | Instalado | | strata-reader | arxiv PDF → Markdown (ahorra tokens) | pip install strata-reader | | gh CLI | flujos de PR/issues | Instalado |

FAQ

¿Puedo pedir solo investigación, sin redactar? Sí — /research-suite se detiene tras investigar si eso es lo único que pides. Entrega el mapa de fuentes + refs.bib + síntesis.

¿Qué pasa si una fuente no tiene DOI ni URL confiable? No se cita. Se marca [sin fuente verificada] o se reformula como hipótesis — nunca se inventa un respaldo.

¿Por qué separa datos (código) de figuras de publicación (paperbanana)? Porque un gráfico de barras generado por IA puede alucinar valores; el mismo gráfico hecho con matplotlib sobre tus datos reales, no. paperbanana queda para ilustraciones de proceso donde no hay "datos" que graficar mal.

Licencia

MIT.