Document computer-use as a last-resort visual tier

This commit is contained in:
Emil Shanaty
2026-10-27 19:29:50 +03:00
parent 20497d9c0c
commit 74fdfa458c
5 changed files with 32 additions and 2 deletions
+1
View File
@@ -34,6 +34,7 @@
- `blocked`-воркер не заменяется: лид правит контракт/shared-файл и продолжает того же агента через `send_message`. - `blocked`-воркер не заменяется: лид правит контракт/shared-файл и продолжает того же агента через `send_message`.
- Evidence зависит от домена: команда и тест для кода, источник и дата для research, отрендеренный артефакт для дизайна, reproducible metric для данных. - Evidence зависит от домена: команда и тест для кода, источник и дата для research, отрендеренный артефакт для дизайна, reproducible metric для данных.
- Визуальные агенты работают в отдельных Xvfb/display-окружениях, со своим HOME/config/копией проекта; общий рабочий стол для скриншотов не используется. Детали — в `references/visual-testing.md`. - Визуальные агенты работают в отдельных Xvfb/display-окружениях, со своим HOME/config/копией проекта; общий рабочий стол для скриншотов не используется. Детали — в `references/visual-testing.md`.
- Computer-use — крайний tier: один агент, одноразовый desktop/VM, только после детерминированных проверок и никогда как единственное evidence.
- Стоимость: 30–40 агентов ≈ 0.5–1.5M токенов. - Стоимость: 30–40 агентов ≈ 0.5–1.5M токенов.
- Для задачи, которую один агент делает за 15 минут, swarm не нужен. - Для задачи, которую один агент делает за 15 минут, swarm не нужен.
+1 -1
View File
@@ -59,7 +59,7 @@ Otherwise: one agent for small work; 2–5 `subagent` calls for a few long-lived
6. **Respect the runtime slot cap.** Active children include recon, verifiers, integrators and any other subagents. A spawn-limit error is a scheduling bug, not a worker failure: shrink the batch, keep completed results, and dispatch the remainder. 6. **Respect the runtime slot cap.** Active children include recon, verifiers, integrators and any other subagents. A spawn-limit error is a scheduling bug, not a worker failure: shrink the batch, keep completed results, and dispatch the remainder.
7. **Freeze during verification.** Once the verify wave starts, do not edit source/tests/docs except to fix a verified finding. After a fix, re-run the affected verifier; an old review is stale. 7. **Freeze during verification.** Once the verify wave starts, do not edit source/tests/docs except to fix a verified finding. After a fix, re-run the affected verifier; an old review is stale.
8. **Stop rules.** Two waves with no net progress → stop and re-plan. Verification failure rate > 30% → fix briefs/contracts, not agent count. Budget exhausted → report partial and list unverified areas. 8. **Stop rules.** Two waves with no net progress → stop and re-plan. Verification failure rate > 30% → fix briefs/contracts, not agent count. Budget exhausted → report partial and list unverified areas.
9. **No shared visual desktop.** Visual agents get their own display/config/project copy; see `references/visual-testing.md`. A screenshot from a shared desktop is not evidence. 9. **No shared visual desktop.** Visual agents get their own display/config/project copy; see `references/visual-testing.md`. A screenshot from a shared desktop is not evidence. Computer-use is a last-resort, single-agent tier on a disposable desktop/VM; it is never the sole evidence and never runs in parallel with other visual agents.
## Sizing ## Sizing
+2
View File
@@ -28,6 +28,8 @@ The tree is frozen during verification. Do not edit product source, tests, docs
## Visual checks ## Visual checks
For GUI products, run the app in your own isolated Xvfb/display (never a shared desktop). Capture the default size, the minimum size, empty/error states and every modal. Record the screenshot path and exact command alongside each finding; a screenshot without a command is not evidence. For GUI products, run the app in your own isolated Xvfb/display (never a shared desktop). Capture the default size, the minimum size, empty/error states and every modal. Record the screenshot path and exact command alongside each finding; a screenshot without a command is not evidence.
Computer-use (mouse/keyboard) is an optional last-resort tier: one agent, disposable desktop/VM, after deterministic checks, never parallel, never the sole evidence. Prefer app screenshot mode or scripted input.
## Verdict ## Verdict
`pass` / `pass_with_risks` / `fail` — with the top risks and exact repro commands. `pass` / `pass_with_risks` / `fail` — with the top risks and exact repro commands.
+1 -1
View File
@@ -139,7 +139,7 @@ If the block reveals an underspecified interface shared by several tasks, update
Choose verifiers by risk cluster, not one per task: 4–6 verifiers for 8–12 tasks. A verifier gets the task cards, the changed files (or diff), and the acceptance commands. It does not get the worker's rationale and does not fix anything. Choose verifiers by risk cluster, not one per task: 4–6 verifiers for 8–12 tasks. A verifier gets the task cards, the changed files (or diff), and the acceptance commands. It does not get the worker's rationale and does not fix anything.
For a GUI product, give each visual verifier its own Xvfb/display and project copy (see `references/visual-testing.md`). Capture at least the default size, the minimum supported size, empty/error states and every modal; a shared-desktop screenshot is not evidence. For a GUI product, give each visual verifier its own Xvfb/display and project copy (see `references/visual-testing.md`). Capture at least the default size, the minimum supported size, empty/error states and every modal; a shared-desktop screenshot is not evidence. Computer-use is a final, single-agent exploratory tier on a disposable desktop/VM — never a parallel test mechanism and never the only evidence.
**Freeze before verify.** Once you start this wave, do not edit source, tests or docs. If you already started and then fixed something, mark the in-flight review stale and re-run that verifier on the new build. A verifier's verdict is only valid for the exact tree it saw. **Freeze before verify.** Once you start this wave, do not edit source, tests or docs. If you already started and then fixed something, mark the in-flight review stale and re-run that verifier on the new build. A verifier's verdict is only valid for the exact tree it saw.
+27
View File
@@ -119,6 +119,33 @@ A visual verifier should:
5. For animation/drag interactions, use a scripted headless harness or a video/screenshot sequence; 5. For animation/drag interactions, use a scripted headless harness or a video/screenshot sequence;
dragging through a portal may collapse press/move/release into one frame. dragging through a portal may collapse press/move/release into one frame.
## Computer-use: last resort, never a test farm
If the runtime grants subagents an MCP `computer_use` tool, they can technically move a mouse and
type. That does **not** make it a good regression mechanism.
Use computer-use only when all of these are true:
- the deterministic tiers (headless tests, per-agent Xvfb + scripted screenshots) are already green;
- the check is exploratory/OS-integration that cannot be scripted (native file dialog, IME, clipboard,
drag from outside the app);
- it runs on a dedicated disposable desktop/VM, not the user's live session;
- exactly **one** agent uses it at a time;
- secrets, notifications and personal data are not visible;
- every action is logged and a screenshot artifact is saved.
Never:
- give computer-use to every worker in a parallel wave;
- use it as the only evidence for a pass;
- use it for pixel/regression assertions;
- let it click/type in the user's desktop without explicit permission;
- assume an isolated Xvfb session is visible to a compositor/portal-based computer-use backend. If
the backend targets KWin/Wayland, give it a nested desktop/VM it can actually see.
A computer-use result is qualitative input for a human or a vision reviewer, not a substitute for a
command, an assertion or a deterministic screenshot.
## Failure signs ## Failure signs
- Two visual jobs produce identical screenshots → they shared a display or captured the root. - Two visual jobs produce identical screenshots → they shared a display or captured the root.