一键导入
e2e-playwright
Best practices for E2E testing with Playwright, focusing on Angular 20, Firebase Emulators, and Architecture Guards.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Best practices for E2E testing with Playwright, focusing on Angular 20, Firebase Emulators, and Architecture Guards.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Iterate plans or implementations through fresh reviewer subagents until convergence. Use when the user explicitly asks for a "fresh reviewer loop", "plan iteration loop", "review and critique until clean", "spin up a reviewer to review my changes", or any phrasing where the goal is delegated adversarial review-then-fix cycles either on a plan before code or on a working implementation after code. Each round uses a new subagent so it has no prior-round context or groupthink.
通过企查查 OpenAPI 查询中国企业的工商、股东、司法、经营、知识产权、招投标、舆情等数据。当用户说"查 XX 公司"、"看 XX 的工商/股东/有没有官司/有没有被执行/有没有商标专利/有没有经营异常"、"XX 是不是空壳"、"XX 法人是谁"、"XX 注册资本"、"查企查查"、"查企业"等任何企业信息查询需求时,使用此技能。已注册 45 个商业接口(用户需自行在企查查后台逐个申请开通)。零依赖纯 Python,跨平台 Mac/Windows/Linux。
Use this skill when the user is working with LyteNyte Grid (@1771technologies/lytenyte-pro or @1771technologies/lytenyte-core), a headless React data grid. Activate for tasks like: installing or licensing the grid, configuring columns or rows, building cell renderers or editors, adding filters or sort controls, grouping or aggregating rows, pivoting, exporting to CSV/Excel/Parquet/Arrow, row selection, cell range selection, theming or styling, TypeScript GridSpec patterns, server-side or tree data, and any PRO component (SmartSelect, PillManager, Menu, Dialog, TreeView, RowGroupCell). Also activate when the user describes grid problems without naming the package — e.g. "my rows won't group", "cells aren't editable", "add a loading overlay", "pin this column", "the filter isn't working", "how do I export this table", "select a range of cells", "copy cells to clipboard".
Design websites and applications that AI agents can consume, navigate, and interact with. Use when building any site, app, or product that agents will use as an end-user — not just crawl or index. Covers semantic structure, accessibility-as-agent-interface, machine-readable data, API-first patterns, and the emerging protocols (llms.txt, MCP, NLWeb, A2UI) that make sites agent-ready. Triggers on: agent-friendly, agent-readable, agent-accessible, AX, agent experience, agentic web, dual-interface, machine-readable, llms.txt, MCP integration, NLWeb, accessibility tree, ARIA for agents, structured data, JSON-LD, Schema.org, API-first design, build for agents, agent-ready.
Design system for AI agents that build UI. Automatically routes to the right quality checks based on the task. Triggers on ANY visual, frontend, UI, design, component, page, layout, or styling work. Includes: anti-pattern detection, state completeness checks, accessibility verification, typography/color/spacing guidance, and creative direction when needed. Install this one skill to get the full system — it orchestrates everything else.
Core pack — always active for visual work. Quality gate for UI, components, pages, layouts, or frontend work. Triggers on any visual/design task automatically. Use before presenting work, during builds, and for design QA.
| name | e2e-playwright |
| description | Best practices for E2E testing with Playwright, focusing on Angular 20, Firebase Emulators, and Architecture Guards. |
Provide patterns for robust end-to-end testing in the Black-Tortoise ecosystem, ensuring that user journeys and architectural boundaries are verified.
playwright.config.ts..spec.ts files under e2e/.Tests should run against local emulators to ensure speed and isolation.
// e2e/auth.spec.ts
import { test, expect } from '@playwright/test';
test.beforeEach(async ({ page }) => {
// Reset emulator state or seed data via GQL mutations
await page.goto('/');
});
test('should login successfully', async ({ page }) => {
await page.getByLabel('Email').fill('test@example.com');
await page.getByLabel('Password').fill('password123');
await page.getByRole('button', { name: 'Login' }).click();
await expect(page.getByRole('heading', { name: 'Dashboard' })).toBeVisible();
});
Verification of the architecture:gate can be automated as part of the test suite or CI.
// Example of checking for console errors or network violations
test('should not have console errors', async ({ page }) => {
const logs: string[] = [];
page.on('console', msg => {
if (msg.type() === 'error') logs.push(msg.text());
});
await page.goto('/workspace');
expect(logs.length).toBe(0);
});
data-testid for stable selection of components.getByRole, getByLabel) to ensure a11y.pnpm e2epnpm exec playwright test --uipnpm exec playwright test --debugBlack-Tortoise uses dependency-cruiser to enforce DDD boundaries.
pnpm run architecture:gate should be part of the pre-commit hook (Husky).