latex-conference-template-organizer — Claude Code skill
Turns cluttered conference LaTeX zip archives into a clean, Overleaf-ready project structure. It helps prepare a fresh paper draft by stripping out sample text and messy comments.
npx skills add Galaxy-Dawn/claude-scholar --skill latex-conference-template-organizer -a claude-codeWhat latex-conference-template-organizer does
The skill operates in an analyze-then-confirm mode. It extracts the archive into /tmp/latex-template-temp, identifies the root document by checking for \documentclass, and flags redundant files named sample, example, or test. Broken image paths and missing .sty or .cls dependencies are surfaced before anything changes.
Cleaned output lands in an output directory with subfolders for text, figures, tables, and styles. The root file imports modular sections via \input{text/...} while removing placeholder comments and sample authors. The workflow also supports anonymous review setups, such as disabling metadata with nonacm for ACM acmart conferences.
Requiring confirmation before touching files protects critical style declarations from accidental deletion. You need a zip archive to start.
What it helps with
- clean verbose example text and comments from conference templates
- split monolithic LaTeX sources into modular files inside
text/ - organize styles, figures, and tables into separate folders
- configure anonymous review settings for ACM paper submissions
Example prompts for the agent
- Organize this conference LaTeX template zip into a clean Overleaf project
- Clean up template.zip and split sections into separate files
- Prepare an anonymous submission template for KDD 2026
How to install latex-conference-template-organizer
1Skills CLI (Vercel)
npx skills add Galaxy-Dawn/claude-scholar --skill latex-conference-template-organizer -a claude-code2Manually: put the files in place
~/.claude/skills/latex-conference-template-organizer/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/latex-conference-template-organizer/
1Skills CLI (Vercel)
npx skills add Galaxy-Dawn/claude-scholar --skill latex-conference-template-organizer -a codex2Manually: put the files in place
.agents/skills/latex-conference-template-organizer/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add Galaxy-Dawn/claude-scholar --skill latex-conference-template-organizer -a cursor2Manually: put the files in place
.cursor/skills/latex-conference-template-organizer/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install Galaxy-Dawn/claude-scholar latex-conference-template-organizer2Manually: put the files in place
.github/skills/latex-conference-template-organizer/SKILL.md1Skills CLI (Vercel)
npx skills add Galaxy-Dawn/claude-scholar --skill latex-conference-template-organizer -a gemini-cli2Platform CLI
gemini skills install https://github.com/Galaxy-Dawn/claude-scholar --path skills/latex-conference-template-organizerManually: put the files in place
.devin/skills/latex-conference-template-organizer/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add Galaxy-Dawn/claude-scholar --skill latex-conference-template-organizer -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about latex-conference-template-organizer
How to install latex-conference-template-organizer in Claude Code?
Run npx skills add Galaxy-Dawn/claude-scholar --skill latex-conference-template-organizer -a claude-code in your terminal.
What does latex-conference-template-organizer do?
It extracts a conference LaTeX zip archive, identifies the primary document, and reorganizes contents into output/{text,figures,tables,styles}. It strips sample content, moves sections into separate files, and prepares the bundle for Overleaf.
How does the skill identify the main LaTeX file?
It checks common names like main.tex or paper.tex and runs grep for \documentclass. If multiple candidate files exist, it prompts the user to confirm the correct one.
Source text
SKILL.md · MIT
---
name: latex-conference-template-organizer
description: Organize messy conference LaTeX template .zip files into clean Overleaf-ready structure. Use when the user asks to "organize LaTeX template", "clean up .zip template", or "prepare Overleaf submission template".
version: 0.1.0
---
# LaTeX Conference Template Organizer
## Overview
Transform messy conference LaTeX template .zip files into clean, Overleaf-ready submission templates. Official conference templates often contain excessive example content, instructional comments, and disorganized file structures. This skill converts them into templates ready for writing.
## Working Mode
**Analyze-then-confirm mode**: First analyze issues and present them to the user, then execute cleanup after confirmation.
## Complete Workflow
```
Receive .zip file
↓
1. Extract and analyze file structure
↓
2. Identify main file and dependencies
↓
3. Diagnose issues (present to user)
↓
4. Ask for conference info (link/name)
↓
5. Wait for user confirmation of cleanup plan
↓
6. Execute cleanup, create output directory
↓
7. Generate README (with official website info)
↓
8. Output complete
```
## Step 1: Extract and Analyze
### Extract Files
Extract .zip to a temporary directory:
```bash
unzip -q template.zip -d /tmp/latex-template-temp
cd /tmp/latex-template-temp
find . -type f -name "*.tex" -o -name "*.sty" -o -name "*.cls" -o -name "*.bib"
```
### Identify File Types
| File Type | Purpose |
|-----------|---------|
| `.tex` | LaTeX source files |
| `.sty` / `.cls` | Style files |
| `.bib` | Bibliography database |
| `.pdf` / `.png` / `.jpg` | Image files |
### Identify Main File
**Common main file names:**
- `main.tex`
- `paper.tex`
- `document.tex`
- `sample-sigconf.tex`
- `template.tex`
**Identification methods:**
1. Check if filename matches common patterns
2. Search for files containing `\documentclass`
3. If multiple candidates exist, ask user to confirm
```bash
# Find files containing \documentclass
grep -l "\\documentclass" *.tex
```
## Step 2: Diagnose Issues
Present discovered issues to the user:
### Disorganized File Structure
- Multi-level directory nesting
- .tex files scattered across directories
- Unclear which file is the main file
### Redundant Content
Detect the following patterns and flag for cleanup:
- Filenames containing: `sample`, `example`, `demo`, `test`
- Comments containing: `sample`, `example`, `template`, `delete this`
### Dependency Issues
- Referenced `.sty`/`.cls` files missing
- Image/table reference paths incorrect
## Step 3: Ask for Conference Information
Ask the user for the following information:
```markdown
Please provide the following information (optional):
1. **Conference submission link** (recommended): Used to extract official submission requirements
2. **Conference name**: If no link available
3. **Other special requirements**: Such as page limits, anonymity requirements, etc.
```
## Step 4: Present Cleanup Plan
Present the cleanup plan to the user and wait for confirmation:
```markdown
## Cleanup Plan
### Issues Found
- [List diagnosed issues]
### Cleanup Approach
1. Main file: main.tex (clean example content)
2. Section separation: text/ directory
3. Resource directories: figures/, tables/, styles/
### Output Structure
[Show output directory structure]
Confirm execution? [Y/n]
```
## Step 5: Execute Cleanup
### Create Output Directory Structure
```bash
mkdir -p output/{text,figures,tables,styles}
```
### Clean Up Main File (main.tex)
**Keep:**
- `\documentclass` declaration
- Required package imports
- Core configuration (e.g., anonymous mode)
**Remove:**
- Example section content
- Verbose instructional comments
- Example author/title information
**Add:**
- Import sections with `\input{text/XX-section}`
**Example main.tex structure** (ACM template standard format):
```latex
\documentclass[...]{...} % Keep original template document class
% Required packages (keep original template package declarations)
%% ============================================================================
%% Preamble: Before \begin{document}
%% ============================================================================
%% Title and author information
\title{Your Paper Title}
\author{Author Name}
\affiliation{...}
%% Abstract (in preamble, before \maketitle)
\begin{abstract}
% TODO: Write abstract content
\end{abstract}
%% CCS Concepts and Keywords (in preamble)
\begin{CCSXML}
<ccs2012>
<concept>
<concept_id>10010405.10010444.10010447</concept_id>
<concept_desc>Applied computing~...</concept_desc>
<concept_significance>500</concept_significance>
</concept>
</ccs2012>
\end{CCSXML}
\ccsdesc[500]{Applied computing~...}
\keywords{keyword1, keyword2, keyword3}
%% ============================================================================
%% Document Body
%% ============================================================================
\begin{document}
\maketitle
%% Section content (imported from text/)
\input{text/01-introduction}
\input{text/02-related-work}
\input{text/03-method}
\input{text/04-experiments}
\input{text/05-conclusion}
\bibliographystyle{...}
\bibliography{references}
\end{document}
```
### KDD 2026 Anonymous Submission Special Configuration
For KDD 2026 (using ACM acmart template), add the `nonacm` option to the document class to remove footnotes:
```latex
%% ============================================================================
%% Document Class - KDD 2026 Anonymous Submission Configuration
%% Submission version: \documentclass[sigconf,anonymous,review,nonacm]{acmart}
%% Camera-ready: \documentclass[sigconf]{acmart}
%% ============================================================================
\documentclass[sigconf,anonymous,review,nonacm]{acmart}
%% ============================================================================
%% Disable ACM metadata (submission version only)
%% ============================================================================
\settopmatter{printacmref=false} % Disable ACM Reference Format
\setcopyright{none} % Disable copyright notice
\acmConference[]{}{}{} % Clear conference info (removes footnote)
\acmYear{} % Clear year
\acmISBN{} % Clear ISBN
\acmDOI{} % Clear DOI
%% Content to restore for camera-ready version:
%% \acmConference[KDD '26]{Proceedings of the 30th ACM SIGKDD Conference on Knowledge Discovery and Data Mining}{August 09--13, 2026}{Jeju, Korea}
%% \acmISBN{978-1-4503-XXXX-X/26/08}
%% \acmDOI{10.1145/nnnnnnn.nnnnnnn}
```
### Create Section Files (text/)
Create independent .tex files for each section, **containing only section content** without `\begin{document}` etc.:
**text/01-introduction.tex**:
```latex
\section{Introduction}
% TODO: Write introduction content
```
**text/02-related-work.tex**:
```latex
\section{Related Work}
% TODO: Write related work content
```
**text/03-method.tex**:
```latex
\section{Method}
% TODO: Write method content
```
**text/04-experiments.tex**:
```latex
\section{Experiments}
% TODO: Write experiments content
```
**text/05-conclusion.tex**:
```latex
\section{Conclusion}
% TODO: Write conclusion content
```
**Important notes:**
- **Abstract** should be placed in main.tex preamble (before `\begin{document}`), after `\maketitle`
- **Files in text/ contain only sections**, starting with `\section{...}`
- Do not include `\begin{document}` or other wrappers in text/ files
### Copy Style Files (styles/)
Copy all `.sty` and `.cls` files from the original template to `styles/`:
```bash
find /tmp/latex-template-temp -type f \( -name "*.sty" -o -name "*.cls" \) -exec cp {} output/styles/ \;
```
**Note:** Maintain the original template's directory structure (e.g., `acmart/`), only move to `styles/`.
### Handle Images and Tables
```bash
# Copy image files
find /tmp/latex-template-temp -type f \( -name "*.png" -o -name "*.jpg" -o -name "*.jpeg" -o -name "*.pdf" \) -exec cp {} output/figures/ \;
# Copy table files (if any)
find /tmp/latex-template-temp -type f -name "*.tex" | grep -i table | while read f; do cp "$f" output/tables/; done
```
### Create Example Table File
**Important:** Overleaf automatically deletes empty directories. To prevent the `tables/` directory from being deleted, create an example table file:
```bash
# Create example table file
cat > output/tables/example-table.tex << 'EOF'
% Example table file
% Can be deleted or replaced with your own tables
\begin{table}[h]
\centering
\caption{Example Table}
\label{tab:example}
\begin{tabular}{lccc}
\toprule
Method & Metric 1 & Metric 2 & Metric 3 \\
\midrule
Baseline & 85.3 & 12.4 & 0.92 \\
Method A & 87.1 & 11.8 & 0.95 \\
\textbf{Ours} & \textbf{89.4} & \textbf{10.2} & \textbf{0.97} \\
\bottomrule
\end{tabular}
\end{table}
EOF
```
**Notes:**
- If the original template already has table files, this step can be skipped
- The example table is only to prevent directory deletion; it can be deleted or replaced
- Reference tables in the paper using `\input{tables/example-table.tex}` or copy table content directly into section files
### Copy Bibliography
```bash
# Copy .bib files
find /tmp/latex-template-temp -type f -name "*.bib" -exec cp {} output/ \;
```
## Step 6: Generate README
### Information Source Priority
1. **Conference link provided by user** → Extract using WebFetch
2. **Template file comments** → Extract from .tex files
3. **Default inference** → Infer from `\documentclass`
### README Template
```markdown
# [Conference Name] Submission Template
## Template Information
- **Conference**: [Conference name]
- **Website**: [Conference link]
- **Template version**: [From template or website]
- **Document class**: [Extracted documentclass]
## Submission Requirements
### Page and Format
- **Page limit**: [From website or template]
- **Two-column/Single-column**: [Detect layout]
- **Font size**: [10pt/11pt etc.]
### Anonymity Requirements
- **Blind review required**: [Detect template mode]
- **Author information handling**: [Instructions]
### Compilation Requirements
- **Recommended compiler**: [XeLaTeX/pdfLaTeX/LuaLaTeX]
- **Special package requirements**: [If any]
## Overleaf Usage
### Upload Steps
1. Create a new project on Overleaf
2. Upload the entire `output/` directory
3. Set compiler to [specified compiler]
4. Click Recompile to test
### File Description
- `main.tex` - Main file, start here
- `text/` - Section content, edit as needed
- `figures/` - Place images here
- `tables/` - Place tables here
- `styles/` - Style files, no modification needed
- `references.bib` - Bibliography database
## Common Operations
### Adding Images
```latex
\begin{figure}[h]
\centering
\includegraphics[width=0.8\linewidth]{figures/your-image.pdf}
\caption{Image caption}
\label{fig:your-label}
\end{figure}
```
### Adding Tables
```latex
\begin{table}[h]
\centering
\begin{tabular}{|c|c|}
\hline
Column 1 & Column 2 \\
\hline
Content 1 & Content 2 \\
\hline
\end{tabular}
\caption{Table caption}
\label{tab:your-label}
\end{table}
```
### Adding References
Add entries to `references.bib` and cite in text using `\cite{key}`.
## Notes
- [Warnings extracted from template comments]
- [Important notes extracted from website]
```
### Extract Information from Website (if user provided a link)
Use WebFetch to get conference submission page content and extract:
- Page limits
- Anonymity requirements
- Format requirements
- Submission deadlines
## Step 7: Cleanup and Output
```bash
# Clean up temporary files
rm -rf /tmp/latex-template-temp
# Output completion message
echo "Template cleanup complete! Output directory: output/"
echo "Please upload the output/ directory to Overleaf to test compilation."
```
## Error Handling
| Error Scenario | Handling Approach |
|----------------|-------------------|
| Main file not found | List all .tex files, let user choose |
| Dependency file missing | Warn user, attempt to locate from template directory |
| Cannot extract conference info | Use default info from template, mark as [To be confirmed] |
| Website inaccessible | Fall back to template comments, prompt user to fill in manually |
| Extraction failed | Prompt user to check .zip file integrity |
## Common Conference Template Types
| Conference | Document Class | Notes |
|------------|---------------|-------|
| **KDD (ACM SIGKDD)** | `acmart` | **Anonymous submission requires `nonacm` option to remove footnotes** |
| ACM Conferences | `acmart` | Requires anonymous mode `\acmReview{anonymous}` |
| CVPR/ICCV | `cvpr` | Two-column, strict page limits |
| NeurIPS | `neurips_2025` | Anonymous review, no page limit |
| ICLR | `iclr2025_conference` | Two-column, requires session info |
| AAAI | `aaai25` | Two-column, 8 pages + references |
### KDD Anonymous Submission Configuration Notes
KDD 2026 uses the ACM acmart template and requires special configuration for anonymous submission:
**Submission version** (remove all ACM metadata footnotes):
```latex
\documentclass[sigconf,anonymous,review,nonacm]{acmart}
\settopmatter{printacmref=false}
\setcopyright{none}
\acmConference[]{}{}{}
\acmYear{}
\acmISBN{}
\acmDOI{}
```
**Camera-ready version** (restore ACM metadata):
```latex
\documentclass[sigconf]{acmart}
\settopmatter{printacmref=true}
\setcopyright{acmcopyright}
\acmConference[KDD '26]{...}{...}{...}
\acmYear{2026}
\acmISBN{978-1-4503-XXXX-X/26/08}
\acmDOI{10.1145/nnnnnnn.nnnnnnn}
```
## Quick Reference
### Detect Document Type
```bash
# Detect document class
grep "\\documentclass" main.tex
# Detect anonymous mode
grep -i "anonymous\|review\|blind" main.tex
# Detect page settings
grep "pagelimit\|pageLimit\|page_limit" main.tex
```
### Common Cleanup Patterns
```bash
# Remove example files
rm -f sample-* example-* demo-* test-*
# Remove temporary files
rm -f *.aux *.log *.out *.bbl *.blg
```
© Galaxy-Dawn · MIT · Galaxy-Dawn/claude-scholar