CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

chainlink-nop-skill

Diagnoses one Chainlink node with the Node API. It reads jobs and bridges with GET-only calls. It sends a CCIP sender to chainlink-ccip-skill and a CRE workflow to chainlink-cre-skill. It applies to /chainlink-nop-skill, one node, Node API, jobs, bridges, and GET-only checks. This skill stays one node and read-only.

70

Quality

88%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Low

Low-risk findings worth noting

SKILL.md
Quality
Evals
Security

Quality

Content

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

An exemplary instruction-only skill body: executable commands and complete examples, a validated multi-step workflow with explicit stop conditions and outcome labels, and clean conditional references to real bundle files. The only nit is mild repetition of the read-only/credential-safety constraints across sections.

DimensionReasoningScore

Conciseness

The body is dense and lean — it explains no general concepts and every section carries operational content — but the GET-only/no-mutation constraint and 'Never print that file' repeat across 'Scope and routing', 'Preferred API client', and 'Continuous diagnosis'. Anchor 4 (efficient with minor instances that could be trimmed) fits better than 5.

4 / 5

Actionability

Guidance is fully executable: copy-paste-ready client commands ('python3 scripts/node_api.py [--config PATH] [--env-file PATH] snapshot', 'get /v2/jobs [--all-pages]'), complete YAML examples for the setup form and config.yaml, concrete header names (X-API-KEY, X-API-SECRET), and exact form fields — covering the common cases.

5 / 5

Workflow Clarity

The 'Continuous diagnosis' section gives a clearly sequenced 6-step process with explicit upfront validation ('Validate the selected config or explicit env file before requesting anything'), defined stop conditions, terminal states (BLOCKED, INSUFFICIENT), and error-recovery paths (fallback raw reads when Python is unavailable, value-free corrections on failure). The skill is read-only, so the destructive/batch validation cap does not apply.

5 / 5

Progressive Disclosure

The body is an overview that points to three real, one-level-deep reference files, each with a clear conditional read trigger ('Read references/node-api.md before API access', 'only for CCIP node diagnosis', 'only for CRE node diagnosis'), plus a bundled script — matching the actual bundle structure on disk with no nested references.

5 / 5

Total

19

/

20

Passed

Description

78%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, third-person description with concrete capabilities and an explicit (if mechanical) trigger clause, clearly separated from sibling CCIP/CRE skills. The main weaknesses are the keyword-list phrasing of the when-clause and missing natural synonyms like 'troubleshoot' or 'node health'.

Suggestions

Replace the mechanical 'It applies to...' keyword list with a natural scenario-based trigger clause, e.g. 'Use when the user asks to diagnose or troubleshoot a single Chainlink node, inspect its jobs or bridges, or verify node health via read-only Node API calls.'

Add natural synonyms users would say: 'troubleshoot', 'node operator', 'node health', 'pipeline runs' — alongside the existing 'diagnoses', 'jobs', and 'bridges'.

Mention the broader read surface the skill actually supports (transactions, configuration, health endpoints) so capability coverage in the description matches the body.

DimensionReasoningScore

Specificity

The description lists several concrete actions ('Diagnoses one Chainlink node with the Node API', 'reads jobs and bridges with GET-only calls', 'sends a CCIP sender to chainlink-ccip-skill', 'sends... CRE workflow to chainlink-cre-skill') in third-person voice. It falls short of 5 because coverage has gaps — the body also supports transaction, config, and health reads that the description omits — but exceeds 3's '1-2 concrete actions'.

4 / 5

Completeness

Both what ('Diagnoses one Chainlink node... reads jobs and bridges with GET-only calls') and when ('It applies to /chainlink-nop-skill, one node, Node API, jobs, bridges, and GET-only checks') are present, so it is not capped at 3. It falls short of 5 because the when-clause is a mechanical keyword list that includes the slash-command name itself rather than concrete user scenarios or phrasings like 'Use when the user asks to...'.

4 / 5

Trigger Term Quality

Natural domain terms are present ('Chainlink node', 'Node API', 'jobs', 'bridges', 'CCIP', 'CRE', 'GET-only'), which is good keyword coverage. Not 5: common variations a user would actually say — 'troubleshoot', 'node operator', 'node health', 'pipeline runs' — are missing; not 3: the terms included are the ones users naturally use for this domain.

4 / 5

Distinctiveness Conflict Risk

The description carves out a clear niche (exactly one Chainlink node, Node API, GET-only, read-only) and explicitly distinguishes sibling skills by naming the CCIP and CRE routing targets, minimizing conflict risk.

5 / 5

Total

17

/

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-nop-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.