Community程式設計與開發github.com

GreenWich-art/agent-skills

參考文獻的 GB/T 7714-2015 著錄規範化,以及 URL / DOI / PMID / PMC 鏈接的可訪問性批量核驗與「假失效」識別。

agent-skills 是什麼?

這個技能(Skill)專注於解決學術寫作中參考文獻格式規範化與鏈接有效性核驗的痛點。它基於 GB/T 7714-2015 國家標準,自動化處理參考文獻的著錄細節,包括文獻類型標識、電子文獻引用日期、作者超過三人時的省略寫法等容易出錯的規則。其核心工具是 `scripts/check_refs.py` 腳本,能批量接收 URL、DOI、PMID 或 PMC 編號,並透過並發請求進行鏈接可用性核驗。特別的是,該腳本能區分「真正失效」(如 DNS 解析錯誤)與「疑似反爬」(如返回 403、429 等狀態碼),避免將因網站反爬機制而無法訪問的鏈接誤判為失效。此外,技能還強調「程序化寫入 + 回讀校驗」的工藝,建議以 Python 數據結構批量生成參考文獻列表,並定義 `must_have` 與 `bads` 清單進行自動化錯誤檢測,防止手動寫入導致的字符錯亂。此技能適用於論文、綜述、作業交稿前的格式檢查與文獻清單交付,但不適用於從零生成帶引文的正文或 Zotero 樣式定制。支援的主要平台包括 Cursor、Claude Code 等 AI 代理工具,並提供詳細的常見錯誤清單與檢查清單,幫助用戶高效、準確地完成參考文獻處理工作。

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

Installed? Explore more 程式設計與開發 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

參考文獻 GB/T 7714-2015 標準化與鏈接驗核

一、為什麼值得單獨做成一個 skill

這項工作有三個特徵:規則細節多(文獻類型標識、電子文獻的引用日期、 三位作者以上的寫法各不相同)、容易出錯且不回報錯誤(幾十個字符串裡錯一個很難被發現), 以及一次寫錯就很難用肉眼發現。所以重點不是「記住規則」,而是 程式化寫入 + 回讀驗核 + 鏈接驗核這套流程。

二、GB/T 7714-2015 著錄要點

基本結構

[序號] 主要責任者. 題名[文獻類型標識/載體標識]. 出處, 年, 卷(期): 起止頁碼.

常見類型標識

類型標識電子化寫法
普通圖書[M][M/OL]
期刊文章[J][J/OL]
報紙文章[N][N/OL]
學位論文[D][D/OL]
報告[R][R/OL]
標準[S]—
電子公告[EB/OL]—
專利[P][P/OL]

必須注意的三條

  1. 電子文獻必須著錄引用日期和訪問路徑 —— GB/T 7714-2015 第 4.9 條的要求。 帶 URL / DOI 的文獻,規範寫法應當是 [J/OL]. 期刊名, 年, 卷(期): 頁碼[引用日期]. https://...。 反過來,如果目標期刊/學校不要求,去掉引用日期是可以的,但要知道這是自己在做取捨。
  2. 責任者超過 3 個時,中文文獻寫「主要責任者, 等」,西文寫「主責任者, et al」。 國標允許全部列出,但同一篇文獻裡要前後統一。
  3. 西文作者姓在前、名縮寫在後:Büller HR, Verhamme P, Weitz JI。 不要把 PubMed 的 Buller HR 直接搬過來丟了變音符號,也不要寫成 HR Büller。

三、鏈接驗核(核心工具)

# 每行一個:URL / DOI / PMID / PMC 編號,腳本自動判別類型
python3 scripts/check_refs.py refs.txt

# JSON 輸入,支援顯式指定類型
python3 scripts/check_refs.py refs.json --timeout 20 --workers 8

退出碼:0 = 無明確失效項;1 = 存在失效項。

支援的輸入型態:

輸入解析結果
10.1056/NEJMoa2513880 或 https://doi.org/...DOI 鏈接
25482425(純數字)PubMed 鏈接
PMC2909362PMC 鏈接
https://... 或裸域名原樣訪問

判定邏輯(重要)

腳本把結果分三桶,不要一看到非 200 就判失效:

桶條件處理
可直接訪問200 / 203 / 30x通過
疑似反爬403 / 412 / 429 / 503 / 000(無非致命錯誤)改用瀏覽器複核,不是鏈接錯了
疑似失效curl 明確報 could not resolve host 等 DNS/證書錯誤確認後替換或刪除該鏈接

已實測的兩個坑:

  • PubMed 返回 203,不是失敗。曾經把 203 當成失效,白白浪費一輪排查
  • curl -s 會把 DNS 錯誤靜默掉,導致「域名不存在」和「網路被封鎖」這兩種完全不同的 情況都顯示 000。腳本已改用 -sS,靠 stderr 區分

常見站點的訪問特性

站點特徵
nhc.gov.cn(國家衛健委)curl 常返回 412 反爬,瀏覽器能正常打開
萬方 med. 域有反爬,可改用 d.wanfangdata.com.cn/periodical/<xxx> 形式訪問
知網一般不提供直鏈,文獻能檢索到即可,不必強求 URL
NEJM / Lancet付費牆,curl 常返回 403;有 DOI 就夠了

四、寫入工藝:防止字符錯亂

這是本 skill 最容易被忽視、也最容易造成實際傷害的一點。

不要用長 Heredoc 直接往 docx / json / py 裡寫長列表文獻。 實踐中多次出現字符錯亂:DOI 前綴寫錯(10.7723 誤為 10.19546 之類)、 作者名錯字、政策文號亂碼,且寫入過程不回報錯誤。

正確做法:

# 1) 把文獻列表構造成 Python 資料結構,程式化整塊寫入
refs = [
    {"id": 1, "text": "Büller HR, ...", "url": "https://...", "doi": "10.1056/..."},
    ...
]

# 2) 定義驗核清單
must_have = ["25482425", "10.1056/NEJMoa2513880", "國衛醫發", "Büller"]
bads      = ["10.7723", "理相指南", "ERUOIMMUON"]

# 3) 寫完後立刻回讀驗核
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 放關鍵標識(PMID、DOI、文號、難寫的人名地名), bads 放已知的錯誤寫法。兩者都要有:前者防丟內容,後者防產生錯誤內容。

五、常見錯誤清單(照著查一遍)

錯誤例子正確寫法
合併不同口徑的數值把「2-4%(RCT)」和「2-5%(真實世界)」合併成一個數保留口徑差異,分開寫
卷期頁寫錯Büller 寫成 2009;361:1722實際為 NEJM 2015;372:232-240
轉引當成原引引了一篇二手綜述裡的數字,卻標註原始 RCT追到原文,或明確寫「轉引自」
政策文件無出處正文引了 5 份文件,參考文獻表裡一條沒有正文引用的每份政策/報告都要入表
著錄標題與實際不符文獻[1]標題和實際發表的文章不是一篇逐條核對標題
專有名詞拼寫錯誤EUROIMMUN 寫成 ERUOIMMUON逐條目視核對專有名詞

六、Zotero / CSL 相關

需要調整 Zotero 引用樣式時,直接改 .csl 檔案比用插件配置更可控。 例如 GB/T 7714-2015 numeric 樣式每條文獻末尾都帶 [引用日期], 找出 accessed-date 巨集把巨集體清空為 <group/> 即可全站失效(一處改動)。 同時改 id / title / updated 避免與官方樣式衝突。

但要提醒自己:GB/T 7714-2015 對電子文獻要求著錄引用日期(第 4.9 條), 去掉之後對正式投稿的期刊 / 學位論文可能不符合規範。這是使用者自己的權衡, 應當把這個取捨明確告知,而不是默默去掉。

issued-year 巨集裡保留的一處 accessed 兜底是合理的(issued 缺失時用訪問年份佔位), 不要一起刪掉。

七、檢查清單

  • 每條文獻的類型標識與是否 /OL 一致
  • 超過 3 位作者的處理方式前後統一
  • 西文人名姓在前、名縮寫;變音符號沒有丟
  • 電子文獻有引用日期(除非明確決定不要)與訪問路徑
  • DOI 前綴正確、無半形/全形混用
  • 鏈接已跑 check_refs.py,「疑似反爬」項用瀏覽器複核過
  • 寫入後 must_have / bads 回讀驗核通過
  • 正文引用的每條都在文獻表中出現,反之亦然

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.

相關技能