Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Implement Bright Data webhook signature validation and event handling. Use when setting up webhook endpoints, implementing signature verification, or handling Bright Data event notifications securely. Trigger with phrases like "brightdata webhook", "brightdata events", "brightdata webhook signature", "handle brightdata events", "brightdata notifications".
.claude/skills/jeremylongshore-brightdata-webhooks-events/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 12% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 211% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 97% | 0% |
| case-10 | ✗→✓ | ▲ Improved | 18% | 0% |
| case-13 | ✗→✓ | ▲ Improved | 75% | 0% |
Treat snapshot delivery as an untrusted, repeatable data-transfer event. Configure delivery with the current POST /datasets/v3/deliver/SNAPSHOT_ID API, authenticate the managed destination, stream the body, validate it, and make downstream processing idempotent.
Read the receiver and Grep for body buffering, unauthenticated routes, hard-coded provider IPs, guessed retry schedules, and direct writes to trusted tables. Record the expected schema, format, destination, and ownership.
Write or Edit the integration so an authorized control-plane client requests POST /datasets/v3/deliver/SNAPSHOT_ID with type=webhook and managed destination authentication. Never place destination credentials in the URL or logs.
Stream the request into bounded quarantine storage. Authenticate before processing, cap bytes and duration, compute a digest, validate format and schema, and derive an idempotency key from trusted delivery context plus content digest.
Acknowledge only after durable acceptance. Make duplicates no-ops, quarantine malformed or oversized content, and replay from retained evidence through the same validator. Do not invent provider retry or source-IP guarantees.
Use Read and Grep to inspect receiver, routing, and storage code. Use Write and Edit for receiver logic, validation, idempotency, fixtures, and the replay runbook. This skill does not invoke delivery or expose a public endpoint.
The receiver authenticates a managed header, streams NDJSON to quarantine while hashing it, rejects an unexpected schema, and promotes a validated object exactly once even if the same payload arrives again.
| Failure | Meaning | Response | |---------|---------|----------| | Destination auth is missing | Anyone may submit data | Reject before reading the payload | | Payload exceeds the configured ceiling | Transfer is outside the workload contract | Stop streaming and quarantine metadata | | Digest already exists | Delivery is a duplicate | Return the documented safe acknowledgement without reprocessing |
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-02 | pass→pass | 18,564 | 14,161 | -24% | 1 | 1 | 0% | 3,689 | 4,438 | +20% | 0 | 0 | — |
case-01 | fail→pass | 14,824 | 8,594 | -42% | 1 | 1 | 0% | 2,945 | 3,306 | +12% | 0 | 0 | — |
case-03 | pass→fail | 10,730 | 9,719 | -9% | 1 | 1 | 0% | 1,927 | 3,525 | +83% | 0 | 0 | — |
case-04 | pass→pass | 10,903 | 17,330 | +59% | 1 | 1 | 0% | 2,193 | 3,404 | +55% | 0 | 0 | — |
case-05 | pass→pass | 5,922 | 2,858 | -52% | 1 | 1 | 0% | 1,017 | 2,145 | +111% | 0 | 0 | — |
case-06 | pass→pass | 8,340 | 5,325 | -36% | 1 | 1 | 0% | 1,398 | 2,670 | +91% | 0 | 0 | — |
case-07 | fail→pass | 11,090 | 2,819 | -75% | 1 | 1 | 0% | 685 | 2,129 | +211% | 0 | 0 | — |
case-08 | pass→pass | 7,887 | 3,850 | -51% | 1 | 1 | 0% | 1,317 | 2,273 | +73% | 0 | 0 | — |
case-09 | fail→pass | 5,907 | 2,669 | -55% | 1 | 1 | 0% | 1,045 | 2,056 | +97% | 0 | 0 | — |
case-10 | fail→pass | 11,364 | 3,133 | -72% | 1 | 1 | 0% | 1,883 | 2,230 | +18% | 0 | 0 | — |
case-11 | pass→pass | 7,444 | 2,774 | -63% | 1 | 1 | 0% | 1,266 | 2,124 | +68% | 0 | 0 | — |
case-12 | pass→pass | 9,893 | 2,503 | -75% | 1 | 1 | 0% | 1,489 | 2,048 | +38% | 0 | 0 | — |
case-13 | fail→pass | 12,953 | 12,171 | -6% | 1 | 1 | 0% | 2,283 | 3,989 | +75% | 0 | 0 | — |
case-14 | pass→pass | 13,241 | 9,656 | -27% | 1 | 1 | 0% | 2,443 | 3,275 | +34% | 0 | 0 | — |
case-15 | pass→pass | 12,373 | 5,850 | -53% | 1 | 1 | 0% | 1,988 | 2,502 | +26% | 0 | 0 | — |
case-16 | pass→pass | 3,344 | 2,564 | -23% | 1 | 1 | 0% | 520 | 1,996 | +284% | 0 | 0 | — |
case-17 | pass→pass | 2,862 | 2,733 | -5% | 1 | 1 | 0% | 469 | 2,130 | +354% | 0 | 0 | — |
case-18 | pass→pass | 3,280 | 1,628 | -50% | 1 | 1 | 0% | 481 | 1,829 | +280% | 0 | 0 | — |
case-19 | pass→pass | 3,389 | 2,462 | -27% | 1 | 1 | 0% | 471 | 2,020 | +329% | 0 | 0 | — |
case-20 | pass→pass | 11,610 | 7,869 | -32% | 1 | 1 | 0% | 2,175 | 3,293 | +51% | 0 | 0 | — |
case-21 | pass→pass | 10,035 | 10,298 | +3% | 1 | 1 | 0% | 2,164 | 3,663 | +69% | 0 | 0 | — |
case-22 | pass→pass | 15,290 | 17,896 | +17% | 1 | 1 | 0% | 2,809 | 5,206 | +85% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 21 counted toward the lift figure. The other 1 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +18 percentage points is the difference between those two pass rates over the 21 comparable cases. 1 case got worse with the skill loaded, and it is included in that figure.
The publisher has shipped newer versions since this run, so these numbers describe v1, not the version currently listed.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.