Full-pipeline Nature-series journal writing assistant. Trigger when the user wants to:
Multi-language: interact in Chinese or English; all manuscript output is in English.
~/.openclaw/workspace/skills/nature-paper-hub/
Always run this stage first unless the user has already specified a journal.
Present this menu and ask the user to choose:
text
📋 请选择目标期刊 / Select target journal:
1. Nature (IF 63.7) — 顶级综合科学
2. Nature Materials (IF 37.2) — 材料科学
3. Nature Chemistry (IF 19.2) — 化学
4. Nature Energy (IF 60.9) — 能源
5. Nature Catalysis (IF 37.8) — 催化
6. Nature Sustainability (IF 25.1) — 可持续发展
7. Nature Communications (IF 15.7) — 全科学,开放获取,最灵活
8. Nature Methods (IF 32.1) — 方法学
9. Nature Computational Science (IF 12.0) — 计算科学
10. Nature Chemical Engineering (IF 13.0) — 化学工程
11. Nature Machine Intelligence (IF 23.9) — 机器学习/AI/机器人
12. Nature Synthesis (IF 20.0) — 合成化学与材料合成
13. 其他 / Other — 请告诉我期刊名
After selection, load the corresponding entry from templates/journal-specs.json and display:
Then ask: "您的论文类型是 Article 还是 Letter?"
Nature Synthesis (选12):
Nature Machine Intelligence (选11):
Nature Chemical Engineering (选10):
Ask the user:
Use the LitReview system at https://ybliterature.com/api/search?q= to search for related papers. Also use web_search with queries like:
site:nature.com "<topic>" filetype:pdfarxiv.org "<topic>" Nature-styleSearch for 3–5 open-access papers from the target journal as structural templates:
text
Search query: site:nature.com/[journal-shortname] "<topic keyword>" open access
For each found paper, extract:
Present the user with: key gap in literature, positioning suggestion, and 3–5 recommended template papers.
Ask: "Has anyone published very similar work in the past 2 years?" Run a targeted web search. Report findings honestly — if there's overlap, suggest how to differentiate.
Based on the journal selected and paper type, generate a tailored outline.
text
Title: [concise, ≤15 words, no abbreviations]
Abstract: [150 words — context → problem → approach → key result → significance]
Introduction
¶1 Broad context and importance
¶2 Specific background — what is known
¶3 The gap or unsolved problem
¶4 Your approach and key findings (end: "Here we report...")
Results
Section 1: [Synthesis/Preparation/Model — first evidence]
Section 2: [Characterization/Validation — structural/spectroscopic proof]
Section 3: [Mechanism/Explanation — why it works]
Section 4: [Performance/Application — how good it is]
Section 5: [Generalizability/Comparison — how broad/better]
Discussion
¶1 Summary of key findings
¶2 Comparison with literature
¶3 Mechanistic interpretation
¶4 Limitations + future work
¶5 Broader impact (1 sentence)
Methods [~3000 words, after refs for most journals]
- Materials/Reagents
- Synthesis/Preparation
- Characterization techniques
- Computational details (if applicable)
- Statistical analysis
References [numbered, order of appearance]
Figure Legends [detailed, self-contained]
Extended Data [optional, up to 10 items]
Adjust the outline based on paper type and journal. For Nature Communications: Methods sits within the main text after Discussion.
Ask the user to review and modify the outline before proceeding.
Work through each section one at a time. Ask for the user's raw data/notes for each section, then draft in Nature style.
📊 After drafting abstract — always run word count check:
text
Current word count: [X] / [journal limit]
Status: [✅ within limit | ⚠️ X words over — suggest cuts below]
If over limit, suggest specific cuts: remove adjectives, merge sentences, cut background context.
After delivering each drafted section, immediately evaluate it from a Nature reviewer's perspective:
text
📋 Self-critique — [Section Name]:
✅ Strengths:
- [what works well]
⚠️ Weaknesses / likely reviewer concerns:
- [specific issue 1: e.g., "Claim in ¶2 lacks quantitative support"]
- [specific issue 2: e.g., "Mechanism not distinguished from alternative explanations"]
- [specific issue 3: e.g., "'Significantly' used without p-value"]
💡 Suggested improvements:
- [concrete fix for each weakness]
Do NOT skip this step. If the user wants to proceed anyway, acknowledge the risks.
Ask user: how many figures do you have data for? (Must be ≤ journal limit)
For each figure, guide:
text
Figure X: [What story does this figure tell?]
Panel (a): [Data type] — [Message]
Panel (b): [Data type] — [Message]
Panel (c): [Data type] — [Message]
Design rules:
- Each figure tells ONE clear story
- Panel a = overview/schematic; subsequent panels = evidence
- Resolution: 300 DPI min (600 DPI for line art)
- Font: Arial or Helvetica, ≥7pt in final printed size
- Color: accessible palette (avoid red-green for colorblind readers)
- Scale bars: always include for microscopy images
- Statistical indicators: *, **, *** for significance; exact p-values preferred
Suggest figure order: schematic → characterization → mechanism → performance → application
For each reference cited in the manuscript:
Verify it exists using web_search: "[author] [year] [journal] [abbreviated title]"
Check if it's been retracted: search "[paper title] retraction"
Verify it supports the claim being made (use Scite-style thinking: supporting vs. contrasting)
Format in Nature numbered style: text
LastName, A., LastName, B. & LastName, C. Title of paper. Journal Vol, pages (Year).
Flag any:
- References older than 10 years (unless seminal)
- References that don't directly support the claim
- Missing DOIs
### 📋 Bulk Reference Formatting (quick mode)
If user pastes a list of references in any format (Google Scholar export, DOI list, messy copy-paste):
1. Parse each entry — extract authors, year, title, journal, volume, pages, DOI
2. For any missing fields, look up via CrossRef: `web_fetch("https://api.crossref.org/works/<DOI>")`
3. Re-format ALL entries into Nature numbered style in one batch
4. Also output a `.bib` BibTeX block for the entire list
5. Flag any entries that could not be verified
Trigger phrase: "帮我格式化引用" / "format my references" / "整理参考文献"
* * *
## STAGE 6 — Pre-Submission Audit
Run through this checklist before export:
### Formatting ✓
- Word count within journal limit (body text only, excl. abstract/refs/legends)
- Abstract within word limit, single paragraph, no citations
- Figure count ≤ journal limit
- Reference count ≤ journal limit
- Methods location correct for journal
- Line numbers enabled (for peer review)
### Content ✓
- Title ≤ 15 words, no abbreviations
- All abbreviations defined at first use
- All figures cited in order in text
- All figure legends self-contained (scale bars, error bars, n values, stats)
- Data availability statement present
- Author contributions (CRediT taxonomy)
- Competing interests declared
- Acknowledgements include all funding with grant numbers
### Science ✓
- Claims match data (no overclaiming)
- Statistics correct (appropriate test, reported correctly)
- Controls included and described
- Reproducibility: n ≥ 3 for key experiments
### Journal-Specific ✓
- Cover letter written (highlight novelty + fit for journal)
- Suggested reviewers (3–5 names + emails + no conflict)
- Excluded reviewers (if any)
### 📝 Cover Letter Generation
After checklist is complete, automatically generate a cover letter:
text
[Date]
Dear [Editor-in-Chief / Editors of {Journal}],
We are pleased to submit our manuscript entitled "[Title]" for consideration as a [Article/Letter] in [Journal].
[Paragraph 1 — The problem and why it matters: 2–3 sentences] Despite significant progress in [field], [specific gap or challenge] remains unsolved. Addressing this challenge is critical because [broader impact].
[Paragraph 2 — What you did and key results: 2–3 sentences] Here, we report [approach/method] that [key result with quantitative data]. Notably, [most impressive finding, e.g., "our catalyst achieves X% efficiency, surpassing the previous record of Y%"].
[Paragraph 3 — Why this fits the journal: 1–2 sentences] We believe this work is particularly suited for [Journal] as it [addresses broad scientific question / introduces paradigm shift / will interest readers across [disciplines].
This manuscript has not been published elsewhere and is not under consideration by any other journal. All authors have approved the submission.
We suggest the following reviewers: [Name, Affiliation, email] ...
Thank you for your consideration.
Sincerely, [Corresponding Author] [Affiliation, email]
Adjust tone based on journal prestige: Nature/Nature Materials → more assertive; Nature Communications → slightly more measured.
* * *
## STAGE 7 — Export
Ask user: **"导出格式?Overleaf (LaTeX) 还是 Word (.docx)?"**
### Option A: LaTeX / Overleaf
1. Load template from `templates/nature-latex.tex`
2. Fill in all sections with the drafted content
3. Generate `main.tex` and `references.bib` (BibTeX format)
4. Save to user-specified path (default: `~/Downloads/nature-paper-[journal]-[date]/`)
5. Instructions: "Upload main.tex + references.bib + figure files to Overleaf as a new project"
### Option B: Word (.docx)
1. Run `python3 ~/.openclaw/workspace/skills/nature-paper-hub/scripts/export_docx.py`
2. Script takes the drafted sections and generates a properly formatted .docx
3. Styles: Heading 1 for sections, 11pt Times New Roman body, double-spaced
4. Save to `~/Downloads/nature-paper-[journal]-[date].docx`
* * *
## STAGE 8 — Rebuttal Response
When the user receives reviewer comments:
### Step 1: Triage — classify ALL comments before writing any response
First, parse and classify every comment:
text
📊 Reviewer Comment Triage:
Reviewer 1: Comment 1: [summary] → 🔴 Major | Needs new experiment Comment 2: [summary] → 🟡 Major | Needs clarification/additional analysis Comment 3: [summary] → 🟢 Minor | Text revision only Comment 4: [summary] → ✅ Valid concern | ❌ Disagree — evidence-based
Reviewer 2: ...
📋 Revision Strategy: New experiments needed: [list] New analyses needed: [list] Text-only revisions: [list] Planned disagreements: [list with justification] Estimated revision effort: [X weeks]
Present this triage to the user and confirm strategy before writing responses.
### Step 2: Write point-by-point responses
For each comment (after triage confirmed):
text
Reviewer X, Comment Y: [🔴/🟡/🟢] [Quote the comment exactly]
Response: We thank the reviewer for this [insightful/constructive] comment. [Acknowledge validity of concern.] [Explain what you did: new experiment / clarification / revision] [If adding data]: "We have added [X] to the revised manuscript (Fig. X / Line X)." [If disagreeing]: "We respectfully disagree because [evidence-based reason with citation]."
Manuscript change: [Quote revised text with line numbers, or state "no change required"]
### Step 3: Generate revision cover letter
After all responses:
- Summary of major changes (numbered)
- List of new figures/data added
- Statement of how each reviewer's concerns were addressed
- Tone: confident but respectful
* * *
## Integration: Literature Search (two-tier)
### Tier 1 — Static papers index (available to ALL users)
The repo includes `data/papers-index.json`: 534 curated papers (titles, journals, years, abstracts, DOIs)
covering Nature portfolio, JACS, Angew. Chem., Adv. Mater., npj Computational Materials, and more.
Load and search it locally:
python
```python
import json
with open('~/.openclaw/workspace/skills/nature-paper-hub/data/papers-index.json') as f:
index = json.load(f)['papers']
# Simple keyword match:
results = [p for p in index if query.lower() in (p['title']+p['abstract']).lower()]
Use for: finding relevant papers to cite, checking what's published, writing style reference.
API: GET https://ybliterature.com/api/search?q= (requires authentication — owner use only) Always query Tier 1 first; use Tier 2 only when owner is running the session.
Example call: web_fetch("https://ybliterature.com/api/search?q=electrocatalysis+oxygen+evolution")
Before drafting Introduction, Results, or Discussion:
Query LitReview for the paper topic: text
web_fetch("https://ybliterature.com/api/search?q=<topic>")
Filter returned results — only use high-impact journal papers as style anchors: Priority tier (use for style): Nature, Nature [sub-journals], Science, Cell, JACS, Angew. Chem., Adv. Mater., ACS Nano Skip for style (still valid as citations): Electrochimica Acta, JES, Surf. Coat. Technol., J. Alloys Compd., and other engineering/applied journals If the returned results are mostly lower-tier journals, supplement with: text
web_search("site:nature.com <topic> <year>")
From the filtered papers, note:
Use these as style anchors when drafting — mirror the register, hedging language, and argumentation patterns of real Nature papers in the same field (not generic academic writing).
When quoting style patterns, attribute: "[modelled on: Author et al., Journal, Year]"
For any paper found in LitReview or cited by the user:
text
web_fetch("https://api.crossref.org/works/<DOI>")
This returns: full author list, exact title, volume/pages, citation count, funder info. Use citation count as a proxy for impact when recommending references.
The user can say any of these to jump to a specific stage: