# Dr Cook:cover Letter Writer

> Draft professional journal submission cover letters for manuscript submission. Use when users need a cover letter, submission letter, journal cover letter, or want to submit a manuscript to a journal. Triggers on: cover letter, submission letter, journal cover letter, manuscript submission, write cover letter, draft cover letter, cover letter for journal, 投稿信, 期刊投稿, 投稿函. Do NOT trigger for: rebuttal-writer (revision response letters to reviewers), grant-writer (grant proposal writing).

- Skill: `wen-chen/dr-cook-cover-letter-writer` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add wen-chen/dr-cook-cover-letter-writer`
- Raw SKILL.md: https://api.skillmd.com/api/skills/wen-chen/dr-cook-cover-letter-writer/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: wen-chen (https://skillmd.com/u/wen-chen)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/wen-chen/dr-cook-cover-letter-writer

---


# cover-letter-writer

## 1. Overview

cover-letter-writer drafts professional journal submission cover letters. Two modes: **standard mode** produces a complete cover letter for a first submission to a target journal; **revision mode** produces the shorter cover letter that accompanies a revised manuscript, referencing the prior review round and summarizing key changes. The module is designed as the final step of the `/cook submit` pipeline, receiving manuscript context from paper-writer and citation-checker outputs. When upstream context is available, parameters such as `target_journal`, `domain`, `manuscript_type`, `key_findings`, and `raw_text` are inherited automatically without re-prompting the user.

## 2. Parameters

### Required

| Parameter | Values | Description |
|---|---|---|
| `manuscript_title` | string | Full title of the manuscript as it appears in the submission. |
| `target_journal` | string | Name of the journal to which the manuscript is being submitted. |

### Optional

| Parameter | Values | Description |
|---|---|---|
| `mode` | `standard` \| `revision` (default: `standard`) | `standard` = first submission cover letter; `revision` = cover letter accompanying a revised manuscript. |
| `manuscript_type` | `research_article` \| `review` \| `case_report` \| `letter` \| `other` (default: `research_article`) | Manuscript type affects paragraph emphasis and length norms. |
| `domain` | `tcm` \| `bioinformatics` \| `clinical` \| `pharmacology` | Research domain. Affects terminology and ethics statement phrasing. Inherited from upstream if available. |
| `key_findings` | string | 2–3 sentence summary of the manuscript's main findings. Can be inherited from upstream or auto-extracted from `raw_text`. |
| `authors` | string | Author list for signing the letter. |
| `corresponding_author` | string | Name and email of the corresponding author. |
| `language` | `en` \| `zh` (default: `en`) | Output language. Almost all cover letters are written in English even for Chinese journals; `zh` is available but rarely appropriate. |

### Parameter collection rule

Inherit all available values from `context_output` before asking the user. Collect only what remains missing, starting with `manuscript_title` then `target_journal` then `mode`.

## 3. Workflow

**Step 1 — Check upstream context.**
Inspect `context_output` before asking the user anything. Extract without re-asking: `parameters.target_journal`, `parameters.domain`, `parameters.manuscript_type`, `key_findings`, and `raw_text`. If upstream `status` is `failed`, halt. If `partial`, proceed with a warning.

**Language override:** Cover letters are almost always written in English regardless of upstream `language` value. If inherited `language` is `zh`, override to `en` for this module unless the user explicitly specifies `language: zh`.

**Step 2 — Collect missing required parameters.**
Ask for `manuscript_title` if absent. Ask for `target_journal` if not inherited. Ask for `mode` if unclear: "Is this a first submission (standard) or a resubmission (revision)?" For **revision mode only**: ask for 1–2 sentences summarizing key changes.

**Step 3 — Collect or extract key findings.**
If `key_findings` is absent from both user input and `context_output`, check for `raw_text` from an upstream module. If present, auto-extract 2–3 key findings and confirm: "I extracted the following findings — please confirm or revise: [findings]." If neither source is available, ask the user for a 2–3 sentence summary of main findings.

**Step 4 — Load journal norms.**
Read `references/journal-submission-norms.md`. Identify the journal's tier, length expectations, required statements, and suggested reviewer expectations.

**Step 5 — Draft the cover letter.**

**Standard mode (4 paragraphs):**
- Opening: "Dear Editor," or "Dear Dr. [Name],"
- Para 1 (2–3 sentences): Submit `[manuscript title]`, type `[manuscript type]`, to `[journal name]`.
- Para 2 (3–5 sentences): Key findings and significance — why this matters to journal readership.
- Para 3 (2–3 sentences): Novelty — what this work adds that prior literature did not address.
- Para 4 (2–3 sentences): Exclusivity, author approval, conflicts of interest. Before prompting the user, scan `context_output.raw_text` for ethics/IACUC approval details (look for patterns: "approved by", "IRB", "IACUC", "ethics committee", "approval number"). If found, extract and use them directly without asking. For studies involving human participants or animal subjects (any domain including `tcm`): include ethics/IACUC approval with institution name and number. If `manuscript_type` is `research_article` or `case_report` and the study involves human or animal subjects but no ethics info has been provided, stop and ask: "Please provide your ethics approval number (e.g., IRB #XXXX or IACUC #XXXX) and approving institution before I draft the letter."
- Closing: "We look forward to hearing from you." + "Sincerely," + corresponding author name/email.

**Revision mode (3 paragraphs):**
- Opening: Reference manuscript ID; "Thank you for the opportunity to revise."
- Para 1 (2–3 sentences): Revised version submitted in response to reviewer comments; name 2–3 key changes.
- Para 2 (2 sentences): Appreciation to reviewers; state that a point-by-point response is enclosed.
- Closing: Same as standard.

**Step 6 — Present output and offer iteration.**
Display the complete cover letter. Then ask: "Would you like me to adjust the tone, add a suggested reviewer block, or translate to Chinese?"

## 4. Output Format

No `[Module: ...]` header — cover letters must read as actual professional letters.

```
[Date]

The Editorial Office
[Journal Name]

Dear Editor,

[Para 1 — Submission statement: 2–3 sentences]

[Para 2 — Key findings and significance: 3–5 sentences]

[Para 3 — Novelty statement: 2–3 sentences]

[Para 4 — Declarations: exclusivity, author approval, COI, and ethics if applicable]

We look forward to hearing from you.

Sincerely,
[Corresponding Author Name]
[Email]

[Word count: 287]
```

- No bullet points within the letter body. All content is prose.
- Date line: `[Date]` placeholder unless the user provides an actual date.
- Address block uses journal-specific format from `journal-submission-norms.md` or generic `The Editorial Office, [Journal Name]`.
- Word count at end: `[Word count: NNN]`. Word count includes all text from the opening salutation through the closing signature block; exclude the date line, address block, and the `[Word count: NNN]` line itself.

## 5. context_output

### Reads from upstream

| Field | Source | Usage |
|---|---|---|
| `parameters.target_journal` | citation-checker, paper-writer, any upstream module | Maps directly to `target_journal`; not re-asked if present |
| `parameters.domain` | any upstream module | Determines ethics statement phrasing and domain-appropriate terminology |
| `parameters.manuscript_type` | paper-writer | Sets manuscript type without re-asking |
| `key_findings` | literature-reviewer, research-gap-finder | Used as Paragraph 2 source material |
| `raw_text` | paper-writer, english-polisher | Auto-extraction of key findings if `key_findings` is absent |

### Writes to output

```json
{
  "module": "cover-letter-writer",
  "summary": "Standard cover letter for Nature Medicine, research article, TCM domain",
  "raw_text": "<complete cover letter text>",
  "parameters": {
    "target_journal": "<journal name>",
    "mode": "standard | revision",
    "manuscript_type": "research_article | review | case_report | letter | other",
    "domain": "<domain or null>",
    "language": "en | zh"
  },
  "status": "success | partial | failed",
  "error_message": "string | null"
}
```

Downstream readers of `raw_text`: english-polisher, chinese-polisher.

## 6. References

See `references/` for:
- `journal-submission-norms.md` — Journal tier classifications, cover letter length expectations, required statement templates, suggested reviewer format, and common cover letter mistakes

