Dùng khi user nói 'extract citations', 'trích dẫn luận văn', 'audit thesis cite', 'verify bibliography', 'orphan citation check', 'kiểm tra cite luận văn', hoặc khi review thesis chapter trước defense. Parse `[N]` cite keys từ thesis chapters + verify chéo với `documents/<thesis-dir>/references/bibliography.md` → báo 3 bucket: matched / orphan-body (cite không có entry) / orphan-bib (entry không cite).
Instalação
Instalar com Codex ou Claude Copie este prompt, cole no Codex, Claude ou outro assistente e deixe que ele revise a página da skill e instale para você.
Dùng khi user nói 'extract citations', 'trích dẫn luận văn', 'audit thesis cite', 'verify bibliography', 'orphan citation check', 'kiểm tra cite luận văn', hoặc khi review thesis chapter trước defense. Parse `[N]` cite keys từ thesis chapters + verify chéo với `documents/<thesis-dir>/references/bibliography.md` → báo 3 bucket: matched / orphan-body (cite không có entry) / orphan-bib (entry không cite).
user-invocable
true
Thesis Citation Extract Skill
Tự động extract [N] citation keys từ thesis chapter markdown + verify chéo với canonical bibliography (documents/<thesis-dir>/references/bibliography.md) theo IEEE format. Phát hiện 2 loại orphan: broken refs (cite trong body nhưng không có entry) + dead weight (entry trong bib nhưng không được cite). Output JSON cache vào data/last-run.json để track delta giữa các lần audit.
Khi nào dùng
Trước khi flip documents/<thesis-dir>/** chapter PR sang DONE
Audit thesis V1/V2/V3 trước defense GVHD/GVPB
Thesis closure sub-task — verify cite hygiene
Phát hiện citation drift sau khi user thêm/sửa bibliography
Quy trình (≈3 phút)
Extract — chạy bash scripts/extract-citations.sh <chapter-files...> → output filename:line:cite_key cho mọi [N] / [N, M] / [N]–[M] trong body. Range expand thành cá nhân ([5]–[7] → 5, 6, 7); danh sách [1, 4, 9] tách 1+4+9.
Verify — chạy bash scripts/verify-citations.sh <chapter-files...> <bibliography-path> → so sánh tập cite (body) vs tập entry (bib). Output 3 nhóm + báo cáo summary stdout + ghi JSON cache vào data/last-run.json.
Interpret — đọc summary:
✅ matched: N — cite có entry, OK
⚠️ orphan-body: N — cite trong body nhưng KHÔNG có entry bib → broken reference (fix bib hoặc xóa cite)
⚠️ orphan-bib: N — entry trong bib nhưng KHÔNG được cite → dead weight (xóa entry hoặc thêm cite trong body)
data/last-run.json — cache lần verify gần nhất (delta tracking, generated at runtime)
Gotchas
Bibliography flat list — recommended convention: bibliography renumbered sang single sequential [1]...[N] flat (NOT per-chapter sections). Section headings ## Chapter N chỉ là grouping cho reader; cite key độc lập section.
Range expansion — [5]–[7] dùng em-dash – (U+2013), KHÔNG phải hyphen -. Parser support cả 2 (em-dash + hyphen) để phòng typo.
List separator — [1, 2] dùng comma + space; parser tolerate [1,2] (no space) và [1 ,2] (trailing space).
Code block exclusion — KHÔNG parse [N] trong code fence ``` (vd array[1] Java code). Parser skip lines giữa code fence markers.
Markdown link false-positive — [text](url) link syntax có [] nhưng KHÔNG phải cite. Parser yêu cầu content trong [] PHẢI là số nguyên thuần (^[0-9]+$).
Bibliography entry regex — entry line PHẢI bắt đầu chính xác [N] đầu line (không indent). Indent line bị skip vì có thể là continuation hoặc quote.
Backup file scope — KHÔNG include chapter-*-backup-YYYY-MM-DD.md trong verify mặc định. Backup là snapshot, không phản ánh current cite state.
Out of scope: scope của skill này — chỉ extract + verify, KHÔNG sửa source. Người dùng tự fix (sửa bib hoặc body) sau khi nhìn report.
Adapt to your project's path layout — default documents/<thesis-dir>/references/bibliography.md. Adjust scripts/args nếu layout khác (vd thesis/references/).