CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

chainlink-data-feeds-skill

Helps developers read Chainlink price feeds with AggregatorV3Interface and latestRoundData. This is not a Data Streams report. REST and WebSocket report streams go to chainlink-data-streams-skill. It applies to price feed integration, feed address lookup, consumer contracts, multi-chain feeds, MVR bundle feeds, SVR and OEV feeds, feed monitoring, historical data, L2 sequencer checks, rates and volatility feeds, and SmartData and RWA feeds.

81

2.27x
Quality

86%

Does it follow best practices?

Impact

100%

2.27x

2 of 3 eval scenarios. Add 1 more for a full score.

SecuritybySnyk

Passed

No findings from the security scan

SKILL.md
Quality
Evals
Security

Quality

Content

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

A dense, well-governed routing-and-policy body with exceptional workflow sequencing in the freshness ladder and concrete, executable directives throughout. The main defects are a dangling reference to a nonexistent starter-kit README and mild redundancy between the Safety rules and Invariants sections.

Suggestions

Fix the broken reference: templates/starter-kit/README.md is routed to in the disclosure table but does not exist in the bundle — either add the starter-kit template files or remove/redirect that routing row.

Consolidate the sequencer-interface and freshness rules that appear in both Safety rules and Invariants into a single section to trim duplicated tokens.

Inline a minimal latestRoundData consumer snippet (the named-return getter already specified in rule 5) so the most common request is answerable without a reference load.

DimensionReasoningScore

Conciseness

The body is lean, directive, and assumes competence — no concept explanations, no padding, every line is a rule (e.g., "Call decimals() at runtime; never hardcode decimals"). Minor duplication between sections (the sequencer-interface rule appears in both Safety rules and Invariants, and freshness/verification rules repeat across Freshness policy and Invariants) keeps it at anchor 4's 'minor instances that could be trimmed' rather than anchor 5's 'every token earns its place'.

4 / 5

Actionability

Highly concrete for an instruction-only skill: exact named-return form ("returns (int256 price, uint8 decimals)"), exact tuple assignment ("(, price,, updatedAt,) = dataFeed.latestRoundData();"), a mandatory verbatim sentence, and exact fetch URLs. Two gaps hold it below anchor 5: the most common case (reading a price feed) has no inline example, and the starter-kit routing row instructs loading "templates/starter-kit/README.md" which does not exist in the bundle — a directive that cannot be executed as written.

4 / 5

Workflow Clarity

The Freshness policy is a clearly sequenced 1-6 ladder with explicit error-recovery fallback ("Use Context7 only when the .md fetch fails, the page is empty..."), a stop condition ("Stop when the page answers"), and a budget ("Fetch at most three pages"), while Safety rules embed validation checkpoints ("Validate updatedAt against the heartbeat; reject incomplete or stale rounds") — matching anchor 5's clear sequence, explicit validation, and feedback loops.

5 / 5

Progressive Disclosure

The routing table maps concrete triggers to one-level-deep reference files, all of which exist except one, and adds an anti-speculative rule ("Do not load references speculatively"). The broken reference — "templates/starter-kit/README.md" is cited but no templates/ directory exists in the bundle — is exactly anchor 4's 'minor organization gaps', preventing the anchor-5 score the structure would otherwise merit.

4 / 5

Total

17

/

20

Passed

Description

87%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: concrete what with named interfaces, an explicit and broad trigger list, and active disambiguation from the nearest sibling skill. The only weaknesses are a mostly topic-style (rather than verb-style) capability list and the absence of common synonyms like "oracle".

DimensionReasoningScore

Specificity

Names a concrete core action with specific API details ("read Chainlink price feeds with AggregatorV3Interface and latestRoundData") and enumerates a broad set of application areas ("feed address lookup, consumer contracts, multi-chain feeds, ... L2 sequencer checks"), but stops short of multiple distinct concrete actions — the long tail reads as topical coverage rather than separate verbs — so it fits anchor 4 rather than 5, and is well above the 1-2-action anchor 3.

4 / 5

Completeness

Explicitly answers both: the what is concrete ("read Chainlink price feeds with AggregatorV3Interface and latestRoundData") and the when uses an explicit trigger clause ("It applies to price feed integration, feed address lookup, consumer contracts, multi-chain feeds, MVR bundle feeds, SVR and OEV feeds, feed monitoring, historical data, L2 sequencer checks, rates and volatility feeds, and SmartData and RWA feeds") with eleven concrete trigger phrases — equivalent explicit trigger guidance, so the missing-'Use when' cap does not apply and it matches anchor 5, not anchor 4 where the when 'could be more explicit'.

5 / 5

Trigger Term Quality

Good coverage of natural phrases users would say: "price feed integration", "feed address lookup", "consumer contracts", "feed monitoring", "historical data", "L2 sequencer checks". A few common synonyms are missing — notably "oracle"/"on-chain price", the most common user phrasing for this domain — so it fits anchor 4 (good coverage, a few natural terms missing) rather than anchor 5's comprehensive synonym coverage.

4 / 5

Distinctiveness Conflict Risk

Clear niche (Chainlink Data Feeds on EVM/multi-chain) with an explicit negative boundary against the closest sibling skill ("This is not a Data Streams report. REST and WebSocket report streams go to chainlink-data-streams-skill"), which directly resolves the highest-overlap conflict risk — matching anchor 5's 'clear niche with distinct triggers; minimal conflict risk', not anchor 4 which still leaves minor overlap unresolved.

5 / 5

Total

18

/

20

Passed

Validation

93%

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

Validation — 15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

relative_links

Relative link issues: 1 missing, 1 deeper-than-1-level

Warning

Total

15

/

16

Passed

Repository

smartcontractkit/chainlink-agent-skills

Path

chainlink-data-feeds-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.