CtrlK
BlogDocsLog inGet started
Tessl Logo

terra-data

Terra API health data retrieval and management. Use when fetching activity, sleep, body, daily, nutrition, menstruation, or athlete data from wearables.

58

Quality

73%

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

Fix and improve this skill with Tessl

tessl review fix ./.claude/skills/terra-data/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

57%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, information-rich reference that is strong on concrete Terra-specific details (data schemas, overwrite semantics, provider limits) and largely executable code. Its weaknesses are systematic redundancy between docstrings and sample JSON, a monolithic single-file layout with no external references, and batch workflows (backfill, bulk fetch, db writes) that lack validation and error-handling checkpoints.

Suggestions

Move the six per-type sample JSON payloads, provider historical-limits table, and SQL schema into references/ files (e.g. references/samples.md, references/providers.md) and link them from a lean SKILL.md overview, reducing inlined bulk and enabling progressive disclosure.

Consolidate the seven near-identical client.<type>.get sections into one parameterized call pattern with a short per-type field table, dropping the duplicated docstring-plus-sample-JSON redundancy.

Add validation checkpoints to the batch workflows: check response status/pagination in get_all_user_data, confirm webhook delivery expectations in backfill_user_data for the >28-day path, and verify upsert success in handle_data_update.

DimensionReasoningScore

Conciseness

The body is mostly high-value, non-obvious material (Terra schemas, provider history limits, overwrite semantics), but each operation repeats a docstring field list followed by a sample JSON showing the same fields, the Data Types Overview table restates what each section repeats, and the 7 near-identical client.<type>.get blocks could be consolidated. This fits 'mostly efficient but includes some unnecessary explanation or could be tightened' — not 2 (nothing explains concepts Claude already knows; there is no padding like the bad examples), and not 4 (the redundancy is systematic, not minor).

3 / 5

Actionability

Concrete executable code for every operation plus sample JSON responses, e.g. "client.activity.get(user_id=..., start_date=..., end_date=..., to_webhook=...)" and full Quick Start. Minor gaps keep it from 5: the Quick Start uses os.environ without importing os, handle_data_update references an undefined db object, and get_all_user_data is marked async while making synchronous calls. It is clearly above 3 (code is real, not pseudocode, and covers the common cases).

4 / 5

Workflow Clarity

There is a coherent sequence (Quick Start → per-type retrieval → bulk/backfill → update strategy → storage schema), but the batch operations lack validation checkpoints: get_all_user_data and backfill_user_data never check responses for errors, pagination, or webhook confirmation, and handle_data_update performs db writes with no verification. Per the guideline capping batch operations without validation, this sits at 3 ('sequence present but checkpoints missing or implicit') rather than 4.

3 / 5

Progressive Disclosure

The single SKILL.md (~550 lines, 12KB) inlines six per-type sample JSON payloads, provider limit tables, SQL schemas, and write examples — content that clearly belongs in reference files — with no references/, scripts/, or assets/ directories at all. Section headers do give it real structure ('Some structure... content that should be separate is inline'), so it scores 3 rather than 2, but it is far from the well-signaled one-level-deep reference structure of a 5.

3 / 5

Total

13

/

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 description: third-person, concise, with an explicit 'Use when...' trigger clause enumerating all seven data types and the wearable context. The main weakness is that 'management' is vague and the only concrete verb is retrieval/fetching, leaving the action coverage narrower than the body's actual scope (writes, backfill, webhook handling).

DimensionReasoningScore

Specificity

Phrases like "Terra API health data retrieval and management" and "fetching activity, sleep, body, daily, nutrition, menstruation, or athlete data" name the domain and one concrete action (retrieval/fetching) applied to enumerated data types; "management" is generic and unelaborated. It matches the anchor for naming the domain with 1-2 concrete actions without comprehensive coverage — not 2 (the domain and data types are concrete, not minimal), and not 4 (only one real verb; no other operations like writing or backfilling are stated).

3 / 5

Completeness

The 'what' is explicit ("Terra API health data retrieval and management" with the seven data types enumerated) and the 'when' is an explicit trigger clause ("Use when fetching activity, sleep, ... data from wearables") with concrete trigger phrases. This directly matches the anchor for clearly and explicitly answering both what AND when.

5 / 5

Trigger Term Quality

Natural trigger terms are present: "fetching activity, sleep, body, daily, nutrition, menstruation, or athlete data from wearables", plus "health data" and "Terra API". A few natural terms users would say are missing (device names like Garmin/Fitbit/Oura, "fitness tracker", "steps", "heart rate"), so it fits the 'good keyword coverage; a few natural terms missing' anchor rather than the comprehensive synonym/extension coverage of a 5, and is clearly above the partial coverage of a 3.

4 / 5

Distinctiveness Conflict Risk

"Terra API" plus the enumerated health-data types carves a clear niche distinct from generic data skills. Minor overlap risk remains with the related terra-auth, terra-webhooks, and terra-sdk skills (e.g., a request about 'wearable data' could plausibly belong to webhooks/SDK integration), so it fits 'mostly distinct; minor overlap risk' rather than the minimal-conflict 5.

4 / 5

Total

16

/

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

skill_md_line_count

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

Warning

Total

15

/

16

Passed

Repository
fernandezbaptiste/Skrillz
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.