CtrlK
BlogDocsLog inGet started
Tessl Logo

integration-webhooks

Cross-platform pattern for handling messaging integration webhooks (Slack, Telegram, WhatsApp, email, etc.) on serverless hosts. Use when adding a new integration adapter, debugging dropped messages, or wiring long-running agent work into a webhook handler.

67

Quality

84%

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

77%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 exceptionally actionable, well-sequenced body: executable schema and queries, an enforced validation loop, and a status-driven debugging checklist. Its weaknesses are structural — repeated retry-threshold and fire-and-forget rationale across four sections, and a 390-line single file with no reference bundle to split deep-dive material into.

Suggestions

State the recovery thresholds (pending >90s, processing >5min, 3-attempt cap, 16-minute durable lease cutoff) once in a single 'Recovery' section and reference it from the flow diagram, the durable-dispatch section, and the debugging checklist instead of repeating them in each.

Move the Netlify durable-dispatch rollout details (flag semantics, scope allowlist values, lease predicate, 15/16-minute cutoffs) and the Channels/settings extension rules into reference files (e.g. references/durable-dispatch.md, references/channels-settings.md) linked from short summary sections in SKILL.md.

Merge 'Why Fire-and-Forget on Serverless Is Unreliable' and the overlapping parts of 'Cross-Platform Considerations' into the existing 'Why' section — both restate the same serverless-freeze and portable-path arguments.

DimensionReasoningScore

Conciseness

The body assumes Claude's competence (no basic-concept padding) and is information-dense, but redundancy is noticeable: the retry thresholds (>90s pending, >5min processing, cap 3) appear in the flow diagram, the 'Why' section, 'Why Fire-and-Forget on Serverless Is Unreliable', and the debugging checklist, while 'Cross-Platform Considerations' restates rules from earlier sections. This fits 'mostly efficient but could be tightened' rather than anchor 2, since none of it is padded filler.

3 / 5

Actionability

Fully concrete guidance: copy-paste-ready SQL DDL for integration_pending_tasks, a runnable diagnostic query, complete route and file tables, specific env-var names (AGENT_INTEGRATION_DURABLE_DISPATCH, WEBHOOK_BASE_URL), and a near-complete TypeScript adapter template. The template's placeholder method bodies are justified flexibility for platform-specific APIs, keeping it at anchor 5 rather than 4.

5 / 5

Workflow Clarity

The core flow is explicitly sequenced (steps 1–9 plus the recovery sweep), the debugging checklist branches on task status as an error-recovery feedback loop (pending → check reachability, processing >5min → died mid-run, failed → check error_message), and the adapter workflow embeds validation ('catalog.spec.ts fails until the catalog and BUILT_IN_INTEGRATION_ADAPTER_IDS match'). This matches anchor 5's clear sequence, explicit validation, and feedback loops.

5 / 5

Progressive Disclosure

No bundle files exist (references/, scripts/, assets/ are absent) and the entire skill is a ~390-line monolith: the SQL schema, Netlify durable-dispatch rollout semantics, Channels/settings rules, and Slack unfurl handling are all inlined material that would fit one-level-deep reference files. Headers and tables keep it navigable, which holds it at anchor 3 ('content that should be separate is inline') rather than dropping to 2, but for a file this size the split is more than a minor organization gap.

3 / 5

Total

16

/

20

Passed

Description

87%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: concrete, third-person, with an explicit 'Use when...' clause carrying three realistic trigger scenarios and good platform synonym coverage. Only minor gaps — the queue/retry/recovery half of the skill and a few natural terms (bot, channel) are not reflected.

DimensionReasoningScore

Specificity

Names the domain ("messaging integration webhooks (Slack, Telegram, WhatsApp, email, etc.) on serverless hosts") and several concrete actions ("adding a new integration adapter, debugging dropped messages, or wiring long-running agent work into a webhook handler"), matching the 'several specific actions; minor gaps' anchor. It stops short of anchor 5 because queueing, retry, and recovery work — a large part of what the skill covers — is not surfaced.

4 / 5

Completeness

Explicitly answers both: what ("Cross-platform pattern for handling messaging integration webhooks... on serverless hosts") and when ("Use when adding a new integration adapter, debugging dropped messages, or wiring long-running agent work into a webhook handler") with three concrete trigger phrases — a direct match for the anchor 5 example pattern.

5 / 5

Trigger Term Quality

Good natural-term coverage: "webhooks", "Slack, Telegram, WhatsApp, email", "integration adapter", "dropped messages", "serverless" are phrases a user would actually say. Not anchor 5 because common variations like "bot", "channel", "queue", or "message handler" are missing and "etc." hedges the platform list.

4 / 5

Distinctiveness Conflict Risk

Clear niche — messaging-platform webhook handling on serverless hosts — with triggers (adapter work, dropped messages, long-running agent work in handlers) that are unlikely to fire for sibling skills like secrets, recurring-jobs, or server-plugins. Voice is third-person throughout, no over-claims.

5 / 5

Total

18

/

20

Passed

Validation

81%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 13 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

metadata_version

'metadata.version' is missing

Warning

metadata_field

'metadata' should map string keys to string values

Warning

frontmatter_unknown_keys

Unknown frontmatter key(s) found; consider removing or moving to metadata

Warning

Total

13

/

16

Passed

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.