CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

affonso-webhooks

Receive and verify Affonso affiliate-program webhooks. Use when setting up Affonso webhook handlers, debugging X-Affonso-Signature verification, or handling events like affiliate.created, referral.converted, transaction.created, transaction.paid, and payout.paid.

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

75%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 delivers lean, correct, provider-specific guidance with complete verification code in two languages and well-signaled reference files. Main deductions are for the duplicate headers table, promotional/padding sections, and references to example-handler directories that are missing from the bundle.

Suggestions

Remove the 'Important Headers' table — it duplicates the signing rules already stated in 'Essential Code' (both describe X-Affonso-Signature as the lowercase-hex HMAC-SHA256 of <timestamp>.<raw body>).

Trim or relocate the 9-link 'Related Skills' section and 'Attribution' block, which consume tokens without advancing webhook setup or verification.

Fix the dead references: the body points to examples/express/, examples/nextjs/, and examples/fastapi/ for 'complete handlers with tests', but no examples/ directory exists in the bundle — include the example handlers or correct the links.

DimensionReasoningScore

Conciseness

The core sections are lean and provider-specific ("used as a plain string. Do not hex-decode it", "Never JSON.parse / re-serialise first"), with no explanations of concepts Claude already knows, so it is above the 3 anchor; it misses the 5 anchor because the 'Important Headers' table restates the signing rules bullets from 'Essential Code' and the 9-link 'Related Skills' section plus 'Attribution' are tokens that could be trimmed.

4 / 5

Actionability

Verification is fully executable and copy-paste ready in both Node.js and Python (input validation, timing-safe comparison, the express.raw hint) plus an executable tunnel command ("npx hookdeck-cli listen 3000 affonso --path /webhooks/affonso"), matching the 4 anchor's 'concrete code or commands with minor gaps'; the gap that keeps it from 5 is that 'complete handlers with tests' are promised at examples/express/, examples/nextjs/, and examples/fastapi/, which do not exist in this bundle.

4 / 5

Workflow Clarity

There is an explicit validation checkpoint with failure behavior ("Respond 401 when verification fails (missing or empty header, malformed digest, mismatch)") and raw-body acquisition warnings, plus idempotency guidance ("Use the event id for idempotency instead"), placing it above the 3 anchor; it falls short of the 5 anchor because the end-to-end handler sequence (verify first, parse second, handle idempotently) is only available via external webhook-handler-patterns links rather than an inline sequence.

4 / 5

Progressive Disclosure

The three referenced files (references/overview.md, references/setup.md, references/verification.md) all exist, are one level deep, and are clearly signaled with descriptions in the 'Reference Materials' section, with common events inline and the full list delegated — good structure per the 4 anchor; it is not 5 because the body's links to examples/express/, examples/nextjs/, and examples/fastapi/ point to directories absent from the bundle, a navigation gap for the most substantial promised resource.

4 / 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 with a clear what/when structure, third-person voice, and concrete vendor-specific triggers including exact header and event names. The only weakness is capability coverage limited to receive/verify while the body also covers setup, replay-window configuration, and local development.

DimensionReasoningScore

Specificity

Concrete actions are named — "Receive and verify Affonso affiliate-program webhooks", "setting up Affonso webhook handlers", "debugging X-Affonso-Signature verification" — matching the 4 anchor ('several specific actions; minor gaps') rather than the 5 anchor, since the core capability list is two actions (receive, verify) plus triggers, not the comprehensive multi-action coverage of the 5 example.

4 / 5

Completeness

It clearly answers 'what' ("Receive and verify Affonso affiliate-program webhooks") and 'when' with an explicit "Use when setting up... debugging... or handling events like..." clause listing three concrete trigger scenarios, structurally matching the 5 anchor example; the 4 anchor's 'when could be more explicit' does not apply since the triggers name specific tasks and events.

5 / 5

Trigger Term Quality

Natural phrases users would say are present — "Affonso webhook handlers", "X-Affonso-Signature verification", and five concrete event names ("affiliate.created", "payout.paid") — giving good keyword coverage; it falls short of the 5 anchor because synonyms like "Affonso integration", "webhook secret", or "commissions/payouts" are missing, and it is well above the 3 anchor's 'some relevant keywords' since the specific header and event names are included.

4 / 5

Distinctiveness Conflict Risk

The vendor-specific niche ("Affonso", "X-Affonso-Signature", named events like "referral.converted") gives distinct triggers with minimal conflict risk against the many other webhook skills; every trigger term contains 'Affonso', so the 4 anchor's 'minor overlap risk with closely related skills' is not present.

5 / 5

Total

18

/

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

relative_links

Relative link issues: 3 missing

Warning

Total

15

/

16

Passed

Repository

hookdeck/webhook-skills

Path

skills/affonso-webhooks/SKILL.md

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.