Skip to content

cover-letter

Submission cover-letter assistant for existing LaTeX manuscripts. It generates, optimizes, and checks editor-facing letters while keeping every strong letter claim tied to manuscript evidence.

Use It For

  • Generate a cover letter draft from main.tex.
  • Optimize an existing cover_letter.md or cover_letter.tex without overwriting it.
  • Align-check novelty, contribution, numeric, and scope claims against the manuscript.
  • Check whether the letter is framed for a bundled journal or conference template.
  • Run final declaration, length, cliché, AI-tone, and paragraph-shape checks.

Do Not Use It For

  • Editing the manuscript source; use latex-paper-en or latex-thesis-zh.
  • Full reviewer-style manuscript critique; use paper-audit.
  • Searching bibliography files; use bib-search-citation.
  • Typst manuscripts; this version supports LaTeX manuscripts only.
  • Rebuttal or response-to-reviewer letters.

Mode Router

ModeUse whenPrimary command
generateYou have a manuscript but no letter draftuv run python academic-writing-skills/cover-letter/scripts/cover_letter.py --mode generate --manuscript main.tex --journal nature --json
optimizeYou have a draft and want safer framinguv run python academic-writing-skills/cover-letter/scripts/cover_letter.py --mode optimize --letter cover_letter.md --manuscript main.tex --journal nature --json
align-checkYou need to verify claims against the paperuv run python academic-writing-skills/cover-letter/scripts/cover_letter.py --mode align-check --letter cover_letter.md --manuscript main.tex --json
journal-fitYou need venue fit scoringuv run python academic-writing-skills/cover-letter/scripts/cover_letter.py --mode journal-fit --letter cover_letter.md --journal nature --json
presubmissionYou need final mechanical checksuv run python academic-writing-skills/cover-letter/scripts/cover_letter.py --mode presubmission --letter cover_letter.md --journal nature --json

Supported bundled venues: nature, science, cell, ieee-trans, acm, springer-lncs, neurips, icml, cvpr, and generic.

Minimum Inputs

  • --manuscript main.tex for generate and align-check.
  • --letter cover_letter.md or --letter cover_letter.tex for optimize, align-check, journal-fit, and presubmission.
  • --journal <venue> for journal-fit and venue-specific pre-submission rules.
  • --json when you want a machine-readable issue bundle.

Script Entry Points

ScriptPurpose
cover_letter.pyUnified public CLI for all five modes
extract_manuscript_facts.pyDeterministic facts extraction from the manuscript
build_letter_claim_map.pyCover-letter claim inventory
align_check.py / verify_letter_against_manuscript.pyClaim-evidence verification
journal_fit_check.pyVenue-fit scoring
presubmission_check.pyDeclaration, length, cliché, and tone checks

Output Artifacts

  • generate returns manuscript facts plus a deterministic draft scaffold with placeholders for unknown editor or declaration fields.
  • optimize returns line-anchored suggestions and claim-evidence warnings; it does not overwrite the draft.
  • align-check returns unsupported, over-scoped, or missing-evidence claim findings.
  • journal-fit returns HIGH / MEDIUM / LOW axis verdicts and mapped findings.
  • presubmission returns mechanical findings for required declarations, length, cliché, tone, and paragraph shape.

Findings use severity, priority, source_kind, and comment_type; script-backed findings are intended to be rerunnable.

Public Resources

References

Templates

Examples

Agent Contracts

Common Requests

text
Generate a Nature cover letter from main.tex and include placeholders where metadata is missing.
text
Optimize cover_letter.md for an IEEE Transactions submission, but do not edit the file directly.
text
Check whether every strong claim in this cover letter is supported by main.tex.
text
Score this letter for NeurIPS journal-fit style framing and tell me the weakest axis.
text
Run final pre-submission checks on cover_letter.md before I paste it into the submission system.

Released under the MIT License.