The approval gate for Bright Data self-heals

Scrapers don't just break.
They lie.

A broken scraper returns nothing — you notice. A lying one returns the regular price where the sale price should be: right type, right schema, passes every check in the industry, and quietly poisons everything downstream. PARALLAX cross-examines every extracted field and catches the lie at the moment of extraction — including the moment nothing else covers: when an AI self-heal "fixes" your scraper.

919 tests passing 0 CSS in the semantic eye 6 mutation operators
parallax — watch
$parallax watch https://shop.example/product --collector c_k7f92x
✓run180 products · structured output OK
!driftfield "price" — eyes disagree on 4 / 180 rows
structural eye→$499.00 (regular)
semantic eye→$399.00 (label "Sale")
⟳healBright Data proposes a fix — awaiting approval
⟳gatemetamorphic verification · 6 mutations
reorder-siblings·····tracks
value-sentinel·····diverged
✗BLOCKED — heal read the "Regular" price, not "Sale". Not promoted.
$
The failure nobody gates[01/07] · gate missing

A broken scraper, you notice.A lying one, you ship.

Bright Data's self-heal confirms one thing when it fixes a broken scraper: the field came back non-null. A healed selector that now grabs the $499 regular price instead of the $399 sale price passes that check — right type, right schema — and quietly poisons every number downstream. Not a crash. A confident lie.

expected · sale price$399.00
healed selector read$499.00
null checkpassed ✓
schema checkpassed ✓
actually correct?no ✗
Honest about the neighbours[02/07] · why it slips

Everything already in your pipeline checks something.None of it checks the value's meaning.

These tools aren't wrong — they answer real questions. But a plausible-but-wrong value clears every one of them. That's the gap PARALLAX exists to close, and only that gap.

null checkdid a value come back at all?✗ blind to a wrong value
schema validatoris the type and shape valid?✗ blind to a wrong value
uptime monitordid the page still load?✗ blind to a wrong value
heal previewdid the fix return something?✗ blind to a wrong value
PARALLAX gateis it the right value — by meaning?✓ interrogates before promotion
Detection[03/07] · two diverse eyes

One selector can be fooled.So read every field two ways.

A CSS selector, and a label-anchored text search that uses zero CSS — enforced by a linter. When they disagree, the value is suspect. (Diverse, not independent — they share the page, so we never claim statistical independence.)

Structural eye
$0.00
css · .price node
comparing…
Semantic eye
$0.00
label-anchored · "Sale: $399.00"
The gate[04/07] · interrogation

A heal isn't trusted.It's cross-examined.

PARALLAX pins the true value node, mutates a copy of the page in meaning-preserving ways, and requires the healed selector to keep tracking the value. The value-sentinel rewrites the true value to a unique token — a selector reading the right value from the wrong node can't echo it, and is caught.

identity—
reorder-siblings—
inject-decoy-no-label—
wrap-in-div—
duplicate-non-target—
value-sentinel—

Five mutations tracked. The value-sentinel diverged → the heal is quarantined, not promoted. A position-locked or wrong-node heal never reaches production.

The receipts[05/07] · live run, no mocks

We didn't stage this.One real Bright Data run, end to end.

A scraper AI-generated on Scraper Studio, run, broken by a real redeploy, healed by Bright Data's AI, interrogated by the gate, and only then promoted. Collector c_msysromlqd80p0s4h — every artifact is committed in the repo.

1create · Scraper Studio AI wrote the collectorno hand selectors
2baseline run · both eyes agree$149 = $149
3redesign · v1→v2, every anchor renamedgit push
4break · v1 collector on v2 pagevalue 0 · down
5heal · preview looked perfect$149 — ship it?
6the gate · 6 mutations incl. sentinel echo6/6 tracked
7approve · because the gate said sopromoted
8healed run · loop closed$149 = $149
Step 5 — what every other tool sees

The heal preview returned 149. Non-null, right type, right schema. So it ships — blind.

Step 6 — what PARALLAX asks

Is .price-now reading the price by meaning, or did it get lucky? Interrogated across 6 mutations before promotion.

Here the heal was genuinely correct, so it promoted. Had it grabbed the Regular-price node, the value-sentinel rejects it automatically — same gate, opposite verdict. See the raw artifacts → evidence/

Built on Bright Data Scraper Studio[06/07] · 4 beats

Not a wrapper around one endpoint.The platform, used deeply.

01

Generate the scraper with AI

bdata scraper create <url> "<description>" — Scraper Studio builds the collector from plain language.

02

Run & deliver structured output

bdata scraper run or POST /dca/trigger — the conductor turns rows into a health verdict.

03

Heal the same collector on a real break

bdata scraper heal <id> "<prompt>" — it heals in place, reusing the collector. Not a regenerate.

04

Gate, then approve

PARALLAX runs the metamorphic gate; only a correct heal is promoted with approve --auto-save.

Honest limits[07/07] · stated, not buried

A correctness tool that hides its boundaries isn't trustworthy.Here are ours.

Consistency, not truth

If both eyes read the same wrong value, they agree and it promotes. The gate can't tell "both right" from "both wrong."

Bounded by the semantic eye

Correctness inherits from the label the semantic eye anchors to. Its accuracy is the ceiling.

Diverse, not independent

The two eyes share the snapshot and DOM neighborhood — their failures correlate (Knight & Leveson, 1986).

Multi-copy false-veto

If a value legitimately appears in several nodes, the sentinel can wrongly block a heal onto a different-but-correct copy.