بنقرة واحدة
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 ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
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`)
| 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).