Skill Tracer
Skills › Scientific Agent Skills › pathml

pathml

skill · 264 lines · MIT · skills/pathml/SKILL.md

The facts

Its description

Supports local computational pathology research with PathML: slide loading and tiling, preprocessing and QC, h5path storage, multiplex quantification, spatial graphs, and bounded model inference. Use for whole-slide H&E, CODEX, Vectra, Mesmer, HoVer-Net, and HACTNet workflows.

The description the agent reads to decide when to use it.

From its settingsline 3

Tools it may use, or may not

allowed-tools: Read Write Edit Bash Glob

Tools it may use while it runs without asking you first.

From its settingsline 6

Runs scripts

bin/activate, python scripts/slide_manifest.py, python scripts/plan_pipeline.py, python scripts/image_qc.py (first 5 of 8 lines)

Scripts the text names. Found by matching words, so treat them as pointers.

Found by matching wordsline 56 line 209 line 210 line 211 line 212

Files it mentions

references/image_loading.md, references/preprocessing.md, references/data_management.md (first 5 of 8 lines)

Files the text names, such as ones to read or write. Found by matching words, so treat them as pointers.

Found by matching wordsline 90 line 133 line 223 line 225 line 227

Licence

MIT, from the skill file

The terms its author shares it under, which let it be shown here.

From its settingsline 4 licence text

Other settings

compatibility: Requires Python 3.10-3.12 for the PathML 3.0.8 dependency stack, native OpenSlide, a JDK/compiler for python-javabridge, and Bio-Formats. Network needed for installation and optional model/dataset downloads. Bundled Python 3.10+ planners and validators need only the standard library; optional metadata/image inspection needs its reader package. metadata: version: "1.4" skill-author: K-Dense Inc. last-reviewed: "2026-10-01"

More settings at the top of the file, shown as written.

From its settingsline 5 line 7
Other files in this skill (12) Close

The text

Open on GitHub

Most marks come from matching words in the file, so treat them as pointers.

1---
2name: pathml
3description: "Supports local computational pathology research with PathML: slide loading and tiling, preprocessing and QC, h5path storage, multiplex quantification, spatial graphs, and bounded model inference. Use for whole-slide H&E, CODEX, Vectra, Mesmer, HoVer-Net, and HACTNet workflows."
4license: MIT
5compatibility: Requires Python 3.10-3.12 for the PathML 3.0.8 dependency stack, native OpenSlide, a JDK/compiler for python-javabridge, and Bio-Formats. Network needed for installation and optional model/dataset downloads. Bundled Python 3.10+ planners and validators need only the standard library; optional metadata/image inspection needs its reader package.
6allowed-tools: Read Write Edit Bash Glob
7metadata:
8 version: "1.4"
9 skill-author: K-Dense Inc.
10 last-reviewed: "2026-10-01"
11---
13# PathML
15## Scope and safety boundary
17Use PathML for **local computational pathology research**. It is beta research
18software, not a validated medical device, diagnostic system, clinical decision
19support tool, or substitute for a pathologist. Do not use outputs to diagnose,
20grade, stage, or treat a patient.
22Pathology files may contain faces, labels, accession numbers, patient identifiers,
23DICOM tags, filenames, or linked clinical data. Before processing:
251. Confirm authorization, consent/waiver, data-use terms, and institutional policy.
262. De-identify pixels and metadata; keep the re-identification key outside the
27 analysis workspace.
283. Use pseudonymous `patient_id`, `slide_id`, and `specimen_id` values. Do not put
29 direct identifiers in filenames, logs, `.h5path` labels, model cards, or reports.
304. Keep inputs, intermediates, and outputs on approved local encrypted storage.
315. Split by patient (then slide) before tiling or fitting any preprocessing step.

Scope and safety boundary

Use PathML for local computational pathology research. It is beta research software, not a validated medical device, diagnostic system, clinical decision support tool, or substitute for a pathologist. Do not use outputs to diagnose, grade, stage, or treat a patient.

Pathology files may contain faces, labels, accession numbers, patient identifiers, DICOM tags, filenames, or linked clinical data. Before processing:

  1. Confirm authorization, consent/waiver, data-use terms, and institutional policy.
  2. De-identify pixels and metadata; keep the re-identification key outside the analysis workspace.
  3. Use pseudonymous patient_id, slide_id, and specimen_id values. Do not put direct identifiers in filenames, logs, .h5path labels, model cards, or reports.
  4. Keep inputs, intermediates, and outputs on approved local encrypted storage.
  5. Split by patient (then slide) before tiling or fitting any preprocessing step.
Raw lines 15 to 32
33## Version baseline, reviewed 2026-10-01
35- **Published stable release:** PyPI `pathml==3.0.8`, published 2026-08-14,
36 source tag `v3.0.8` (`fa49ffb66757ed8a8265756c92b6290834eddecb`).
37- The v3.0.5 release notes state Python **3.10-3.12** and sunset 3.9.
38 PyPI does not declare `Requires-Python` and still has a stale 3.8 classifier, so
39 use the release statement and test the exact environment.
40- The current wheel incorporates the Torch/PyG dependency updates and explicit
41 legacy ONNX export (`dynamo=False`). ReadTheDocs pages/search caches can show
42 different versions; the 3.0.8 wheel and tagged source determine these APIs.
43- Bundled CLIs are tested with synthetic data. PathML examples and installation
44 commands are **illustrative, source-checked**, not a full native-stack or
45 pathology-model execution claim. No slides, model weights, or datasets were
46 downloaded for this review.
47- This skill is MIT-licensed. PathML itself is GPL-2.0 with upstream commercial
48 licensing options; review upstream terms before redistribution.

Version baseline, reviewed 2026-10-01

  • Published stable release: PyPI pathml==3.0.8, published 2026-08-14, source tag v3.0.8 (fa49ffb66757ed8a8265756c92b6290834eddecb).
  • The v3.0.5 release notes state Python 3.10-3.12 and sunset 3.9. PyPI does not declare Requires-Python and still has a stale 3.8 classifier, so use the release statement and test the exact environment.
  • The current wheel incorporates the Torch/PyG dependency updates and explicit legacy ONNX export (dynamo=False). ReadTheDocs pages/search caches can show different versions; the 3.0.8 wheel and tagged source determine these APIs.
  • Bundled CLIs are tested with synthetic data. PathML examples and installation commands are illustrative, source-checked, not a full native-stack or pathology-model execution claim. No slides, model weights, or datasets were downloaded for this review.
  • This skill is MIT-licensed. PathML itself is GPL-2.0 with upstream commercial licensing options; review upstream terms before redistribution.
Raw lines 33 to 49
50## Reproducible installation
52Use Python 3.11 unless the project has tested another supported interpreter:
54```bash
55uv venv --python 3.11
56source .venv/bin/activate
57uv pip install "pathml==3.0.8"
58python -c "import importlib.metadata as m; print(m.version('pathml'))"
59```
61PathML 3.0.8 declares no package extras: do **not** use `pathml[all]`. Its base
62distribution pins a large scientific/ML stack, including Torch 2.12.0, ONNX 1.22.0,
63ONNX Runtime 1.17.x, OpenSlide Python 1.3.1, python-bioformats 4.1.0, and
64python-javabridge 4.0.4, torch-geometric 2.8.0, and onnxscript 0.7.1. It also pins
65NumPy below 2 and several older binary packages; do not upgrade them independently.
67Install native prerequisites before the uv command:
69```bash
70# Debian/Ubuntu
71sudo apt-get install openslide-tools gcc g++ libblas-dev liblapack-dev openjdk-17-jdk
73# macOS
74brew install openslide openjdk@17
76# Windows OpenSlide option documented upstream
77vcpkg install openslide
78```
80`python-javabridge==4.0.4` is source-only on PyPI and needs a **JDK** (including
81`javac`/JNI headers), not just a JRE. Set `JAVA_HOME` to that JDK before building.
82PathML imports the Java bridge/Bio-Formats in its shared backend module even when
83the requested reader is OpenSlide; selecting OpenSlide does not avoid those
84installation dependencies. Old import-error advice mentioning Java 8 and
85`javabridge==1.0.19` does not match the released wheel requirements.
87Java/Bio-Formats provides the broad multidimensional format backend.
88OpenSlide handles common brightfield WSI formats more efficiently. CUDA is
89optional and must match the pinned PyTorch build; follow PyTorch's platform
90selector rather than guessing a CUDA wheel. See `references/image_loading.md`.

Reproducible installation

Use Python 3.11 unless the project has tested another supported interpreter:

uv venv --python 3.11
source .venv/bin/activate
uv pip install "pathml==3.0.8"
python -c "import importlib.metadata as m; print(m.version('pathml'))"

PathML 3.0.8 declares no package extras: do not use pathml[all]. Its base distribution pins a large scientific/ML stack, including Torch 2.12.0, ONNX 1.22.0, ONNX Runtime 1.17.x, OpenSlide Python 1.3.1, python-bioformats 4.1.0, and python-javabridge 4.0.4, torch-geometric 2.8.0, and onnxscript 0.7.1. It also pins NumPy below 2 and several older binary packages; do not upgrade them independently.

Install native prerequisites before the uv command:

# Debian/Ubuntu
sudo apt-get install openslide-tools gcc g++ libblas-dev liblapack-dev openjdk-17-jdk

# macOS
brew install openslide openjdk@17

# Windows OpenSlide option documented upstream
vcpkg install openslide

python-javabridge==4.0.4 is source-only on PyPI and needs a JDK (including javac/JNI headers), not just a JRE. Set JAVA_HOME to that JDK before building. PathML imports the Java bridge/Bio-Formats in its shared backend module even when the requested reader is OpenSlide; selecting OpenSlide does not avoid those installation dependencies. Old import-error advice mentioning Java 8 and javabridge==1.0.19 does not match the released wheel requirements.

Java/Bio-Formats provides the broad multidimensional format backend. OpenSlide handles common brightfield WSI formats more efficiently. CUDA is optional and must match the pinned PyTorch build; follow PyTorch's platform selector rather than guessing a CUDA wheel. See references/image_loading.md.

Raw lines 50 to 91
Runs code bin/activate :56
92## Stable minimal workflow
94PathML 3.0.8 uses slide convenience classes and `SlideData.run()`. It does not
95provide `SlideData.from_slide()`, and `Pipeline` does not have `run()`:
97```python
98from pathml.core import HESlide
99from pathml.preprocessing import BoxBlur, Pipeline, TissueDetectionHE
101slide = HESlide("data/pseudonymous_slide.svs", backend="openslide")
102pipeline = Pipeline(
103 [
104 BoxBlur(kernel_size=5),
105 TissueDetectionHE(mask_name="tissue", min_region_size=5000),
106 ]
108slide.run(
109 pipeline,
110 distributed=False,
111 tile_size=512,
112 tile_stride=512,
113 level=0,
114 tile_pad=False,
116slide.write("derived/pseudonymous_slide.h5path")
117```
119Start with a bounded manual sample before a full run:
121```python
122from itertools import islice
124for tile in islice(slide.generate_tiles(shape=512, stride=512, level=0), 8):
125 pipeline.apply(tile)
126 assert tile.masks["tissue"].shape[:2] == tile.image.shape[:2]
127```
129Tiles use `(i, j)` = `(row, column)` coordinates at the selected pyramid level.
130PathML 3.0.8 truncates OpenSlide's downsample to an integer when locating a region.
131Use level 0 or an exactly integral downsample; a fractional downsample can shift
132the sampled region. Record level, actual dimensions and MPP before converting to
133`(x, y)` or micrometres. See `references/image_loading.md`.
135Before comparing tile features, cell distances, or areas across scanners, validate
136level-0 MPP separately for X and Y. Equal pixel tile sizes need not cover equal
137physical areas, and OpenSlide MPP may be absent or inaccurate. Keep results in
138pixel units when calibration is unknown, or document a validated calibration;
139do not infer it from objective magnification alone. See [OpenSlide properties](https://openslide.org/docs/properties/).

Stable minimal workflow

PathML 3.0.8 uses slide convenience classes and SlideData.run(). It does not provide SlideData.from_slide(), and Pipeline does not have run():

from pathml.core import HESlide
from pathml.preprocessing import BoxBlur, Pipeline, TissueDetectionHE

slide = HESlide("data/pseudonymous_slide.svs", backend="openslide")
pipeline = Pipeline(
    [
        BoxBlur(kernel_size=5),
        TissueDetectionHE(mask_name="tissue", min_region_size=5000),
    ]
)
slide.run(
    pipeline,
    distributed=False,
    tile_size=512,
    tile_stride=512,
    level=0,
    tile_pad=False,
)
slide.write("derived/pseudonymous_slide.h5path")

Start with a bounded manual sample before a full run:

from itertools import islice

for tile in islice(slide.generate_tiles(shape=512, stride=512, level=0), 8):
    pipeline.apply(tile)
    assert tile.masks["tissue"].shape[:2] == tile.image.shape[:2]

Tiles use (i, j) = (row, column) coordinates at the selected pyramid level. PathML 3.0.8 truncates OpenSlide's downsample to an integer when locating a region. Use level 0 or an exactly integral downsample; a fractional downsample can shift the sampled region. Record level, actual dimensions and MPP before converting to (x, y) or micrometres. See references/image_loading.md.

Before comparing tile features, cell distances, or areas across scanners, validate level-0 MPP separately for X and Y. Equal pixel tile sizes need not cover equal physical areas, and OpenSlide MPP may be absent or inaccurate. Keep results in pixel units when calibration is unknown, or document a validated calibration; do not infer it from objective magnification alone. See OpenSlide properties.

Raw lines 92 to 140
Reads a file references/image_loading.md :133
141## Research workflow
1431. **Inventory locally.** Validate the manifest, reject URLs/symlinks, inspect only
144 allowlisted technical metadata, and remove identifiers.
1452. **Freeze splits.** Assign every patient and all their slides to one split before
146 generating overlapping tiles, graphs, normalization references, or features.
1473. **Plan bounds.** Estimate tile count, RAM, output size, and pipeline stages.
1484. **Pilot preprocessing.** Inspect tissue masks, whitespace/artifact labels,
149 stain behavior, edge padding, and empty-mask cases on representative training
150 slides. Do not tune from test slides.
1515. **Run and preserve coordinates.** Keep tile level, `(i, j)`, downsample, MPP,
152 mask names, QC decisions, and failed/skipped tiles.
1536. **Build spatial data deliberately.** Validate channel order, physical units,
154 instance labels, node-feature alignment, graph edges, and cell-to-tissue
155 assignments.
1567. **Infer in bounded batches.** Verify model provenance and checksum without
157 loading unknown pickle checkpoints. Keep predictions linked to slide/tile
158 coordinates and stitch overlaps with a documented rule.
1598. **Report provenance and limits.** Include package lock, source hashes, scanner,
160 stain, parameters, seeds, split manifest, model card, exclusions, and QC.
162For multiplex measurement, pass `normalize=False` to Bio-Formats tile extraction
163to preserve intensities. `.h5path` still casts tile images and masks to `float16`:
164store quantitative images and integer instance maps separately when exact values
165matter (integers above 2048 are not all representable). See the data-management
166and multiplex references before quantification or storage.

Research workflow

  1. Inventory locally. Validate the manifest, reject URLs/symlinks, inspect only allowlisted technical metadata, and remove identifiers.
  2. Freeze splits. Assign every patient and all their slides to one split before generating overlapping tiles, graphs, normalization references, or features.
  3. Plan bounds. Estimate tile count, RAM, output size, and pipeline stages.
  4. Pilot preprocessing. Inspect tissue masks, whitespace/artifact labels, stain behavior, edge padding, and empty-mask cases on representative training slides. Do not tune from test slides.
  5. Run and preserve coordinates. Keep tile level, (i, j), downsample, MPP, mask names, QC decisions, and failed/skipped tiles.
  6. Build spatial data deliberately. Validate channel order, physical units, instance labels, node-feature alignment, graph edges, and cell-to-tissue assignments.
  7. Infer in bounded batches. Verify model provenance and checksum without loading unknown pickle checkpoints. Keep predictions linked to slide/tile coordinates and stitch overlaps with a documented rule.
  8. Report provenance and limits. Include package lock, source hashes, scanner, stain, parameters, seeds, split manifest, model card, exclusions, and QC.

For multiplex measurement, pass normalize=False to Bio-Formats tile extraction to preserve intensities. .h5path still casts tile images and masks to float16: store quantitative images and integer instance maps separately when exact values matter (integers above 2048 are not all representable). See the data-management and multiplex references before quantification or storage.

Raw lines 141 to 167
168## No-network default and explicit consent gate
170Do not instantiate download-capable classes or set dataset `download=True` unless
171the user explicitly opts in after receiving the endpoint and disclosure:
173- `SegmentMIFRemote` downloads an ONNX file from
174 `https://huggingface.co/pathml/test/resolve/main/mesmer.onnx` at construction,
175 then runs inference locally. Stable source does **not** upload image pixels.
176 The request still discloses network metadata such as IP address and headers and
177 creates `temp.onnx`; there is no built-in checksum or offline flag.
178- Deprecated `SegmentMIF` imports local DeepCell Mesmer, but DeepCell model
179 initialization may need separately provisioned weights. It is not a PathML
180 extra and is not the preferred stable API.
181- `RemoteTestHoverNet` downloads a model from Hugging Face.
182- `PanNukeDataModule(download=True)` contacts Warwick; `DeepFocusDataModule`
183 contacts Zenodo. Both default to `download=False`.
185Before any future hosted prediction call, state the exact destination, pixel
186channels/regions, metadata, identifiers, retention, legal basis, and safeguards;
187obtain explicit consent; and never send PHI by default. Prefer reviewed,
188checksummed local model artifacts and local inference.

No-network default and explicit consent gate

Do not instantiate download-capable classes or set dataset download=True unless the user explicitly opts in after receiving the endpoint and disclosure:

  • SegmentMIFRemote downloads an ONNX file from https://huggingface.co/pathml/test/resolve/main/mesmer.onnx at construction, then runs inference locally. Stable source does not upload image pixels. The request still discloses network metadata such as IP address and headers and creates temp.onnx; there is no built-in checksum or offline flag.
  • Deprecated SegmentMIF imports local DeepCell Mesmer, but DeepCell model initialization may need separately provisioned weights. It is not a PathML extra and is not the preferred stable API.
  • RemoteTestHoverNet downloads a model from Hugging Face.
  • PanNukeDataModule(download=True) contacts Warwick; DeepFocusDataModule contacts Zenodo. Both default to download=False.

Before any future hosted prediction call, state the exact destination, pixel channels/regions, metadata, identifiers, retention, legal basis, and safeguards; obtain explicit consent; and never send PHI by default. Prefer reviewed, checksummed local model artifacts and local inference.

Raw lines 168 to 189
190## Model-code security
192- PyTorch `model.eval()` means **evaluation mode** for modules; it is not Python's
193 dangerous built-in evaluator. Never use Python dynamic evaluation or execution.
194- Do not name local files `pathml.py`, `torch.py`, `onnx.py`, or after standard
195 libraries; shadow modules can silently change imports.
196- PathML's `EntityDataset` loads `.pt` objects with `weights_only=False`. Never
197 open an untrusted graph/checkpoint. Treat pickle-based pipelines and `.pt` files
198 as executable code.
199- ONNX is safer than pickle but not inherently trusted. Verify source, SHA-256,
200 expected input/output schema, file size, and runtime limits; use isolation for
201 third-party models.

Model-code security

  • PyTorch model.eval() means evaluation mode for modules; it is not Python's dangerous built-in evaluator. Never use Python dynamic evaluation or execution.
  • Do not name local files pathml.py, torch.py, onnx.py, or after standard libraries; shadow modules can silently change imports.
  • PathML's EntityDataset loads .pt objects with weights_only=False. Never open an untrusted graph/checkpoint. Treat pickle-based pipelines and .pt files as executable code.
  • ONNX is safer than pickle but not inherently trusted. Verify source, SHA-256, expected input/output schema, file size, and runtime limits; use isolation for third-party models.
Raw lines 190 to 202
203## Bundled local CLIs
205All helpers reject URLs and symlinks, cap inputs/work, use strict JSON, avoid
206network access, and require no PathML import for `--help`:
208```bash
209python scripts/slide_manifest.py validate --manifest manifest.csv --root .
210python scripts/slide_manifest.py inspect --slide data/example.svs --root .
211python scripts/plan_pipeline.py --width 100000 --height 80000 --tile-size 512 --stride 512
212python scripts/image_qc.py synthetic --width 256 --height 256
213python scripts/validate_spatial_schema.py graph --input graph.json --root .
214python scripts/validate_spatial_schema.py multiplex --input cells.csv --root .
215python scripts/plan_inference.py --tile-count 4000 --batch-size 16 --height 256 --width 256
216```
218The inference planner reads numbers or a bounded JSON model card only; it never
219imports a model framework or opens a checkpoint.

Bundled local CLIs

All helpers reject URLs and symlinks, cap inputs/work, use strict JSON, avoid network access, and require no PathML import for --help:

python scripts/slide_manifest.py validate --manifest manifest.csv --root .
python scripts/slide_manifest.py inspect --slide data/example.svs --root .
python scripts/plan_pipeline.py --width 100000 --height 80000 --tile-size 512 --stride 512
python scripts/image_qc.py synthetic --width 256 --height 256
python scripts/validate_spatial_schema.py graph --input graph.json --root .
python scripts/validate_spatial_schema.py multiplex --input cells.csv --root .
python scripts/plan_inference.py --tile-count 4000 --batch-size 16 --height 256 --width 256

The inference planner reads numbers or a bounded JSON model card only; it never imports a model framework or opens a checkpoint.

Raw lines 203 to 220
Runs code python scripts/slide_manifest.py :209
Runs code python scripts/plan_pipeline.py :211
Runs code python scripts/image_qc.py :212
Runs code python scripts/validate_spatial_schema.py :213
Runs code python scripts/plan_inference.py :215
221## Detailed references
223- `references/image_loading.md` — slide classes, backends, formats, levels,
224 coordinates, technical metadata, and privacy.
225- `references/preprocessing.md` — stable transforms, masks/QC, stain processing,
226 pipeline execution, and leakage prevention.
227- `references/data_management.md` — `.h5path`, manifests, datasets, provenance,
228 splits, and safe downloads.
229- `references/multiparametric.md` — multidimensional layout, CODEX/Vectra,
230 quantification, AnnData, DeepCell/Mesmer, and network disclosure.
231- `references/graphs.md` — instance maps, feature alignment, KNN/RAG/HACT graphs,
232 spatial units, schemas, and validation.
233- `references/machine_learning.md` — HoVer-Net/HACTNet, local ONNX inference,
234 batching, checkpoint trust, evaluation, and model provenance.

Detailed references

Raw lines 221 to 235
Reads a file references/image_loading.md :223
Reads a file references/preprocessing.md :225
Reads a file references/graphs.md :231
236## Primary sources
238Release/API baseline reviewed 2026-10-01; papers provide background:
240- PyPI metadata: https://pypi.org/project/pathml/3.0.8/
241- Stable source tag: https://github.com/Dana-Farber-AIOS/pathml/tree/v3.0.8
242- Releases: https://github.com/Dana-Farber-AIOS/pathml/releases
243- Stable documentation: https://pathml.readthedocs.io/en/stable/
244- Rosenthal et al. (2022), PathML toolkit:
245 https://doi.org/10.1158/1541-7786.MCR-21-0665
246- Omar et al. (2025), multiplex workflows:
247 https://doi.org/10.1016/j.labinv.2025.104220

Primary sources

Release/API baseline reviewed 2026-10-01; papers provide background:

  • PyPI metadata: https://pypi.org/project/pathml/3.0.8/
  • Stable source tag: https://github.com/Dana-Farber-AIOS/pathml/tree/v3.0.8
  • Releases: https://github.com/Dana-Farber-AIOS/pathml/releases
  • Stable documentation: https://pathml.readthedocs.io/en/stable/
  • Rosenthal et al. (2022), PathML toolkit: https://doi.org/10.1158/1541-7786.MCR-21-0665
  • Omar et al. (2025), multiplex workflows: https://doi.org/10.1016/j.labinv.2025.104220
Raw lines 236 to 248
Boilerplate, lines 249 to 264. The same text appears in 125 other files here. Close
249## Citing Scientific Agent Skills
251This skill is part of Scientific Agent Skills by K-Dense. If it materially contributed to a
252manuscript, report, presentation, or code release, add the paper to the references or
253software section and tell the user you did so:
255> Kassis, T., Agarwal, V., He, Y., Patel, D., & Brueckner, A. M. (2026). Scientific Agent
256> Skills: A Library of Procedural Knowledge for Research Agents. arXiv:2609.00065.
257> https://doi.org/10.48550/arXiv.2609.00065
259Always cite the current version. The DOI and https://arxiv.org/abs/2609.00065 resolve to the
260latest arXiv version, so never append a version suffix such as `v1`. When network access is
261available, fetch https://arxiv.org/abs/2609.00065 (or
262http://export.arxiv.org/api/query?id_list=2609.00065) before writing the reference and take
263the author list, year, and version from that record. If the record lists a journal reference
264or publisher DOI, cite the published version instead.

From K-Dense-AI/scientific-agent-skills at 5f2bc03, 2026-10-26. Not read by a model yet. Summary and techniques by Claude Opus 5.5 on 2026-11-06.