CtrlK
BlogDocsLog inGet started
Tessl Logo

terra-sdk

Terra SDK integration for Python, JavaScript, iOS, Android, React Native, and Flutter. Use when implementing Terra in applications, choosing SDKs, or integrating mobile health sources.

52

Quality

65%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

High

Do not use without reviewing

Fix and improve this skill with Tessl

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

Quality

Content

46%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 body is a genuinely useful, information-dense SDK reference with real code for all six platforms, but it is a monolith: everything lives inline in SKILL.md with no reference files, the method reference is placeholder pseudocode, and internal inconsistencies (.fetch() vs .get(), generateauthtoken parameterization) would cause a model following it to write broken code. It reads as a full API doc dumped into SKILL.md rather than a progressive-disclosure skill.

Suggestions

Split per-SDK details into reference files (e.g. references/python.md, references/ios.md, ...) and keep SKILL.md as an overview with the SDK comparison table, 'When to Use Each SDK', and pointers — one level deep, clearly signaled.

Fix the internal inconsistencies: the doc says data retrieval uses .fetch() but async/error-handling examples call .get(); generateauthtoken is documented as taking no params but the Flask example passes reference_id — pick the correct API and align every example.

Make the 'Complete Method Reference' executable by replacing `...` placeholders with concrete argument names/types (or move it to a reference file), and replace the hardcoded dev_id/api_key values with obvious placeholders to avoid leaking what look like real credentials.

DimensionReasoningScore

Conciseness

The body thankfully avoids explaining concepts Claude already knows — it is dense install/setup/code reference — but at ~580 lines it repeats near-identical install/setup/read/write patterns across six platforms inline, which could be compressed to one cross-platform pattern plus per-SDK deltas. This fits anchor 3 ("mostly efficient but... could be tightened"): not 4 because the cross-platform duplication is more than minor trimming, not 2 because there is no padded conceptual explanation.

3 / 5

Actionability

Setup, installation, and error-handling blocks are near-executable, but the "Complete Method Reference" is signature pseudocode full of literal `...` placeholders, and there are internal inconsistencies: the doc states "Data Retrieval (use .fetch() method)" yet the async and error-handling examples call `client.activity.get(...)`; `generateauthtoken()` is documented as "No params" while the Flask example passes `reference_id`; several examples reference undefined variables (`user_id`, `start`, `end`). These gaps go beyond anchor 4's "minor gaps" and fit anchor 3 (incomplete/pseudocode guidance mixed with concrete code).

3 / 5

Workflow Clarity

Per-SDK sections imply a sequence (Installation → Setup → connect → Reading → Writing) and the "Backend Token Generation" section correctly surfaces the backend-token dependency for mobile SDKs (with the 180-second expiration note), but no explicit workflow or validation checkpoints are stated anywhere. No destructive or batch operations are involved, so the cap-3 rule is not triggered; anchor 3 ("sequence present but checkpoints missing or implicit") fits — not 4 because no step sequencing is ever made explicit.

3 / 5

Progressive Disclosure

The bundle contains no references/, scripts/, or assets/ directories at all — a ~580-line complete API reference for six platforms is inlined monolithically in SKILL.md. This matches anchor 2 ("content that clearly belongs in separate files is inlined"): not 3 because that anchor requires references to at least be present (they are not), while the section headers keep it above the structureless anchor-1/2 boundary.

2 / 5

Total

11

/

20

Passed

Description

70%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 solid description with an explicit 'Use when...' clause, good platform-level keyword coverage, and distinctive Terra-specific triggers. Its main weakness is generic action verbs — it says "integration" and "implementing" without naming any concrete capabilities, which keeps specificity at the midpoint.

Suggestions

Replace generic verbs with 2-3 concrete capabilities, e.g. "Generate widget sessions and auth tokens, fetch activity, sleep, daily, body, and nutrition data, and post workouts/nutrition across Python, JavaScript, iOS, Android, React Native, and Flutter SDKs."

Add natural synonyms users would actually say to the 'when' clause: "Use when the user mentions Terra, Apple Health, Samsung Health, Health Connect, wearables, or integrating mobile health data."

Make the 'when' clause less circular by naming concrete situations instead of restating "implementing Terra in applications" (e.g. "setting up Terra connections in a backend or mobile app").

DimensionReasoningScore

Specificity

Names the domain with six concrete platforms ("Python, JavaScript, iOS, Android, React Native, and Flutter") but the only actions offered are generic verbs — "Terra SDK integration", "implementing Terra", "choosing SDKs", "integrating mobile health sources" — with no concrete capabilities like fetching activity/sleep data or generating auth tokens. This matches anchor 3 (names domain and 1-2 concrete actions, not comprehensive): above 2 because the platform enumeration adds real specificity, below 4 because no specific capability actions are listed.

3 / 5

Completeness

Both 'what' ("Terra SDK integration for Python, JavaScript, iOS, Android, React Native, and Flutter") and 'when' ("Use when implementing Terra in applications, choosing SDKs, or integrating mobile health sources") are present. Not 5 because the 'when' is partially circular ("implementing Terra in applications" restates the what rather than naming concrete trigger situations); not 3 because the 'when' clause is explicit, not merely implied.

4 / 5

Trigger Term Quality

Good natural keyword coverage: "Terra", "Terra SDK", all six platform names, "SDKs", and "mobile health sources" are phrases users would naturally say. Not 5 because common variations are missing ("Apple Health", "Samsung Health", "wearables", "fitness data"); clearly above 3 since multiple natural terms and synonyms are present.

4 / 5

Distinctiveness Conflict Risk

"Terra" is a distinctive niche term that anchors every trigger, and the platform list further narrows matching. Not 5 because there is minor overlap risk with the sibling skills the body references (terra-connections, terra-data) — "integrating mobile health sources" could plausibly trigger those instead; clearly not 3 or below since the triggers are tightly scoped to Terra SDK work.

4 / 5

Total

15

/

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 (583 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.