diff --git a/README.md b/README.md new file mode 100644 index 0000000..7162907 --- /dev/null +++ b/README.md @@ -0,0 +1,15 @@ +# Paper template + +This repository is a template for an academic paper in LaTeX, written with Claude Code as an assistant. It compiles as it is and contains placeholder content. + +## 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. + +`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. + +## Building + +`make` compiles the figures, then the paper with latexmk into `build/make/`, and copies the PDF to `main.pdf`. `make figures` compiles each `figures/src/*.tex` into `figures/build/`, and recompiles a figure when its source or a file in `figures/data/` has changed. `make watch` runs latexmk in continuous mode into `build/`, the folder vimtex also uses through `.latexmkrc`; since `make` writes into `build/make/`, it can run while vimtex or `make watch` is compiling. `make clean` removes `build/` and `figures/build/`. `make arxiv` writes `build/arxiv.tar.gz` with the sources, the compiled figures and the `.bbl` file, without `context/`, `scratch/`, `ingest/`, `.claude/`, `CLAUDE.md`, `writing-style-guide.md`, `claudese.md` and `.mcp.json`. `make wordcount` runs texcount over `sections/` and `appendix/`. diff --git a/context/notation.md b/context/notation.md new file mode 100644 index 0000000..d755ae7 --- /dev/null +++ b/context/notation.md @@ -0,0 +1,9 @@ +# Notation + +Every symbol of the paper has a macro in `macros/notation.tex` and a row here. + +| Symbol | Macro | Meaning | +|---|---|---| +| λ | `\secpar` | security parameter | +| negl | `\negl` | negligible function | +| 𝒫 | `\parties` | set of parties | diff --git a/context/outline.md b/context/outline.md new file mode 100644 index 0000000..c59a9c6 --- /dev/null +++ b/context/outline.md @@ -0,0 +1,45 @@ +# Outline + +## Problem + + + +## Contributions + +1. +2. +3. + +## Section goals + +### 1. Introduction + + + +### 2. Model + + + +### 3. Construction + + + +### 4. Security + + + +### 5. Evaluation + + + +### 6. Related work + + + +### 7. Conclusion + + + +### Appendix: Proofs + + diff --git a/context/related-papers/.gitkeep b/context/related-papers/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/context/reviews/.gitkeep b/context/reviews/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/ingest/.gitkeep b/ingest/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/scratch/README.md b/scratch/README.md new file mode 100644 index 0000000..78c63e2 --- /dev/null +++ b/scratch/README.md @@ -0,0 +1,8 @@ +# Scratch + +Each exploration has one folder, `scratch/YYYY-MM-DD-/`, with a `notes.md` recording its goal, what was tried and the outcome. Command output Claude Code needs, and anything else the exploration produces, goes in the same folder; PDFs and `build/` folders under `scratch/` are not committed. The command `/new-scratch ` creates the folder and adds its row to the index below. + +## Index + +| Date | Slug | Goal | Outcome | +|---|---|---|---|