analyze_current
The analyze_current skill extracts and documents the baseline implementation from a machine learning experiment by reading the current notebook, identifying the model, preprocessing steps, training configuration, hyperparameters, and performance metrics. Use this skill in Phase 1 after experiment setup to create a structured JSON record of the existing approach, scan dependencies for a requirements file, and catalog the dataset characteristics before attempting any improvements or modifications.
git clone --depth 1 https://github.com/Upsonic/Upsonic /tmp/analyze_current && cp -r /tmp/analyze_current/src/upsonic/prebuilt/applied_scientist/template/skills/analyze_current ~/.claude/skills/analyze_currentSKILL.md
# Analyze Current Skill
## Purpose
Read and understand the current baseline implementation. Extract all relevant information about the existing approach without modifying anything, and record the analysis as a structured JSON entry.
## When to Use
Phase 1 — after experiment setup is complete and files are copied to the experiment folder.
## Input
| Parameter | Type | Description |
|-----------|------|-------------|
| experiment_path | path | `experiments/{research_name}/` |
## Actions
1. **Read `{experiment_path}/current.ipynb`** and extract:
- Model/algorithm used
- Preprocessing steps (encoding, scaling, feature selection, etc.)
- Training approach (train/test split ratio, cross-validation, etc.)
- Hyperparameters
- Metrics used and their values
- Target variable and feature set
2. **Extract dependencies:**
- Scan all import statements in the notebook.
- Write `{experiment_path}/current_requirements.txt` with one package per line (`package==version` if determinable, otherwise just `package`).
3. **Read `{experiment_path}/current_data/`** (or, for code-based data, the download spec):
- Identify data format (CSV, parquet, etc.)
- Note number of rows, columns
- Note data types and any special handling
4. **Append a Phase 1 entry to `{experiment_path}/log.json`** under `phases`:
```json
{
"name": "Phase 1: Analyze Current",
"completed_at": "2026-04-17T10:15:00Z",
"model": "XGBoost",
"preprocessing": [
"Drop rows with NaN",
"LabelEncoder on target",
"LabelEncoder on categorical features",
"StandardScaler on numerical features"
],
"training": {
"split": 0.2,
"seed": 42,
"stratified": true
},
"hyperparameters": {
"n_estimators": 200,
"max_depth": 6,
"learning_rate": 0.1
},
"metrics": {
"accuracy": 0.8726,
"f1": 0.7277,
"roc_auc": 0.9274
},
"target": "income",
"features_count": 14,
"data": {
"source": "ucimlrepo fetch_ucirepo(id=2)",
"format": "pandas.DataFrame",
"rows": 45222,
"cols": 14
},
"notes": "Data downloaded programmatically; both notebooks must use the same source."
}
```
Do not overwrite earlier entries; append to the `phases` array.
## Output
- `{experiment_path}/log.json` — updated with complete Phase 1 analysis entry
- `{experiment_path}/current_requirements.txt` — written
- No other files created or modifiedPerform structured code reviews with actionable feedback. Use when a user asks to review code, check code quality, find bugs, audit security, improve performance, or assess maintainability. Trigger when user says things like "review this code", "check for bugs", "is this code secure", "any issues with this", "code quality check", or pastes code asking for feedback. Also trigger for pull request reviews and pre-merge code checks. Do NOT trigger for writing new code from scratch, refactoring requests without review context, or general programming questions.
Analyze, explore, clean, and visualize datasets with statistical rigor. Use when user asks to analyze data, find patterns, compute statistics, create visualizations, clean messy data, or explore a dataset. Trigger when user says things like "analyze this data", "what trends do you see", "find patterns in", "create a chart", "clean this dataset", "run statistics on", "what does this data tell us", or provides CSV/Excel/JSON data for exploration. Also trigger for A/B test analysis, cohort analysis, and data quality assessments. Do NOT trigger for simple data format conversions, database query writing without analysis, or ETL pipeline design.