一键导入
testing
Vitest and Playwright testing patterns, conventions, and gotchas for this project.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Vitest and Playwright testing patterns, conventions, and gotchas for this project.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Open the Claude Session Dashboard in the browser. Starts it first if not already running. Checks for and installs updates before starting.
Analyze ~/.claude session files to find unused agent skills and reduce context token waste. Scans subagent JSONL files for injected skills and cross-references with agent responses.
Full SDLC pipeline: design → plan → implement → review → test → ship. Use this skill when the user wants to BUILD A NEW FEATURE that spans multiple files across scanner, server functions, and UI layers — anything requiring architecture design, an implementation plan, and coordinated changes across a vertical slice. Trigger on: /feature command, 'build/implement/add [feature]' requests involving new server functions + UI components, multi-step feature work needing TDD and code review. Do NOT trigger for: bug fixes, refactors, small UI tweaks, single-file changes, CI fixes, test runs, or PR reviews.
Investigate and fix the latest failing CI workflow
Fix a GitHub issue end-to-end
Investigate a URL or page using Playwright browser
| name | testing |
| description | Vitest and Playwright testing patterns, conventions, and gotchas for this project. |
| user-invocable | true |
apps/web/vite.config.ts (no separate vitest.config)npm run test from apps/web/npx vitest run path/to/file.test.tsvi.mock() is hoisted to the top of the file. You CANNOT reference variables declared above it:
// BAD — will be undefined
const mockFn = vi.fn()
vi.mock('./module', () => ({ doThing: mockFn }))
// GOOD — define inline
vi.mock('./module', () => ({ doThing: vi.fn() }))
import { doThing } from './module'
// Now doThing is the mock — use it for assertions
apps/web/playwright.config.tsapps/web/e2e/npm run test:e2e from apps/web/page.getByRole(), page.getByText() over CSS selectors