CommunityProgramación y desarrollogithub.com

GreenWich-art/agent-skills

Normalización de referencias bibliográficas según GB/T 7714-2015 y verificación masiva de accesibilidad de enlaces URL / DOI / PMID / PMC con detección de 'falsos fallos'.

¿Qué es agent-skills?

Esta habilidad para agentes de IA (como Claude Code, Cursor, Codex) aborda dos tareas clave en la gestión de referencias bibliográficas: la **formateo riguroso según la norma china GB/T 7714-2015** y la **verificación masiva de la accesibilidad de enlaces** (URL, DOI, PMID, PMC) mediante un script Python reutilizable (`scripts/check_refs.py`). El script distingue inteligentemente entre enlaces realmente rotos y aquellos bloqueados por mecanismos anti-scraping (como códigos 403, 412, 429), evitando falsos positivos. La habilidad incluye guías detalladas sobre los puntos críticos de la norma (tipos de documento, fecha de consulta para electrónicos, manejo de múltiples autores), un proceso de 'escritura + verificación automatizada' para prevenir errores tipográficos, una lista de errores comunes, y ajustes para estilos CSL en Zotero. Es ideal para investigadores, estudiantes o profesionales que necesitan preparar listas de referencias para tesis, artículos o informes, asegurando precisión normativa y que todos los enlaces funcionen.

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/GreenWich-art/agent-skills/tree/HEAD/skills/gbt7714-reference-check

Installed? Explore more Programación y desarrollo skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Preguntar en tu IA favorita

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

Documentación

Normalización de referencias según GB/T 7714-2015 y verificación de enlaces

1. Por qué vale la pena crear una habilidad separada para esto

Este trabajo tiene tres características: muchos detalles de reglas (identificadores de tipo de documento, fecha de consulta para documentos electrónicos, formato de más de tres autores varía), es fácil cometer errores y no se reportan errores (es difícil encontrar un error en decenas de cadenas de texto), y una vez escrito incorrectamente, es difícil detectarlo a simple vista. Por lo tanto, el enfoque no está en 'recordar las reglas', sino en el flujo de trabajo de escritura programática + verificación mediante relectura + verificación de enlaces.

2. Puntos clave de la norma GB/T 7714-2015

Estructura básica

[Número] Autor(es) principal(es). Título[Identificador de tipo de documento / soporte]. Fuente, año, volumen(número): páginas.

Identificadores de tipos comunes

TipoIdentificadorEscritura electrónica
Libro común[M][M/OL]
Artículo de revista[J][J/OL]
Artículo de periódico[N][N/OL]
Tesis[D][D/OL]
Informe[R][R/OL]
Norma[S]—
Anuncio electrónico[EB/OL]—
Patente[P][P/OL]

Tres reglas a tener en cuenta

  1. Los documentos electrónicos deben incluir la fecha de consulta y la ruta de acceso — requisito del artículo 4.9 de GB/T 7714-2015. Para documentos con URL / DOI, la escritura estándar debe ser [J/OL]. Nombre de la revista, año, volumen(número): páginas[fecha de consulta]. https://.... Por el contrario, si la revista/escuela objetivo no lo requiere, se puede omitir la fecha de consulta, pero hay que saber que es una decisión propia.
  2. Cuando hay más de 3 autores, para documentos en chino se escribe 'Autor principal, et al.', para documentos en idiomas occidentales 'Autor principal, et al.'. La norma permite listar todos, pero debe ser consistente en todo el artículo.
  3. Autores occidentales: apellido primero, iniciales del nombre después: Büller HR, Verhamme P, Weitz JI. No tomes el Buller HR de PubMed y lo pegues perdiendo las letras diacríticas, ni lo escribas como HR Büller.

3. Verificación de enlaces (herramienta central)

# Una línea por elemento: URL / DOI / PMID / ID de PMC, el script detecta automáticamente el tipo
python3 scripts/check_refs.py refs.txt

# Entrada JSON, soporta especificación explícita del tipo
python3 scripts/check_refs.py refs.json --timeout 20 --workers 8

Código de salida: 0 = sin elementos fallidos claros; 1 = existen elementos fallidos.

Formatos de entrada admitidos:

EntradaResultado de la interpretación
10.1056/NEJMoa2513880 o https://doi.org/...Enlace DOI
25482425 (solo dígitos)Enlace PubMed
PMC2909362Enlace PMC
https://... o dominio desnudoAcceder sin cambios

Lógica de decisión (importante)

El script clasifica los resultados en tres grupos, no juzgues un fallo solo porque no sea 200:

GrupoCondiciónAcción
Accesible directamente200 / 203 / 30xAprobado
Sospechoso de anti-scraping403 / 412 / 429 / 503 / 000 (sin errores fatales)Revisar con el navegador, no es error de enlace
Sospechoso de fallocurl reporta claramente could not resolve host u otros errores DNS/certificadoConfirmar y reemplazar o eliminar el enlace

Dos problemas ya probados:

  • PubMed devuelve 203, no es un fallo. En el pasado se consideró 203 como fallo, desperdiciando una ronda de verificación.
  • curl -s silencia los errores DNS, lo que hace que dos situaciones completamente diferentes, como 'el dominio no existe' y 'la red está bloqueada', muestren 000. El script ahora usa -sS, y se basa en stderr para distinguirlas.

Características de acceso de sitios comunes

SitioCaracterística
nhc.gov.cn (Comisión Nacional de Salud)curl a menudo devuelve 412 anti-scraping, el navegador abre normalmente
Dominio med. de WanfangTiene anti-scraping, se puede usar d.wanfangdata.com.cn/periodical/<xxx> para acceder
CNKIGeneralmente no proporciona enlaces directos, es suficiente que la literatura sea recuperable, no es necesario forzar URL
NEJM / LancetDetrás de muro de pago, curl a menudo devuelve 403; con el DOI es suficiente

4. Técnica de escritura: prevenir errores de caracteres

Este es el punto más fácil de pasar por alto y el que más daño real puede causar en esta habilidad.

No uses heredocs largos para escribir listas largas de referencias directamente en archivos docx / json / py. En la práctica, han ocurrido múltiples errores de caracteres: prefijos de DOI mal escritos (10.7723 mal escrito como 10.19546), nombres de autores incorrectos, números de políticas confusos, y el proceso de escritura no reporta errores.

Práctica correcta:

# 1) Construye la lista de referencias como una estructura de datos de Python y escríbela programáticamente como un bloque completo
refs = [
    {"id": 1, "text": "Büller HR, ...", "url": "https://...", "doi": "10.1056/..."},
    ...
]

# 2) Define una lista de verificación
deberia_tener = ["25482425", "10.1056/NEJMoa2513880", "GuoWeiYiFa", "Büller"]
errores_conocidos = ["10.7723", "GuiaDeRazonamiento", "ERUOIMMUON"]

# 3) Después de escribir, lee de inmediato para verificar
contenido = leer_de_vuelta()
faltantes = [s for s in deberia_tener if s not in contenido]
filtrados  = [s for s in errores_conocidos if s in contenido]
assert not faltantes and not filtrados, (faltantes, filtrados)

deberia_tener contiene identificadores clave (PMID, DOI, número de documento, nombres de personas o lugares difíciles) y errores_conocidos contiene escrituras incorrectas conocidas. Ambos son necesarios: el primero evita perder contenido, el segundo evita generar contenido incorrecto.

5. Lista de errores comunes (revisar uno por uno)

ErrorEjemploEscritura correcta
Fusionar valores de diferentes fuentesCombinar '2-4% (RCT)' y '2-5% (mundo real)' en un solo númeroMantener la diferencia de fuentes, escribirlas por separado
Volumen/página incorrectosBüller escrito como 2009;361:1722En realidad es NEJM 2015;372:232-240
Cita indirecta como directaCitar un número de una revisión secundaria, pero marcar el RCT originalRastrear hasta el original, o escribir explícitamente 'citado de'
Documento de política sin fuenteEl texto cita 5 documentos, pero la lista de referencias no tiene ningunoCada política/informe citado en el texto debe aparecer en la lista
Título de la referencia no coincideEl título de la referencia [1] no es el artículo real publicadoVerificar título uno por uno
Error de ortografía en nombres propiosEUROIMMUN escrito como ERUOIMMUONVerificar visualmente los nombres propios elemento por elemento

6. Relacionado con Zotero / CSL

Cuando sea necesario ajustar el estilo de cita de Zotero, modificar directamente el archivo .csl es más controlable que usar la configuración de plugins. Por ejemplo, el estilo numérico GB/T 7714-2015 incluye [fecha de consulta] al final de cada referencia. Encuentra la macro accessed-date y vacía su cuerpo a <group/> para desactivarla en todo el sitio (un solo cambio). También cambia los campos id / title / updated para evitar conflictos con el estilo oficial.

Pero hay que recordarse a uno mismo: GB/T 7714-2015 exige la fecha de consulta para documentos electrónicos (artículo 4.9), eliminarla puede no cumplir con la normativa para publicaciones formales en revistas / tesis. Es una decisión del usuario, y se debe informar claramente esta compensación, no eliminarla en silencio.

Es razonable mantener una instancia de accessed de respaldo en la macro issued-year (cuando falta issued, se usa el año de acceso como marcador de posición), no la elimines junto con lo demás.

7. Lista de verificación

  • El identificador de tipo de documento de cada referencia es consistente con si lleva /OL
  • El manejo de más de 3 autores es consistente en todo el documento
  • Nombres occidentales: apellido primero, inicial del nombre; no se han perdido letras diacríticas
  • Los documentos electrónicos tienen fecha de consulta (a menos que se haya decidido explícitamente no tenerla) y ruta de acceso
  • El prefijo DOI es correcto, sin mezcla de caracteres de ancho completo/medio
  • Los enlaces ya se han verificado con check_refs.py, los elementos 'sospechosos de anti-scraping' se han revisado con el navegador
  • Después de escribir, la verificación de deberia_tener / errores_conocidos ha pasado
  • Cada referencia citada en el texto aparece en la lista de referencias, y viceversa

Individual skills in this repo

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

GreenWich-art/agent-skills

桌面 GUI 操作的统一编排入口。当用户要求操作一个只有图形界面的应用(改设置、点按钮、填表单、操作无 CLI/连接器的软件)时使用此 skill。提供四级能力:①路由决策——判断任务该走连接器、浏览器控制、Office 技能、命令行还是 computer use 桌面接管;②授权引导——检测并引导用户完成 macOS 辅助功能/屏幕录制权限授权,处理授权不生效等常见坑;③任务派发与验证——按目标/边界/失败处理三段式描述派发 GUI 任务,并以最终截图为准确认结果;④AX 兜底层——内置 axctl 工具做元素级无障碍读写(AXPress 语义点击,不碰鼠标不抢焦点),适用于 computer use 不可用或轻量场景。台前调度全场景实测(macOS 15 + 27.0.1 复检)。触发词:操控电脑、操作某个软件、点某个按钮、GUI 操作、电脑设置。

GreenWich-art/agent-skills

按学术论文规范(小三黑体一级标题/四号黑体二级/小四正文宋体1.5倍行距/三线表/中西文混排Times New Roman/统计量斜体) 批量重整 Markdown 或已有 docx 的格式。用户说"按学术格式排版""三线表""小三号黑体标题""1.5倍行距" "数字英文用Times New Roman""P值斜体"时使用。基于 python-docx 直接生成 docx,不走逐段插入。 不适用:高校课程论文/作业的字体字号约定(标准不同);党政机关公文国标 GB/T 9704 (又是另一套标准)。三套标准不可混用。

GreenWich-art/agent-skills

Local OCR using the macOS Vision framework. Triggers: OCR, 识别图片文字, 提取截图内容, 扫描件转文字, 图片转文字, 扫描版PDF转文字, read text from image/screenshot/photo/scanned PDF. Local-first and offline; prefer it over cloud OCR whenever data is sensitive or the machine is offline.

GreenWich-art/agent-skills

Download open-access biomedical article PDFs from PMC with offline Proof-of-Work solving. Triggers: 下载文献PDF, PMC PDF, 403/404 on PDF link, Preparing to download, reCAPTCHA page, OA full text, supplementary files, download paper PDF.

Skills relacionados