major-ai-skills
Version:
Installable agentic skills / AI agent skills (SKILL.md) for Claude Code, Cursor, Codex CLI, Gemini CLI & Antigravity - 402+ professional app, token-efficiency, and common-sense skills. SEO/GEO ready.
94 lines (70 loc) • 3.09 kB
Markdown
---
name: jupyter
description: "Build reproducible Jupyter notebooks, manage kernels and execution order, and parameterize runs with papermill."
category: scientific
risk: safe
source: self
source_type: self
date_added: "2026-08-26"
tags: ["jupyter", "notebooks", "python", "reproducibility", "papermill", "claude"]
tools: ["claude", "cursor", "gemini", "codex"]
---
# Jupyter Notebooks AI Skill Guide
## Overview & Engine Architecture
Jupyter runs code cells against a kernel (usually IPython) with persistent in-memory state. The `.ipynb` JSON stores inputs, outputs, and metadata. Agents keep notebooks linear and restartable, parameterize with papermill when automating, and extract durable logic into `.py` modules once paths stabilize.
```
Notebook UI / VS Code / JupyterLab
-> kernel (Python/R/Julia)
-> cells mutate namespace
-> outputs embedded in .ipynb
```
## When to use this skill
- Exploratory analysis and teaching demos
- Lightweight reports with plots/tables
- Parameterized batch runs via papermill/nbconvert
## Operational directives
1. "Restart kernel & run all" must succeed before sharing or committing.
2. Put secrets in env vars / keyring - never in cells that get committed.
3. Clear oversized outputs before git commits (or use nbstripout).
4. Import project modules instead of duplicating production ETL in cells.
5. Pin kernel/env (`requirements.txt` / conda lock) beside the notebook.
## Minimal reproducible header
```python
# cell 0
from pathlib import Path
import pandas as pd
DATA = Path("data/orders.parquet")
assert DATA.exists(), f"missing {DATA}"
df = pd.read_parquet(DATA)
df.head()
```
## Papermill parameter cell
```python
# tags: parameters
run_date = "2026-08-26"
input_path = "data/orders.parquet"
```
```bash
papermill analysis.ipynb out/analysis_2026-08-26.ipynb -p run_date 2026-08-26
jupyter nbconvert --to html out/analysis_2026-08-26.ipynb
```
## Common failures
| Symptom | Cause | Fix |
| --- | --- | --- |
| Works only top-down once | hidden state / out-of-order run | restart & run all |
| Huge git diffs | embedded outputs/images | strip outputs; LFS if needed |
| Wrong package | multiple kernels/envs | select correct kernel; document |
| Kernel dies | memory spike | sample data; move to DuckDB/Polars |
## Best practices
- One narrative per notebook; split mega-notebooks by stage.
- Freeze random seeds when illustrating ML (`@scikit-learn`, `@pytorch`).
- Prefer Parquet inputs over pasted CSVs in repo.
- Use `%matplotlib inline` / explicit `plt.show` consistently for readers.
## Limitations
- Not a production scheduler - wrap with `@airflow` / `@prefect` for pipelines.
- Collaborative merge conflicts on `.ipynb` are painful; prefer scripts for shared logic.
- Remote kernels and HPC proxies need local IT/docs.
## Related skills
- `@pandas` / `@polars` / `@duckdb` - compute inside cells
- `@mlflow` - log notebook experiments
- `@great-expectations` - validate data before analysis