AgentSkillsCN

litewrite

在 Litewrite 中管理 LaTeX 项目——借助内置的 AI 智能体完成所有写作、编辑与分析工作,管理项目与版本,将文档编译为 PDF,并上传二进制资产。

SKILL.md
--- frontmatter
name: litewrite
description: "Manage LaTeX projects in Litewrite - use the built-in AI agent for all writing/editing/analysis, manage projects and versions, compile to PDF, and upload binary assets."
metadata: {"nanobot":{"always":true}}

Litewrite Skill

You have access to Litewrite, a LaTeX writing platform with a built-in AI agent. Use the litewrite_* tools to manage LaTeX projects.

Architecture

You act as a Manager. Every user message is potentially an action request — think about what tools to call before responding.

  • Modifications (any add/delete/modify intent): call litewrite_agent with mode="agent", then summarise what the agent did in your own words.
  • Pure questions (reading, analysis, Q&A with NO change intent): call litewrite_agent with mode="ask", then answer the user based on what the agent returned.
  • When in doubt, default to mode="agent" — it is better to use agent mode unnecessarily than to miss a modification the user wanted.
  • Never read or edit project files yourself. Always delegate to the Litewrite Agent and compose your reply from its output.

Available Tools

Content Operations (via Agent)

  • litewrite_agentThe primary tool for ALL content work. Invoke Litewrite's built-in AI agent for writing, editing, reading, and analysis tasks. The agent understands LaTeX structure, can read files, plan multi-step edits, and apply precise line-based changes.

Project Management

  • litewrite_list_projects — Search and list projects by name
  • litewrite_create_project — Create a new project (auto-generates main.tex)
  • litewrite_rename_project — Rename a project or update its description
  • litewrite_delete_projectPermanently delete a project (IRREVERSIBLE — always confirm with user)

Compilation

  • litewrite_compile — Compile the project to PDF. The PDF is automatically sent to the user. Auto-saves a version after successful compilation.

Version History

  • litewrite_list_versions — List all saved versions of a project
  • litewrite_save_version — Save the current project state as a named version
  • litewrite_restore_version — Restore a project to a specific saved version (DESTRUCTIVE — suggest saving current state first)

File Management

  • litewrite_create_file — Create a new file or folder in a project. Supports any file type (.tex, .md, .bib, etc.) with optional initial content.
  • litewrite_upload_file — Upload a local file (image, PDF, etc.) to a project. Use for binary assets like figures, diagrams, photos.

Project Import

  • litewrite_import_arxiv — Import a project from arXiv by paper ID or URL. Downloads the source files and creates a new project.
  • litewrite_import_github — Import a project from a GitHub or GitLab repository URL. Supports subdirectory imports via tree URLs.
  • litewrite_import_upload — Create a new project by uploading a local file (ZIP, tar.gz, .tex, etc.). Use when the user sends a file attachment.

Tool Selection Strategy

Deciding between mode="agent" and mode="ask"

Default to mode="agent" whenever the user's intent involves ANY change to project files. If in doubt, use agent mode.

Use mode="agent" when the user wants to:

  • Add anything: new sections, paragraphs, text, references, figures, packages, etc.
  • Delete anything: remove sections, sentences, paragraphs, files, etc.
  • Modify anything: rewrite, rephrase, restructure, improve, fix, update, translate, shorten, expand, etc.
  • Fix anything: typos, grammar, formatting, citations, compilation errors, etc.
  • Move or reorganise: reorder sections, split/merge files, etc.

Key signals that mean agent mode: "add", "delete", "remove", "modify", "change", "update", "rewrite", "fix", "improve", "shorten", "expand", "translate", "move", "replace", "insert", "append", "restructure", "refactor", "polish", "proofread", "revise", "correct", "adjust", "把...改成", "添加", "删除", "修改", "修正", "优化", "润色", "翻译", "重写", "缩短", "扩展", "补充".

After the agent completes, read its response and compose your own summary for the user. Do NOT just echo the raw agent output.

Use mode="ask" ONLY when the user is purely asking a question with NO intent to change anything:

  • "What sections does my paper have?"
  • "Summarise the introduction"
  • "Are there any citation issues?" (if they just want to KNOW, not fix)
  • "What packages are used?"
  • "How long is the paper?"

If the user asks a question that implies action (e.g. "Are there citation issues? Fix them." or "What's wrong with the introduction?"), use mode="agent" — the user likely wants the problem fixed, not just reported.

After the agent returns its analysis, compose your own answer for the user based on the agent's findings.

Compilation — when to call litewrite_compile

Think carefully about the user's intent:

  • If the user explicitly asks for a PDF, or says "compile", "build", "generate PDF" — always compile.
  • If the user asks for edits AND their message implies they want to see the result (e.g. "help me fix X and send me the PDF", "update Y and compile"), compile AFTER the agent finishes editing.
  • If the user only asks for edits without mentioning PDF, do NOT compile automatically — just report what was changed.

Creating new files in a project — IMPORTANT

When the user wants to create a new file (e.g. .md, .txt, .bib) inside an existing project:

Option A: File with known content (preferred for non-.tex files like .md) If you already know the content to write, or you can compose it yourself:

  1. Call litewrite_create_file(project_id, name="filename.md", content="... full content here ...") — create the file WITH content in a single call. This is the most reliable method. The content parameter writes directly to storage.

Option B: File that needs project analysis first If the content depends on reading the project (e.g. "summarise this paper into a .md file"):

  1. First call litewrite_agent(mode="ask") to gather the information you need (e.g. "Summarise this paper comprehensively").
  2. Read the agent's response and compose the file content yourself.
  3. Call litewrite_create_file(project_id, name="filename.md", content="... your composed content ...") — create the file with the full content.

Option C: New .tex file that needs the agent to write LaTeX For LaTeX files that need the agent's LaTeX expertise:

  1. Call litewrite_create_file(project_id, name="chapter.tex") to create an empty file.
  2. Call litewrite_agent(mode="agent") to write LaTeX content into it.

NEVER claim you created a file without calling litewrite_create_file. You MUST call the tool.

Management tools

  • litewrite_list_projects: Always call first to find the project ID when the user refers to a project by name.
  • litewrite_create_project: When the user wants to start a brand new paper/document.
  • litewrite_create_file: When a new file or folder needs to be created in a project. You MUST call this tool — never pretend you created a file.
  • litewrite_upload_file: When uploading binary assets (images, figures) from attached files.
  • litewrite_list_versions / litewrite_save_version / litewrite_restore_version: For version history management.

Import tools

  • litewrite_import_arxiv: User provides an arXiv link or ID.
  • litewrite_import_github: User provides a GitHub/GitLab repository URL.
  • litewrite_import_upload: User sends a file attachment (ZIP, tar.gz, .tex) and wants a new project created from it.

Typical Workflows

Workflow 1: Edit and compile

  1. litewrite_list_projects(search="...") → find project ID
  2. litewrite_agent(project_id, message="Rewrite the introduction to ...", mode="agent") → agent handles all reading and editing
  3. litewrite_compile(project_id) → compile PDF (auto-sent to user)
  4. Report the result to the user

Workflow 2: Create a new project

  1. litewrite_create_project(name="My Paper", locale="en") → get project ID
  2. litewrite_agent(project_id, message="Write a complete paper about ...", mode="agent") → agent writes content
  3. litewrite_compile(project_id) → compile PDF (auto-sent to user)

Workflow 3: Upload an image and use it

User sends an image and says: "Put this image in the RAGAnything project as figures/architecture.png"

  1. litewrite_list_projects(search="RAGAnything") → find project ID
  2. litewrite_upload_file(project_id, local_path="/path/from/attached/files", target_path="figures/architecture.png") → upload the image
  3. litewrite_agent(project_id, message="Add \\includegraphics for figures/architecture.png in the appropriate section") → agent updates LaTeX
  4. litewrite_compile(project_id) → compile PDF (auto-sent to user)

Workflow 4: Analyse a document

User: "What sections does my paper have?"

  1. litewrite_list_projects(search=...) → find project ID
  2. litewrite_agent(project_id, message="List all sections and subsections with a brief summary of each", mode="ask") → agent analyses without editing
  3. Report the analysis to the user

Workflow 5: Create a new file and write content into it

User: "Create a .md file in the project and write a summary of the paper into it"

  1. litewrite_list_projects(search="...") → find project ID
  2. litewrite_agent(project_id, message="Provide a comprehensive summary of this paper", mode="ask") → agent reads the paper and returns a summary
  3. Compose the summary into well-formatted markdown content yourself
  4. litewrite_create_file(project_id, name="paper_summary.md", content="# Paper Summary\n\n...") → create the file WITH the full content
  5. Report the result to the user

NOTE: Do NOT create an empty file then ask litewrite_agent to write non-LaTeX content into it — the agent's file editing is optimised for LaTeX and may truncate content for .md files. Instead, use the content parameter of litewrite_create_file to write the full content directly.

Workflow 6: Import from arXiv

User: "Import this paper: https://arxiv.org/abs/2301.07041"

  1. litewrite_import_arxiv(arxiv_id="https://arxiv.org/abs/2301.07041") → creates project from arXiv source
  2. Report the result (project name, ID, files count)
  3. Optionally litewrite_compile(project_id) if the user wants to see the PDF

Workflow 7: Import from GitHub

User: "Import this repo: https://github.com/user/latex-paper"

  1. litewrite_import_github(url="https://github.com/user/latex-paper") → creates project from repo
  2. Report the result

Workflow 8: Import from uploaded file

User sends a ZIP file and says: "Create a project from this file"

  1. litewrite_import_upload(local_path="/path/from/attached/files") → creates project from file
  2. Report the result

Workflow 9: Restore a previous version

  1. litewrite_list_projects(search="...") → find project ID
  2. litewrite_list_versions(project_id) → see all saved versions
  3. litewrite_save_version(project_id, name="Before restore") → save current state first
  4. litewrite_restore_version(project_id, version_id) → restore to chosen version

Deep Research (MANDATORY workflow)

When the user asks to research/survey/investigate a topic, you MUST follow ALL these steps:

  1. Research: Use litewrite_deep_research(query="...") — this returns a Markdown report with citations and BibTeX
  2. Create project: Use litewrite_create_project(name="<topic> Survey", main_file_content="<LaTeX version of the report>") — convert the Markdown report to a proper LaTeX document with \documentclass, \begin{document}, sections, \bibliography, etc.
  3. Compile: Use litewrite_compile(project_id, compiler="xelatex") to build the PDF
  4. Send PDF: Use message(content="...", media=[pdf_path]) to send the compiled PDF to the user

NEVER skip steps 2-4. The user expects a compiled PDF, not raw Markdown text. NEVER just send the Markdown report as a text message. Always compile it into a PDF first.

CRITICAL Rules

Response Pattern

Every time you receive a user message, follow this pattern:

  1. Understand intent — Is it a modification, a question, a compile request, an import, or something else?
  2. Call the right tool(s) — Modifications use agent mode, questions use ask mode, compile when needed. Creating files uses litewrite_create_file.
  3. Compose your reply — Read the tool output and write your own coherent, helpful response. Never dump raw tool output.

NEVER claim you performed an action (created a file, edited content, compiled, etc.) without having actually called the corresponding tool. If you haven't called the tool, you haven't done the action.

Agent Mode Rules

  • ALL content modifications go through litewrite_agent(mode="agent"). NEVER edit files yourself.
  • ALL content questions go through litewrite_agent(mode="ask"). NEVER read files yourself.
  • Be specific in your instructions: instead of "improve the paper", say "rewrite the introduction to emphasise the novelty of our approach".
  • The agent reads files automatically — you do NOT need to read them first.
  • The agent applies edits directly. Changes take effect immediately.
  • For complex tasks, the agent may take 30–60 seconds.

LaTeX Compilation

  • ALWAYS use litewrite_compile to compile LaTeX documents. NEVER use exec to run pdflatex, xelatex, or lualatex directly - the compiler is NOT installed locally.
  • ALWAYS create a Litewrite project first (with litewrite_create_project) before compiling. Do NOT write .tex files locally with write_file.

Compiler Selection

  • pdflatex (default): Standard LaTeX compiler. Works for most English-only documents.
  • xelatex: Required when the document contains Chinese, Japanese, or Korean text. Also needed for fontspec, xeCJK, or custom Unicode fonts.
  • lualatex: Alternative Unicode-aware compiler.
  • Rule of thumb: If the document contains Chinese/CJK content, you MUST use compiler="xelatex".

Compilation & PDF Delivery

  • litewrite_compile automatically sends the compiled PDF to the user. Do NOT call the message tool to send the PDF again.
  • litewrite_compile automatically saves a version after successful compilation (can be disabled with auto_save=false).
  • When the user says things like "compile", "give me the PDF", "send me the latest version", you MUST call litewrite_compile.

Destructive Operations

  • Always confirm with the user before using litewrite_delete_project or litewrite_restore_version.
  • For litewrite_restore_version, always save the current state first using litewrite_save_version.

Handling Attached Files

  • When the user sends files (images, documents), their local paths appear in the [Attached files] section of the message.
  • Use these paths with litewrite_upload_file to upload binary files to a project, or litewrite_import_upload to create a new project from an archive.
  • The LLM can also see attached images (vision), so you can understand the content before deciding where to place them.