CtrlK
BlogDocsLog inGet started
Tessl Logo

terra-webhooks

Terra API webhook handling for real-time health data. Use when setting up webhook endpoints, verifying signatures, handling events, or debugging webhook issues.

60

Quality

75%

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 ./skills/terra-webhooks/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 highly actionable, well-structured reference with executable code and useful operational tables, but it is a monolithic ~560-line file with significant code duplication and no progressive disclosure. Tightening the duplication and splitting reference material (payload schemas, IP lists) into bundle files would lift it substantially.

Suggestions

Deduplicate the signature-verification code (present 3x) into one canonical example and reference it from the Quick Start and setup sections; consolidate the twice-inlined TERRA_IPS list.

Move the five payload JSON schemas and the IP whitelist into a references/ file (e.g. references/payloads.md) linked from SKILL.md, keeping the body as an overview.

Add validation/error-recovery handling around the MongoDB upsert operations (e.g. verify writes succeeded and log/requeue on failure) to build a genuine feedback loop into the data-handling workflow.

DimensionReasoningScore

Conciseness

No padding with concepts Claude already knows, but there is real duplication: the signature-verification code appears nearly verbatim three times (Quick Start, 'setup-webhook-endpoint', and 'verify-signature') and the TERRA_IPS list is inlined twice. The long payload JSON examples are valuable but push the body to ~560 lines, so it fits 'mostly efficient but could be tightened' rather than a leaner score.

3 / 5

Actionability

Concrete, mostly executable Flask/Celery/MongoDB code plus curl and ngrok test commands covering the common cases (setup, verification, data/auth handlers, idempotency, dashboard config). Not a 5 due to minor gaps: 'db', 'trigger_backfill', 'handle_user_connected', and 'process_event' are undefined, 'datetime' is used without import, and the Quick Start dispatch names differ from the handlers defined later ('handle_user_connected' vs 'handle_auth').

4 / 5

Workflow Clarity

The sequence is clear — numbered steps '1. Verify signature' through '4. Respond immediately', async processing via Celery, and retry/idempotency guidance with the failure conditions ('Non-2XX response', 'Timeout (>5 seconds)') and a retry-delay table. However, the database upsert handlers ('db.activities.update_one', 'db.daily.update_one') include no validation or error-recovery feedback loops, which caps a database-operation workflow at 3 per the rubric's feedback-loop rule.

3 / 5

Progressive Disclosure

Section headers are well organized, but the single ~560-line SKILL.md inlines everything — five full payload JSON schemas, the production handler, IP whitelists, and testing guides — with no bundle files or one-level-deep references to offload bulk. This matches 'content that should be separate is inline' rather than a well-split structure; the exception for short single-file skills does not apply at this length.

3 / 5

Total

13

/

20

Passed

Description

83%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 that clearly states what the skill does and when to use it, using natural trigger phrases in a compact two-sentence form. Minor improvements possible in keyword breadth and distinguishing itself from sibling Terra skills.

Suggestions

Add natural synonyms to broaden triggering, e.g. 'Use when receiving or processing Terra webhook payloads or callbacks'.

Sharpen 'handling events' to concrete categories (e.g. 'handling auth, activity, sleep, and daily data events') to reduce overlap with sibling Terra skills.

DimensionReasoningScore

Specificity

Lists several specific actions — 'setting up webhook endpoints, verifying signatures, handling events, or debugging webhook issues' — with minor gaps in coverage ('handling events' is generic and data-payload handling is only implied by 'real-time health data'). Not a 5 because it doesn't comprehensively enumerate the concrete operations the skill actually covers (event payload handling, retries, idempotency).

4 / 5

Completeness

Explicitly answers both: what ('Terra API webhook handling for real-time health data') and when ('Use when setting up webhook endpoints, verifying signatures, handling events, or debugging webhook issues') with concrete trigger phrases. This matches the anchor-5 example pattern of a what-clause followed by a 'Use when...' clause with specific triggers.

5 / 5

Trigger Term Quality

Good natural keyword coverage: 'webhook endpoints', 'verifying signatures', 'debugging webhook issues', 'Terra API', 'real-time health data' are phrases a user would naturally say. Not a 5 because common synonyms and specifics like 'callbacks', 'payloads', 'webhook events', or provider names (Fitbit, Garmin, Oura) are absent.

4 / 5

Distinctiveness Conflict Risk

'Terra API webhook handling' carves a clear webhook-specific niche with distinct triggers (endpoints, signatures, event handling). Not a 5 because 'handling events' and 'debugging webhook issues' risk overlap with the related terra-connections and terra-troubleshooting skills the body itself cross-references for those exact jobs.

4 / 5

Total

17

/

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