Skill Tracer
Skills › Scientific Agent Skills › scikit-learn

scikit-learn

skill · 346 lines · BSD-3-Clause license · skills/scikit-learn/SKILL.md

The facts

Its description

Supports machine learning in Python with scikit-learn. Applies when working with supervised learning (classification, regression), unsupervised learning (clustering, dimensionality reduction), model evaluation, hyperparameter tuning, preprocessing, or building ML pipelines. Provides comprehensive reference documentation for algorithms, preprocessing techniques, pipelines, and best practices.

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

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

From its settingsline 5

Runs scripts

python scripts/classification_pipeline.py, python scripts/clustering_analysis.py

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

Found by matching wordsline 159 line 174

Files it mentions

references/core_capabilities.md, references/supervised_learning.md, references/unsupervised_learning.md, references/model_evaluation.md, references/preprocessing.md (first 5 of 13 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 131 line 132 line 133 line 134 line 135

Licence

BSD-3-Clause license, 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.11+ and scikit-learn 1.9.1. NumPy, SciPy, and joblib are dependencies; bundled scripts also require pandas and matplotlib. Installation needs network access; bundled examples use local datasets without credentials. metadata: version: "1.5" last-reviewed: "2026-10-01" upstream-version: "1.9.1" skill-author: K-Dense Inc.

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

From its settingsline 6 line 7
Other files in this skill (10) Close

The text

Open on GitHub

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

1---
2name: scikit-learn
3description: Supports machine learning in Python with scikit-learn. Applies when working with supervised learning (classification, regression), unsupervised learning (clustering, dimensionality reduction), model evaluation, hyperparameter tuning, preprocessing, or building ML pipelines. Provides comprehensive reference documentation for algorithms, preprocessing techniques, pipelines, and best practices.
4license: BSD-3-Clause license
5allowed-tools: Read Write Edit Bash
6compatibility: Requires Python 3.11+ and scikit-learn 1.9.1. NumPy, SciPy, and joblib are dependencies; bundled scripts also require pandas and matplotlib. Installation needs network access; bundled examples use local datasets without credentials.
7metadata:
8 version: "1.5"
9 last-reviewed: "2026-10-01"
10 upstream-version: "1.9.1"
11 skill-author: K-Dense Inc.
12---
14# Scikit-learn

Scikit-learn

Raw lines 1 to 15
16## Overview
18This skill provides comprehensive guidance for machine learning tasks using scikit-learn, the industry-standard Python library for classical machine learning. Use this skill for classification, regression, clustering, dimensionality reduction, preprocessing, model evaluation, and building production-ready ML pipelines.

Overview

This skill provides comprehensive guidance for machine learning tasks using scikit-learn, the industry-standard Python library for classical machine learning. Use this skill for classification, regression, clustering, dimensionality reduction, preprocessing, model evaluation, and building production-ready ML pipelines.

Raw lines 16 to 19
20## Installation
22Targets **scikit-learn 1.9.1**, verified with Python 3.13. The release requires Python 3.11+; use its published wheels for your interpreter/platform. See the [1.9 release notes](https://scikit-learn.org/stable/whats_new/v1.9.html). The bundled scripts and regression tests are executable examples. Reference snippets using caller-provided `X`, `y`, columns, or placeholders are illustrative adaptations, not complete standalone programs.
24Install the PyPI package **`scikit-learn`** (not the deprecated `sklearn` package on PyPI). Import in code as `sklearn`.
26```bash
27# Install scikit-learn using uv
28uv pip install "scikit-learn==1.9.1"
30# Optional: plotting utilities and bundled script dependencies
31uv pip install "scikit-learn[plots]==1.9.1" matplotlib pandas
33# Commonly used with
34uv pip install pandas numpy
35```
37Check your version:
39```python
40import sklearn
41print(sklearn.__version__)
42```

Installation

Targets scikit-learn 1.9.1, verified with Python 3.13. The release requires Python 3.11+; use its published wheels for your interpreter/platform. See the 1.9 release notes. The bundled scripts and regression tests are executable examples. Reference snippets using caller-provided X, y, columns, or placeholders are illustrative adaptations, not complete standalone programs.

Install the PyPI package **scikit-learn** (not the deprecated sklearn package on PyPI). Import in code as sklearn.

# Install scikit-learn using uv
uv pip install "scikit-learn==1.9.1"

# Optional: plotting utilities and bundled script dependencies
uv pip install "scikit-learn[plots]==1.9.1" matplotlib pandas

# Commonly used with
uv pip install pandas numpy

Check your version:

import sklearn
print(sklearn.__version__)
Raw lines 20 to 43
44## When to Use This Skill
46Use the scikit-learn skill when:
48- Building classification or regression models
49- Performing clustering or dimensionality reduction
50- Preprocessing and transforming data for machine learning
51- Evaluating model performance with cross-validation
52- Tuning hyperparameters with grid or random search
53- Creating ML pipelines for production workflows
54- Comparing different algorithms for a task
55- Working with both structured (tabular) and text data
56- Need interpretable, classical machine learning approaches

When to Use This Skill

Use the scikit-learn skill when:

  • Building classification or regression models
  • Performing clustering or dimensionality reduction
  • Preprocessing and transforming data for machine learning
  • Evaluating model performance with cross-validation
  • Tuning hyperparameters with grid or random search
  • Creating ML pipelines for production workflows
  • Comparing different algorithms for a task
  • Working with both structured (tabular) and text data
  • Need interpretable, classical machine learning approaches
Raw lines 44 to 57
58## Quick Start
60### Classification Example
62```python
63from sklearn.model_selection import train_test_split
64from sklearn.preprocessing import StandardScaler
65from sklearn.ensemble import RandomForestClassifier
66from sklearn.metrics import classification_report
68# Split data
69X_train, X_test, y_train, y_test = train_test_split(
70 X, y, test_size=0.2, stratify=y, random_state=42
73# Preprocess
74scaler = StandardScaler()
75X_train_scaled = scaler.fit_transform(X_train)
76X_test_scaled = scaler.transform(X_test)
78# Train model
79model = RandomForestClassifier(n_estimators=100, random_state=42)
80model.fit(X_train_scaled, y_train)
82# Evaluate
83y_pred = model.predict(X_test_scaled)
84print(classification_report(y_test, y_pred))
85```

Classification Example

from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import classification_report

# Split data
X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.2, stratify=y, random_state=42
)

# Preprocess
scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)

# Train model
model = RandomForestClassifier(n_estimators=100, random_state=42)
model.fit(X_train_scaled, y_train)

# Evaluate
y_pred = model.predict(X_test_scaled)
print(classification_report(y_test, y_pred))
Raw lines 60 to 86
87### Complete Pipeline with Mixed Data
89```python
90from sklearn.pipeline import Pipeline
91from sklearn.compose import ColumnTransformer
92from sklearn.preprocessing import StandardScaler, OneHotEncoder
93from sklearn.impute import SimpleImputer
94from sklearn.ensemble import GradientBoostingClassifier
96# Define feature types
97numeric_features = ['age', 'income']
98categorical_features = ['gender', 'occupation']
100# Create preprocessing pipelines
101numeric_transformer = Pipeline([
102 ('imputer', SimpleImputer(strategy='median')),
103 ('scaler', StandardScaler())
104])
106categorical_transformer = Pipeline([
107 ('imputer', SimpleImputer(strategy='most_frequent')),
108 ('onehot', OneHotEncoder(handle_unknown='ignore'))
109])
111# Combine transformers
112preprocessor = ColumnTransformer([
113 ('num', numeric_transformer, numeric_features),
114 ('cat', categorical_transformer, categorical_features)
115])
117# Full pipeline
118model = Pipeline([
119 ('preprocessor', preprocessor),
120 ('classifier', GradientBoostingClassifier(random_state=42))
121])
123# Fit and predict
124model.fit(X_train, y_train)
125y_pred = model.predict(X_test)
126```

Complete Pipeline with Mixed Data

from sklearn.pipeline import Pipeline
from sklearn.compose import ColumnTransformer
from sklearn.preprocessing import StandardScaler, OneHotEncoder
from sklearn.impute import SimpleImputer
from sklearn.ensemble import GradientBoostingClassifier

# Define feature types
numeric_features = ['age', 'income']
categorical_features = ['gender', 'occupation']

# Create preprocessing pipelines
numeric_transformer = Pipeline([
    ('imputer', SimpleImputer(strategy='median')),
    ('scaler', StandardScaler())
])

categorical_transformer = Pipeline([
    ('imputer', SimpleImputer(strategy='most_frequent')),
    ('onehot', OneHotEncoder(handle_unknown='ignore'))
])

# Combine transformers
preprocessor = ColumnTransformer([
    ('num', numeric_transformer, numeric_features),
    ('cat', categorical_transformer, categorical_features)
])

# Full pipeline
model = Pipeline([
    ('preprocessor', preprocessor),
    ('classifier', GradientBoostingClassifier(random_state=42))
])

# Fit and predict
model.fit(X_train, y_train)
y_pred = model.predict(X_test)
Raw lines 87 to 127
128## Core Capabilities
130Five capability areas are documented in
131[references/core_capabilities.md](references/core_capabilities.md), with per-topic detail
132in [references/supervised_learning.md](references/supervised_learning.md),
133[references/unsupervised_learning.md](references/unsupervised_learning.md),
134[references/model_evaluation.md](references/model_evaluation.md),
135[references/preprocessing.md](references/preprocessing.md), and
136[references/pipelines_and_composition.md](references/pipelines_and_composition.md):
1381. **Supervised learning** — classification and regression estimator families.
1392. **Unsupervised learning** — clustering, decomposition, and manifold learning.
1403. **Model evaluation and selection** — metrics, cross-validation, and hyperparameter search.
1414. **Data preprocessing** — scaling, encoding, imputation, and feature selection.
1425. **Pipelines and composition** — `Pipeline` and `ColumnTransformer`.
144Always fit preprocessing inside a `Pipeline` so it is refit per cross-validation fold;
145scaling or imputing before splitting leaks test information into training.
147Two worked workflows are in
148[references/common_workflows.md](references/common_workflows.md).

Core Capabilities

Five capability areas are documented in references/core_capabilities.md, with per-topic detail in references/supervised_learning.md, references/unsupervised_learning.md, references/model_evaluation.md, references/preprocessing.md, and references/pipelines_and_composition.md:

  1. Supervised learning — classification and regression estimator families.
  2. Unsupervised learning — clustering, decomposition, and manifold learning.
  3. Model evaluation and selection — metrics, cross-validation, and hyperparameter search.
  4. Data preprocessing — scaling, encoding, imputation, and feature selection.
  5. Pipelines and composition — Pipeline and ColumnTransformer.

Always fit preprocessing inside a Pipeline so it is refit per cross-validation fold; scaling or imputing before splitting leaks test information into training.

Two worked workflows are in references/common_workflows.md.

Raw lines 128 to 149
150## Example Scripts
152Run these commands from this skill directory; the clustering demo writes PNGs into the working directory. Its synthetic noise is seeded. The classification script assumes independent rows with enough observations per class for stratified CV; adapt both splits for grouped or temporal data.

Example Scripts

Run these commands from this skill directory; the clustering demo writes PNGs into the working directory. Its synthetic noise is seeded. The classification script assumes independent rows with enough observations per class for stratified CV; adapt both splits for grouped or temporal data.

Raw lines 150 to 153
154### Classification Pipeline
156Run a complete classification workflow with preprocessing, model comparison, hyperparameter tuning, and evaluation:
158```bash
159uv run --no-project --with scikit-learn==1.9.1 --with pandas --with matplotlib python scripts/classification_pipeline.py
160```
162This script demonstrates:
163- Handling mixed data types (numeric and categorical)
164- Model comparison using stratified cross-validation and balanced accuracy by default
165- Hyperparameter tuning with GridSearchCV
166- Comprehensive evaluation with multiple metrics
167- Impurity feature importances, with their high-cardinality bias made explicit

Classification Pipeline

Run a complete classification workflow with preprocessing, model comparison, hyperparameter tuning, and evaluation:

uv run --no-project --with scikit-learn==1.9.1 --with pandas --with matplotlib python scripts/classification_pipeline.py

This script demonstrates:

  • Handling mixed data types (numeric and categorical)
  • Model comparison using stratified cross-validation and balanced accuracy by default
  • Hyperparameter tuning with GridSearchCV
  • Comprehensive evaluation with multiple metrics
  • Impurity feature importances, with their high-cardinality bias made explicit
Raw lines 154 to 168
Runs code python scripts/classification_pipeline.py :159
169### Clustering Analysis
171Perform clustering analysis with algorithm comparison and visualization:
173```bash
174uv run --no-project --with scikit-learn==1.9.1 --with pandas --with matplotlib python scripts/clustering_analysis.py
175```
177This script demonstrates:
178- Exploring candidate cluster counts (inertia/elbow and silhouette analysis)
179- Comparing multiple clustering algorithms (K-Means, DBSCAN, Agglomerative, Gaussian Mixture)
180- Reporting undefined metrics for degenerate clusterings and DBSCAN noise coverage
181- Assessing internal geometry without treating it as proof of scientific clusters
182- Visualizing results with PCA projection

Clustering Analysis

Perform clustering analysis with algorithm comparison and visualization:

uv run --no-project --with scikit-learn==1.9.1 --with pandas --with matplotlib python scripts/clustering_analysis.py

This script demonstrates:

  • Exploring candidate cluster counts (inertia/elbow and silhouette analysis)
  • Comparing multiple clustering algorithms (K-Means, DBSCAN, Agglomerative, Gaussian Mixture)
  • Reporting undefined metrics for degenerate clusterings and DBSCAN noise coverage
  • Assessing internal geometry without treating it as proof of scientific clusters
  • Visualizing results with PCA projection
Raw lines 169 to 183
Runs code python scripts/clustering_analysis.py :174
184## Reference Documentation
186This skill includes comprehensive reference files for deep dives into specific topics:

Reference Documentation

This skill includes comprehensive reference files for deep dives into specific topics:

Raw lines 184 to 187
188### Quick Reference
190- Common import patterns and installation instructions
191- Quick workflow templates for common tasks
192- Algorithm selection cheat sheets
193- Common patterns and gotchas
194- Performance optimization tips

Quick Reference

File: references/quick_reference.md

  • Common import patterns and installation instructions
  • Quick workflow templates for common tasks
  • Algorithm selection cheat sheets
  • Common patterns and gotchas
  • Performance optimization tips
Raw lines 188 to 195
196### Supervised Learning
198- Linear models (regression and classification)
199- Support Vector Machines
200- Decision Trees and ensemble methods
201- K-Nearest Neighbors, Naive Bayes, Neural Networks
202- Algorithm selection guide

Supervised Learning

File: references/supervised_learning.md

  • Linear models (regression and classification)
  • Support Vector Machines
  • Decision Trees and ensemble methods
  • K-Nearest Neighbors, Naive Bayes, Neural Networks
  • Algorithm selection guide
Raw lines 196 to 203
204### Unsupervised Learning
206- All clustering algorithms with parameters and use cases
207- Dimensionality reduction techniques
208- Outlier and novelty detection
209- Gaussian Mixture Models
210- Method selection guide

Unsupervised Learning

File: references/unsupervised_learning.md

  • All clustering algorithms with parameters and use cases
  • Dimensionality reduction techniques
  • Outlier and novelty detection
  • Gaussian Mixture Models
  • Method selection guide
Raw lines 204 to 211
212### Model Evaluation
214- Cross-validation strategies
215- Hyperparameter tuning methods
216- Classification, regression, and clustering metrics
217- Learning and validation curves
218- Best practices for model selection

Model Evaluation

File: references/model_evaluation.md

  • Cross-validation strategies
  • Hyperparameter tuning methods
  • Classification, regression, and clustering metrics
  • Learning and validation curves
  • Best practices for model selection
Raw lines 212 to 219
220### Preprocessing
222- Feature scaling and normalization
223- Encoding categorical variables
224- Missing value imputation
225- Feature engineering techniques
226- Custom transformers

Preprocessing

File: references/preprocessing.md

  • Feature scaling and normalization
  • Encoding categorical variables
  • Missing value imputation
  • Feature engineering techniques
  • Custom transformers
Raw lines 220 to 227
Reads a file references/preprocessing.md :221
228### Pipelines and Composition
230- Pipeline construction and usage
231- ColumnTransformer for mixed data types
232- FeatureUnion for parallel transformations
233- Complete end-to-end examples
234- Best practices

Pipelines and Composition

File: references/pipelines_and_composition.md

  • Pipeline construction and usage
  • ColumnTransformer for mixed data types
  • FeatureUnion for parallel transformations
  • Complete end-to-end examples
  • Best practices
Raw lines 228 to 235
236## Best Practices

Best Practices

Raw lines 236 to 237
238### Always Use Pipelines
239Pipelines prevent data leakage and ensure consistency:
240```python
241# Good: Preprocessing in pipeline
242pipeline = Pipeline([
243 ('scaler', StandardScaler()),
244 ('model', LogisticRegression())
245])
247# Bad: Preprocessing outside (can leak information)
248X_scaled = StandardScaler().fit_transform(X)
249```

Always Use Pipelines

Pipelines prevent data leakage and ensure consistency:

# Good: Preprocessing in pipeline
pipeline = Pipeline([
    ('scaler', StandardScaler()),
    ('model', LogisticRegression())
])

# Bad: Preprocessing outside (can leak information)
X_scaled = StandardScaler().fit_transform(X)
Raw lines 238 to 250
251### Fit on Training Data Only
252Never fit on test data:
253```python
254# Good
255scaler = StandardScaler()
256X_train_scaled = scaler.fit_transform(X_train)
257X_test_scaled = scaler.transform(X_test) # Only transform
259# Bad
260scaler = StandardScaler()
261X_all_scaled = scaler.fit_transform(np.vstack([X_train, X_test]))
262```

Fit on Training Data Only

Never fit on test data:

# Good
scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)  # Only transform

# Bad
scaler = StandardScaler()
X_all_scaled = scaler.fit_transform(np.vstack([X_train, X_test]))
Raw lines 251 to 263
264### Match the Split to the Independent Unit
265For independent classification rows, preserve class distribution as below. For repeated patients, specimens, sites, or related molecules, keep each group entirely in one partition using `GroupKFold` or `StratifiedGroupKFold`; class stratification alone does not prevent group leakage. For future prediction, use a chronological split and exclude features unavailable at prediction time. Apply the same grouping/time rule to both inner tuning and outer evaluation. See the [cross-validation guide](https://scikit-learn.org/stable/modules/cross_validation.html).
266```python
267X_train, X_test, y_train, y_test = train_test_split(
268 X, y, test_size=0.2, stratify=y, random_state=42
270```

Match the Split to the Independent Unit

For independent classification rows, preserve class distribution as below. For repeated patients, specimens, sites, or related molecules, keep each group entirely in one partition using GroupKFold or StratifiedGroupKFold; class stratification alone does not prevent group leakage. For future prediction, use a chronological split and exclude features unavailable at prediction time. Apply the same grouping/time rule to both inner tuning and outer evaluation. See the cross-validation guide.

X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.2, stratify=y, random_state=42
)
Raw lines 264 to 271
272### Set Random State for Reproducibility
273```python
274model = RandomForestClassifier(n_estimators=100, random_state=42)
275```

Set Random State for Reproducibility

model = RandomForestClassifier(n_estimators=100, random_state=42)
Raw lines 272 to 276
277### Choose Appropriate Metrics
278- Balanced data: Accuracy, F1-score
279- Imbalanced data: Per-class Precision/Recall, Average Precision, Balanced Accuracy; include prevalence and threshold
280- Cost-sensitive: Define custom scorer

Choose Appropriate Metrics

  • Balanced data: Accuracy, F1-score
  • Imbalanced data: Per-class Precision/Recall, Average Precision, Balanced Accuracy; include prevalence and threshold
  • Cost-sensitive: Define custom scorer
Raw lines 277 to 281
282### Scale Features When Appropriate
283Algorithms commonly sensitive to feature scale (scaling changes the modeled geometry):
284- SVM, KNN, Neural Networks
285- PCA, Linear/Logistic Regression with regularization
286- K-Means clustering
288Algorithms not requiring scaling:
289- Tree-based models (Decision Trees, Random Forest, Gradient Boosting)
290- Gaussian Naive Bayes; preserve the nonnegative count/proportion input expected by MultinomialNB

Scale Features When Appropriate

Algorithms commonly sensitive to feature scale (scaling changes the modeled geometry):

  • SVM, KNN, Neural Networks
  • PCA, Linear/Logistic Regression with regularization
  • K-Means clustering

Algorithms not requiring scaling:

  • Tree-based models (Decision Trees, Random Forest, Gradient Boosting)
  • Gaussian Naive Bayes; preserve the nonnegative count/proportion input expected by MultinomialNB
Raw lines 282 to 291
292## Troubleshooting Common Issues

Troubleshooting Common Issues

Raw lines 292 to 293
294### ConvergenceWarning
295**Issue:** Model didn't converge
296**Solution:** Increase `max_iter` or scale features
297```python
298model = LogisticRegression(max_iter=1000)
299```

ConvergenceWarning

Issue: Model didn't converge Solution: Increase max_iter or scale features

model = LogisticRegression(max_iter=1000)
Raw lines 294 to 300
301### Poor Performance on Test Set
302**Possible causes:** Overfitting, distribution shift, leakage during selection, or an unsuitable metric
303**Solution:** Diagnose using training/validation results and the deployment split; do not repeatedly tune on the final test set. Use regularization, cross-validation, or a simpler model as appropriate
304```python
305# Add regularization
306model = Ridge(alpha=1.0)
308# Use cross-validation
309scores = cross_val_score(model, X, y, cv=5)
310```

Poor Performance on Test Set

Possible causes: Overfitting, distribution shift, leakage during selection, or an unsuitable metric Solution: Diagnose using training/validation results and the deployment split; do not repeatedly tune on the final test set. Use regularization, cross-validation, or a simpler model as appropriate

# Add regularization
model = Ridge(alpha=1.0)

# Use cross-validation
scores = cross_val_score(model, X, y, cv=5)
Raw lines 301 to 311
312### Memory Error with Large Datasets
313**Solution:** Use algorithms designed for large data
314```python
315# Use SGD for large datasets
316from sklearn.linear_model import SGDClassifier
317model = SGDClassifier()
319# Or MiniBatchKMeans for clustering
320from sklearn.cluster import MiniBatchKMeans
321model = MiniBatchKMeans(n_clusters=8, batch_size=100)
322```

Memory Error with Large Datasets

Solution: Use algorithms designed for large data

# Use SGD for large datasets
from sklearn.linear_model import SGDClassifier
model = SGDClassifier()

# Or MiniBatchKMeans for clustering
from sklearn.cluster import MiniBatchKMeans
model = MiniBatchKMeans(n_clusters=8, batch_size=100)
Raw lines 312 to 323
324## Additional Resources
326- Official Documentation: https://scikit-learn.org/stable/
327- User Guide: https://scikit-learn.org/stable/user_guide.html
328- API Reference: https://scikit-learn.org/stable/api/index.html
329- Examples Gallery: https://scikit-learn.org/stable/auto_examples/index.html

Additional Resources

  • Official Documentation: https://scikit-learn.org/stable/
  • User Guide: https://scikit-learn.org/stable/user_guide.html
  • API Reference: https://scikit-learn.org/stable/api/index.html
  • Examples Gallery: https://scikit-learn.org/stable/auto_examples/index.html
Raw lines 324 to 330
Boilerplate, lines 331 to 346. The same text appears in 125 other files here. Close
331## Citing Scientific Agent Skills
333This skill is part of Scientific Agent Skills by K-Dense. If it materially contributed to a
334manuscript, report, presentation, or code release, add the paper to the references or
335software section and tell the user you did so:
337> Kassis, T., Agarwal, V., He, Y., Patel, D., & Brueckner, A. M. (2026). Scientific Agent
338> Skills: A Library of Procedural Knowledge for Research Agents. arXiv:2609.00065.
339> https://doi.org/10.48550/arXiv.2609.00065
341Always cite the current version. The DOI and https://arxiv.org/abs/2609.00065 resolve to the
342latest arXiv version, so never append a version suffix such as `v1`. When network access is
343available, fetch https://arxiv.org/abs/2609.00065 (or
344http://export.arxiv.org/api/query?id_list=2609.00065) before writing the reference and take
345the author list, year, and version from that record. If the record lists a journal reference
346or 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.