Skip to content

Commit 97ec77d

Browse files
committed
v0.13.0: 兩道學術誠信防線——撤稿查核與雙盲身分清除
本版釋出的兩項都是「不做會出事、做了沒人看得見」的防護型功能。 依公開/私人分層原則:公開拿「防止受害」的防線,私人留「研究優勢」的能力 (實測端點目錄、期刊篩查等仍留私人庫)。 1. 撤稿查核在建檔當下攔截(literature-matrix-builder) 既有引用工具查「文獻存不存在」「格式對不對」,但不查「是不是已被撤稿」。 每次 add 自動反查 Crossref 撤稿通知,在文獻進庫當下攔下。 · 陽性/陰性對照實測:已知被撤論文測得出、三篇正常論文不誤報 (只驗前者會做出一個到處亂報的工具) · 查核失敗 ≠ 沒被撤稿:標「⚠️ 查核失敗:原因」而非「未發現」 · Elsevier 慣例把撤稿通知放**同一個 DOI**,找「另一個 DOI」會查不到 2. 雙盲投稿的身分資訊清除(thesis-consistency-audit) Office 檔是壓縮檔,作者身分藏在五個看不見的位置,Word 內建「檢查文件」 不一定清得掉註解作者與追蹤修訂作者——desk reject 常見原因。 · 註解與追蹤修訂**含內容**,預設只報告不刪;清除前自動備份 · 追蹤修訂採作者匿名化而非刪除,不改變文件內容 · 誠實邊界:只處理檔案中繼資料;正文自我引用/致謝/計畫編號/檔名 才是最常見破功點,必須人工檢查 README 中英雙語更新至 v0.13.0(並修掉「技能總數」重複兩次的問題); NOTICE 補列兩項出處。技能總數維持 35(本版為既有技能的功能強化)。 合規:去識別反向搜尋零命中;公開版未提及任何私人專屬技能; sanitize 除既有的 FRED api_key 文件說明與 r-spss 環境變數教學示範 (皆非本次引入)外無新增命中。
1 parent 391df4e commit 97ec77d

7 files changed

Lines changed: 433 additions & 12 deletions

File tree

NOTICE.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
| 技能 | 授權 | 原作者 / 來源 | 備註 |
66
|---|---|---|---|
77
| research-orchestrator | 作者原創(根 LICENSE) | 本專案作者 | 已去機構識別 |
8-
| literature-matrix-builder | 作者原創 | 本專案作者 | 使用 CrossRef REST API(免金鑰公開服務);摘要著作權屬各出版社,技能內已載明僅供個人研究閱讀、勿公開重製 |
8+
| literature-matrix-builder | 作者原創 | 本專案作者 | 使用 CrossRef REST API(免金鑰公開服務);摘要著作權屬各出版社,技能內已載明僅供個人研究閱讀、勿公開重製;撤稿查核亦走 CrossRef(filter=update-type:retraction),已用陽性/陰性對照實測 |
99
| bilingual-paper-reader | 作者原創 | 本專案作者 | 零第三方相依;高亮持久化以瀏覽器原生 Selection/Range API 自行實作,未內嵌任何 JS 函式庫 |
1010
| phd-researcher | **混合**:階段 1–3 原創;階段 4 模組 **CC BY-NC 4.0** | 階段 4:Cheng-I Wu (Imbad0202) / `academic-research-skills` | 🔒 非商業;保留資料夾內 `ATTRIBUTION.md`;原技能名已更名去識別 |
1111
| tej-data-scout | 作者原創(方法論) | 本專案作者 | 已移除 catalog 的 TEJ Pro 訂閱介面完整導航樹與其來源標示;改為導覽方向+官方公開連結;加入資料庫中立與方法建議 |
@@ -24,6 +24,7 @@
2424
| academic-slides | **MIT** | Zara Zhang (© 2025) | 保留資料夾內原 `LICENSE`**勿更換版權人姓名** |
2525
| academic-pptx | **MIT** | 原技能作者(README 標示 MIT) | 保留 SKILL 與 MIT 聲明;**為授權審慎已移除原附的 PDF**(不影響功能) |
2626
| thesis-consistency-audit | **CC BY-NC-SA 4.0** | 框架理念改作自 qqfly1to19 / `awesome_proofreading_auto` | 🔒 非商業 + 相同方式分享(ShareAlike,整支維持 CC BY-NC-SA) |
27+
| └ anonymize_office.py | 作者原創 | 本專案作者 | 雙盲投稿的 Office 檔案身分資訊稽核與清除;純標準庫 zipfile/re,無第三方相依 |
2728
| academic-deck-animator | 作者原創(根 LICENSE) | 本專案作者 | 融合式原創,程式全自撰;概念來源見資料夾內 `ATTRIBUTION.md`(lewislulu/html-ppt-skill MIT、hugohe3/ppt-master 等,僅借鑑方法概念,未搬程式碼) |
2829
| academic-poster | 作者原創(根 LICENSE) | 本專案作者 ||
2930
| defense-qa-coach | 作者原創(根 LICENSE) | 本專案作者 ||

README.md

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,25 @@
4242

4343
> ⚠️ 本專案與 Anthropic **無官方關聯**。部分技能需搭配外部工具或**付費資料庫(如 TEJ)**才能發揮完整功能。
4444
45+
### 🆕 最新更新(v0.13.0 · 2026-08)
46+
47+
本版新增兩道**學術誠信防線**——都是「不做會出事、做了沒人看得見」的那種功能。
48+
49+
- **撤稿查核,在建檔當下就攔截(`literature-matrix-builder`)。** 引用到已撤稿的論文是實質學術風險,但既有的引用工具只查「文獻存不存在」「格式對不對」,**不查「這篇是不是已經被撤稿」**。本版讓每次 `add` 自動反查 Crossref 的撤稿通知,在文獻進庫的當下就攔下來——而不是等寫進文獻回顧才發現。
50+
- 已用**陽性/陰性對照**實測:已知被撤論文測得出,三篇正常論文皆不誤報。只驗前者會做出一個到處亂報的工具。
51+
- **查核失敗 ≠ 沒被撤稿**:工具標「⚠️ 查核失敗:原因」而非「未發現」。查不到與確認沒事是兩回事,這個區別攸關風險判斷。
52+
- 實務細節:Elsevier 慣例是把撤稿通知放在**同一個 DOI**(原文被替換成撤稿聲明),若照直覺去找「另一個 DOI」會查不到。
53+
54+
- **雙盲投稿的身分資訊清除(`thesis-consistency-audit`)。** `.docx``.pptx``.xlsx` 是壓縮檔,作者身分藏在**五個肉眼看不到的地方**,而 Word 內建的「檢查文件」**不一定清得掉後兩項**——這是 desk reject 的常見原因:
55+
1. `docProps/core.xml` 建立者、最後修改者
56+
2. `docProps/app.xml` Company(學校)、Manager(指導教授)
57+
3. `docProps/custom.xml` 自訂屬性(常含計畫編號)
58+
4. `word/comments.xml` **每則註解都帶作者姓名**
59+
5. 追蹤修訂 每個 `w:ins``w:del` 都帶 `w:author` 與時間戳
60+
- **紀律**:註解與追蹤修訂**含有內容**、不只是中繼資料,故預設**只報告不刪除**,要處理必須明確加旗標;清除前一律自動備份。追蹤修訂採「作者匿名化」而非刪除,避免改變文件內容。
61+
- **誠實邊界**:工具只處理檔案中繼資料。**正文自我引用、致謝、基金計畫編號、檔名含姓名——這些才是最常見的雙盲破功點,必須人工檢查。**
62+
63+
4564
### 🆕 最新更新(v0.12.0 · 2026-08)
4665

4766
- **v0.12.0 — 台灣代碼陷阱:第二例,並升級為通則(`global-opendata-scout`)。** 繼 World Bank/OECD **完全沒有台灣資料**之後,本版實測確認第二個體系的處理方式不同但同樣會坑人:**UN Comtrade/WITS 把台灣併入代碼 `490`「Other Asia, not elsewhere specified」**。實測結果——查 `490` 回傳 218 筆,查常被誤用的 `158` 回傳 **0 筆卻不報錯**。查錯代碼會靜默得到空結果,極易誤判成「這個資料源沒有台灣資料」而放棄整個來源。本版把它從個案寫成**通則**:遇到任何聯合國體系下的國際資料庫,預設假設「台灣不會用標準 ISO 碼出現」,先查該庫怎麼處理台灣再決定研究設計,並列出三種常見處理型態(完全沒有/併入其他代碼/用非標準名稱如 "Chinese Taipei")。使用 490 時論文須揭露的三件事也一併寫明。
@@ -176,6 +195,25 @@ If a skill here caught a hallucinated citation, saved you an afternoon of data-w
176195

177196
> ⚠️ **Not affiliated with Anthropic.** Some skills require external tools or a **paid database (e.g., TEJ)** for full functionality.
178197
198+
### 🆕 What's new (v0.13.0 · 2026-08)
199+
200+
This release adds two **research-integrity guardrails** — the kind of feature nobody notices until its absence costs you something.
201+
202+
- **Retraction checking at ingestion time (`literature-matrix-builder`).** Citing a retracted paper is a real academic risk, yet existing citation tools check whether a reference *exists* and whether its *format* is right — **not whether it has been retracted**. Every `add` now queries Crossref for retraction notices and flags the paper as it enters your library, rather than after it has already reached your literature review.
203+
- Verified with **both positive and negative controls**: a known-retracted paper is detected; three ordinary papers produce no false alarm. Testing only the positive case would have shipped a tool that cries wolf.
204+
- **A failed check is not a clean bill of health**: the tool reports "⚠️ check failed: reason" rather than "none found." Not knowing and knowing-it's-fine are different states, and the difference matters for risk.
205+
- Practical detail: Elsevier's convention is to place the retraction notice at the **same DOI** (the original article is replaced by the notice), so looking for "a different DOI" finds nothing.
206+
207+
- **Blinding your submission files (`thesis-consistency-audit`).** `.docx``.pptx``.xlsx` files are archives, and author identity hides in **five places you cannot see** — and Word's own "Inspect Document" does **not** reliably clear the last two. This is a common cause of desk rejection:
208+
1. `docProps/core.xml` — creator, last-modified-by
209+
2. `docProps/app.xml` — Company (your university), Manager (your supervisor)
210+
3. `docProps/custom.xml` — custom properties, often a grant number
211+
4. `word/comments.xml`**every comment carries its author's name**
212+
5. Tracked changes — every `w:ins``w:del` carries `w:author` and a timestamp
213+
- **Discipline**: comments and tracked changes contain *content*, not just metadata, so the tool **reports without deleting** by default; removal requires an explicit flag, and a backup is always made first. Tracked-change authors are anonymised rather than stripped, so the document itself is unchanged.
214+
- **Honest boundary**: the tool handles file metadata only. **Self-citation in the body text, acknowledgements, grant numbers, and your name in the filename are the far more common ways blinding fails — those still need a human pass.**
215+
216+
179217
### 🆕 What's new (v0.12.0 · 2026-08)
180218

181219
- **v0.12.0 — The Taiwan country-code trap: a second case, generalised into a rule (`global-opendata-scout`).** After confirming that World Bank and OECD **contain no Taiwan data at all**, this release verifies a second international system that handles Taiwan differently — and just as treacherously: **UN Comtrade / WITS folds Taiwan into code `490`, "Other Asia, not elsewhere specified."** Verified live: querying `490` returns 218 records; querying `158` (a code often mistaken for Taiwan) returns **0 records without raising an error**. A wrong code yields a silent empty result, which is very easily misread as "this source has no Taiwan data" — leading researchers to abandon an otherwise usable dataset. This release turns the observation into a **general rule**: for any UN-system international database, assume by default that Taiwan will *not* appear under a standard ISO code; check how that particular database handles Taiwan *before* designing around it. Three common patterns are documented (absent entirely / folded into another code / listed under a non-standard name such as "Chinese Taipei"), along with the three things a paper must disclose when using code 490.

skills/literature-matrix-builder/SKILL.md

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
name: literature-matrix-builder
3-
description: "文獻語料庫與文獻比較矩陣建置器。把一堆 PDF 變成有結構的文獻資料夾+一張可比較的 Excel 矩陣:自動從 PDF 抓 DOI、查 CrossRef(免金鑰)取回書目與摘要、產生 APA7 參考文獻,再組成含理論視角/研究情境/方法/IV/DV/中介調節/主要發現/限制/與本研究關聯/可引用金句的橫向比較表,並自動列出哪幾篇的綜整欄還沒填。何時用:讀文獻讀到散亂、要建文獻庫、要寫文獻回顧前先把文獻排開來比、口試前要交文獻整理表。觸發詞:文獻矩陣、文獻表格、文獻整理、文獻比較、文獻回顧表、literature matrix、synthesis matrix、文獻資料夾、建文獻庫、APA7 產生、DOI 查詢、CrossRef、抓書目、參考文獻整理、摘要整理、文獻 Excel、讀書筆記表。與 citation-verifier/check-citations 劃界:那兩支做『引用查核』(內文與清單對不對得上、文獻是否真實存在),本 skill 做『文獻庫建置與橫向比較』;查引用真偽找那兩支。與 phd-researcher 劃界:那支做系統性回顧方法論(PRISMA 流程、偏誤風險、meta-analysis),本 skill 只做語料庫與矩陣這件工具活;要做正式 SR/MA 找那支,本 skill 產出的矩陣可餵給它。"
3+
description: "文獻語料庫與文獻比較矩陣建置器。把一堆 PDF 變成有結構的文獻資料夾+一張可比較的 Excel 矩陣:自動從 PDF 抓 DOI、查 CrossRef(免金鑰)取回書目與摘要、**建檔當下就做撤稿查核**(引用撤稿論文是實質學術風險,在進文獻庫時就攔截)、產生 APA7 參考文獻,再組成含理論視角/研究情境/方法/IV/DV/中介調節/主要發現/限制/與本研究關聯/可引用金句的橫向比較表,並自動列出哪幾篇的綜整欄還沒填。何時用:讀文獻讀到散亂、要建文獻庫、要寫文獻回顧前先把文獻排開來比、口試前要交文獻整理表。觸發詞:文獻矩陣、文獻表格、文獻整理、撤稿、撤稿查核、retraction、論文被撤、文獻比較、文獻回顧表、literature matrix、synthesis matrix、文獻資料夾、建文獻庫、APA7 產生、DOI 查詢、CrossRef、抓書目、參考文獻整理、摘要整理、文獻 Excel、讀書筆記表。與 citation-verifier/check-citations 劃界:那兩支做『引用查核』(內文與清單對不對得上、文獻是否真實存在),本 skill 做『文獻庫建置與橫向比較』;查引用真偽找那兩支。與 phd-researcher 劃界:那支做系統性回顧方法論(PRISMA 流程、偏誤風險、meta-analysis),本 skill 只做語料庫與矩陣這件工具活;要做正式 SR/MA 找那支,本 skill 產出的矩陣可餵給它。"
44
---
55

66
# 文獻矩陣建置器(Literature Matrix Builder)
@@ -30,14 +30,20 @@ Claude Code 環境呼叫同族技能須加 `anthropic-skills:` 前綴。
3030
1. **絕不代填綜整欄。** 理論視角、主要發現、與本研究的關聯這些欄位,
3131
工具一律留空並標黃底。**你可以協助研究者填**(讀完 PDF 後一起討論填什麼),
3232
**絕不憑摘要臆測**——摘要看不出研究設計細節,猜出來的內容會一路錯進文獻回顧。
33-
2. **不編造書目。** DOI 查不到就回報「查無」,不要用 LLM 記憶補書目資料——
33+
2. **撤稿查核在建檔當下做,不等事後。** 每次 `add` 自動反查 Crossref 的撤稿通知
34+
`filter=update-type:retraction,updates:{DOI}`)。已用陽性/陰性對照實測:
35+
已知被撤論文測得出、三篇正常論文不誤報。
36+
⚠️ **查核失敗 ≠ 沒被撤稿**——工具會標「⚠️ 查核失敗」而非「未發現」,
37+
這個區別攸關學術風險,不可混為一談。
38+
⚠️ Elsevier 慣例是把撤稿通知放在**同一個 DOI**(原文被替換成撤稿聲明)。
39+
3. **不編造書目。** DOI 查不到就回報「查無」,不要用 LLM 記憶補書目資料——
3440
那正是幻覺文獻的來源。腳本已內建此行為(CrossRef 404 直接報錯)。
35-
3. **摘要有著作權。** CrossRef 回傳的 abstract 著作權通常仍屬出版社。
41+
4. **摘要有著作權。** CrossRef 回傳的 abstract 著作權通常仍屬出版社。
3642
存進自己的文獻庫供個人研究閱讀屬合理使用,但**不要公開重製散布**
3743
文獻回顧中也應改寫轉述而非整段照抄。
38-
4. **PDF 抽不到 DOI 是常態,不是失敗。** 掃描版 PDF(無文字層)、舊文獻、
44+
5. **PDF 抽不到 DOI 是常態,不是失敗。** 掃描版 PDF(無文字層)、舊文獻、
3945
工作論文都可能沒有 DOI。此時改用 `--doi` 手動指定,或誠實告知該篇需人工建檔。
40-
5. **引用代碼要與論文一致。** 產出的 `key`(如 `Aguinis2012`)若與使用者慣用的
46+
6. **引用代碼要與論文一致。** 產出的 `key`(如 `Aguinis2012`)若與使用者慣用的
4147
BibTeX key 不同,以使用者的為準——這關係到內文引用能否對上。
4248

4349
## 工作流程

skills/literature-matrix-builder/scripts/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ CrossRef 建議在 User-Agent 帶聯絡信箱以取得較穩定的服務品質
4545
設環境變數即可,**腳本不硬編碼任何信箱**
4646

4747
```bash
48-
export CROSSREF_MAILTO=you@example.com
48+
export CROSSREF_MAILTO=<你的信箱>
4949
```
5050

5151
不設也能用,只是走一般池。

0 commit comments

Comments
 (0)