/benchmark
Define the comparison metrics and extract baseline values from the current implementation. Record them as a structured JSON entry so downstream phases and final evaluation can read them directly.
$ npx -y skills add Upsonic/Upsonic --skill benchmark --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/benchmark
Context preview
The summary Claude sees to decide when to auto-load this skill.
Define the comparison metrics and extract baseline values from the current implementation. Record them as a structured JSON entry so downstream phases and final evaluation can read them directly.
SKILL.md
benchmark.SKILL.mdBenchmark Skill
Purpose
Define the comparison metrics and extract baseline values from the current implementation. Record them as a structured JSON entry so downstream phases and final evaluation can read them directly.
When to Use
Phase 3 — after both current analysis and research analysis are complete.
Input
| Parameter | Type | Description | |-----------|------|-------------| | experiment_path | path | `experiments/{research_name}/` |
Actions
1. **Define comparison metrics:**
- Include ALL metrics already used in `current.ipynb`.
- Add any additional metrics that are relevant for the new method.
- For classification: accuracy, precision, recall, F1, AUC-ROC (as applicable).
- For regression: MSE, RMSE, MAE, R² (as applicable).
- Include training time if measurable.
2. **Extract baseline values:**
- Read metric values from `current.ipynb` output cells.
- If a metric is not computed in the notebook, record it as `null` and set `"needs_computation": true` — both notebooks must then compute it.
3. **Append a Phase 3 entry to `{experiment_path}/log.json`** under `phases`:
{
"name": "Phase 3: Benchmark",
"completed_at": "2026-04-17T10:45:00Z",
"metrics": [
{
"name": "accuracy",
"description": "Fraction of correctly classified samples.",
"higher_is_better": true,
"baseline": 0.8726,
"needs_computation": false
},
{
"name": "f1",
"description": "F1 score (binary, positive class).",
"higher_is_better": true,
"baseline": 0.7277,
"needs_computation": false
},
{
"name": "roc_auc",
"description": "Area under the ROC curve.",
"higher_is_better": true,
"baseline": 0.9274,
"needs_computation": false
},
{
"name": "training_time_seconds",
"description": "Wall-clock training time.",
"higher_is_better": false,
"baseline": null,
"needs_computation": true
}
],
"notes": "training_time_seconds must be added to both notebooks for a fair comparison."
}Do not overwrite earlier entries; append to the `phases` array.
Output
- `{experiment_path}/log.json` — updated with Phase 3 benchmark entry
- Clear list (in `metrics`) of what the new implementation must compute
Read more
Benchmark Skill
Purpose
Define the comparison metrics and extract baseline values from the current implementation. Record them as a structured JSON entry so downstream phases and final evaluation can read them directly.
When to Use
Phase 3 — after both current analysis and research analysis are complete.
Input
| Parameter | Type | Description | |-----------|------|-------------| | experiment_path | path | `experiments/{research_name}/` |
Actions
1. **Define comparison metrics:**
- Include ALL metrics already used in `current.ipynb`.
- Add any additional metrics that are relevant for the new method.
- For classification: accuracy, precision, recall, F1, AUC-ROC (as applicable).
- For regression: MSE, RMSE, MAE, R² (as applicable).
- Include training time if measurable.
2. **Extract baseline values:**
- Read metric values from `current.ipynb` output cells.
- If a metric is not computed in the notebook, record it as `null` and set `"needs_computation": true` — both notebooks must then compute it.
3. **Append a Phase 3 entry to `{experiment_path}/log.json`** under `phases`:
{
"name": "Phase 3: Benchmark",
"completed_at": "2026-04-17T10:45:00Z",
"metrics": [
{
"name": "accuracy",
"description": "Fraction of correctly classified samples.",
"higher_is_better": true,
"baseline": 0.8726,
"needs_computation": false
},
{
"name": "f1",
"description": "F1 score (binary, positive class).",
"higher_is_better": true,
"baseline": 0.7277,
"needs_computation": false
},
{
"name": "roc_auc",
"description": "Area under the ROC curve.",
"higher_is_better": true,
"baseline": 0.9274,
"needs_computation": false
},
{
"name": "training_time_seconds",
"description": "Wall-clock training time.",
"higher_is_better": false,
"baseline": null,
"needs_computation": true
}
],
"notes": "training_time_seconds must be added to both notebooks for a fair comparison."
}Do not overwrite earlier entries; append to the `phases` array.
Output
- `{experiment_path}/log.json` — updated with Phase 3 benchmark entry
- Clear list (in `metrics`) of what the new implementation must compute
Other skills on upsonic.
- /analyze_current
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.
Open skill - /evaluate
Compare baseline and new implementation results. Produce the machine-readable final report `result.json`, update `experiments.json`, and append a row to `comparison.json`.
Open skill - /experiment_management
Set up and manage the experiment folder structure. This is Phase 0 — it runs before any analysis begins. All bookkeeping files are JSON (never markdown).
Open skill - /implement
Create a new Jupyter notebook implementing the method from the research paper, using the same data as the baseline. Record implementation details and measured metrics as a structured JSON entry.
Open skill - /progress
Maintain a **machine-readable** progress file so dashboards, CLIs, and notebooks can poll the experiment's state at any time. The file is a JSON document — never markdown, never human-prose-first.
Open skill - /research
Read the materialized research source and extract actionable information needed to implement the proposed method. Record the findings as a structured JSON entry.
Open skill

