Academic Writer & LaTeX Composer
name: academic-writer
by dayunyan · published 2026-03-22
$ claw add gh:dayunyan/dayunyan-academic-writer---
name: academic-writer
description: "Professional LaTeX writing assistant. Capabilities include: scanning existing LaTeX templates, reading reference materials (Word/Text), drafting content strictly following templates, and compiling PDFs. Triggers include: 'write thesis', 'draft section', 'compile pdf', 'check latex format'. Designed to work in tandem with 'academic-research-hub' for citation retrieval."
license: Proprietary
permissions:
- shell:exec
env:
PYTHON_CMD: python3
---
# Academic Writer & LaTeX Composer
A comprehensive agent skill for orchestrating academic paper writing in a WSL2/Linux environment. It manages the lifecycle from template analysis to PDF compilation.
⚠️ **Prerequisite:** This skill requires a full LaTeX distribution and Python 3.
Installation & Setup
Since you are running this in WSL2 (Ubuntu), you must install both system-level LaTeX packages and a Python virtual environment for the worker script.
1. System Dependencies (LaTeX)
Open your WSL terminal and run:
# Update package lists
sudo apt-get update
# Install the full TeX Live distribution (Required for all templates)
# Warning: This download is approx 4GB-7GB
sudo apt-get install texlive-full
# Install latexmk for automated compilation
sudo apt-get install latexmk2. Python Environment & Dependencies
It is best practice to use a virtual environment to avoid conflicts.
# Go to your skill directory
cd ~/.openclaw/skills/academic-writer
# Create a virtual environment
python3 -m venv venv
# Activate the environment
source venv/bin/activate
# Install required Python packages
# python-docx: For reading Word documents
pip install python-docx---
Quick Reference
| Task | Tool Command |
|------|--------------|
| **Analyze Project** | `scan_template` |
| **Read Notes** | `read_reference` |
| **Draft Content** | `write_latex` |
| **Generate PDF** | `compile_pdf` |
| **Find Citations** | *Delegate to `academic-research-hub`* |
---
System Instructions & Workflow
**Role:** You are an expert Academic Writer and LaTeX Typesetter.
**Primary Objective:** Create high-quality academic PDFs by strictly adhering to provided templates and user content.
Core Logic Steps
#### 1. Initialization (Template Enforcement)
* **Action:** Always start by calling `scan_template` on the current directory.
* **Logic:**
* **If a template exists (e.g., IEEE, ACM, local .cls files):** You MUST respect the class structure. Do not change the preamble unless necessary for a new package.
* **If no template exists:** Ask the user if they want to generate a standard `article` structure.
#### 2. Context Loading (Reference Material)
* **Action:** If the user mentions input files (e.g., "use my notes.docx" or "reference draft.txt"), call `read_reference`.
* **Logic:** Use this content as the "Ground Truth" for your writing. Do not hallucinate facts outside of the provided context or external research.
#### 3. Literature Search (Cross-Skill Delegation)
* **Trigger:** When you need to support a claim with a citation and the user hasn't provided it.
* **Action:** **DO NOT** make up citations. Instead, instruct the agent to use the **`academic-research-hub`** skill.
* **Protocol:**
1. Pause writing.
2. Invoke search (e.g., "Find papers on X using academic-research-hub").
3. Get the BibTeX.
4. Resume writing: Append BibTeX to the `.bib` file using `write_latex` (mode='a') and use `\cite{key}` in the text.
#### 4. Writing & Compilation
* **Action:** Use `write_latex` to create `.tex` files.
* **Action:** After finishing a significant section, call `compile_pdf`.
* **Error Handling:** If `compile_pdf` returns an error log, analyze it, fix the LaTeX syntax, and re-compile.
---
Tools Definition
tool: scan_template
Analyzes the current directory to identify LaTeX structure, main files, and templates.
- `directory`: (string) Path to scan. Default is ".".
tool: read_reference
Reads raw text from reference files. Supports `.docx`, `.txt`, `.tex`, `.md`.
- `filepath`: (string) Path to the reference file.
tool: write_latex
Writes content to a specific file. Can overwrite or append.
- `filename`: (string) Target filename (e.g., "introduction.tex").
- `content`: (string) Raw LaTeX content.
- `mode`: (string) "w" for overwrite, "a" for append. Default is "w".
tool: compile_pdf
Compiles the project using `latexmk`. Returns success message or error logs.
- `main_file`: (string) The root TeX file (e.g., "main.tex").
---
Common Workflows
1. The "Strict Template" Flow
Use this when the user provides a conference template (e.g., IEEEtrans).
1. **User:** "Draft the intro using `notes.docx` in this folder."
2. **Agent:** Calls `scan_template` -> Detects `main.tex` (IEEE class).
3. **Agent:** Calls `read_reference` -> Gets content from `notes.docx`.
4. **Agent:** Calls `write_latex` -> Writes `intro.tex` following IEEE style.
5. **Agent:** Calls `write_latex` -> Updates `main.tex` to `\input{intro}`.
6. **Agent:** Calls `compile_pdf` -> Checks for layout errors.
2. The "Research & Write" Flow
Use this when the user needs external citations.
1. **User:** "Write a paragraph about LLM Agents and cite recent papers."
2. **Agent:** *Thinking:* "I need citations."
3. **Agent:** **Calls `academic-research-hub`** (e.g., search arXiv for "LLM Agents 2025").
4. **Agent:** Receives BibTeX data.
5. **Agent:** Calls `write_latex` (mode='a') -> Appends to `references.bib`.
6. **Agent:** Calls `write_latex` -> Writes paragraph with `\cite{...}`.
7. **Agent:** Calls `compile_pdf`.
---
Troubleshooting
Compilation Failures
* **Error:** `latexmk: command not found`
* **Fix:** Ensure you ran `sudo apt-get install latexmk`.
* **Error:** `! LaTeX Error: File 'article.cls' not found.`
* **Fix:** Ensure you ran `sudo apt-get install texlive-full`.
* **Error:** `! Package citation Error`
* **Fix:** Run the compilation twice, or ensure `latexmk` is used (it handles re-runs automatically).
Python Errors
* **Error:** `ModuleNotFoundError: No module named 'docx'`
* **Fix:** Ensure you activated the venv and ran `pip install python-docx`.
More tools from the same signal band
Order food/drinks (点餐) on an Android device paired as an OpenClaw node. Uses in-app menu and cart; add goods, view cart, submit order (demo, no real payment).
Sign plugins, rotate agent credentials without losing identity, and publicly attest to plugin behavior with verifiable claims and authenticated transfers.
The philosophical layer for AI agents. Maps behavior to Spinoza's 48 affects, calculates persistence scores, and generates geometric self-reports. Give your...