Skip to content
Development
Skill

/scholar-writing

End-to-end academic paper writing workflow. Takes a research repository and produces a publication-ready LaTeX manuscript for top ML/AI conferences (NeurIPS, ICML, ICLR, ACL, AAAI, COLM). Covers repo understanding, structure planning, section drafting, citation management,

From plugin
maestro-flow
51124 skills25 agents29 commands3 MCP
Install
$ npx -y skills add catlog22/maestro-flow --skill scholar-writing --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/scholar-writing

Context preview

The summary Claude sees to decide when to auto-load this skill.

End-to-end academic paper writing workflow. Takes a research repository and produces a publication-ready LaTeX manuscript for top ML/AI conferences (NeurIPS, ICML, ICLR, ACL, AAAI, COLM). Covers repo understanding, structure planning, section drafting, citation management,

SKILL.md

scholar-writing.SKILL.md
name: scholar-writing
disable-model-invocation: true
description: End-to-end academic paper writing workflow. Takes a research repository and produces a publication-ready LaTeX manuscript for top ML/AI conferences (NeurIPS, ICML, ICLR, ACL, AAAI, COLM). Covers repo understanding, structure planning, section drafting, citation management, anti-AI polishing, and conference formatting. Triggers on "write paper", "draft paper", "scholar writing", "paper writing workflow".
allowed-tools: Read, Write, Edit, Bash, Glob, Grep, WebSearch, WebFetch, TodoWrite, AskUserQuestion, Task
session-mode: run
contract:
  consumes: []
  produces:
    - { path: outputs/delivery.json, kind: delivery-manifest, alias: latest-paper-delivery, role: primary }
  gates:
    entry: []
    exit: []

<required_reading> @~/.maestro/workflows/run-mode.md </required_reading>

Scholar Writing

End-to-end workflow for writing publication-ready ML/AI papers from research repositories. Integrates paper writing craft, citation verification, and anti-AI polishing into a structured 6-phase pipeline.

Run Lifecycle

Follow `~/.maestro/workflows/run-mode.md`. If an orchestrator injected `run_id` / `run_dir` in the birth packet, use them and do NOT call `maestro run create`. Otherwise self-start before Phase 1:

maestro run create scholar-writing --session <YYYYMMDD-scholar-writing-{topic}> --intent "<short phrase>"

Session slug is ASCII-only, ≤64 chars. The paper itself lives in the user's `outputDir` (a working area in the user's repo, like source code — **not** the Run truth source). Write the workflow synthesis and the delivery manifest (paths to `paper.tex` / `paper.pdf` / `references.bib`, verification status, remaining action items) to `{run_dir}/report.md`, and the machine-readable delivery-paths list to `{run_dir}/outputs/delivery.json` — the contract registers it as the primary artifact `latest-paper-delivery`, and the runtime only scans `{run_dir}/outputs/`, so a manifest written anywhere else is invisible. Close per the Final Checklist.

{ "paper_tex": "", "paper_pdf": "", "references_bib": "", "sections": [], "verified": false, "open_items": [] }

Pre-load (before execution)

1. **Codebase docs**: If `.workflow/codebase/ARCHITECTURE.md` exists, read for project context 2. **Specs**: `maestro load --type spec --category coding` — load coding conventions 3. **Wiki knowledge**: `maestro search "academic writing research paper" --json` — top 5 entries as prior context 4. All optional — proceed without if unavailable

Architecture Overview

User: "Write a paper from this repo"
         |
         v
┌──────────────────────────────────────────────────────────────────────┐
│  SKILL.md (Orchestrator)                                             │
│  Collect preferences → Dispatch phases → Track progress              │
└──────────┬───────────────────────────────────────────────────────────┘
           |
   ┌───────┼───────┬───────────┬──────────┬──────────┬────────────┐
   v       v       v           v          v          v            v
┌──────┐┌──────┐┌──────────┐┌──────────┐┌──────────┐┌──────────────┐
│ P1   ││ P2   ││ P3       ││ P4       ││ P5       ││ P6           │
│ Repo ││Struct││ Section  ││ Citation ││ Anti-AI  ││ Conference   │
│ Under││Plan  ││ Drafting ││ Manage   ││ Polish   ││ Formatting   │
└──┬───┘└──┬───┘└────┬─────┘└────┬─────┘└────┬─────┘└──────┬───────┘
   │       │         │           │           │             │
   v       v         v           v           v             v
 repo    outline   full draft   verified    polished     paper.tex
 context  + plan               .bib file   prose        (camera-ready)

Key Design Principles

1. **Proactive drafting**: Deliver complete drafts, then iterate on feedback. Do not block on every section. 2. **Never hallucinate citations**: Every citation must be verified via WebSearch and Google Scholar. Mark unverifiable references as `[CITATION NEEDED]`. 3. **Narrative-first writing**: A paper is a story with one clear contribution. Define the What/Why/So What before writing. 4. **Anti-AI polish is mandatory**: All prose passes through pattern detection and humanization before final output. 5. **Conference-aware from start**: Target venue influences page limits, required sections, and framing.

Interactive Preference Collection

Before dispatching to any phase, collect these preferences:

Questions to ask the user:

1. Research Repository
   "Where is the research repo? (path or URL)"
   → repoPath

2. Target Conference
   Options: NeurIPS | ICML | ICLR | ACL | AAAI | COLM | Other
   → targetConference

3. Paper Type
   Options: Full Paper | Short Paper | Workshop Paper
   → paperType

4. Output Directory
   "Where should the paper be written? (default: ./paper/)"
   → outputDir

5. Existing Materials
   "Any existing drafts, notes, or outlines to build on? (path or 'none')"
   → existingMaterials

6. Writing Language
   Options: English | Chinese | Bilingual
   → writingLanguage

Store responses as `paperPreferences` context for all phases.

Auto Mode Defaults

When `workflowPreferences.autoYes === true`:

  • Use detected repo path from cwd
  • Default to NeurIPS format, Full Paper, English
  • Output to `./paper/`
  • Skip confirmation prompts within phases

Execution Flow

> **COMPACT DIRECTIVE**: Context compression MUST check TodoWrite phase status. > The phase currently marked `in_progress` is the active execution phase -- preserve its FULL content. > Only compress phases marked `completed` or `pending`.

TodoWrite Setup

Paper Writing Workflow:
- [ ] Phase 1: Repo Understanding — explore repo, identify contribution
- [ ] Phase 2: Structure Planning — plan outline, define narrative
- [ ] Phase 3: Section Drafting — write all sections
- [ ] Phase 4: Citation Management — find, verify, format citations
- [ ] Phase 5: Anti-AI Polish — remove AI patterns, humanize prose
- [ ] Phase 6: Conference Form
Read more
Ships withmaestro-flow

Intent-driven workflow orchestration for multi-agent AI development — adaptive lifecycle engine, self-reinforcing knowledge graph, and visual dashboard for Claude Code, Gemini, Codex & more

Get the whole plugin

Other skills on maestro-flow.