CtrlK
BlogDocsLog inGet started
Tessl Logo

webhook-handler-patterns

Best practices for webhook handlers. Use when implementing the handler sequence (verify first, parse second, handle idempotently), idempotency, error handling, retry logic, or framework-specific issues with Express, Next.js, or FastAPI.

84

1.12x
Quality

83%

Does it follow best practices?

Impact

89%

1.12x

Average score across 3 eval scenarios

SecuritybySnyk

Low

Low-risk findings worth noting

SKILL.md
Quality
Evals
Security

Quality

Content

78%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-structured, token-efficient overview with excellent progressive disclosure — every referenced file exists, is clearly signaled, and stays one level deep. The sequence, response-code table, and idempotency checklist give concrete guidance; the main gaps are a redundant "When to Use" section, a long related-skills link list, and an error-recovery path that lives only in references.

Suggestions

Trim or merge the "When to Use This Skill" section (it duplicates the frontmatter description) and cut the 10-item Related Skills list to the 2-3 most relevant, reclaiming ~15 lines of token budget.

Add one inline minimal example in the Quick Reference (e.g., extracting an event ID and checking a dedup table in one framework) so the most common case is actionable without opening a reference file.

Summarize the failure-recovery decision in the body in one or two lines (return 5xx to trigger provider retry vs. catch-and-queue to a dead letter queue) with a pointer to references/error-handling.md, closing the workflow's feedback loop.

DimensionReasoningScore

Conciseness

The body is lean — a compact response-code table, a 5-item idempotency checklist, and a 3-step sequence with no re-explanation of concepts Claude already knows. Minor over-inclusion keeps it from anchor 5: the "When to Use This Skill" section largely repeats the frontmatter description, and the 10-link "Related Skills" list spends lines on cross-skill navigation rather than the skill's own task.

4 / 5

Actionability

Concrete, executable instruction-level guidance throughout: "Use raw body; reject invalid requests with 4xx", "return 2xx for duplicates", the response-code-to-provider-behavior mapping, and "Process event within transaction / Store event ID after successful processing". As an instruction-only skill the absence of code is acceptable, but there are minor gaps — e.g., no minimal inline example of extracting an event ID or verifying a signature before deferring to references — so it does not reach anchor 5's copy-paste-ready coverage.

4 / 5

Workflow Clarity

The core workflow is clearly sequenced — "Verify signature first", "Parse payload second", "Handle idempotently third" — with explicit checkpoints (reject invalid requests with 4xx; check event ID; return 2xx for duplicates). It falls short of anchor 5 because the error-recovery feedback loop (what to do when processing fails — 5xx retry vs. dead-letter queue) is not summarized in the body, only delegated to reference files; the checkpoints that are present keep it above anchor 3.

4 / 5

Progressive Disclosure

The body is a clean overview with a Quick Reference, and all seven referenced files exist and are well-signaled, categorized (Handler Sequence, Best Practices, Framework Guides), and exactly one level deep — the reference files link only to sibling files in the same bundle and to external provider docs, with no see-a-file-that-sees-a-file chains. This matches the anchor 5 structure of concise overview plus clearly organized one-level-deep references.

5 / 5

Total

17

/

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 with an explicit and specific "Use when" trigger clause, natural keywords, and concrete coverage enumeration. Its main gaps are the slightly generic "Best practices" framing for the what, and some overlap risk with provider-specific sibling webhook skills on generic queries.

DimensionReasoningScore

Specificity

The description lists several concrete coverage areas — "implementing the handler sequence (verify first, parse second, handle idempotently), idempotency, error handling, retry logic" plus three named frameworks — but opens with the generic framing "Best practices for webhook handlers" and uses topic nouns rather than verb-led actions. It exceeds anchor 3 (only 1-2 concrete actions) but falls short of anchor 5's fully comprehensive, action-verb coverage.

4 / 5

Completeness

Both questions are answered explicitly: the what is "Best practices for webhook handlers" with enumerated coverage areas, and the when is a concrete trigger clause — "Use when implementing the handler sequence..., idempotency, error handling, retry logic, or framework-specific issues with Express, Next.js, or FastAPI". This mirrors the anchor 5 good example's structure; it is not anchor 4 because the when-clause is already explicit and specific rather than needing more detail.

5 / 5

Trigger Term Quality

Good natural keywords users would actually say: "webhook handlers", "idempotency", "error handling", "retry logic", "Express, Next.js, FastAPI". A few natural terms are missing — "signature verification", "raw body", "endpoint", "payload" — so it does not reach anchor 5's comprehensive synonym coverage, but it clearly exceeds anchor 3's partial keyword set.

4 / 5

Distinctiveness Conflict Risk

It carves a clear niche (general webhook handler patterns: sequence, idempotency, retry logic) distinct from provider-specific skills, and the framework names add routing precision. However, a bare user mention of "webhooks" could plausibly route to the provider-specific sibling skills this repo also contains (stripe-webhooks, github-webhooks, etc.), which keeps it at anchor 4 rather than 5.

4 / 5

Total

17

/

20

Passed

Validation

87%

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

Validation — 14 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

relative_links

Relative link issues: 3 deeper-than-1-level

Warning

referenced_paths_exist

Referenced path issues: 6 deeper-than-1-level

Warning

Total

14

/

16

Passed

Repository
hookdeck/webhook-skills
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.