Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Structured pre-trade thesis builder — bull/bear cases, invalidation criteria, and sizing rationale before any live deployment. Read this page when a user proposes a trade idea, says 'should I trade X', asks for a bull/bear case, wants a pre-trade analysis, or before the agent deploys a new strategy live for the first time.
.claude/skills/superior-trade-trade-thesis/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-17 | ✗→✓ | ▲ Improved | 87% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 37% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 34% | 0% |
| case-04 | ✗→✓ | ▲ Improved | -10% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 4% | 0% |
A structured framework the agent produces before any live deployment of a new strategy idea. Forces two-sided analysis and a measurable invalidation level so every trade has a thesis that can be killed.
Produce all six sections below. Each section is 2-4 bullet points max. This is a pre-trade checklist, not a research paper.
One sentence: what is the bet, which direction, what timeframe.
Force clarity. "Long ETH perp on a funding squeeze setup, targeting a 3-5% move over 24-48h" is a thesis. "ETH looks bullish" is not.
2-3 concrete reasons this trade works. Every reason must reference observable, checkable data:
price_check (e.g., "price reclaimed the 4h EMA-50 and is holding above")volume_momentum_check (e.g., "RVOL is 2.3x on the breakout candle")No vague claims like "market sentiment is improving" or "BTC looks strong." If it cannot be checked with a tool call, it does not belong in the bull case.
2-3 concrete reasons this trade fails. Same data-grounding rules as the bull case.
The agent must argue AGAINST the trade honestly. This is adversarial analysis, not a strawman disclaimer. Examples of real bear points:
A specific, measurable condition that kills the thesis. This becomes the logical stoploss anchor.
Acceptable invalidation criteria:
The stoploss in the deployment config should be anchored to this level, not an arbitrary percentage.
Which agent tools to call right now to verify the thesis before proceeding:
| Check | Tool | What to look for | |---|---|---| | Current price and recent structure | price_check | Is price where the thesis assumes it is? Has structure changed since the idea was formed? | | Volume and momentum | volume_momentum_check | RVOL level, momentum acceleration/deceleration, any divergence | | Available capital | balance_check | Main wallet balance on Hyperliquid — enough for the proposed stake? | | Pair ranking | alpha_scan | Where does this pair sit in the current scan? Is the setup confirmed or fading? | | Pair tradability | pair_validate | Is the pair active on Hyperliquid? What are the margin requirements and minimum order size? |
Run these checks and update the bull/bear case with the results before proceeding. If the data contradicts the thesis, say so.
stake_amount and max_open_trades)max_open_trades — if multiple positions may be open, total portfolio risk = risk per trade x max open tradesSetup: Funding squeeze on ETH perps, 1h timeframe.
1. Thesis statement
Long ETH/USDC:USDC on a funding squeeze — shorts are deeply underwater with funding APR at -22%, price has reclaimed the 4h EMA-21 with rising volume, targeting a 4-6% forced-unwind move over 24-48h.
2. Bull case
3. Bear case
4. Invalidation level
Below $3,420 (the pre-breakout consolidation low). If ETH gives back the entire reclaim candle, the squeeze is not catching and shorts are right. Stoploss anchored at -0.045 from entry to cover this level plus slippage.
Time stop: if the move hasn't produced +2% within 24h, the catalyst is stale. Exit via custom_exit timeout.
5. Data check
price_check ETH/USDC:USDC — confirm price is still above $3,540 and the reclaim is intactvolume_momentum_check ETH — confirm RVOL is still > 1.5xbalance_check — confirm at least $150 USDC available (stake $100 + buffer)alpha_scan — confirm ETH ranks in the squeeze-fuel bucket with score > 0.7pair_validate ETH/USDC:USDC — confirm pair is active, check margin requirements6. Position sizing rationale
Wallet balance: $1,200 USDC. Using stake_amount: 100 with max_open_trades: 1. Invalidation at $3,420 with expected entry near $3,560 = 3.9% downside. Stoploss at -0.045 covers the invalidation level. Risking ~$4.50 on a $1,200 wallet = 0.375% account risk. Conservative sizing — appropriate for a first deployment of this setup. Room to scale up on the next squeeze if this one validates.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-17 | fail→pass | 16,280 | 13,267 | -19% | 1 | 1 | 0% | 2,141 | 4,002 | +87% | 0 | 0 | — |
case-01 | fail→fail | 28,315 | 13,440 | -53% | 1 | 1 | 0% | 3,481 | 4,305 | +24% | 0 | 0 | — |
case-02 | fail→pass | 20,762 | 32,126 | +55% | 1 | 1 | 0% | 3,409 | 4,675 | +37% | 0 | 0 | — |
case-03 | fail→pass | 21,458 | 12,197 | -43% | 1 | 1 | 0% | 3,189 | 4,278 | +34% | 0 | 0 | — |
case-04 | fail→pass | 32,650 | 7,272 | -78% | 1 | 1 | 0% | 3,391 | 3,060 | -10% | 0 | 0 | — |
case-05 | fail→pass | 26,065 | 5,291 | -80% | 1 | 1 | 0% | 2,683 | 2,800 | +4% | 0 | 0 | — |
case-06 | fail→pass | 20,215 | 8,662 | -57% | 1 | 1 | 0% | 2,711 | 3,073 | +13% | 0 | 0 | — |
case-07 | fail→pass | 14,888 | 3,470 | -77% | 1 | 1 | 0% | 2,174 | 2,416 | +11% | 0 | 0 | — |
case-08 | fail→pass | 15,411 | 13,019 | -16% | 1 | 1 | 0% | 2,476 | 4,072 | +64% | 0 | 0 | — |
case-09 | fail→fail | 20,445 | 31,199 | +53% | 1 | 1 | 0% | 2,474 | 4,351 | +76% | 0 | 0 | — |
case-10 | fail→pass | 13,379 | 12,007 | -10% | 1 | 1 | 0% | 1,860 | 3,829 | +106% | 0 | 0 | — |
case-11 | fail→pass | 18,771 | 11,327 | -40% | 1 | 1 | 0% | 2,937 | 3,856 | +31% | 0 | 0 | — |
case-12 | fail→pass | 16,043 | 15,619 | -3% | 1 | 1 | 0% | 2,513 | 4,173 | +66% | 0 | 0 | — |
case-13 | fail→pass | 20,571 | 22,581 | +10% | 1 | 1 | 0% | 3,336 | 4,621 | +39% | 0 | 0 | — |
case-14 | pass→pass | 15,191 | 11,995 | -21% | 1 | 1 | 0% | 1,890 | 3,866 | +105% | 0 | 0 | — |
case-15 | fail→pass | 118,152 | 17,262 | -85% | 1 | 1 | 0% | 8,096 | 4,240 | -48% | 0 | 0 | — |
case-16 | pass→pass | 17,652 | 13,460 | -24% | 1 | 1 | 0% | 2,604 | 3,752 | +44% | 0 | 0 | — |
case-18 | fail→pass | 19,168 | 16,272 | -15% | 1 | 1 | 0% | 2,744 | 4,030 | +47% | 0 | 0 | — |
case-19 | pass→pass | 21,631 | 12,210 | -44% | 1 | 1 | 0% | 3,340 | 3,997 | +20% | 0 | 0 | — |
case-20 | pass→pass | 17,122 | 15,221 | -11% | 1 | 1 | 0% | 2,896 | 4,442 | +53% | 0 | 0 | — |
case-21 | pass→pass | 15,131 | 6,592 | -56% | 1 | 1 | 0% | 2,808 | 2,924 | +4% | 0 | 0 | — |
case-22 | fail→pass | 21,282 | 11,927 | -44% | 1 | 1 | 0% | 3,296 | 3,923 | +19% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +68 percentage points is the difference between those two pass rates over the 22 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.