GreenWich-art/agent-skills

Normalisation des références bibliographiques selon le GB/T 7714-2015, et vérification automatisée de l'accessibilité des liens URL / DOI / PMID / PMC avec détection des « faux échecs ».

Qu'est-ce que agent-skills ?

Cette compétence spécialisée pour agents IA (Claude Code, Cursor, Codex) automatise la mise en forme des références bibliographiques selon la norme chinoise GB/T 7714-2015, et vérifie en masse l'accessibilité des liens associés (URL, DOI, PMID, PMC). Elle comprend un script réutilisable `scripts/check_refs.py` capable de différencier les vrais échecs de liens (par exemple, DNS résolu en échec) des blocages anti-robot (codes 403/412/429/503) – ces derniers ne doivent pas être considérés comme des liens morts. L'outil est conçu pour les chercheurs, étudiants ou rédacteurs devant soumettre un article, une revue ou un mémoire, et souhaitant s'assurer de l'exactitude des formats et de la validité des liens. Il ne convient pas pour la génération de texte académique original ni pour la personnalisation des styles Zotero (qui est abordée séparément). La vérification est robuste : elle gère les cas particuliers de PubMed (code 203), les domaines chinois comme `nhc.gov.cn`, et applique une logique de « trois catégories » (accessible, suspect de blocage, probablement mort). Le script peut être invoqué en ligne de commande avec des fichiers texte ou JSON, et les résultats sont fiables même en présence de blocages anti-robot.

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

Installed? Explore more Développement et programmation skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Normalisation des références bibliographiques selon le GB/T 7714-2015 et vérification des liens

I. Pourquoi en faire une compétence distincte

Ce travail présente trois caractéristiques : de nombreuses règles détaillées (identifiant de type de document, date de citation pour les documents électroniques, écriture différente pour plus de trois auteurs), facile à mal faire et sans retour d'erreur (une erreur parmi des dizaines de chaînes est difficile à repérer), et une fois mal écrite, difficile à détecter visuellement. L'important n'est donc pas de « mémoriser les règles », mais de suivre un processus d'écriture programmée + vérification par relecture + validation des liens.

II. Points essentiels de la norme GB/T 7714-2015

Structure de base

[Numéro] Auteur principal. Titre[Identifiant de type de document/support]. Source, année, volume(numéro) : pages.

Identifiants de types courants

TypeIdentifiantÉcriture électronique
Livre[M][M/OL]
Article de revue[J][J/OL]
Article de journal[N][N/OL]
Thèse[D][D/OL]
Rapport[R][R/OL]
Norme[S]—
Annonce électronique[EB/OL]—
Brevet[P][P/OL]

Trois points à ne pas ignorer

  1. Pour les documents électroniques, la date de consultation et le chemin d'accès sont obligatoires – exigence de l'article 4.9 du GB/T 7714-2015. La forme correcte pour un document avec URL/DOI est : [J/OL]. Nom de la revue, année, volume(numéro) : pages[date de consultation]. https://.... Inversement, si la revue/l'université cible ne l'exige pas, vous pouvez omettre la date de consultation, mais sachez que c'est un choix délibéré.
  2. Lorsqu'il y a plus de 3 auteurs, pour les références en chinois : « Auteur principal, et al. » ; pour les références occidentales : « Auteur principal, et al. ». La norme autorise la liste complète, mais la cohérence doit être maintenue dans tout le document.
  3. Pour les auteurs occidentaux, le nom précède le prénom abrégé : Büller HR, Verhamme P, Weitz JI. Ne copiez pas Buller HR de PubMed en perdant les lettres diacritiques, et n'écrivez pas HR Büller.

III. Vérification des liens (outil principal)

# Une ligne par élément : URL / DOI / PMID / PMC, le script identifie automatiquement le type
python3 scripts/check_refs.py refs.txt

# Entrée JSON, avec possibilité de spécifier explicitement le type
python3 scripts/check_refs.py refs.json --timeout 20 --workers 8

Code de sortie : 0 = aucun échec certain ; 1 = échec(s) existant(s).

Formats d'entrée supportés :

EntréeRésultat de l'analyse
10.1056/NEJMoa2513880 ou https://doi.org/...Lien DOI
25482425 (numérique uniquement)Lien PubMed
PMC2909362Lien PMC
https://... ou nom de domaine nuAccès direct

Logique de décision (important)

Le script classe les résultats en trois catégories ; ne considérez pas un échec dès qu'un code autre que 200 apparaît :

CatégorieConditionTraitement
Accessible directement200 / 203 / 30xAccepté
Suspecté de blocage anti-robot403 / 412 / 429 / 503 / 000 (aucune erreur fatale)Vérifier avec un navigateur, ce n'est pas une erreur de lien
Suspecté d'écheccurl signale explicitement une erreur could not resolve host ou DNS/certificatConfirmer puis remplacer ou supprimer le lien

Deux pièges déjà rencontrés :

  • PubMed renvoie 203, ce n'est pas un échec. J'avais autrefois considéré le 203 comme un échec, ce qui a inutilement compliqué la recherche.
  • curl -s masque silencieusement les erreurs DNS, faisant apparaître « domaine inexistant » et « réseau bloqué » (deux situations complètement différentes) comme un code 000. Le script utilise désormais -sS et se base sur stderr pour les distinguer.

Caractéristiques d'accès des sites courants

SiteCaractéristique
nhc.gov.cn (Commission nationale de la santé)curl renvoie souvent 412 anti-robot, le navigateur peut l'ouvrir normalement
Domaine med. de WanfangAnti-robot, peut être accédé via d.wanfangdata.com.cn/periodical/<xxx>
CNKI (知网)Généralement sans lien direct ; la présence de la référence dans la base suffit, inutile d'insister sur l'URL
NEJM / LancetPaywall, curl renvoie souvent 403 ; le DOI suffit

IV. Technique d'écriture : éviter les erreurs de caractères

C'est le point le plus facilement négligé et potentiellement le plus dommageable de cette compétence.

N'utilisez pas de long Heredoc pour écrire des listes de références directement dans un docx / json / py. En pratique, des erreurs de caractères surviennent souvent : préfixe DOI mal écrit (10.7723 devenant 10.19546), nom d'auteur mal orthographié, code de règlement tronqué, et le processus d'écriture ne signale pas l'erreur.

Solution correcte :

# 1) Construire la liste des références comme une structure de données Python, puis écrire le bloc entier de manière programmée
refs = [
    {"id": 1, "text": "Büller HR, ...", "url": "https://...", "doi": "10.1056/..."},
    ...
]

# 2) Définir une liste de vérification
must_have = ["25482425", "10.1056/NEJMoa2513880", "国卫医发", "Büller"]
bads      = ["10.7723", "理相指南", "ERUOIMMUON"]

# 3) Après écriture, relire immédiatement pour vérifier
content = read_back()
missing = [s for s in must_have if s not in content]
leaked  = [s for s in bads if s in content]
assert not missing and not leaked, (missing, leaked)

must_have contient les identifiants clés (PMID, DOI, codes règlement, noms difficiles), bads les erreurs connues. Les deux sont nécessaires : le premier empêche la perte de contenu, le second empêche la production de contenu erroné.

V. Liste d'erreurs courantes (à vérifier une par une)

ErreurExempleCorrection
Fusion de données de sources différentesFusionner « 2-4 % (RCT) » et « 2-5 % (monde réel) » en un seul nombreMaintenir les différences de source, écrire séparément
Volume/pages mal écritsBüller écrit 2009;361:1722En réalité NEJM 2015;372:232-240
Citation de source secondaire comme primaireCiter un chiffre d'une revue secondaire tout en mentionnant la source RCT originaleRetrouver l'original, ou écrire explicitement « cité dans »
Document normatif sans sourceLe corps cite 5 documents, mais la bibliographie n'en contient aucunChaque document/règlement cité doit figurer dans la bibliographie
Titre cité non conforme au réelLe titre de la référence [1] ne correspond pas à l'article publiéVérifier titre par titre
Faute d'orthographe sur un nom propreEUROIMMUN écrit ERUOIMMUONVérifier visuellement chaque nom propre

VI. Connexion avec Zotero / CSL

Pour ajuster le style de citation Zotero, il est plus fiable de modifier directement le fichier .csl que d'utiliser des plugins. Par exemple, le style numérique GB/T 7714-2015 ajoute une date de consultation à la fin de chaque référence électronique : trouvez la macro accessed-date et videz son contenu en <group/> pour désactiver globalement cette information (une modification unique). Modifiez également id / title / updated pour éviter les conflits avec le style officiel.

Mais rappelez-vous : la norme GB/T 7714-2015 exige la date de consultation pour les documents électroniques (article 4.9). La supprimer peut rendre la soumission non conforme pour certaines revues/thèses. C'est un choix de l'utilisateur, qu'il faut explicitement lui signaler, plutôt que de le supprimer en silence.

La macro issued-year conserve une mention de date d'accès de secours (si issued est manquant, on utilise l'année de consultation) ; ne la supprimez pas.

VII. Liste de vérification

  • L'identifiant de type de document de chaque référence est cohérent avec la présence ou non de /OL
  • Le traitement des auteurs >3 est cohérent dans tout le document
  • Noms occidentaux : nom avant prénom abrégé ; les lettres diacritiques sont conservées
  • Documents électroniques : date de consultation (sauf décision explicite de l'omettre) et chemin d'accès présents
  • Préfixe DOI correct, pas de mélange demi-pleine / pleine largeur
  • Les liens ont été vérifiés avec check_refs.py ; les éléments « suspectés de blocage » ont été vérifiés avec un navigateur
  • Après écriture, la vérification must_have / bads est réussie
  • Chaque référence citée dans le corps figure dans la bibliographie, et inversement

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 associés