CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

chainlink-ccip-skill

Handles Chainlink CCIP requests and never signs or broadcasts. It sends one-node GET diagnosis to chainlink-nop-skill. It sends ACE policy design to chainlink-ace-skill. Pool and message mechanics stay here. It applies to route, token, message-status, and lane lookups, fee estimates, cross-chain transfers and messaging, sender and receiver contracts, extraArgs V3, Fast Transfers, CCT token pools, and CCIP monitoring.

63

Quality

79%

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 ./chainlink-ccip-skill/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

65%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.

The skill excels at progressive disclosure — a concise overview with a trigger table pointing to real, one-level-deep reference files — and its guidance is mostly concrete, with exact refusal strings, a preflight template, and specific method requirements. Its weaknesses are systemic guardrail duplication across sections and an entry-point routing paragraph written as impenetrable compound sentences, which leave workflow checkpoints implicit rather than clearly sequenced.

Suggestions

Deduplicate guardrails: state the mainnet-refusal rule (exact phrase, scope, and permitted alternatives) once in Boundary and Preflight, and reference it from the gate paragraph instead of restating it fully in both places — this directly reduces the conciseness gap.

Rewrite the Progressive Disclosure gate as a short decision list or small table (signal detected → action), splitting the 100+-word compound sentence into discrete rules so routing and validation checkpoints are explicit rather than implicit.

Convert the dense invariant prose into a sequenced pre-send checklist (e.g., verify lane/token support → `isChainSupported` → `getFee` → approvals ordering → emit preflight block → schedule monitoring) so the required workflow order is scannable.

DimensionReasoningScore

Conciseness

The body explains nothing Claude already knows and contains no fluff, but guardrails are stated redundantly: the exact mainnet-refusal phrase and its full rules appear in both the Progressive Disclosure gate ("say exactly 'I refuse mainnet write artifacts; testnet only'... Then offer only read-only or product-specific testnet guidance") and the Boundary section ("Refuse every mainnet write artifact... say exactly 'I refuse mainnet write artifacts; testnet only.'"), and the never-signs theme recurs in several near-duplicate forms. This matches the level-3 anchor 'mostly efficient but includes some unnecessary explanation or could be tightened'. Not 4: the duplication is systematic across sections, not a minor instance.

3 / 5

Actionability

Mostly concrete: exact refusal strings to emit, a fill-in preflight template ("Action/Network/Source chain/... "), exact URLs ("https://docs.chain.link/ccip/tools/llms.txt"), and specific method requirements ("require `IRouterClient.isChainSupported(selector)` before `getFee` or `ccipSend`"). As an instruction-only routing skill, absence of code is not penalized per the rubric's scoring notes. Not 5: some directives are preference statements rather than executable steps ("keep contracts conservative, validated, access-controlled, least-privilege, and small") and the routing logic requires re-parsing dense compound sentences to act on.

4 / 5

Workflow Clarity

Validation checkpoints exist ("Before any token-send artifact, verify the direct lane and exact token support", "Quote fees before send preparation", the preflight field block, and mandatory post-transfer monitoring), so the destructive-operation cap for *missing* validation does not apply — but they are buried in dense prose rather than sequenced. The Freshness Policy is a clear numbered sequence, yet the primary entry-point routing logic is a single 100+-word compound sentence with nested exceptions ("Without explicit CCIP signal, ask which product and stop before... however, a local simulator test request... is sufficient CCIP intent..."), matching the level-3 anchor 'sequence present but checkpoints missing or implicit'. Not 4: the gate paragraph and the outside-scope paragraph make the decision flow genuinely hard to follow without careful re-reading.

3 / 5

Progressive Disclosure

The body is a clear overview with a well-organized trigger-to-reference table routing each task type to a named file ("Live message status/search... → [API](references/ccip-api.md)" etc.), and all 12 referenced files exist as real, substantive content one level deep. This matches the level-5 anchor 'clear overview with well-signaled one-level-deep references; content appropriately split; easy navigation'. Lateral cross-links between references (e.g., discovery → api) duplicate links already reachable directly from the SKILL.md table, so no content is buried two levels deep.

5 / 5

Total

15

/

20

Passed

Description

83%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 strong description: third-person, comprehensive enumeration of concrete CCIP capabilities, and an explicit 'applies to' clause listing the situations that should activate it. The main weaknesses are a missing crisp 'Use when...' phrasing, a few absent natural synonyms ('bridge'), and confusing inter-skill routing sentences that dilute the capability statement.

DimensionReasoningScore

Specificity

Quotes: "route, token, message-status, and lane lookups, fee estimates, cross-chain transfers and messaging, sender and receiver contracts, extraArgs V3, Fast Transfers, CCT token pools, and CCIP monitoring" — multiple specific concrete actions covering the CCIP domain comprehensively, matching the level-5 anchor's breadth (analogous to 'extract text and tables, fill forms, merge documents, convert pages'). Voice is third person ('Handles', 'It sends', 'It applies'), so no person-penalty applies. Not 4: the action list has no real coverage gaps; the vague opener 'Handles Chainlink CCIP requests' is immediately backed by the comprehensive enumeration.

5 / 5

Completeness

What is clear: "Handles Chainlink CCIP requests... Pool and message mechanics stay here." When is explicitly enumerated via "It applies to route, token, message-status, and lane lookups, fee estimates, cross-chain transfers..." — a functional trigger clause listing concrete situations, so the level-3 cap ('Use when' or equivalent missing) does not apply. Not 5: the trigger guidance is phrased as applicability rather than a crisp 'Use when the user mentions...' clause, and the interleaved skill-routing sentences ('sends one-node GET diagnosis to chainlink-nop-skill') blur the what/when answers.

4 / 5

Trigger Term Quality

Quotes: "fee estimates", "cross-chain transfers and messaging", "message-status", "token pools", "CCIP monitoring", "sender and receiver contracts" — natural phrases a CCIP user would say, with good synonym coverage. Not 5: common variations like "bridge/bridging" and plain "Chainlink" as a standalone trigger are missing, so a few natural terms are absent.

4 / 5

Distinctiveness Conflict Risk

Quote: "Chainlink CCIP" plus domain-specific triggers ("extraArgs V3, Fast Transfers, CCT token pools") give a clear niche with distinct trigger vocabulary and minimal conflict risk against generic skills. Not 4: only a slight overlap exists with generic cross-chain bridge skills, which the explicit Chainlink/CCIP scoping already disambiguates.

5 / 5

Total

18

/

20

Passed

Validation

100%

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

Validation — 16 / 16 Passed

Validation for skill structure

No warnings or errors.

Repository

smartcontractkit/chainlink-agent-skills

Path

chainlink-ccip-skill/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.