analyze
無料Risk analysis and approach selection before planning. Use when requirements are ambiguous, approaches vary, or work touches hub/bridge nodes. Skip for typo fixes.
日本語の概要は準備中です。原文の説明を表示しています。
Full-lifecycle Web E2E Testing, QA/QC analysis, and Playwright test automation. Generates business test matrices (happy path, negative, boundary, RBAC, API/network failure simulation), implements resilient Page Object Model tests, and produces structured QA bug reports.
インストール方法を見るインストールする前に、エージェントに与えられる指示の中身を確認できます。
Complete Web QA/QC & Playwright E2E testing framework. From business requirement analysis to resilient test automation and defect reporting.
Announce: "🎭 /supergraph:playwright-tester — designing QA matrix & automating Playwright E2E tests..."
[Phase 1: QA Analyst] [Phase 2: SDET] [Phase 3: Runner] [Phase 4: QC Lead]
Business Test Matrix ───> Playwright Automation ───> Execution & Tracing ───> Defect Report & Gate
(Happy/Sad/Boundary/ (POM, Resilient Selectors, (Trace, Screenshots, (Blocker/Major,
Network Failure/RBAC) page.route API mocks) Console & Network Logs) Steps to Reproduce)
Before writing any automation code, map out the test matrix using Given-When-Then format across 5 core test dimensions:
/login with returnUrl./admin → 403 Forbidden or redirected.500 Internal Server Error on critical API calls → verify graceful toast/banner error, no white screen.Never use fragile CSS classes (.btn-primary.mt-4) or positional XPath (//div[2]/button[1]).
| Priority | Selector Method | Example |
|---|---|---|
| 1 (Best) | page.getByRole() | page.getByRole('button', { name: 'Submit Order' }) |
| 2 | page.getByLabel() | page.getByLabel('Email address') |
| 3 | page.getByPlaceholder() | page.getByPlaceholder('Enter your password') |
| 4 | page.getByText() | page.getByText('Order completed successfully') |
| 5 | page.getByTestId() | page.getByTestId('order-summary-card') |
Encapsulate page locators and user interactions into reusable page classes:
// tests/pages/checkout.page.ts
import { type Page, type Locator, expect } from '@playwright/test';
export class CheckoutPage {
readonly page: Page;
readonly cardInput: Locator;
readonly payButton: Locator;
readonly errorAlert: Locator;
constructor(page: Page) {
this.page = page;
this.cardInput = page.getByLabel('Card Number');
this.payButton = page.getByRole('button', { name: 'Pay Now' });
this.errorAlert = page.getByRole('alert');
}
async goto() {
await this.page.goto('/checkout');
await expect(this.payButton).toBeVisible();
}
async submitPayment(cardNumber: string) {
await this.cardInput.fill(cardNumber);
await this.payButton.click();
}
}
storageState)Never log in through the UI on every test. Authenticate once in a setup project and save state:
// playwright.config.ts
export default defineConfig({
projects: [
{ name: 'setup', testMatch: /.*\.setup\.ts/ },
{
name: 'e2e-authenticated',
dependencies: ['setup'],
use: { storageState: 'playwright/.auth/user.json' },
},
{
name: 'e2e-anonymous',
use: { ...devices['Desktop Chrome'] },
},
],
});
page.route)Simulate backend failures deterministically without touching test DB:
// Simulating API 500 Error
test('displays error notification when order submission fails', async ({ page }) => {
await page.route('**/api/v1/orders', async route => {
await route.fulfill({
status: 500,
contentType: 'application/json',
body: JSON.stringify({ message: 'Database connection failed' }),
});
});
const checkoutPage = new CheckoutPage(page);
await checkoutPage.goto();
await checkoutPage.submitPayment('4242424242424242');
await expect(checkoutPage.errorAlert).toBeVisible();
await expect(checkoutPage.errorAlert).toContainText('Database connection failed');
});
await page.waitForTimeout(3000) (causes flakiness or slow tests).await expect(locator).toBeVisible()await expect(locator).toHaveText('...')await expect(locator).toBeEnabled()await expect(page).toHaveURL(/.*checkout/)Run test execution with tracing enabled for failure post-mortem:
# Run all tests
npx playwright test
# Run single file with UI / trace
npx playwright test tests/e2e/checkout.spec.ts --trace on
# Run headed for visual debugging
npx playwright test --headed
Configuration essentials in playwright.config.ts:
trace: 'retain-on-failure'screenshot: 'only-on-failure'video: 'retain-on-failure'webServer: auto-start dev server if not already running.When any test fails during execution, format the defect report immediately:
### 🐛 QA Defect Report
- **Defect ID**: BUG-001
- **Severity**: Blocker | Critical | Major | Minor
- **Affected Flow**: [e.g. Checkout → Payment Submission]
- **Environment**: Chromium / Mobile Safari / Desktop
#### 1. Steps to Reproduce
1. Navigate to `/checkout` with 1 item in cart
2. Enter invalid card number `1234`
3. Click "Pay Now"
#### 2. Expected Result
- Button disabled or error message "Invalid card number" appears below input.
- No network request sent with invalid card format.
#### 3. Actual Result
- Error message missing. Unhandled promise rejection in browser console.
- Blank white screen rendered.
#### 4. Evidence & Artifacts
- Screenshot: `test-results/checkout-failure.png`
- Trace Viewer: `npx playwright show-trace test-results/trace.zip`
- Console Error: `TypeError: Cannot read properties of undefined (reading 'status')`
#### 5. Root Cause Hypothesis
- `useCheckout.ts:84` does not handle rejected promise from `api.submit()`.
page.routewaitForTimeout)まだレビューはありません。使ってみた感想をお寄せください。
概要と使いどころ
Risk analysis and approach selection before planning. Use when requirements are ambiguous, approaches vary, or work touches hub/bridge nodes. Skip for typo fixes.
日本語の概要は準備中です。原文の説明を表示しています。
Proactive architecture review — explore codebase structure, generate a self-contained HTML report with Mermaid diagrams and candidate improvements, then grill the findings. Use when planning a large refactor, onboarding to an unfamiliar codebase, or before a major architectural change.
日本語の概要は準備中です。原文の説明を表示しています。
Persistent token-compression mode (~75% reduction) — now always-on by default. Strips filler while keeping code exact.
日本語の概要は準備中です。原文の説明を表示しています。
Database migration best practices for schema changes, data migrations, rollbacks, and zero-downtime deployments across PostgreSQL, MySQL, and common ORMs (Prisma, Drizzle, Kysely, Django, TypeORM, golang-migrate).
日本語の概要は準備中です。原文の説明を表示しています。
Anti-slop frontend skill for landing pages, portfolios, and redesigns. The agent reads the brief, infers the right design direction, and ships interfaces that do not look templated. Real design systems when applicable, audit-first on redesigns, strict pre-flight check.
日本語の概要は準備中です。原文の説明を表示しています。
Structured 6-phase debugging. Build feedback loop first, reproduce deterministically, hypothesize with ranked falsifiable theories, instrument one variable at a time, fix with regression test, cleanup. Use when a bug exists, tests fail unexpectedly, or behavior is wrong and cause is unknown.
日本語の概要は準備中です。原文の説明を表示しています。