CtrlK
BlogDocsLog inGet started
Tessl Logo

data-programs

Save a run-code fetch/join/aggregate script as a stored, refreshable data source any app's own charts/tables can render, instead of a hardcoded provider action or a per-view re-fetch. Use when an ad-hoc run-code or provider-api-request analysis should become a live, cached data source other users or panels can reuse.

65

Quality

82%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
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 well-engineered skill body: an explicitly validated authoring workflow, exact API signatures, precise sandbox/caps/refresh/security contracts, and clean section structure. It is lean and highly actionable throughout, with only minor room to trim prose and to split deep reference material into a separate file or add a worked example program.

DimensionReasoningScore

Conciseness

The body is dense and assumes Claude's competence — caps and refresh behavior are given as terse tables, with no explanation of concepts Claude already knows. Minor prose (the "Why this exists" narrative, the analytics-template parenthetical in step 4) could be trimmed, placing it just below anchor 5.

4 / 5

Actionability

It gives exact action signatures with full parameter lists (`save-data-program({ name, title, description, code, defaultParams?, refreshMode?, refreshTtlMs?, background? })`, `run-data-program(...)`) plus the precise `emit(rows, schema?)` contract and `{ name: string, type: string }[]` schema shape. Fully concrete guidance; the only gap is the absence of a copy-paste example program script.

4 / 5

Workflow Clarity

The 5-step authoring workflow has explicit validation checkpoints and a feedback loop: prototype and "confirm it returns the rows you expect", a save that "dry-runs the code with defaultParams before persisting" and rejects on structured error, and the returned `{ programId, rowCount, columns, sampleRows }` framed as proof the program works. Failure and stale-serve states are enumerated in a table.

5 / 5

Progressive Disclosure

Well-organized sections with one-level-deep pointers (Related skills: `actions`, `sharing`, `security`; the analytics template's `data-programs` skill as a UI wiring reference) and no nested references. At ~110 lines with no bundle files, some detail (the full caching/error-state table) could live in a reference file, so it does not fully meet anchor 5's clear split.

4 / 5

Total

17

/

20

Passed

Description

76%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 with an explicit what plus a concrete "Use when" trigger clause and clear niche positioning. Its weakest point is trigger-term coverage: the keywords are platform jargon rather than the natural phrases a user would say, missing common synonyms.

Suggestions

Add natural-language synonyms to the trigger clause, e.g. "Use when an ad-hoc analysis, query, or report should become a live, cached data source (dataset) that dashboards and other panels can reuse".

Include the everyday user verbs for the rendering side (e.g. "chart", "dashboard", "table", "dataset") so the skill surfaces when users ask for live or shared views of data.

Consider naming the core user-facing outcome earlier in the sentence ("Turn an ad-hoc analysis into a stored, refreshable data source...") so the trigger reads less like internal platform terminology.

DimensionReasoningScore

Specificity

The description lists several concrete actions in third person — "save a run-code fetch/join/aggregate script as a stored, refreshable data source any app's own charts/tables can render" — with only minor coverage gaps (much of it is framed as contrast with a hardcoded action rather than as actions).

4 / 5

Completeness

It explicitly answers both what ("save a run-code fetch/join/aggregate script as a stored, refreshable data source...") and when ("Use when an ad-hoc run-code or provider-api-request analysis should become a live, cached data source other users or panels can reuse") with concrete trigger phrases.

5 / 5

Trigger Term Quality

Keywords like "run-code", "provider-api-request analysis", "cached data source", and "fetch/join/aggregate" are relevant but lean toward platform-internal jargon; common natural variations users would say (query, dataset, report, dashboard) are missing.

3 / 5

Distinctiveness Conflict Risk

The stored/refreshable/cached-data-source framing and the contrast with "a hardcoded provider action or a per-view re-fetch" carve a clear niche, but there is minor overlap risk with a generic run-code/actions skill.

4 / 5

Total

16

/

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
BuilderIO/agent-native
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.