Skip to content

delegation/skills: cap browser-driving scoop fan-out and document bridge serialization #2417

Description

@catalan-adobe

Context

Split out of the 2026-08-25 concurrent-scoop incident (browser-bridge hardening in PR #2411). The trigger for the whole incident was skill guidance prescribing unbounded browser fan-out: liftoff-demo Phase 3 and migrate-page Phase 3 instruct "Create AND feed ALL scoops in a SINGLE response", which put ~16 tabs / 8 concurrent drivers on one serialized browser bridge.

Note: liftoff-demo, migrate-page, and migrate-block are runtime-installed skills and do not live in this repo — this issue tracks the work and the repo-side pieces (delegation skill guidance, defaults), and points at the skill-side changes wherever those skills are authored.

Problem

  • PR fix(playwright-cli): harden the browser bridge under concurrent scoop access #2411 makes contention visible (stderr note with lock wait + queue depth) and makes failures loud, but the bridge still serializes all drivers: 8-way fan-out inflates wall-clock ~2x with retry overhead even when nothing breaks.
  • The skills also claim writablePaths "eliminates the approval stalls entirely", which the incident disproved (see the companion approval-system issue).

Suggested changes

Skill-side (where liftoff-demo / migrate-page / migrate-block are authored):

  1. Cap concurrent browser-driving scoops at 3–4, or feed scoops in waves (semaphore pattern) instead of "ALL in a single response". Highest-value change.
  2. Pass the source capture width to every scoop and have it assert the viewport before any comparison (resize → read back via eval innerWidth → abort on mismatch). PR fix(playwright-cli): harden the browser bridge under concurrent scoop access #2411 makes resize sticky per tab, but the assertion catches everything else.
  3. Instruct scoops to treat the new note: browser bridge contended stderr signal as back-off guidance (wait/stagger) rather than re-running commands.
  4. Pre-authorize /.migration/** alongside /.playwright/**, or write crops under the project path; drop the "eliminates approval stalls entirely" claim.

Repo-side candidates:

  1. packages/vfs-root/workspace/skills/delegation/SKILL.md: add a note that scoops driving the shared browser serialize on one tab lock — recommend capping browser-heavy fan-out at 3–4 and citing the contended-bridge stderr note.
  2. Cone-side liveness guidance: "files stable + scoops processing" is not completion; poll pending sudo requests when a fan-out goes quiet.

Acceptance

  • Delegation skill documents the browser-bridge serialization constraint and the recommended fan-out cap.
  • The externally-authored migration skills are updated per 1–4 (tracked here, implemented where they live).

Metadata

Metadata

Assignees

No one assigned

    Labels

    ai-generatedEvery contribution on this thread is bot/AIbacklog-skippedBacklog Dispatcher: decided against dispatching; remove this label to re-queuecosmos-skippedSet by Backlog Dispatcherskill issueFor issues that arrive with undeniable skill issue energy.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions