From 1c53ae13a47fd88b97c9d414bcc29b4be54929d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois-Xavier=20Wicht?= Date: Tue, 13 Oct 2026 14:13:03 +0200 Subject: [PATCH] Split bibliography into dblp.bib and refs.bib --- CLAUDE.md | 2 +- README.md | 4 ++-- bib/dblp.bib | 14 ++++++++++++++ bib/refs.bib | 15 +-------------- main.tex | 1 + 5 files changed, 19 insertions(+), 17 deletions(-) create mode 100644 bib/dblp.bib diff --git a/CLAUDE.md b/CLAUDE.md index 6dd342b..6b54ac6 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -37,7 +37,7 @@ Follow `writing-style-guide.md` in papers and in conversation alike; its "Talkin - 🔴 **NEVER BYPASS A SOURCE**. A bypass is any copy other than the one you were sent to — another site's posting, a preprint for the published version, a publisher's or university's record, a citing paper's account — and any summary, including the fetch tool's. Reading a source means having its complete text on disc and reading it there. **A session whose shell reaches the network fetches the source itself**: `curl -L -o /context/related-papers/.pdf `, and then verify what landed before anything reads it — the page count and a line of the text, a short or wrong file being the normal failure, and `file` having once reported a 26-page PDF as two pages. Where the shell cannot reach it, or a Cloudflare bot check blocks it, ask the person in one line to open the link in Firefox and save the file in `/ingest/` — the document and the link — say which it was, then STOP that part of the task and do the rest. Once the file is in `ingest/`, move it to `context/related-papers/` under its name and verify it there. - 🔴 **Sources are kept in `context/related-papers/`, on the pattern of `~/library`.** A source is named `--.pdf`, for example `1985-chaum-security-without-identification.pdf`; a related file has the same name with a suffix, for example `1985-chaum-security-without-identification-presentation.pdf`. Each source has a sidecar file with the same name and the extension `.md`: between two `---` lines, `venue: `, `tags: ["", ...]` and `authors: ["", ...]`, and after them notes on the source, written from its complete text. - 🔴 **Work only from the complete original source**, never from a summary, an excerpt, a fragment, memory or a secondary account, and never present such a thing as a finding. -- 🔴 **Fetch every reference through the dblp MCP server, which `.mcp.json` registers**: `search_publications` finds the entry and `get_bibtex` returns its BibTeX. Where the server is not connected, use the shell: `dblp-cli search ` and `dblp-cli bibtex `. A reference `dblp-cli` does not find is reported to the person, never written by hand. 🔴 **Never update its index**: never run `dblp-cli update` or `dblp-cli index`. +- 🔴 **Fetch every reference through the dblp MCP server, which `.mcp.json` registers**: `search_publications` finds the entry and `get_bibtex` returns its BibTeX, which goes in `bib/dblp.bib`. Where the server is not connected, use the shell: `dblp-cli search ` and `dblp-cli bibtex `. A reference dblp does not find goes in `bib/refs.bib`, with the BibTeX doi.org returns for its DOI: `curl -LH "Accept: application/x-bibtex" https://doi.org/`. A reference with no DOI is reported to the person, never written by hand. 🔴 **Never update its index**: never run `dblp-cli update` or `dblp-cli index`. - **Never produce false content.** Verify every claim against a source. No hand-waving: if you cannot state something precisely, say so. - 🔴 **Never ask permission to read.** Read everything the job needs. A file under a granted folder you read yourself, in the mount. - Files uploaded to a Claude.ai project (`/mnt/project/`) are zip archives of pre-extracted pages, not PDFs: `unzip -o /mnt/project/.pdf -d /home/claude/papers//` and read `N.txt` and `N.jpeg`. diff --git a/README.md b/README.md index 7162907..aea675e 100644 --- a/README.md +++ b/README.md @@ -4,11 +4,11 @@ This repository is a template for an academic paper in LaTeX, written with Claud ## Layout -`main.tex` uses the article class; a marked block at its top switches it to a venue class, whose files go in `venue/`. It loads the macros in `macros/` and inputs the sections in `sections/` and the proofs in `appendix/`. Every symbol of the paper is a macro in `macros/notation.tex`, listed with its meaning in `context/notation.md`. Figures are standalone TikZ files in `figures/src/` that read their data from `figures/data/`, and the paper includes their compiled PDFs from `figures/build/`. The references are in `bib/refs.bib`, processed by biblatex with biber. +`main.tex` uses the article class; a marked block at its top switches it to a venue class, whose files go in `venue/`. It loads the macros in `macros/` and inputs the sections in `sections/` and the proofs in `appendix/`. Every symbol of the paper is a macro in `macros/notation.tex`, listed with its meaning in `context/notation.md`. Figures are standalone TikZ files in `figures/src/` that read their data from `figures/data/`, and the paper includes their compiled PDFs from `figures/build/`. The references are in `bib/dblp.bib` and `bib/refs.bib`, processed by biblatex with biber. `context/` contains the material Claude Code works from: the outline with the claims of the paper and the goal of each section, the notation table, and referee reviews, which Claude Code does not edit; and the related papers, which Claude Code downloads into `context/related-papers/` as `--.pdf`, each with a `.md` file of notes. When a download is blocked, you save the file from Firefox into `ingest/`, and Claude Code moves it to `context/related-papers/`. `scratch/` contains explorations, one dated folder each, indexed in `scratch/README.md`. `.claude/` contains the permissions of Claude Code and the commands `/review-section`, `/check-notation`, `/tighten-prose` and `/new-scratch`. `CLAUDE.md` contains the rules Claude Code follows and imports two files: `writing-style-guide.md`, the style guide, and `claudese.md`, the list of banned words and phrases. `.mcp.json` registers the dblp MCP server. -Entries from dblp, through the dblp MCP server or `dblp-cli bibtex `, may be added to `bib/refs.bib` at any time. +Entries from dblp, through the dblp MCP server or `dblp-cli bibtex `, go in `bib/dblp.bib` and may be added at any time. A reference not in dblp goes in `bib/refs.bib`, with the BibTeX doi.org returns for its DOI. ## Building diff --git a/bib/dblp.bib b/bib/dblp.bib new file mode 100644 index 0000000..f162a05 --- /dev/null +++ b/bib/dblp.bib @@ -0,0 +1,14 @@ +% Entries from dblp, through the dblp MCP server or dblp-cli bibtex ; they may be added to this file at any time. + +@article{DBLP:journals/jcss/GoldwasserM84, + author = {Shafi Goldwasser and Silvio Micali}, + title = {Probabilistic Encryption.}, + journal = {J. Comput. Syst. Sci.}, + volume = {28}, + number = {2}, + pages = {270-299}, + year = {1984}, + doi = {10.1016/0022-0000(84)90070-9}, + url = {https://doi.org/10.1016/0022-0000(84)90070-9}, + biburl = {https://dblp.org/rec/journals/jcss/GoldwasserM84.html}, +} diff --git a/bib/refs.bib b/bib/refs.bib index 6bd1fa6..2f42d10 100644 --- a/bib/refs.bib +++ b/bib/refs.bib @@ -1,14 +1 @@ -% Entries from dblp, through the dblp MCP server or dblp-cli bibtex , may be added to this file at any time. - -@article{DBLP:journals/jcss/GoldwasserM84, - author = {Shafi Goldwasser and Silvio Micali}, - title = {Probabilistic Encryption.}, - journal = {J. Comput. Syst. Sci.}, - volume = {28}, - number = {2}, - pages = {270-299}, - year = {1984}, - doi = {10.1016/0022-0000(84)90070-9}, - url = {https://doi.org/10.1016/0022-0000(84)90070-9}, - biburl = {https://dblp.org/rec/journals/jcss/GoldwasserM84.html}, -} +% References not in dblp, each with the BibTeX that doi.org returns for its DOI: curl -LH "Accept: application/x-bibtex" https://doi.org/ diff --git a/main.tex b/main.tex index fa4d2b4..d509b46 100644 --- a/main.tex +++ b/main.tex @@ -15,6 +15,7 @@ \input{macros/notation} \usepackage[backend=biber,style=numeric-comp]{biblatex} +\addbibresource{bib/dblp.bib} \addbibresource{bib/refs.bib} \usepackage{hyperref}