psyclaw 0.28.1 → 0.28.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -5
- package/agents/recommended/catalog.json +1 -1
- package/dist/src/adapters/pi/extension.js +43 -9
- package/dist/src/adapters/pi/extension.js.map +1 -1
- package/dist/src/ars/mode-editor.d.ts +20 -0
- package/dist/src/ars/mode-editor.js +57 -0
- package/dist/src/ars/mode-editor.js.map +1 -0
- package/dist/src/ars/profile.d.ts +4 -1
- package/dist/src/ars/profile.js +23 -6
- package/dist/src/ars/profile.js.map +1 -1
- package/package.json +10 -3
- package/vendor/academic-paper-skills/LICENSE +21 -0
- package/vendor/academic-paper-skills/NOTICE.md +7 -0
- package/vendor/academic-paper-skills/PSYCLAW_SOURCE.json +14 -0
- package/vendor/academic-paper-skills/academic-paper-composer/SKILL.md +840 -0
- package/vendor/academic-paper-skills/academic-paper-composer/references/section_guides.md +675 -0
- package/vendor/academic-paper-skills/academic-paper-composer/references/writing_standards.md +629 -0
- package/vendor/academic-paper-skills/academic-paper-composer/scripts/chapter_quality_check.py +470 -0
- package/vendor/academic-paper-skills/academic-paper-composer/scripts/final_evaluation.py +550 -0
- package/vendor/academic-paper-skills/academic-paper-strategist/SKILL.md +670 -0
- package/vendor/academic-paper-skills/academic-paper-strategist/references/quality_standards.md +336 -0
- package/vendor/academic-paper-skills/academic-paper-strategist/references/search_strategy.md +459 -0
- package/vendor/academic-paper-skills/academic-paper-strategist/scripts/evaluate_samples.py +300 -0
- package/vendor/academic-paper-skills/academic-paper-strategist/scripts/gap_analysis.py +399 -0
- package/vendor/ars/pi/wrapper.js +9 -0
- package/vendor/nature-skills/LICENSE +201 -0
- package/vendor/nature-skills/NOTICE.md +7 -0
- package/vendor/nature-skills/PSYCLAW_SOURCE.json +19 -0
- package/vendor/nature-skills/skills/nature-figure/README.md +107 -0
- package/vendor/nature-skills/skills/nature-figure/README_EN.md +107 -0
- package/vendor/nature-skills/skills/nature-figure/SKILL.md +154 -0
- package/vendor/nature-skills/skills/nature-figure/agents/openai.yaml +4 -0
- package/vendor/nature-skills/skills/nature-figure/evals/evals.json +325 -0
- package/vendor/nature-skills/skills/nature-figure/manifest.yaml +103 -0
- package/vendor/nature-skills/skills/nature-figure/references/ai-graphical-abstract-workflow.md +129 -0
- package/vendor/nature-skills/skills/nature-figure/references/api.md +576 -0
- package/vendor/nature-skills/skills/nature-figure/references/asset-adaptation.md +72 -0
- package/vendor/nature-skills/skills/nature-figure/references/backend-selection.md +118 -0
- package/vendor/nature-skills/skills/nature-figure/references/chart-types.md +348 -0
- package/vendor/nature-skills/skills/nature-figure/references/common-patterns.md +371 -0
- package/vendor/nature-skills/skills/nature-figure/references/demos.md +58 -0
- package/vendor/nature-skills/skills/nature-figure/references/design-theory.md +467 -0
- package/vendor/nature-skills/skills/nature-figure/references/figure-contract.md +122 -0
- package/vendor/nature-skills/skills/nature-figure/references/figure-legend-conventions.md +90 -0
- package/vendor/nature-skills/skills/nature-figure/references/multipanel-evidence-architecture.md +268 -0
- package/vendor/nature-skills/skills/nature-figure/references/nature-2026-observations.md +124 -0
- package/vendor/nature-skills/skills/nature-figure/references/nature-article-requirements.md +149 -0
- package/vendor/nature-skills/skills/nature-figure/references/openrouter-image-generation.md +141 -0
- package/vendor/nature-skills/skills/nature-figure/references/qa-contract.md +344 -0
- package/vendor/nature-skills/skills/nature-figure/references/r-template-index.md +66 -0
- package/vendor/nature-skills/skills/nature-figure/references/r-workflow.md +234 -0
- package/vendor/nature-skills/skills/nature-figure/references/template-catalog.md +33 -0
- package/vendor/nature-skills/skills/nature-figure/references/tutorials.md +260 -0
- package/vendor/nature-skills/skills/nature-figure/requirements.txt +1 -0
- package/vendor/nature-skills/skills/nature-figure/scripts/audit_figure_collisions.py +742 -0
- package/vendor/nature-skills/skills/nature-figure/scripts/audit_panel_alignment.py +933 -0
- package/vendor/nature-skills/skills/nature-figure/scripts/audit_pdf_text.py +152 -0
- package/vendor/nature-skills/skills/nature-figure/scripts/figure_safety.py +50 -0
- package/vendor/nature-skills/skills/nature-figure/scripts/generate_openrouter_schematic.py +260 -0
- package/vendor/nature-skills/skills/nature-figure/scripts/nature_figure_backend.py +93 -0
- package/vendor/nature-skills/skills/nature-figure/scripts/panel_alignment.R +188 -0
- package/vendor/nature-skills/skills/nature-figure/scripts/plot_templates.py +604 -0
- package/vendor/nature-skills/skills/nature-figure/scripts/validate_figure.py +835 -0
- package/vendor/nature-skills/skills/nature-figure/static/core/contract.md +55 -0
- package/vendor/nature-skills/skills/nature-figure/static/core/stance.md +41 -0
- package/vendor/nature-skills/skills/nature-figure/static/fragments/backend/python.md +56 -0
- package/vendor/nature-skills/skills/nature-figure/static/fragments/backend/r.md +63 -0
- package/vendor/nature-skills/skills/nature-figure/tests/test_figure_safety.py +209 -0
- package/vendor/nature-skills/skills/nature-polishing/README.md +58 -0
- package/vendor/nature-skills/skills/nature-polishing/README_EN.md +58 -0
- package/vendor/nature-skills/skills/nature-polishing/SKILL.md +111 -0
- package/vendor/nature-skills/skills/nature-polishing/agents/openai.yaml +4 -0
- package/vendor/nature-skills/skills/nature-polishing/manifest.yaml +101 -0
- package/vendor/nature-skills/skills/nature-polishing/references/latex-layout.md +211 -0
- package/vendor/nature-skills/skills/nature-polishing/references/nat-comms-2025-diction.md +73 -0
- package/vendor/nature-skills/skills/nature-polishing/references/phrasebank-playbook.md +175 -0
- package/vendor/nature-skills/skills/nature-polishing/references/published-article-patterns.md +126 -0
- package/vendor/nature-skills/skills/nature-polishing/references/section-moves.md +252 -0
- package/vendor/nature-skills/skills/nature-polishing/references/style-guardrails.md +94 -0
- package/vendor/nature-skills/skills/nature-polishing/references/writing-strategy.md +160 -0
- package/vendor/nature-skills/skills/nature-polishing/static/core/failure-modes.md +29 -0
- package/vendor/nature-skills/skills/nature-polishing/static/core/output-format.md +21 -0
- package/vendor/nature-skills/skills/nature-polishing/static/core/stance.md +26 -0
- package/vendor/nature-skills/skills/nature-polishing/static/fragments/journal/generic.md +17 -0
- package/vendor/nature-skills/skills/nature-polishing/static/fragments/journal/nat-comms.md +38 -0
- package/vendor/nature-skills/skills/nature-polishing/static/fragments/journal/nat-mach-intell.md +102 -0
- package/vendor/nature-skills/skills/nature-polishing/static/fragments/journal/nature.md +19 -0
- package/vendor/nature-skills/skills/nature-polishing/static/fragments/language/en.md +19 -0
- package/vendor/nature-skills/skills/nature-polishing/static/fragments/language/zh-to-en.md +19 -0
- package/vendor/nature-skills/skills/nature-polishing/static/fragments/paper_type/algorithmic.md +18 -0
- package/vendor/nature-skills/skills/nature-polishing/static/fragments/paper_type/hypothesis.md +17 -0
- package/vendor/nature-skills/skills/nature-polishing/static/fragments/paper_type/methods.md +35 -0
- package/vendor/nature-skills/skills/nature-polishing/static/fragments/paper_type/research.md +29 -0
- package/vendor/nature-skills/skills/nature-polishing/static/fragments/paper_type/review.md +17 -0
- package/vendor/nature-skills/skills/nature-polishing/static/fragments/section/abstract.md +26 -0
- package/vendor/nature-skills/skills/nature-polishing/static/fragments/section/conclusion.md +15 -0
- package/vendor/nature-skills/skills/nature-polishing/static/fragments/section/discussion.md +48 -0
- package/vendor/nature-skills/skills/nature-polishing/static/fragments/section/intro.md +33 -0
- package/vendor/nature-skills/skills/nature-polishing/static/fragments/section/methods.md +26 -0
- package/vendor/nature-skills/skills/nature-polishing/static/fragments/section/results.md +61 -0
- package/vendor/nature-skills/skills/nature-polishing/static/fragments/section/title.md +17 -0
- package/vendor/nature-skills/skills/nature-ref-verifier/README.md +44 -0
- package/vendor/nature-skills/skills/nature-ref-verifier/README_EN.md +44 -0
- package/vendor/nature-skills/skills/nature-ref-verifier/SKILL.md +196 -0
- package/vendor/nature-skills/skills/nature-ref-verifier/agents/openai.yaml +4 -0
- package/vendor/nature-skills/skills/nature-ref-verifier/manifest.yaml +19 -0
- package/vendor/nature-skills/skills/nature-ref-verifier/references/common-patterns.md +96 -0
- package/vendor/nature-skills/skills/nature-shared/README.md +43 -0
- package/vendor/nature-skills/skills/nature-shared/README_EN.md +43 -0
- package/vendor/nature-skills/skills/nature-shared/SKILL.md +33 -0
- package/vendor/nature-skills/skills/nature-shared/agents/openai.yaml +6 -0
- package/vendor/nature-skills/skills/nature-shared/core/consistency-sweep.md +122 -0
- package/vendor/nature-skills/skills/nature-shared/core/discussion-argument-language.md +192 -0
- package/vendor/nature-skills/skills/nature-shared/core/ethics.md +88 -0
- package/vendor/nature-skills/skills/nature-shared/core/main-text-discipline.md +179 -0
- package/vendor/nature-skills/skills/nature-shared/core/nature-abstract.md +171 -0
- package/vendor/nature-skills/skills/nature-shared/core/nature-introduction.md +164 -0
- package/vendor/nature-skills/skills/nature-shared/core/nature-results-discussion.md +215 -0
- package/vendor/nature-skills/skills/nature-shared/core/paper-type-taxonomy.md +41 -0
- package/vendor/nature-skills/skills/nature-shared/core/reader-workflow.md +21 -0
- package/vendor/nature-skills/skills/nature-shared/core/research-compliance.md +192 -0
- package/vendor/nature-skills/skills/nature-shared/core/terminology-ledger.md +58 -0
- package/vendor/nature-skills/skills/nature-shared/journal-formats/nat-comms.md +139 -0
- package/vendor/nature-skills/skills/nature-shared/journal-formats/nature-machine-intelligence.md +431 -0
- package/vendor/nature-skills/skills/nature-shared/journal-formats/nature.md +313 -0
- package/vendor/nature-skills/skills/nature-shared/manifest.yaml +52 -0
- package/vendor/nature-skills/skills/nature-shared/scripts/check_consistency.py +273 -0
- package/vendor/nature-skills/skills/nature-shared/tests/test_check_consistency.py +63 -0
|
@@ -0,0 +1,325 @@
|
|
|
1
|
+
{
|
|
2
|
+
"skill_name": "nature-figure",
|
|
3
|
+
"evals": [
|
|
4
|
+
{
|
|
5
|
+
"id": "backend-exclusivity-r-missing-runtime",
|
|
6
|
+
"prompt": "Use R to remake the provided ecological heatmap plus taxonomy-flow figure in Nature style with simulated data. Assume R/Rscript is not installed locally.",
|
|
7
|
+
"expected_output": "The assistant must not use Python or any non-R plotting backend to draw a preview or export. It should report that R/Rscript is unavailable, provide or offer an R-only script and install/run instructions, and stop before rendering.",
|
|
8
|
+
"assertions": [
|
|
9
|
+
{
|
|
10
|
+
"name": "no_cross_backend_rendering",
|
|
11
|
+
"description": "When R is selected and unavailable, no Python/matplotlib/seaborn/plotly preview, SVG, PDF, TIFF, or PNG is generated as a substitute."
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
"name": "selected_backend_blocker_reported",
|
|
15
|
+
"description": "The response clearly reports the missing R runtime or package blocker and does not present a non-R figure as completed output."
|
|
16
|
+
}
|
|
17
|
+
],
|
|
18
|
+
"files": []
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"id": "backend-exclusivity-python-missing-package",
|
|
22
|
+
"prompt": "Use Python to make a Nature-style multi-panel heatmap and flow figure with simulated data. Assume matplotlib or another required Python plotting package is not installed locally.",
|
|
23
|
+
"expected_output": "The assistant must not use R or any non-Python plotting backend to draw a preview or export. It should report the missing Python plotting dependency, provide or offer a Python-only script and install/run instructions, and stop before rendering.",
|
|
24
|
+
"assertions": [
|
|
25
|
+
{
|
|
26
|
+
"name": "no_cross_backend_rendering",
|
|
27
|
+
"description": "When Python is selected and unavailable, no R/ggplot2/ComplexHeatmap/patchwork preview, SVG, PDF, TIFF, or PNG is generated as a substitute."
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"name": "selected_backend_blocker_reported",
|
|
31
|
+
"description": "The response clearly reports the missing Python runtime or package blocker and does not present a non-Python figure as completed output."
|
|
32
|
+
}
|
|
33
|
+
],
|
|
34
|
+
"files": []
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"id": "large-data-no-silent-sampling",
|
|
38
|
+
"prompt": "Use Python to make a publication-ready scatter plot from all 180,000 rows in my table. The current draft randomly keeps 5,000 rows because vector export is slow.",
|
|
39
|
+
"expected_output": "The assistant must preserve all observations unless the user explicitly authorizes a scientifically justified subset. It should replace random downsampling with rasterized marks, hexbin/density rendering, or another Python-native large-data strategy and document the rendering choice.",
|
|
40
|
+
"assertions": [
|
|
41
|
+
{
|
|
42
|
+
"name": "all_observations_preserved",
|
|
43
|
+
"description": "The plotting plan does not silently sample rows or describe a random subset as the full dataset."
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"name": "rendering_solution_not_data_reduction",
|
|
47
|
+
"description": "Performance is addressed through rendering or an explicitly described aggregation rather than convenience sampling."
|
|
48
|
+
}
|
|
49
|
+
],
|
|
50
|
+
"files": []
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"id": "asset-semantic-mismatch",
|
|
54
|
+
"prompt": "Adapt the bundled 2D marginal joint-density example to show separate 1D distributions for eight biomarkers. Just map the first two columns and ignore the rest.",
|
|
55
|
+
"expected_output": "The assistant must reject exact or structural reuse because the requested dimensionality and scientific meaning differ. It should not discard six biomarkers; it should use style-only inheritance or build a suitable 1D multi-distribution figure after confirming the intended comparison.",
|
|
56
|
+
"assertions": [
|
|
57
|
+
{
|
|
58
|
+
"name": "semantic_mismatch_detected",
|
|
59
|
+
"description": "The response distinguishes a 2D joint-density plot from multiple 1D distributions."
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
"name": "no_silent_column_selection",
|
|
63
|
+
"description": "No requested biomarker is silently ignored to make the template fit."
|
|
64
|
+
}
|
|
65
|
+
],
|
|
66
|
+
"files": []
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
"id": "exclusion-count-accounting",
|
|
70
|
+
"prompt": "Make a Nature-style grouped plot. Some values are missing, so drop incomplete rows before plotting.",
|
|
71
|
+
"expected_output": "The assistant may apply the requested missing-data rule only after recording the exact predicate and before/after observation and replicate counts. The QA notes must disclose the exclusion and preserve the unmodified input.",
|
|
72
|
+
"assertions": [
|
|
73
|
+
{
|
|
74
|
+
"name": "before_after_counts_required",
|
|
75
|
+
"description": "The workflow records counts before and after missing-data exclusion."
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
"name": "source_data_preserved",
|
|
79
|
+
"description": "The original input is not overwritten and the exclusion appears in QA notes."
|
|
80
|
+
}
|
|
81
|
+
],
|
|
82
|
+
"files": []
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
"id": "template-transform-guard",
|
|
86
|
+
"prompt": "Reuse this log-scale template for a dataset containing negative and zero values. Keep every transform unchanged so the visual style matches.",
|
|
87
|
+
"expected_output": "The assistant must detect that the inherited logarithmic transform is incompatible. It should not silently delete non-positive values or add an arbitrary pseudocount; it should explain the options and use structural adaptation only if the scientific meaning remains valid, otherwise inherit style only or build anew.",
|
|
88
|
+
"assertions": [
|
|
89
|
+
{
|
|
90
|
+
"name": "log_domain_checked",
|
|
91
|
+
"description": "Non-positive values are identified as incompatible with an ordinary logarithmic transform."
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
"name": "no_silent_transform_or_filter",
|
|
95
|
+
"description": "The assistant does not silently filter values or invent a pseudocount."
|
|
96
|
+
}
|
|
97
|
+
],
|
|
98
|
+
"files": []
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
"id": "demo-data-production-boundary",
|
|
102
|
+
"prompt": "Turn a bundled example that generates random data into the final manuscript figure using my CSV.",
|
|
103
|
+
"expected_output": "The assistant must isolate or remove the simulated-data path, map the real data contract explicitly, run the selected backend on representative real input, and verify that no generated example values remain in the production output.",
|
|
104
|
+
"assertions": [
|
|
105
|
+
{
|
|
106
|
+
"name": "simulated_data_removed_from_production",
|
|
107
|
+
"description": "Random example generation cannot execute in the final production path."
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
"name": "real_data_contract_mapped",
|
|
111
|
+
"description": "The real input fields, units, group ordering, and uncertainty semantics are mapped explicitly."
|
|
112
|
+
}
|
|
113
|
+
],
|
|
114
|
+
"files": []
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
"id": "delivery-runs-static-and-visual-qa",
|
|
118
|
+
"prompt": "The Python plotting script is finished. Deliver the journal-ready figure package now.",
|
|
119
|
+
"expected_output": "Before delivery, the assistant runs the render-time panel-alignment gate on the final Matplotlib axes, scripts/validate_figure.py on the Python source, scripts/audit_pdf_text.py and scripts/audit_figure_collisions.py on the final Python-generated PDF, resolves every alignment/collision FAIL, reviews and documents every WARN, and inspects the actual SVG/PDF/TIFF or PNG outputs at final physical size. It must not treat automated validation as proof of statistical or complete visual correctness.",
|
|
120
|
+
"assertions": [
|
|
121
|
+
{
|
|
122
|
+
"name": "validator_run_before_delivery",
|
|
123
|
+
"description": "The deterministic static validator is run on the final plotting source."
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
"name": "rendered_outputs_inspected",
|
|
127
|
+
"description": "Editable text, clipping, overlaps, resolution, and final-size readability are checked on rendered files."
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
"name": "rendered_collision_gate_run",
|
|
131
|
+
"description": "The final PDF receives the automatic collision audit and blocking findings are fixed before delivery."
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
"name": "render_time_alignment_gate_run",
|
|
135
|
+
"description": "The final multi-panel axes geometry receives the alignment audit and blocking findings are fixed before export."
|
|
136
|
+
}
|
|
137
|
+
],
|
|
138
|
+
"files": []
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
"id": "rendered-collision-audit-is-mandatory",
|
|
142
|
+
"prompt": "I changed the legend font and moved two annotations in this R-generated Nature figure. The data and R code already passed static checks, so just send the revised PDF.",
|
|
143
|
+
"expected_output": "Because text and layout changed, the assistant must rerun audit_figure_collisions.py on the newly exported R PDF, preserve its JSON report, fix and re-export any text-text, text-stroke, or clipping FAIL, and inspect every WARN at final size. The Python audit may inspect PDF geometry but must not redraw or replace the R-generated scientific figure; a marked PDF is QA-only.",
|
|
144
|
+
"assertions": [
|
|
145
|
+
{
|
|
146
|
+
"name": "rerun_after_layout_change",
|
|
147
|
+
"description": "A prior report is not reused after any font, legend, annotation, axis, uncertainty, panel-size, or layout change."
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
"name": "blocking_collisions_are_repaired",
|
|
151
|
+
"description": "Reliable rendered collisions and clipping block delivery until the selected backend re-exports a corrected figure."
|
|
152
|
+
},
|
|
153
|
+
{
|
|
154
|
+
"name": "backend_exclusivity_is_preserved",
|
|
155
|
+
"description": "The backend-neutral audit inspects the R PDF but does not use Python plotting to redraw or substitute the figure."
|
|
156
|
+
}
|
|
157
|
+
],
|
|
158
|
+
"files": []
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
"id": "multipanel-render-time-alignment-gate",
|
|
162
|
+
"prompt": "My four-panel Nature figure looks almost aligned, but panel b sits about 2 mm lower and one horizontal gutter is wider. The PDF collision checker reports no overlaps, so deliver it as-is.",
|
|
163
|
+
"expected_output": "The assistant must not treat collision-free output as aligned. It should measure the final selected-backend panel rectangles, compare intended row/column groups and repeated gutters at the default 1.5 pt physical tolerance, preserve the alignment JSON, and block export until the shifted panel and gutter are corrected. A hero panel, inset or colorbar may be excluded only through explicit groups or a reasoned exemption; the global tolerance must not be weakened to hide the error.",
|
|
164
|
+
"assertions": [
|
|
165
|
+
{
|
|
166
|
+
"name": "collision_and_alignment_are_separate_gates",
|
|
167
|
+
"description": "A collision PASS is not accepted as evidence that axes rectangles, panel labels or gutters are aligned."
|
|
168
|
+
},
|
|
169
|
+
{
|
|
170
|
+
"name": "physical_alignment_tolerance_blocks_delivery",
|
|
171
|
+
"description": "Comparable row/column edges, dimensions and repeated gutters are measured in final-size points and reliable deviations block export."
|
|
172
|
+
},
|
|
173
|
+
{
|
|
174
|
+
"name": "asymmetry_requires_explicit_reason",
|
|
175
|
+
"description": "Structured unequal-span grids are inferred automatically; free-positioned hero panels, insets, colorbars and other intentional exceptions use explicit groups or recorded exemptions rather than a weakened global tolerance."
|
|
176
|
+
}
|
|
177
|
+
],
|
|
178
|
+
"files": []
|
|
179
|
+
},
|
|
180
|
+
{
|
|
181
|
+
"id": "asymmetric-two-plus-one-panel-alignment",
|
|
182
|
+
"prompt": "Build two Nature figure layouts: first column panels a and b stacked with panel c spanning both rows on the right, then the mirrored layout with the spanning panel on the left. Make sure the panels are automatically checked for alignment.",
|
|
183
|
+
"expected_output": "The assistant should use final selected-backend grid/gtable geometry to infer both unequal-span layouts without requiring manual row groups. It must compare the spanning panel's top edge with the upper small panel and its bottom edge with the lower small panel at the 1.5 pt tolerance, while not requiring the spanning panel to equal either small panel's height. A shifted or shortened spanning panel must block export.",
|
|
184
|
+
"assertions": [
|
|
185
|
+
{
|
|
186
|
+
"name": "both_mirrored_two_plus_one_layouts_are_inferred",
|
|
187
|
+
"description": "Left-two/right-one and left-one/right-two grid layouts are recognized from row start/stop metadata in Python GridSpec and R patchwork manifests."
|
|
188
|
+
},
|
|
189
|
+
{
|
|
190
|
+
"name": "shared_outer_edges_are_checked",
|
|
191
|
+
"description": "The spanning panel shares and is compared at the upper and lower outer boundaries with the correct small panels."
|
|
192
|
+
},
|
|
193
|
+
{
|
|
194
|
+
"name": "unequal_heights_are_not_false_failures",
|
|
195
|
+
"description": "The spanning panel is not incorrectly required to have the height of either individual stacked panel, but a real outer-edge shift remains blocking."
|
|
196
|
+
}
|
|
197
|
+
],
|
|
198
|
+
"files": []
|
|
199
|
+
},
|
|
200
|
+
{
|
|
201
|
+
"id": "horizontal-three-four-panel-equal-width",
|
|
202
|
+
"prompt": "Make one Nature figure with three panels in a single horizontal row and another with four panels in a single horizontal row. Guarantee that all comparable panels have exactly the same final plot-area width.",
|
|
203
|
+
"expected_output": "The assistant should measure final selected-backend axes/gtable rectangles and require same-row panels with equal grid spans to have equal physical widths within the 1.5 pt tolerance. Unequal Matplotlib width_ratios or R patchwork cell widths must block export. A deliberate hero panel may be excluded only with a panel-specific panel-width exemption and a non-empty reason.",
|
|
204
|
+
"assertions": [
|
|
205
|
+
{
|
|
206
|
+
"name": "three_and_four_panel_rows_check_final_widths",
|
|
207
|
+
"description": "Both 1 x 3 and 1 x 4 layouts compare final rendered plot-area widths rather than trusting source-level grid declarations."
|
|
208
|
+
},
|
|
209
|
+
{
|
|
210
|
+
"name": "unequal_equal_span_panels_block_export",
|
|
211
|
+
"description": "A reliable width spread above 1.5 pt among equal-grid-span panels produces horizontal-panel-width-misalignment and blocks delivery."
|
|
212
|
+
},
|
|
213
|
+
{
|
|
214
|
+
"name": "intentional_width_asymmetry_is_narrowly_exempted",
|
|
215
|
+
"description": "An intentional hero width uses a panel-width exemption with a reason; different column spans are not falsely required to be equal."
|
|
216
|
+
}
|
|
217
|
+
],
|
|
218
|
+
"files": []
|
|
219
|
+
},
|
|
220
|
+
{
|
|
221
|
+
"id": "trigger-publication-figure-chinese",
|
|
222
|
+
"prompt": "用我的实验数据做一张论文用的分组小提琴图,要求可编辑 PDF 和 600 dpi TIFF。",
|
|
223
|
+
"expected_output": "The nature-figure skill should trigger, establish or reuse the Python/R backend preference, define the figure contract, preserve all requested data, and produce the selected-backend plotting and QA workflow.",
|
|
224
|
+
"assertions": [
|
|
225
|
+
{
|
|
226
|
+
"name": "publication_figure_triggered",
|
|
227
|
+
"description": "A Chinese manuscript-figure request with vector/raster export requirements routes to nature-figure."
|
|
228
|
+
}
|
|
229
|
+
],
|
|
230
|
+
"files": []
|
|
231
|
+
},
|
|
232
|
+
{
|
|
233
|
+
"id": "route-openrouter-without-backend-gate",
|
|
234
|
+
"prompt": "Use OpenRouter GPT Image 2 to draft a mechanism schematic for my paper.",
|
|
235
|
+
"expected_output": "The OpenRouter image-generation route should trigger directly without asking Python or R. The output must be treated as a draft schematic and unsupported mechanisms or quantitative evidence must not be invented.",
|
|
236
|
+
"assertions": [
|
|
237
|
+
{
|
|
238
|
+
"name": "openrouter_route_selected",
|
|
239
|
+
"description": "The explicit AI-schematic request bypasses the plotting backend gate."
|
|
240
|
+
},
|
|
241
|
+
{
|
|
242
|
+
"name": "scientific_integrity_preserved",
|
|
243
|
+
"description": "The draft does not fabricate mechanisms, values, logos, or institutional marks."
|
|
244
|
+
}
|
|
245
|
+
],
|
|
246
|
+
"files": []
|
|
247
|
+
},
|
|
248
|
+
{
|
|
249
|
+
"id": "ai-graphical-abstract-policy-and-accountability-gate",
|
|
250
|
+
"prompt": "Use generative AI to make the final graphical abstract for my Nature submission. I want the fastest route from the manuscript to a submission-ready image.",
|
|
251
|
+
"expected_output": "The assistant should first define the central message, audience, figure type, and evidence boundary; verify the current official policy for the exact target journal; and distinguish an internal AI design draft from a submission-eligible final asset. It must not treat a Nature Careers column as submission permission or delegate scientific accuracy, copyright, disclosure, and provenance checks to the model.",
|
|
252
|
+
"assertions": [
|
|
253
|
+
{
|
|
254
|
+
"name": "careers_article_not_policy",
|
|
255
|
+
"description": "Practitioner advice is not presented as formal permission to submit generative-AI artwork."
|
|
256
|
+
},
|
|
257
|
+
{
|
|
258
|
+
"name": "message_audience_and_evidence_defined_first",
|
|
259
|
+
"description": "The workflow defines one message, audience, figure type, and evidence boundary before image generation."
|
|
260
|
+
},
|
|
261
|
+
{
|
|
262
|
+
"name": "draft_and_submission_clearance_separated",
|
|
263
|
+
"description": "Internal design usefulness and submission eligibility receive separate verdicts after human scientific, copyright, disclosure, and provenance review."
|
|
264
|
+
}
|
|
265
|
+
],
|
|
266
|
+
"files": []
|
|
267
|
+
},
|
|
268
|
+
{
|
|
269
|
+
"id": "multipanel-figure-level-claim-and-role-diversity",
|
|
270
|
+
"prompt": "My Fig. 4 currently has a: four-condition R2, b: pairwise R2 effects, c: four-condition MAPE, and d: pairwise MAPE effects. Make it more like a Nature multi-panel figure.",
|
|
271
|
+
"expected_output": "The assistant should first state the Results-level scientific question and one figure-level claim, diagnose that four panels currently provide only about two inferential roles, and propose the smallest sufficient panel chain with complementary roles such as perturbation setup, decisive comparison, residual/full distribution, and decomposition or boundary. It should decide whether the secondary metric belongs in the main figure, Extended Data/SI, or the caption without deleting conclusion-changing evidence.",
|
|
272
|
+
"assertions": [
|
|
273
|
+
{
|
|
274
|
+
"name": "figure_level_claim_precedes_panel_count",
|
|
275
|
+
"description": "The plan begins from one Results-level question and figure-level claim rather than the available number of metrics or datasets."
|
|
276
|
+
},
|
|
277
|
+
{
|
|
278
|
+
"name": "panel_roles_are_inferentially_distinct",
|
|
279
|
+
"description": "Panels perform complementary evidence roles rather than mirroring the same experiment under R2 and MAPE."
|
|
280
|
+
},
|
|
281
|
+
{
|
|
282
|
+
"name": "secondary_evidence_is_routed_explicitly",
|
|
283
|
+
"description": "Redundant or secondary evidence is deliberately merged, moved to Extended Data/SI, or retained only when it changes or bounds the claim."
|
|
284
|
+
}
|
|
285
|
+
],
|
|
286
|
+
"files": []
|
|
287
|
+
},
|
|
288
|
+
{
|
|
289
|
+
"id": "do-not-trigger-statistics-only",
|
|
290
|
+
"prompt": "Run a two-way ANOVA, calculate adjusted p values, and write the statistical result. Do not make a figure.",
|
|
291
|
+
"expected_output": "The nature-figure skill should not trigger because the user explicitly requests statistical analysis without figure creation, revision, audit, or export.",
|
|
292
|
+
"assertions": [
|
|
293
|
+
{
|
|
294
|
+
"name": "statistics_only_excluded",
|
|
295
|
+
"description": "Statistics-only work routes to an analysis/statistics capability rather than nature-figure."
|
|
296
|
+
}
|
|
297
|
+
],
|
|
298
|
+
"files": []
|
|
299
|
+
},
|
|
300
|
+
{
|
|
301
|
+
"id": "do-not-trigger-interactive-dashboard",
|
|
302
|
+
"prompt": "Build an interactive Plotly sales dashboard with filters for our internal website.",
|
|
303
|
+
"expected_output": "The nature-figure skill should not trigger because the task is interactive, web-first, non-scientific dashboard work.",
|
|
304
|
+
"assertions": [
|
|
305
|
+
{
|
|
306
|
+
"name": "interactive_dashboard_excluded",
|
|
307
|
+
"description": "Interactive web/dashboard requests remain outside nature-figure."
|
|
308
|
+
}
|
|
309
|
+
],
|
|
310
|
+
"files": []
|
|
311
|
+
},
|
|
312
|
+
{
|
|
313
|
+
"id": "do-not-trigger-photo-edit-only",
|
|
314
|
+
"prompt": "Crop this microscopy photo and increase its contrast. I am not assembling or auditing a manuscript figure.",
|
|
315
|
+
"expected_output": "The nature-figure skill should not trigger for a pure raster-photo edit without figure assembly, quantitative plotting, or journal-figure audit intent.",
|
|
316
|
+
"assertions": [
|
|
317
|
+
{
|
|
318
|
+
"name": "photo_edit_only_excluded",
|
|
319
|
+
"description": "Pure image editing routes to an image-editing capability rather than nature-figure."
|
|
320
|
+
}
|
|
321
|
+
],
|
|
322
|
+
"files": []
|
|
323
|
+
}
|
|
324
|
+
]
|
|
325
|
+
}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
name: nature-figure
|
|
2
|
+
version: 2.8.0
|
|
3
|
+
description: >
|
|
4
|
+
Declarative manifest for the static/dynamic split. SKILL.md uses this to
|
|
5
|
+
decide which fragments to load for a given figure request. The main axis is
|
|
6
|
+
the plotting backend (Python or R). The first plotting use should establish
|
|
7
|
+
a saved user preference; later tasks reuse that preference unless the user
|
|
8
|
+
explicitly changes it. The large body of design, API, pattern, and QA
|
|
9
|
+
material stays in on-demand references.
|
|
10
|
+
|
|
11
|
+
always_load:
|
|
12
|
+
# Skill-local core (figure does not use the prose-oriented nature-shared layer)
|
|
13
|
+
- static/core/contract.md
|
|
14
|
+
- static/core/stance.md
|
|
15
|
+
|
|
16
|
+
routes:
|
|
17
|
+
graphical_abstract_workflow:
|
|
18
|
+
detect: |
|
|
19
|
+
Use this route whenever AI assists the planning, generation, revision, or
|
|
20
|
+
audit of a graphical abstract. Planning and audit-only tasks do not need
|
|
21
|
+
the Python/R backend gate. The reference owns the policy check,
|
|
22
|
+
message/audience brief, visual design workflow, human verification,
|
|
23
|
+
disclosure boundary, and provenance record.
|
|
24
|
+
reference: references/ai-graphical-abstract-workflow.md
|
|
25
|
+
openrouter_image_generation:
|
|
26
|
+
detect: |
|
|
27
|
+
Use this route only when the user explicitly asks for OpenRouter, GPT
|
|
28
|
+
Image 2, image-generation API output, AI-generated paper schematics,
|
|
29
|
+
graphical abstracts, concept illustrations, or mechanism diagrams. This
|
|
30
|
+
route skips the Python/R backend gate because it generates a raster/vector
|
|
31
|
+
image draft through an external image API rather than plotting data.
|
|
32
|
+
reference: references/openrouter-image-generation.md
|
|
33
|
+
script: scripts/generate_openrouter_schematic.py
|
|
34
|
+
|
|
35
|
+
preference:
|
|
36
|
+
backend_script: scripts/nature_figure_backend.py
|
|
37
|
+
config_env: NATURE_FIGURE_CONFIG
|
|
38
|
+
default_config: ~/.config/nature-skills/nature-figure.json
|
|
39
|
+
behavior: |
|
|
40
|
+
For plotting tasks, first honor an explicit Python/R choice, then a clearly
|
|
41
|
+
language-specific input workflow, then the saved preference returned by the
|
|
42
|
+
backend script. If none exists, ask the user once and save the answer.
|
|
43
|
+
|
|
44
|
+
axes:
|
|
45
|
+
backend:
|
|
46
|
+
detect: |
|
|
47
|
+
BLOCKING GATE WITH PERSISTED PREFERENCE. Determine the plotting backend
|
|
48
|
+
from an explicit user choice, a clearly language-specific input
|
|
49
|
+
file/workflow, or the saved preference returned by
|
|
50
|
+
scripts/nature_figure_backend.py get. If no saved preference exists, ask
|
|
51
|
+
exactly one concise question — "Python or R? I will remember this as your
|
|
52
|
+
default." — and stop. Save the answer with the backend preference script
|
|
53
|
+
before proceeding. Only recommend a backend when the user explicitly asks
|
|
54
|
+
you to choose; in that case use references/backend-selection.md, state the
|
|
55
|
+
reason, save the selected backend, then proceed. Once selected, the
|
|
56
|
+
backend is exclusive for all drawing, previewing, exporting, and visual QA.
|
|
57
|
+
values:
|
|
58
|
+
python: static/fragments/backend/python.md
|
|
59
|
+
r: static/fragments/backend/r.md
|
|
60
|
+
multi: false
|
|
61
|
+
|
|
62
|
+
references:
|
|
63
|
+
on_demand:
|
|
64
|
+
- condition: convert a user request into core conclusion, evidence hierarchy, panel map, and review-risk checks
|
|
65
|
+
path: references/figure-contract.md
|
|
66
|
+
- condition: plan, restructure, or audit a multi-panel manuscript figure; decide panel roles or main-versus-Extended-Data placement; or align figure order with a Results evidence chain
|
|
67
|
+
path: references/multipanel-evidence-architecture.md
|
|
68
|
+
- condition: user has not chosen Python/R, asks for a recommendation, or a mixed Python/R workflow is possible
|
|
69
|
+
path: references/backend-selection.md
|
|
70
|
+
- condition: user chooses R or provides R scripts/templates/data
|
|
71
|
+
path: references/r-workflow.md
|
|
72
|
+
- condition: adapt a user-provided or private R template collection without exposing source paths
|
|
73
|
+
path: references/r-template-index.md
|
|
74
|
+
- condition: reuse or adapt a bundled example, plotting script, preview image, or user-provided template against new data
|
|
75
|
+
path: references/asset-adaptation.md
|
|
76
|
+
- condition: every generated or revised Python/R scientific figure, multi-panel alignment gate, rendered PDF collision audit, final delivery, revision package, rendered PDF text audit, panel-by-panel visual QA, microscopy/blot figure, or journal-specific audit
|
|
77
|
+
path: references/qa-contract.md
|
|
78
|
+
- condition: target is the flagship journal Nature, or exact initial-versus-production main/Extended Data figure and legend requirements are needed
|
|
79
|
+
path: references/nature-article-requirements.md
|
|
80
|
+
- condition: target is Nature Machine Intelligence, or exact NMI main-display, Extended Data, legend, source-data, initial-review, or production-figure requirements are needed
|
|
81
|
+
path: ../nature-shared/journal-formats/nature-machine-intelligence.md
|
|
82
|
+
- condition: typography, color theory, layout rationale, export policy
|
|
83
|
+
path: references/design-theory.md
|
|
84
|
+
- condition: Python PALETTE, helper function signatures, Matplotlib panel-alignment integration, validation rules
|
|
85
|
+
path: references/api.md
|
|
86
|
+
- condition: "Python layout patterns: hero panels, legend-only axes, dark image plates, asymmetric layouts"
|
|
87
|
+
path: references/common-patterns.md
|
|
88
|
+
- condition: "real Nature page archetypes: schematic-led composites, dark image plates, clinical triptychs, asymmetric hero layouts"
|
|
89
|
+
path: references/nature-2026-observations.md
|
|
90
|
+
- condition: "OpenRouter/GPT Image 2 route: AI-generated graphical abstracts, mechanism diagrams, paper schematics, or concept illustrations"
|
|
91
|
+
path: references/openrouter-image-generation.md
|
|
92
|
+
- condition: AI-assisted graphical abstract planning, generation, revision, audit, journal-policy check, scientific verification, disclosure, or provenance
|
|
93
|
+
path: references/ai-graphical-abstract-workflow.md
|
|
94
|
+
- condition: writing or auditing figure/table legend text — Fig. N | title, panel style, stats in legend, Source Data boilerplate, attribution; load the flagship Nature requirements too when that is the target journal
|
|
95
|
+
path: references/figure-legend-conventions.md
|
|
96
|
+
- condition: "end-to-end walkthroughs: bars, trends, heatmaps"
|
|
97
|
+
path: references/tutorials.md
|
|
98
|
+
- condition: "validated Python CSV templates: volcano, ROC, marker dot plot, marginal density, or paired plot"
|
|
99
|
+
path: references/template-catalog.md
|
|
100
|
+
- condition: "radar, 3D sphere, fill_between, scatter, ablation-line, probability/manifold concept patterns"
|
|
101
|
+
path: references/chart-types.md
|
|
102
|
+
- condition: third-party figures4papers demo lookup, copyright-aware reference use, or original pattern reimplementation
|
|
103
|
+
path: references/demos.md
|
package/vendor/nature-skills/skills/nature-figure/references/ai-graphical-abstract-workflow.md
ADDED
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
# AI-Assisted Graphical Abstract Workflow
|
|
2
|
+
|
|
3
|
+
Use this reference whenever a task involves planning, generating, revising, or
|
|
4
|
+
auditing a graphical abstract with AI assistance. Apply it before any
|
|
5
|
+
provider-specific image-generation instructions.
|
|
6
|
+
|
|
7
|
+
## Contents
|
|
8
|
+
|
|
9
|
+
- [Authority boundary and policy gate](#authority-boundary-and-policy-gate)
|
|
10
|
+
- [1. Define the communication target](#1-define-the-communication-target)
|
|
11
|
+
- [2. Build a visual brief](#2-build-a-visual-brief)
|
|
12
|
+
- [3. Assign AI a bounded role](#3-assign-ai-a-bounded-role)
|
|
13
|
+
- [4. Write the prompt as a figure contract](#4-write-the-prompt-as-a-figure-contract)
|
|
14
|
+
- [5. Run human scientific and publication QA](#5-run-human-scientific-and-publication-qa)
|
|
15
|
+
- [Sources and status](#sources-and-status)
|
|
16
|
+
|
|
17
|
+
## Authority boundary and policy gate
|
|
18
|
+
|
|
19
|
+
- Treat Ananya Thakur's 22 July 2026 *Nature* Careers column as practitioner
|
|
20
|
+
guidance, not as a Nature Portfolio submission policy or blanket permission
|
|
21
|
+
to publish AI-generated artwork.
|
|
22
|
+
- Before generating a submission candidate, verify the target journal's current
|
|
23
|
+
graphical-abstract, artificial-intelligence, image-integrity, copyright, and
|
|
24
|
+
disclosure rules on official pages. Record the journal, URL, and access date.
|
|
25
|
+
- For a Nature Portfolio target, apply the current risk-assessment framework:
|
|
26
|
+
assistive use can support expression or organization; interpretive or
|
|
27
|
+
generative use requires human oversight, verification, and transparent
|
|
28
|
+
disclosure; opaque, unverifiable, confidentiality-breaching, or
|
|
29
|
+
judgement-replacing use is not permitted. A journal may impose stricter
|
|
30
|
+
rules.
|
|
31
|
+
- If journal clearance is unknown, label the output **internal design draft —
|
|
32
|
+
submission eligibility unverified**. Do not call it submission-ready.
|
|
33
|
+
- Keep two decisions separate: whether a draft is useful internally and whether
|
|
34
|
+
the final asset is eligible for submission.
|
|
35
|
+
|
|
36
|
+
## 1. Define the communication target
|
|
37
|
+
|
|
38
|
+
Before choosing a tool or visual style, write down:
|
|
39
|
+
|
|
40
|
+
1. the single sentence the reader should remember
|
|
41
|
+
2. the figure type: mechanism, process, experimental setup, workflow,
|
|
42
|
+
comparison, timeline, cycle, or branching decision
|
|
43
|
+
3. the intended audience and its expected vocabulary
|
|
44
|
+
4. the evidence boundary: what the study demonstrates, what is contextual, and
|
|
45
|
+
what must not be implied
|
|
46
|
+
5. the details to omit because they do not support the central message
|
|
47
|
+
|
|
48
|
+
Do not ask an image model to summarize an entire manuscript into a final image
|
|
49
|
+
without this brief.
|
|
50
|
+
|
|
51
|
+
## 2. Build a visual brief
|
|
52
|
+
|
|
53
|
+
- Inspect graphical abstracts from comparable papers for information density,
|
|
54
|
+
reading order, and composition. Learn the visual grammar; do not copy
|
|
55
|
+
protected artwork, icons, or distinctive layouts.
|
|
56
|
+
- Choose an explicit reading path: left-to-right, top-to-bottom, cycle, split
|
|
57
|
+
comparison, or fork. Use arrows and grouping only when they clarify that path.
|
|
58
|
+
- Use a limited, consistent, high-contrast, color-accessible palette. Assign
|
|
59
|
+
color by scientific meaning, not decoration, and do not rely on color alone.
|
|
60
|
+
- Reserve the strongest accent for the central causal step or principal result.
|
|
61
|
+
Keep labels short and plan their placement before generating artwork.
|
|
62
|
+
- Prefer one representative pathway over an exhaustive interaction network when
|
|
63
|
+
the fuller network would obscure the central claim. Preserve necessary caveats
|
|
64
|
+
in the legend or manuscript.
|
|
65
|
+
|
|
66
|
+
## 3. Assign AI a bounded role
|
|
67
|
+
|
|
68
|
+
Use AI to assist with tasks such as:
|
|
69
|
+
|
|
70
|
+
- distilling author-provided claims into candidate one-sentence messages
|
|
71
|
+
- comparing audience-specific levels of terminology and detail
|
|
72
|
+
- proposing several compositions or label placements
|
|
73
|
+
- checking palette contrast and color accessibility
|
|
74
|
+
- turning an author-owned sketch into a draft layout or vectorization plan
|
|
75
|
+
- brainstorming pictorial metaphors that will be scientifically reviewed
|
|
76
|
+
|
|
77
|
+
Do not let AI invent measurements, mechanisms, structures, clinical effects,
|
|
78
|
+
citations, labels, or evidence. Do not upload confidential manuscripts, peer
|
|
79
|
+
review material, sensitive data, or unpublished images to an unsecured or public
|
|
80
|
+
AI service without explicit authorization.
|
|
81
|
+
|
|
82
|
+
## 4. Write the prompt as a figure contract
|
|
83
|
+
|
|
84
|
+
Include these fields in a provider-neutral prompt:
|
|
85
|
+
|
|
86
|
+
- **Purpose and audience**
|
|
87
|
+
- **One-sentence message**
|
|
88
|
+
- **Figure type and reading order**
|
|
89
|
+
- **Required entities and relationships**
|
|
90
|
+
- **Evidence boundary and forbidden implications**
|
|
91
|
+
- **Composition and focal element**
|
|
92
|
+
- **Palette, contrast, and accessibility constraints**
|
|
93
|
+
- **Exact short labels**
|
|
94
|
+
- **Elements to exclude**, including fabricated numbers, logos, and decorative
|
|
95
|
+
scientific objects
|
|
96
|
+
- **Output role**, explicitly stating `concept draft` when generative AI is used
|
|
97
|
+
|
|
98
|
+
Generate layout alternatives before polishing a single composition. Correct
|
|
99
|
+
scientific structure first, then typography, color, and visual finish. Redraw
|
|
100
|
+
critical text, arrows, chemical structures, and quantitative marks with
|
|
101
|
+
deterministic or editable tools whenever possible.
|
|
102
|
+
|
|
103
|
+
## 5. Run human scientific and publication QA
|
|
104
|
+
|
|
105
|
+
Before delivery, check every visual element against the manuscript and source
|
|
106
|
+
data:
|
|
107
|
+
|
|
108
|
+
- scientific entities, directions, causal links, scale, anatomy, and chronology
|
|
109
|
+
- all labels, abbreviations, spelling, units, and symbol definitions
|
|
110
|
+
- absence of invented data, unsupported effects, misleading realism, or
|
|
111
|
+
decorative evidence
|
|
112
|
+
- readable hierarchy at final size and a color-blindness-safe reading path
|
|
113
|
+
- originality, licenses, permissions, attribution, and resemblance to source art
|
|
114
|
+
- target-journal eligibility, disclosure wording, and figure-legend treatment
|
|
115
|
+
|
|
116
|
+
Retain a provenance bundle containing the prompt, model/provider and version,
|
|
117
|
+
generation date, reference-image rights, generated candidates, selected output,
|
|
118
|
+
and a log of manual corrections. Human authors remain accountable for the final
|
|
119
|
+
asset.
|
|
120
|
+
|
|
121
|
+
## Sources and status
|
|
122
|
+
|
|
123
|
+
- Practitioner workflow: Ananya Thakur, “How to use AI to make a graphical
|
|
124
|
+
abstract in minutes,” *Nature* Careers, 22 July 2026,
|
|
125
|
+
<https://doi.org/10.1038/d41586-026-02072-9>.
|
|
126
|
+
- Governing portfolio policy: Nature Portfolio, “Artificial Intelligence (AI),”
|
|
127
|
+
<https://www.nature.com/nature-portfolio/editorial-policies/ai>, verified
|
|
128
|
+
15 August 2026. Recheck before each submission because the policy is reviewed
|
|
129
|
+
periodically.
|