界面已本地化;技能介绍与说明文档按所选语言由 AI 自动翻译,代码、命令、路径和专业术语保留原文,以原作者文档为准。
探索技能
数据与研究 · SKILL.md

brightdata-local-dev-loop

brightdata-local-dev-loop

【数据与研究】Build a local Bright Data development loop that defaults to synthetic fixtures and makes live traffic explicit. Use when implementing parsers, retry classification, or snapshot handling without spending credits or collecting data. Trigger with: "mock Bright Data locally", "test a Bright Data adapter offline", "add a safe live-test switch".

独立 GitHub 快照 · 自动分类 · 以原作者文档为准

技能说明

GitHub

name: brightdata-local-dev-loop description: 'Build a local Bright Data development loop that defaults to synthetic fixtures and makes live traffic explicit. Use when implementing parsers, retry classification, or snapshot handling without spending credits or collecting data. Trigger with: "mock Bright Data locally", "test a Bright Data adapter offline", "add a safe live-test switch".' allowed-tools: Read, Grep, Write, Edit, Bash(npm:*) version: 2.0.0 argument-hint: "[adapter-path]" model: inherit effort: high license: MIT author: Jeremy Longshore jeremy@intentsolutions.io tags:

  • saas
  • web-data
  • bright-data
  • local-dev-loop
  • operations compatibility: 'Requires an approved Bright Data account or offline fixtures, current Bright Data documentation, and an authorized public-data collection purpose'

Bright Data Local Fixture Loop

Overview

Separate transport from parsing so ordinary development is deterministic and credential-free. The live lane is opt-in, target-allowlisted, budgeted, and incapable of silently replacing fixtures.

Prerequisites

  • A repository-owned Bright Data adapter boundary
  • Synthetic or approved redacted fixtures with expected schemas
  • A test runner and a protected live-test environment

Instructions

Step 1: Map the boundary

Read the adapter and Grep for direct proxy/API calls in business logic. Move transport behind a narrow interface before recording fixtures.

Step 2: Create explicit modes

Write configuration with fixture as the default and live requiring three independent gates.

brightdata:
  mode: fixture
  live_requires:
    - BRIGHTDATA_LIVE_TEST=1
    - approved_target_manifest
    - bounded_cost_budget

Step 3: Test contract behavior

Add fixtures for success, 407, policy 403, 429, building, ready, failed, empty, and expired states. Test parsers against provider fields rather than copied HTML.

Step 4: Run the loop

Use Bash(npm:*) for unit and contract tests. Permit the live suite only in a protected environment, against an approved target, with a one-job ceiling and redacted receipt.

Tool Discipline

Use Read and Grep for discovery. Use Write and Edit only for the adapter, fixtures, tests, and documented configuration. Use Bash(npm:*) for the named local suites; never let a default test command send live Bright Data traffic.

Output

  • A fixture-first transport adapter
  • Deterministic success and failure fixtures
  • A separately gated live-test receipt and explicit budget

Examples

A parser change should pass against a synthetic snapshot and recorded provider-error metadata with no credentials present. A maintainer may later enable one protected live job; its output updates no fixture automatically and is reviewed before adoption.

Error Handling

FailureMeaningResponse
Unit tests attempt network accessTransport leaked into parsing codeBlock network and refactor through the adapter
Fixture contains target dataCaptured live content was committedRemove it and replace it with synthetic minimal data
Live gate has only one switchAccidental execution remains possibleRequire environment, target manifest, and budget gates

Resources

我的收藏