how-to-experiment
Experimental protocol for Deep Cuts research, prototypes, model evaluations, threshold tuning, ablations, metric comparisons, and claims about accuracy or…
Skill by robertolupi
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/robertolupi-how-to-experiment
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: documents, testing, research
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/how-to-experiment
What's inside
- Skill name
how-to-experiment- Description
- Experimental protocol for Deep Cuts research, prototypes, model evaluations, threshold tuning, ablations, metric comparisons, and claims about accuracy or quality. Use before running or interpreting experiments so bots preserve train/validation/test boundaries, avoid leakage, compare against baselines, and report results honestly.
- License
- AGPL-3.0
- Instructions
- 154 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
# How To Experiment Use this skill whenever work involves measuring whether an idea is good: model training, classifier accuracy, embedding quality, search relevance, threshold tuning, UI heuristics, performance changes, ablations, or comparisons between approaches. The purpose is not bureaucracy. It is to prevent fast prototype loops from producing numbers that look convincing but do not generalize. Deep Cuts has already hit this failure mode: the SAX sequence tagger reported **99.27% accuracy on the same 740 tracks used for training** in the [session-2026-06-06-sax-transformer](http://gitea:3000/botfam/deep-cuts/wiki/session-2026-06-06-sax-transformer) wiki page; the follow-up in [session-2026-06-06-sax-transformer-future-ideas](http://gitea:3000/botfam/deep-cuts/wiki/session-2026-06-06-sax-transformer-future-ideas) (code and sample data now live in `tools/sax-transformer/`) correctly marked that number as untrustworthy until evaluated on a held-out split. ## Minimum Protocol Before running the experiment, write down: 1. **Question**: the specific claim being tested. 2. **Unit of split**: usually track, album, artist, or library. Never split by segment/window if segments from the same track can leak into both train and test. 3. **Metric**: the primary metric and any acceptance threshold. 4. **Baseline**: the current production behavior, simple heuristic, or prior model. 5. **Frozen evaluation set**: what data is reserved for final reporting. 6. **Artifacts**: scripts, command lines, seeds, dataset versions, and output files. If any of these are missing, call the run exploratory and do not make generalization claims. ## Data Splits Use three sets when tuning is involved: - **Train**: fit model weights, thresholds, centroids, clusters, or prompt examples. - **Validation**: choose hyperparameters, early stopping, thresholds, prompt variants, UI constants, and feature combinations. - **Test / holdout**: final one-time estimate. Do not tune on it. Default split for enough data: **70% train / 10% validation / 20% test**, stratified when useful by genre, artist, label class, duration bucket, or library source. For small data: - Prefer grouped cross-validation over repeatedly peeking at one tiny holdout. - Keep a final untouched holdout if the result will drive production behavior. - Report uncertainty: per-class counts, confidence intervals, or "N is too small" notes. For music data, prevent leakage aggressively: - Split by **track** at minimum. - Split by **artist or album** when evaluating generalization to unseen music styles. - Keep derived windows, SAX segments, embeddings, lyrics labels, and cached pass outputs on the same side of the split as their source track. - If near-duplicates or alternate masters exist, keep them in the same split. ## Test Set Rules The test set is not a dashboard knob. - Do not inspect test errors while choosing parameters. - Do not rerun many variants and report the best test score. - Do not add "just one fix" after seeing test failures without moving back to validation and creating a new final holdout. - If the test set was used for decisions, say so and rename it to validation. Acceptable use of test results: - Final report after the approach is frozen. - Regression check for a previously frozen production model. - External benchmark evaluation with no fine-tuning on that benchmark. ## Baselines And Ablations Every experiment needs a comparison. - **Baseline**: current app behavior, a simple rule, random/majority class, or previous model. - **Ablation**: remove one suspected shortcut or feature at a time. - **Sanity check**: shuffle labels, use random embeddings, or test a trivial predictor when appropriate. Deep Cuts example: for structural labels, `position` can be a shortcut. A model using `energy + rep_score + position` must be compared against `energy + rep_score` without `position` before claiming it learned musical structure. ## Metrics Pick the metric that matches the task, not the one that is easiest to compute. - Classification: report overall accuracy plus per-class precision/recall/F1 and class counts. - Imbalanced labels: prefer macro F1, balanced accuracy, or per-class recall over raw accuracy. - Ranking/search: use fixed query sets with precision@K, recall@K, MRR, nDCG, or blinded human judgments. - Segmentation/boundaries: use boundary F-measure with a stated tolerance when comparing to music-structure benchmarks; fixed-frame accuracy may be useful internally but is not the standard public claim. - Performance: separate cold start, warm run, per-track latency, throughput, memory, and model load time. When a metric is a proxy, say what it does not prove. ## Reporting Template Use this shape in docs, session logs, or handoffs: ```markdown ## Experiment: <name> Question: Dataset: Split unit: Split: Leakage controls: Baseline: Variants: Primary metric: Secondary metrics: Commands/scripts: Result: Decision:
From robertolupi/deep-cuts, AGPL-3.0.
More from robertolupi/deep-cuts
- 0.534score
write-blog-post
robertolupi
Draft, structure, and finalize a Deep Cuts blog-series post so it conforms to the post template, house voice, and cross-post link rules.
SkillCFreshness: C★ 7Claude Code +9 - 0.534score
ui-debug
robertolupi
Inspect, debug, and compare the Deep Cuts UI using an available browser tool.
SkillCFreshness: C★ 7Claude Code +9 - 0.531score
add-tauri-sidecar
robertolupi
How to bundle an external binary and its dylib dependencies with the Tauri app, patch rpaths, sign everything, and resolve the path at runtime
SkillCFreshness: C★ 7Claude Code +9 - 0.531score
ui-design
robertolupi
Guidelines for the Sonic Glitch design system, theme variables, and multi-theme readability (dark, light, high-contrast)
SkillCFreshness: C★ 7Claude Code +9 - 0.531score
git-commits
robertolupi
Rules for writing commit messages in the deep-cuts repository — subject line format, body content, scope naming, and what to omit
SkillCFreshness: C★ 7Claude Code +9 - 0.531score
dev-guidelines
robertolupi
Guidelines to prevent development false starts, environment mismatches, and incorrect commands in the deep-cuts monorepo
SkillCFreshness: C★ 7Claude Code +9 - 0.531score
release-build
robertolupi
End-to-end checklist for building a signed macOS release — bump manifest min_app_version, verify sidecars, build, and inspect the .app
SkillCFreshness: C★ 7Claude Code +9 - 0.528score
using-python
robertolupi
How to run Python scripts and install packages in the deep-cuts project
SkillCFreshness: C★ 7Claude Code +9 - 0.528score
add-analysis-pass
robertolupi
Checklist and guide for adding a new analysis pass to the trait-based modular pipeline
SkillCFreshness: C★ 7Claude Code +9 - 0.528score
add-ipc-command
robertolupi
Pattern for adding a new Tauri IPC command (request/response or push event) in the deep-cuts monorepo
SkillCFreshness: C★ 7Claude Code +9 - 0.528score
bump-dev-version
robertolupi
Bump the app version in Cargo.toml after a release to start the next dev cycle
SkillCFreshness: C★ 7Claude Code +9 - 0.528score
db-migration
robertolupi
Safe pattern for adding SQLite schema migrations in the deep-cuts Rust/rusqlite_migration stack
SkillCFreshness: C★ 7Claude Code +9
Signals
- Stars
- 7
- Forks
- 1
- Open issues
- 0
- Last commit (this folder)
- Jun 16, 2026 (4 months ago)
- Last release
- Jun 8, 2026 (4 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- AGPL-3.0
- Repository
- github.com/robertolupi/deep-cuts
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from robertolupi
- 0.534score
ui-debug
robertolupi
Inspect, debug, and compare the Deep Cuts UI using an available browser tool.
SkillCFreshness: C★ 7Claude Code +9 - 0.534score
write-blog-post
robertolupi
Draft, structure, and finalize a Deep Cuts blog-series post so it conforms to the post template, house voice, and cross-post link rules.
SkillCFreshness: C★ 7Claude Code +9 - 0.531score
add-tauri-sidecar
robertolupi
How to bundle an external binary and its dylib dependencies with the Tauri app, patch rpaths, sign everything, and resolve the path at runtime
SkillCFreshness: C★ 7Claude Code +9 - 0.531score
git-commits
robertolupi
Rules for writing commit messages in the deep-cuts repository — subject line format, body content, scope naming, and what to omit
SkillCFreshness: C★ 7Claude Code +9 - 0.531score
dev-guidelines
robertolupi
Guidelines to prevent development false starts, environment mismatches, and incorrect commands in the deep-cuts monorepo
SkillCFreshness: C★ 7Claude Code +9 - 0.531score
release-build
robertolupi
End-to-end checklist for building a signed macOS release — bump manifest min_app_version, verify sidecars, build, and inspect the .app
SkillCFreshness: C★ 7Claude Code +9
Cite this page
how-to-experiment skill. Agent Mart. https://agentmart.dev/skills/robertolupi-how-to-experiment (last updated 2026-10-24)