一键导入
bib-filter
Use when you need to filter a .bib file to only entries actually cited in a .tex project.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Use when you need to filter a .bib file to only entries actually cited in a .tex project.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
Use when you need to compare a project .bib against a Paperpile project/topic folder to find uncited papers or unfiled entries.
Use when you need to extract citations from a PDF and generate a validated .bib file. Reads the PDF, identifies all referenced works, constructs BibTeX entries with metadata verification, then runs bib-validate.
Use when you need to check a LaTeX submission against a PDF assessment brief.
Use when you need to replicate a quantitative analysis in a second language (R↔Python↔Stata↔Julia) to verify correctness. Level 1 of the verification hierarchy.
Use when you need to challenge research assumptions or stress-test arguments.
Review user-facing documentation for accuracy, consistency, and completeness across private, public, nested repos, and the user manual. Use when docs feel stale, after major changes, or before sharing. (Replaces `repo-doc-audit`)
基于 SOC 职业分类
| 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] |
| skill-dependencies | ["bib-validate"] |
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 overwritingbib-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:
uv run python "<skills-root>/_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 ~/.local/state/ai-workflows/skill-outcomes.jsonl, which feeds the shared skill-health dashboard.
Why: closes the "hallucinated outputs" failure class (commit b2cff75, 2026-04-18).