nature-writing
- Repo stars 16,057
- Author repo nature-skills
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 asnature.
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
Natureabstract opening or asks about asummary 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-polishingso shared content can later be lifted into a_shared/layer used by both skills.
- Fluxly category
- Writing
- Author-declared agents
- No explicit declaration found; this is not inferred or tested compatibility
- Static check
- 92 / 100 · heuristic scan, not runtime safety proof
- Author / version / license
- @Yuan1z0825 · v1.0.0 · no license declared
- Fluxly token estimate
- Lean
- Fluxly setup estimate
- Plug-and-play
- External API key
- No requirement detected
- Detected OS requirements
- Unspecified
- Runtime requirements
- Unspecified
- Detected file/system behavior
-
- Read-only
- Write / modify
- Detected network behavior
- Local-only
- Install commands
- None (reference only)
Profile is derived at build time from SKILL.md and install vectors. Subject to drift from author intent.
Heads up: 未限定 allowed-tools,默认拥有全部工具权限。
The current SKILL.md does not define a fixed output example. Follow these five steps every time the skill is invoked.
Read manifest.yaml. It declares the axes (papertype, section, language, journal), the allowed values, and the file paths each value maps to. Also read every file listed under alwaysload. These hold the default stance, writing workflow, and output format that…
For each axis in the manifest, decide the value using the manifest's detect: hint and the user's input: papertype — research / methods / hypothesis / algorithmic / review. Default: research. section — abstract / intro / related-work / method / experiments /…
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.
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.
The files under references/ are deep references and the example library, not defaults. Open them on demand per the references.ondemand table in the manifest. Typical triggers: The user asks for a concrete example or template → references/examples/index.md.
# 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](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
… Author text anchors workflow facts; Fluxly only indexes current sections, terms, files, and commands.
sections -> Routing protocol → 1. Load the manifest and the core layer → 2. Detect the axis values for this request → 3. Load the matching fragments → 4. Draft using the loaded material → 5. Reach for references only when needed
terms -> static layer · dynamic layer · not · Do not try to apply the drafting logic from memory or from this router. · Follow these five steps every time the skill is invoked. · Read [manifest.yaml](manifest.yaml). · Also read every file listed under alwaysload. · - papertype — research / methods / hypothesis / algorithmic / review.
files/cmd -> static/ · manifest.yaml · papertype · section · language · journal · alwaysload · detect:
body sha256 -> 0a2816cd6504
Decide Fit First
Design Intent
How To Use It
Boundaries And Review