CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl-skill-index-evals/jup-ag__agent-skills__integrating-jupiter

Comprehensive guidance for integrating Jupiter APIs (Ultra Swap, Lend, Perps, Trigger, Recurring, Tokens, Price, Portfolio, Prediction Markets, Send, Studio, Lock, Routing).

86

1.85x

Quality

84%

Does it follow best practices?

Impact

91%

1.85x

Average score across 5 eval scenarios

Overview
Skills
Evals
Files

rubric.jsonevals/scenario-5/

{
  "context": "Tests whether the agent correctly implements Jupiter cross-API error handling patterns including the JupiterResult type, error code classification by category (rate limit, negative Ultra codes, positive program codes), exponential backoff with jitter, retry-only-transient policy, async state reconciliation, actionable UX error states, and graceful degradation.",
  "type": "weighted_checklist",
  "checklist": [
    {
      "name": "JupiterResult type pattern",
      "description": "Defines a result type with ok boolean, optional result of generic type T, and optional error with code (string or number), message (string), and retryable (boolean)",
      "max_score": 10
    },
    {
      "name": "Rate limit classification",
      "description": "Classifies HTTP 429 or code 'RATE_LIMITED' as a retryable error with appropriate code and message",
      "max_score": 8
    },
    {
      "name": "Negative code Ultra execute errors",
      "description": "Identifies negative numeric error codes as Ultra execute errors; classifies specific codes (-1, -1000, -1001, -1005, -1006, -2000, -2003, -2005) as retryable and other negative codes as non-retryable",
      "max_score": 12
    },
    {
      "name": "Positive code program errors",
      "description": "Identifies positive numeric error codes as program/on-chain errors that are NOT retryable (e.g., 6001 = slippage)",
      "max_score": 8
    },
    {
      "name": "Exponential backoff with jitter",
      "description": "Retry delay formula uses exponential backoff (baseDelay * 2^attempt) combined with random jitter; includes a maximum delay cap",
      "max_score": 12
    },
    {
      "name": "Retry only transient errors",
      "description": "The retry function only retries errors classified as retryable (transient, network, rate-limit); non-retryable errors are surfaced immediately without retry",
      "max_score": 10
    },
    {
      "name": "Response parsing with text fallback",
      "description": "Parses non-ok responses by first reading as text, then attempting JSON parse, falling back to the raw text if JSON parse fails; includes the HTTP status in the error",
      "max_score": 8
    },
    {
      "name": "Transaction state reconciliation",
      "description": "Tracks and reconciles async transaction states with at least three states: submitted, confirmed, and failed; checks state before declaring success to the user",
      "max_score": 10
    },
    {
      "name": "Actionable user messages",
      "description": "Maps errors to user-facing actions; includes at least: retry (for transient), adjust params (for validation/slippage), insufficient balance, and rate limited as distinct actionable states",
      "max_score": 10
    },
    {
      "name": "Graceful degradation",
      "description": "Includes logic for degrading gracefully when the service is unhealthy (e.g., circuit breaker pattern, health check, or fallback behavior rather than cascading failures)",
      "max_score": 6
    },
    {
      "name": "API key auth with fail-fast",
      "description": "Includes x-api-key header in requests; validates the key is present at initialization and fails immediately if missing",
      "max_score": 6
    }
  ]
}

Install with Tessl CLI

npx tessl i tessl-skill-index-evals/jup-ag__agent-skills__integrating-jupiter@0.0.1

evals

tile.json