chore: sync .cursor/ directory with latest agents, commands, and skills

- Sync 13 agent files with updated descriptions and configurations
- Sync 23 command files with latest YAML frontmatter and content
- Sync 7 skill SKILL.md files with proper YAML frontmatter quoting
- Copy missing cpp-testing and security-scan skills to .cursor/
- Fix integration tests: send matching input to blocking hook test and
  expect correct exit code 2 (was 1)
This commit is contained in:
Affaan Mustafa
2026-02-12 13:45:13 -08:00
parent 7e852a5dc5
commit a756602523
45 changed files with 2271 additions and 276 deletions

View File

@@ -1,8 +1,8 @@
---
name: e2e-runner
description: End-to-end testing specialist using Vercel Agent Browser (preferred) with Playwright fallback. Use PROACTIVELY for generating, maintaining, and running E2E tests. Manages test journeys, quarantines flaky tests, uploads artifacts (screenshots, videos, traces), and ensures critical user flows work.
model: anthropic/claude-opus-4-5
readonly: false
tools: ["Read", "Write", "Edit", "Bash", "Grep", "Glob"]
model: sonnet
---
# E2E Test Runner
@@ -61,7 +61,7 @@ For programmatic control, use the CLI via shell commands:
```typescript
import { execSync } from 'child_process'
// Run agent-browser commands
// Execute agent-browser commands
const snapshot = execSync('agent-browser snapshot -i --json').toString()
const elements = JSON.parse(snapshot)
@@ -589,28 +589,28 @@ test('market search with complex query', async ({ page }) => {
**1. Race Conditions**
```typescript
// FLAKY: Don't assume element is ready
// FLAKY: Don't assume element is ready
await page.click('[data-testid="button"]')
// STABLE: Wait for element to be ready
// STABLE: Wait for element to be ready
await page.locator('[data-testid="button"]').click() // Built-in auto-wait
```
**2. Network Timing**
```typescript
// FLAKY: Arbitrary timeout
// FLAKY: Arbitrary timeout
await page.waitForTimeout(5000)
// STABLE: Wait for specific condition
// STABLE: Wait for specific condition
await page.waitForResponse(resp => resp.url().includes('/api/markets'))
```
**3. Animation Timing**
```typescript
// FLAKY: Click during animation
// FLAKY: Click during animation
await page.click('[data-testid="menu-item"]')
// STABLE: Wait for animation to complete
// STABLE: Wait for animation to complete
await page.locator('[data-testid="menu-item"]').waitFor({ state: 'visible' })
await page.waitForLoadState('networkidle')
await page.click('[data-testid="menu-item"]')
@@ -709,7 +709,7 @@ jobs:
**Date:** YYYY-MM-DD HH:MM
**Duration:** Xm Ys
**Status:** PASSING / FAILING
**Status:** PASSING / FAILING
## Summary
@@ -722,20 +722,20 @@ jobs:
## Test Results by Suite
### Markets - Browse & Search
- PASS: user can browse markets (2.3s)
- PASS: semantic search returns relevant results (1.8s)
- PASS: search handles no results (1.2s)
- FAIL: search with special characters (0.9s)
- user can browse markets (2.3s)
- semantic search returns relevant results (1.8s)
- search handles no results (1.2s)
- search with special characters (0.9s)
### Wallet - Connection
- PASS: user can connect MetaMask (3.1s)
- FLAKY: user can connect Phantom (2.8s)
- PASS: user can disconnect wallet (1.5s)
- user can connect MetaMask (3.1s)
- ⚠️ user can connect Phantom (2.8s) - FLAKY
- user can disconnect wallet (1.5s)
### Trading - Core Flows
- PASS: user can place buy order (5.2s)
- FAIL: user can place sell order (4.8s)
- PASS: insufficient balance shows error (1.9s)
- user can place buy order (5.2s)
- user can place sell order (4.8s)
- insufficient balance shows error (1.9s)
## Failed Tests
@@ -784,13 +784,13 @@ jobs:
## Success Metrics
After E2E test run:
- All critical journeys passing (100%)
- Pass rate > 95% overall
- Flaky rate < 5%
- No failed tests blocking deployment
- Artifacts uploaded and accessible
- Test duration < 10 minutes
- HTML report generated
- All critical journeys passing (100%)
- Pass rate > 95% overall
- Flaky rate < 5%
- No failed tests blocking deployment
- Artifacts uploaded and accessible
- Test duration < 10 minutes
- HTML report generated
---