control-ui-e2e skill
Control UI browser tests, visual reviews and recordings, interaction performance audits, and Run Inspector evidence.
Is the control-ui-e2e skill safe?
Clean: nothing in its files matched our rules. We read 5 files in the folder on 2026-11-06.
No findings.
Install the control-ui-e2e skill
A skill is a folder. Copy it into your agent's skills folder and the agent loads it when the task matches its description.
git clone --depth 1 https://github.com/openclaw/openclaw.git /tmp/openclaw mkdir -p ~/.claude/skills cp -r /tmp/openclaw/.agents/skills/control-ui-e2e ~/.claude/skills/control-ui-e2e
In the Claude apps, zip the folder and upload it from the Skills settings. The folder on GitHub
The instructions your agent would load
SKILL.md as published, without the frontmatter. Read it on GitHub
Control UI E2E
Workflow
handshake, and complete user flows; use browser/unit tests for isolated render logic. Read each branch below that matches the requested outcome. Done: every changed behavior has a named scenario and proof boundary.
- Select proof. Use the existing browser E2E lane for routing, boot, Gateway
Gateway data. Extend its typed scenario options for missing responses. Use the existing dependency installation; preserve installs used by other jobs. Real Gateway/provider credentials require explicit live-proof authorization. Follow testing policy for execution placement. Done: the target flow runs against the intended source or production build and each required fixture response is defined.
- Prepare fixtures. Reuse ui/src/test-helpers/control-ui-e2e.ts with synthetic
controls and assert both the rendered outcome and relevant Gateway requests. Resolve unexpected behavior at the product or fixture owner before replaying. Done: each scenario reaches its asserted outcome, or has a retained failure identifying the unmet assertion.
- Exercise behavior. Install the mock before navigation. Act through visible
checks. Report verified results, failures, and untested states separately. Done: every claimed result has inspectable evidence; remaining gaps are named.
- Deliver evidence. Apply the artifact rules below and the selected branch's
UI Stress Test
For substantial layout/component changes or multi-state design feedback, read visual proof before building the stress-test gallery. Small copy/icon changes may use focused proof.
Visual Proof Default
For appearance changes, screenshots, transient-state capture, or video, read visual proof. Appearance changes require inspected before/after evidence; behavior assertions alone can suffice for nonvisual fixes.
Interaction Performance Audits
For UI slowness, responsiveness audits, or automatic Chrome trace collection, read interaction profiling before choosing the build, fixtures, and measurement boundaries.
Run Inspector evidence
For run/execution/decision evidence, read Run Inspector capture before selecting a receipt.
Artifacts
or standalone invocation. Pass the directory to capture helpers; keep distinct stage filenames and the report, screenshots, traces, and video together.
- Allocate with createControlUiE2eArtifactDir(scope, parentDir?), once per attempt
viewport, and recording options; use its returned path in the final report.
- The helper owns parent selection. Preserve existing output controls, gates,
after review; never clear shared artifact parents or overwrite earlier proof.
- Retain failed and successful attempts. Clean up only exact owned directories
Mantis retains every attempt. Real-Gateway, chat-outbox-*, and chat-attachment-read-lifecycle suites have separate owners: verify their retention behavior before claiming replay-safe capture.
- Timeout diagnostics use fresh children of their existing diagnostic parent.
Running a focused test
Use the current scripts in package.json and testing policy. For a worktree's focused browser test:
node scripts/run-vitest.mjs run --config test/vitest/vitest.ui-e2e.config.ts --configLoader runner ui/src/e2e/chat-flow.messaging.e2e.test.tsMore skills from openclaw/openclaw
- A1passwordSet up and use 1Password CLI for sign-in, desktop integration, and reading or injecting secrets.
- Aacp-routerRoute plain-language requests for Claude Code, Cursor, Copilot, OpenClaw ACP, OpenCode, Gemini CLI, Grok Build, Qwen, Kiro, Kimi, iFlow, Factory Droid, Kilocode, or explicit ACP harness work into either OpenClaw ACP runtime sessions or direct acpx-driven sessions ("telephone game" flow). For coding-agent thread requests, read this skill first, then use only `sessions_spawn` for thread creation. Codex chat binding defaults to the native Codex app-server plugin unless ACP is explicit or background spawn needs ACP.
- Aadd-model-providerAdd and live-prove a model provider with non-interactive config one-liners, without exposing credentials.
- Aagent-transcriptRequested GitHub PR/issue agent transcripts: redact, trim, preview, and insert safely.
- Aapple-notesCreate, view, edit, delete, search, move, or export Apple Notes via the memo CLI on macOS.
- Aapple-remindersList, add, edit, complete, or delete Apple Reminders and reminder lists via remindctl.
- Aauto-qaRun OpenClaw-wide autonomous QA and live/stress campaigns across independent subsystem lanes, with verified fixes and a resumable evidence report.
- AautoreviewStructured code review through the shared OpenClaw agent-skills installation.
- Abear-notesCreate, search, and manage Bear notes via grizzly CLI.
- Ablock-kitUse proactively for structured or interactive Slack replies, and when asked to author or validate native Slack Block Kit JSON.
- AblogwatcherMonitor blogs and RSS/Atom feeds for updates using the blogwatcher CLI.
- AblucliBluOS CLI (blu) for discovery, playback, grouping, and volume.