用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/flonat/claude-research --skill bib-filter命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
Use when you need to audit a research project against the init-project-research template.
Use when you need to validate a paper's bibliography — cross-references \cite{} keys against .bib files or embedded \bibitem entries, finds missing/unused/typo'd keys, and checks every key against the Paperpile library via the local resolver. Deep verification mode spawns parallel agents for DOI/metadata validation at scale. Fix mode rekeys drifted keys to canonical and stages missing entries for Paperpile.
Use when you need to bootstrap a full research project with directory scaffold and Overleaf symlink.
基于 SOC 职业分类
正在显示 SKILL.md
| name | bib-filter |
| description | Use when you need to filter a .bib file to only entries actually cited in a .tex project. |
| allowed-tools | Read, Glob, Grep, Write, Bash(ls*), Bash(wc*) |
| argument-hint | [path-to-tex-or-project-dir] |
Produce a filtered.bib containing only the .bib entries actually cited in the LaTeX project.
.bib (e.g., Paperpile/Paperpile export) contains hundreds of entries but the paper cites a subset.bib file size for Overleaf or arXiv uploadIf given a directory, find the main .tex and .bib files:
.tex: Glob for *.tex in the directory (and paper/ subdirectory if it exists). The main file is the one containing \begin{document}..bib: Look for \bibliography{...} or \addbibresource{...} in the main .tex to find the bib filename. Fall back to globbing *.bib.If given a specific .tex file, derive the .bib from it.
.texScan all .tex files in the project (main + any \input{}/\include{} files) for citation commands:
\cite{key1,key2}
\citep{key1,key2}
\citet{key1}
\citealt{key1}
\citealp{key1}
\citeauthor{key1}
\citeyear{key1}
\citetext{key1}
\parencite{key1,key2}
\textcite{key1}
\autocite{key1}
\footcite{key1}
\fullcite{key1}
\nocite{key1}
Handle:
\cite{key1,key2,key3} → extract all three\cite{key1, key2} → trim\cite[p.~5]{key1} or \citep[see][]{key1} → extract key1\nocite{*} → special case: means "include everything", so filtered.bib = full .bib (warn and stop)Collect into a deduplicated set of cited keys.
.bib and filterRead the .bib file. For each entry (@article{key,, @book{key,, @inproceedings{key,, etc.):
@string{}, @preamble{}, and @comment{} blocks (they may be needed by included entries)filtered.bibWrite filtered.bib in the same directory as the original .bib.
Report:
Original: N entries
Cited: M keys found in .tex
Filtered: M entries written to filtered.bib
Removed: N-M unused entries
If any cited keys are not found in the .bib, list them as warnings (these are missing references — suggest running /bib-validate).
references.bib with filtered.bib?" — ask before overwriting/bib-validate to resolve M missing citation keys".bib files: If the project uses multiple bib files (\bibliography{refs1,refs2}), read all of them and produce a single filtered.bib combining only cited entries\nocite{*}: Warn that all entries are cited and stop — filtering would be a no-op.bib entries use crossref = {parent-key}. If a cited entry cross-references another, include the parent even if it's not directly cited.tex, warn and do not write an empty fileThis skill writes files. Before any auto-commit, emit an outputs manifest and run the shared verifier. See skills/_shared/verify-outputs.md for the full protocol.
Required tail steps (before git commit):
Write manifest to <project>/.claude/state/outputs-manifest-<UTC-timestamp>.json listing every file this skill claims to have written in this invocation (paths relative to the project root).
Run:
python3 "$HOME/.claude/skills/_shared/verify_outputs.py" \
--manifest "$MANIFEST" \
--project-root "$PROJECT_ROOT"
If the verifier exits non-zero, do not commit — surface the missing-files list to the user and stop. The verifier has already logged an error entry to ~/.claude/ecc/skill-outcomes.jsonl, which feeds the launcher dashboard.
Why: closes the "hallucinated outputs" failure class (commit b2cff75, 2026-04-18).