| name | nature-writing |
| description | Draft, restructure, or plan Nature-style manuscript sections from author-provided claims, results, figures, notes, or Chinese drafts. Use when the user wants to write or rebuild an abstract, introduction, related-work, method, experiments, discussion, conclusion, title, or full manuscript argument rather than only polish finished prose. |
| version | 1.0.0 |
| author | Community contribution, refactored into static/dynamic layers |
Nature-Style Scientific Writing — Router
This skill is split into two layers:
- A static layer under
static/ that holds versioned, reusable content fragments (core stance + workflow, paper-type playbooks, per-section drafting guidance, language-specific rules, per-journal style).
- A dynamic layer (this file plus
manifest.yaml) that detects the request's axes and loads only the fragments needed for the current job.
Do not try to apply the drafting logic from memory or from this router. Always load fragments from disk as described below.
Routing protocol
Follow these five steps every time the skill is invoked.
1. Load the manifest and the core layer
Read manifest.yaml. It declares the axes (paper_type, section, language, journal), the allowed values, and the file paths each value maps to.
Also read every file listed under always_load. These hold the default stance, writing workflow, and output format that apply to every drafting job.
2. Detect the axis values for this request
For each axis in the manifest, decide the value using the manifest's detect: hint and the user's input:
paper_type — research / methods / hypothesis / algorithmic / review. Default: research.
section — abstract / intro / related-work / method / experiments / discussion / conclusion / title. May be multiple. Ask the user if it is ambiguous and matters for the draft.
language — en or zh-to-en. Detect from the user's notes themselves.
journal — nature / nat-comms / generic. Default: generic. If the user names a Nature subjournal, treat it as nature.
State the detected axis values in one short line to the user before drafting, so they can correct you cheaply.
3. Load the matching fragments
For each axis value, Read the file mapped in the manifest. Skip the section axis only when the user has explicitly asked for a free-floating argument paragraph with no section context.
Do not read every fragment in static/. Load only what step 2 selected.
4. Draft using the loaded material
Apply the loaded fragments in this priority order:
- Core stance + intake (
core/stance.md) — surface missing claim / evidence / boundary before drafting.
- Paper-type playbook — argument chain, drafting order.
- Section-specific drafting rules and structure.
- Journal-specific framing and constraints.
- Language-specific sentence and paragraph rules (apply last).
Run the 8-step workflow in core/workflow.md end-to-end. Do not skip steps 1-3 (planning) just because the user asked for prose immediately — write the one-sentence argument first.
If essential evidence or boundary is missing, write a placeholder and list it under Assumptions or missing inputs: instead of inventing content.
5. Reach for references only when needed
The files under references/ are deep references and the example library, not defaults. Open them on demand per the references.on_demand table in the manifest. Typical triggers:
- The user asks for a concrete example or template →
references/examples/index.md.
- A section's draft has structural problems that the section fragment alone does not explain → the matching
references/<section>.md.
- The user needs a broad-audience
Nature abstract opening or asks about a summary paragraph → references/nature-summary-paragraph.md.
- The user asks "does this paragraph flow?" →
references/paragraph-flow.md.
- The user asks for a self-review or rejection-risk audit →
references/paper-review.md.
Why this split
- The static layer is versioned and reviewable. Adding a new journal style, paper type, or section is one new file plus one manifest line.
- The dynamic layer keeps each invocation cheap: only the fragments relevant to this draft enter context, instead of the full multi-thousand-line reference set.
- The router itself is short on purpose. Update fragments, not this file, when adding scope.
- This structure mirrors
nature-polishing so shared content can later be lifted into a _shared/ layer used by both skills.