Install
$ agentstack add skill-ucdavis-ai-skills-registry-data-science-python ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ● Filesystem access Used
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Data Science — Python
Notebook Structure
Organize notebooks in this order:
- Imports & configuration
- Data loading
- Exploratory data analysis (EDA)
- Feature engineering
- Modeling
- Evaluation
- Conclusions & next steps
Keep notebooks for exploration. Move reusable logic to src/ Python modules with tests.
Data Validation
# Always validate after loading
assert df.shape[0] > 0, "DataFrame is empty"
assert df.isnull().sum().sum() == 0, f"Nulls found: {df.isnull().sum()}"
assert df['price'].between(0, 1_000_000).all(), "Price out of expected range"
# For production pipelines: use pandera
import pandera as pa
schema = pa.DataFrameSchema({
"price": pa.Column(float, pa.Check.ge(0)),
"category": pa.Column(str, pa.Check.isin(["A", "B", "C"])),
})
schema.validate(df)
Reproducibility
import random
import numpy as np
SEED = 42
random.seed(SEED)
np.random.seed(SEED)
# sklearn: pass random_state=SEED to all estimators
- Pin all dependency versions in
requirements.txtorpyproject.toml. - Track experiments: MLflow, or a simple
experiments/log with metadata JSON. - Save models with timestamp + metadata:
model_rf_20260115_v1.pkl.
Model Documentation
Document for every model:
- Training data: source, date range, size, preprocessing steps.
- Feature list and engineering decisions.
- Hyperparameters and tuning approach.
- Evaluation metrics on held-out test set.
- Known limitations and failure modes.
Code Quality
# Extract transforms into sklearn Pipeline
from sklearn.pipeline import Pipeline
from sklearn.preprocessing import StandardScaler
from sklearn.ensemble import RandomForestClassifier
pipeline = Pipeline([
('scaler', StandardScaler()),
('classifier', RandomForestClassifier(random_state=SEED)),
])
- Write unit tests for data processing functions in
tests/. - Use
pathlib.Path— never hardcode file paths. - Use
loggingnotprintin production code.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: ucdavis
- Source: ucdavis/ai-skills-registry
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.