CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

jupiter-lend

Interact with Jupiter Lend Protocol. Read-only SDK (@jup-ag/lend-read) for querying liquidity pools, lending markets (jlTokens), and vaults. Write SDK (@jup-ag/lend) for lending (deposit/withdraw) and vault operations (deposit collateral, borrow, repay, manage positions).

Quality

74%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Medium

Suggest reviewing before use

Fix and improve this skill with Tessl

tessl review fix ./vendored/jupiter/jupiter-lend/SKILL.md

The canonical home for this skill is jupiter-lend in jup-ag/agent-skills

SKILL.md
Quality
Evals
Security

Quality

Content

71%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

Highly actionable content with genuinely copy-paste-ready examples and valuable protocol-specific knowledge, but it pays for that with duplication and a monolithic single-file structure. The complete examples and documentation index should live in reference files, and the shared transaction boilerplate should be factored out.

Suggestions

Move the two complete working examples into references/ files (e.g., references/examples/deposit.ts) and keep one-line pointers plus the install command in SKILL.md.

Deduplicate the shared boilerplate (loadKeypair, blockhash/sign/send/confirm) across examples, and remove the repeated "Vaults handle collateral deposits and debt borrowing" sentence in section 3.

Replace the 20-link inline documentation index with a shorter curated list in SKILL.md pointing to a references/docs.md index.

DimensionReasoningScore

Conciseness

Mostly efficient domain-specific content (jlToken exchange prices, sentinels, sign conventions, base units — all things Claude would not know), but there is clear duplication: "Vaults handle collateral deposits and debt borrowing" appears twice, the two ~90-line complete examples repeat the same loadKeypair/sign/send boilerplate, and Example 2 re-covers the combined-operate patterns already shown in section 3. This fits the anchor for content that is mostly efficient but could be tightened; it is not score 4 because the duplicated boilerplate is substantial.

3 / 5

Actionability

Install commands, fully executable copy-paste TypeScript scripts (keypair loading, ALT dedup, V0 message assembly, sign/send/confirm), sentinel imports with explicit "do not call .neg()" warnings, and base-unit amounts with decimal annotations cover the common cases completely. The early snippet placeholders (EXISTING_POSITION_ID, USDC_PUBKEY) are explicitly explained and the full examples are genuinely copy-paste ready, matching the top anchor.

5 / 5

Workflow Clarity

Example 1 sequences the workflow clearly (read positions → resolve/create positionId → build ixs → assemble → sign/send → confirm) with a fallback branch and a validation checkpoint ("if (!ixs?.length) throw"), plus preflight/confirm settings. It is not score 5 because there are no error-recovery feedback loops (what to do on a failed or partially-filled transaction) and no pre-send balance/decimals checklist for these funds-moving operations; it stays above 3 because validation checkpoints are genuinely present.

4 / 5

Progressive Disclosure

The body has good section structure (numbered sections, clear headers), but it is a ~590-line monolith with no bundle files at all: both complete working examples and the 20-link Build Kit documentation index are inlined content that clearly belongs in separate reference files. This fits the anchor of decent structure with content that should be separate kept inline; it is not score 2 because navigation via headers is clear, not minimal.

3 / 5

Total

15

/

20

Passed

Description

71%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

A specific, well-scoped description that clearly names both SDKs and their operations, but it omits any "when to use" trigger guidance, which caps completeness and slightly weakens trigger-term coverage. Adding a Use-when clause covering flashloans, Earn/yield, and Solana lending scenarios would raise it substantially.

Suggestions

Append an explicit trigger clause, e.g.: "Use when the user mentions Jupiter Lend, jlTokens, supplying or borrowing on Solana, leveraged vault positions, or flashloans."

Include missing natural trigger terms users would say: "flashloan", "earn/yield", "supply", and "Solana" — all of which the skill body covers but the description omits.

Drop the generic opener "Interact with Jupiter Lend Protocol" in favor of leading with the concrete capabilities it already contains.

DimensionReasoningScore

Specificity

The description lists multiple concrete actions — "querying liquidity pools, lending markets (jlTokens), and vaults", "deposit/withdraw", "deposit collateral, borrow, repay, manage positions" — giving comprehensive coverage of the protocol's operations. This matches the anchor for multiple specific concrete actions; it is not score 4 because coverage spans both read and write surfaces with no meaningful gap.

5 / 5

Completeness

The "what" is clear (read-only querying via @jup-ag/lend-read; write operations via @jup-ag/lend), but there is no "Use when..." clause or equivalent trigger guidance anywhere in the description — the guidelines explicitly cap completeness at 3 for this. It is not score 2 because the "what" is concrete and specific rather than vague.

3 / 5

Trigger Term Quality

Good natural-keyword coverage: "lending", "borrow", "repay", "deposit/withdraw", "vaults", "liquidity pools", "jlTokens", "Jupiter Lend". It falls short of the comprehensive synonym coverage anchor because common user terms like "flashloan", "earn", "yield", "supply", or "Solana" (all covered by the skill body) are missing.

4 / 5

Distinctiveness Conflict Risk

"Jupiter Lend Protocol" plus protocol-specific terms (jlTokens, named SDK packages) carve out a clear niche with minimal conflict risk. It is not score 5 because generic lending verbs ("lending (deposit/withdraw)") create minor overlap risk with other DeFi/lending skills when the user doesn't name Jupiter specifically.

4 / 5

Total

16

/

20

Passed

Validation

75%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 12 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

skill_md_line_count

SKILL.md is long (597 lines); consider splitting into references/ and linking

Warning

metadata_version

'metadata.version' is missing

Warning

metadata_field

'metadata' should map string keys to string values

Warning

frontmatter_unknown_keys

Unknown frontmatter key(s) found; consider removing or moving to metadata

Warning

Total

12

/

16

Passed

Repository

internet-court/internet-court-skill

Path

vendored/jupiter/jupiter-lend/SKILL.md

Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.