spartanlabsxyz/simmer-sdk/autoresearch
Claude Code and agent skill by spartanlabsxyz/simmer-sdk
- community
Checking that the SKILL.md file is still in the repository.
Set up and run autonomous experiment loops to optimize Simmer trading skills. Mutates skill code + config, measures P&L, keeps what works. Use when asked to "optimize a skill", "run autoresearch", or "improve my trading".
Install
npx vskill@latest install spartanlabsxyz/simmer-sdk/autoresearchSKILL.md
Simmer Autoresearch
Autonomous experiment loop for trading skill optimization: try ideas, keep what works, discard what doesn't, never stop.
Based on pi-autoresearch (MIT).
Tools
- `init_experiment` — configure session (name, skill_slug, metric, unit, direction). Call again to re-initialize with a new baseline.
- `run_experiment` — runs skill command, times it, captures output.
- `log_experiment` — records result. Use `keep` ONLY when the primary metric improved vs the baseline. `discard` if worse or unchanged. Zero trades or `metric=0` is no-signal — `discard`, never `keep`.
crashif the skill failed.checks_failedif post-run validation failed.keepauto-commits via git; the others auto-revert. Always include secondarymetricsdict. State the before→after comparison indescription(e.g.,"entry_threshold 0.05→0.03; $12→$18 pnl, keep"). Optionally includeasi(Actionable Side Information) for structured diagnostics. - `backtest_experiment` — replay historical trades against new config without live execution. Fast config tuning (seconds vs hours). Requires trades with
signal_data(SDK 0.9.17+).
Setup
- Pick a skill to optimize and a primary metric (usually P&L).
git checkout -b autoresearch/<skill>-<date>- Read the skill source code thoroughly — understand what it does before mutating.
- Write
autoresearch.md— session spec with goal, metrics, how to run, constraints. - Write
autoresearch.sh— single command that runs the skill and outputs results. - Commit both files.
init_experiment→ run baseline withrun_experiment→log_experiment→ start looping.
autoresearch.md template
The Loop
Each iteration:
- Form a hypothesis (what change might improve the metric?)
- Mutate skill code or config
run_experiment— execute the skilllog_experiment— compare metric to baseline. Improved →keep. Worse or equal →discard. Crashed →crash. Include the before→after comparison indescription.
Code mutations > config tuning. Structural changes (new data sources, different models, alternative strategies) find bigger wins than parameter tweaks.
Use backtest_experiment for fast config exploration before committing to live runs.
Rules
- Primary metric is king. Improved →
keep. Worse or equal →discard. Secondary metrics rarely override this — only discard a primary improvement if a secondary metric degraded catastrophically, and explain why indescription. - No signal = `discard`, never `keep`. If the experiment produced 0 trades,
metric=0, or no measurable signal, this is a degenerate run — the skill stopped doing the thing you're trying to optimize. Discard so the next iteration tries something different. If you see this twice in a row, stop the loop and investigate the skill itself before mutating further. A dead loop produces meaningless commits and burns runs. - State the comparison in `description`. Every
log_experimentshould make the before→after explicit (e.g.,"reduced entry threshold 0.05→0.03; $12→$18 pnl, 4→6 trades, keep"). This is load-bearing for future iterations and for the dashboard to reason about your decisions. - Never skip the baseline run. The first experiment establishes the reference point.
- Always log — even crashes. The data matters for confidence scoring.
- Check confidence before trusting results. >=2x noise floor = likely real. <1x = within noise. 1-2x = marginal, re-run to confirm.
- Don't chase noise. If confidence is low, the improvement may be random. Try a different approach instead of refining a noisy one.
- Don't thrash. Repeatedly reverting the same idea? Try something structurally different.
- Simpler is better. Removing code for equal perf =
keep. Ugly complexity for tiny gain = probablydiscard. - Write ideas to autoresearch.ideas.md. Promising but deferred optimizations go here. Check it for experiment paths.
NEVER STOP. The user may be away for hours. Keep the loop running until interrupted.
Crash Recovery
- Baseline crash -> autoresearch pauses. The skill is misconfigured or the run command is wrong. Fix, then call
init_experimentto start fresh. - 3 consecutive crashes -> autoresearch pauses. Something is systematically broken. Investigate: read crash outputs, check git status, try running manually.
- Context compaction -> re-read
autoresearch.mdandautoresearch.jsonlto restore context.
Configuration
Set via environment variables on the MCP server:
| Variable | Default | Purpose | |
|---|---|---|---|
SIMMER_API_KEY | (required) | API key for dashboard sync and backtest | |
SIMMER_API_URL | https://api.simmer.markets | API base URL | |
AUTORESEARCH_MAX_EXPERIMENTS | 50 | Max experiments per session (0 = unlimited) |
Security
- Security scanPassed, 95 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingmcp/skills/autoresearch/SKILL.md
Popularity
- 7-day trend score
- 0
Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/spartanlabsxyz/simmer-sdk/autoresearch)