|
| 1 | +--- |
| 2 | +name: verify-ui-change-in-cloud |
| 3 | +description: > |
| 4 | + Invoke this automatically after completing any user-facing client change, ONLY in non-sandboxed environments and local environments. |
| 5 | + Verifies changes by spawning a cloud agent with computer use to test Warp. |
| 6 | + Triggers a cloud agent that runs the test-warp-ui skill. |
| 7 | +user-invocable: true |
| 8 | +--- |
| 9 | + |
| 10 | +# Verify UI Change in Cloud |
| 11 | + |
| 12 | +After making a user-facing client change, use this workflow to verify it by spawning a cloud agent with computer use capabilities. This applies to any change that affects what the user sees or experiences in the running app — not just visual/UI changes, but also startup behavior, config handling, migration flows, and other client-side logic. |
| 13 | + |
| 14 | +## Workflow |
| 15 | + |
| 16 | +### 1. Push Your Changes |
| 17 | + |
| 18 | +The cloud agent runs in a fresh environment that clones the repo. Your changes must be pushed to a branch so the cloud agent can access them. |
| 19 | + |
| 20 | +### 2. Detect the Repository |
| 21 | + |
| 22 | +Before spawning the cloud agent, detect which repository you are running in. Check the Git remote URL to determine the repo: |
| 23 | + |
| 24 | +```bash |
| 25 | +git remote get-url origin |
| 26 | +``` |
| 27 | + |
| 28 | +Use the table below to select the correct environment ID: |
| 29 | + |
| 30 | +- **warp** (remote URL contains `warpdotdev/warp`): |
| 31 | + - Environment: `SVhg783GBFQHk1OfdPfFU9` (the warp Dev Environment) |
| 32 | + |
| 33 | +If the remote URL does not match, warn the user that this skill only supports the warp repository and stop. |
| 34 | + |
| 35 | +### 3. Spawn the Cloud Agent |
| 36 | + |
| 37 | +Use the `run_agents` tool to spawn a remote cloud agent. A single-child batch (one entry in `agent_run_configs`) is valid. |
| 38 | + |
| 39 | +- `summary`: a brief declarative explanation, e.g. `"Spawning a cloud agent with computer use to verify the UI change."` |
| 40 | +- `base_prompt`: include an instruction to read and follow the `test-warp-ui` skill, followed by the verification task (see the next section) |
| 41 | +- `remote.environment_id`: the environment ID from the table above |
| 42 | +- `remote.computer_use_enabled`: `true` |
| 43 | +- `agent_run_configs`: a single entry with `name` set to a short display name such as `"verify-ui-change"`. The per-agent `prompt` can be empty since `base_prompt` covers the task. |
| 44 | + |
| 45 | +The `test-warp-ui` skill is bundled, so the cloud agent has it automatically. Tell the agent to invoke it by name in the `base_prompt` (e.g. "Read and follow the test-warp-ui skill."). |
| 46 | + |
| 47 | +### 4. Write an Effective Prompt |
| 48 | + |
| 49 | +The prompt should tell the cloud agent: |
| 50 | +- Which element, flow, or behavior to test |
| 51 | +- What hardcoding or mocking is needed (see below and the test-warp-ui skill for details on sandbox constraints) |
| 52 | +- What filesystem or app state to pre-seed before launching (e.g., creating directories, writing config files) |
| 53 | +- What specific observations to report back |
| 54 | + |
| 55 | +**Example prompts:** |
| 56 | + |
| 57 | +``` |
| 58 | +I changed the settings dialog header to use a larger font and blue color. |
| 59 | +Hardcode the settings dialog to open on launch, then describe the header text, |
| 60 | +font size relative to other text, and color. |
| 61 | +``` |
| 62 | + |
| 63 | +``` |
| 64 | +I added a migration that symlinks config from ~/.warp into ~/.warp-preview on first launch. |
| 65 | +The migration is gated on Channel::Preview. Before building, hardcode the migration to run |
| 66 | +regardless of channel by removing the channel check. Also create a fake ~/.warp directory |
| 67 | +with test files. After launching Warp, verify the symlinks were created in ~/.warp-preview. |
| 68 | +``` |
| 69 | + |
| 70 | +### Hardcoding to reach the code path under test |
| 71 | + |
| 72 | +The cloud agent builds Warp with `cargo run`, which may not match the exact runtime conditions of your change (e.g., different channel, missing feature flags, absent preconditions). When this happens, instruct the cloud agent to temporarily hardcode the code so the build exercises the path you need to test. Common examples: |
| 73 | + |
| 74 | +- **Gated code paths**: If the change is behind a channel check, feature flag, or experiment, tell the agent to remove or bypass the gate before building. |
| 75 | +- **Pre-existing state**: If the change depends on filesystem state that wouldn't exist in a clean environment (e.g., a config directory from a prior install), tell the agent to create it before launching. |
| 76 | +- **Startup behavior**: If the change affects something that only happens on first launch or migration, make sure the agent sets up the preconditions that trigger it. |
| 77 | + |
| 78 | +Be explicit in the prompt about what to hardcode and why — the cloud agent won't infer this on its own. |
| 79 | + |
| 80 | +### 5. Surface the Cloud Agent Link |
| 81 | + |
| 82 | +No extra surfacing step is needed — the Warp client displays the cloud agent run automatically. |
0 commit comments