ソース情報
- リポジトリ
- notque/vexjoy-agent
- ソースの最終更新活動
- 2026年7月3日 00:23
- 検出された SKILL.md の言語
- 英語
- スター
- 415
- フォーク
- 44
インストール方法
デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。
ソースファイルを確認
インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。
メニュー
デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。
インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
直接コマンドでは確認用 Prompt が省略されます。実行前にソースを確認してください。
npx skills add https://github.com/notque/vexjoy-agent --skill e2e-testingコマンドは1行のまま表示されます。コピー前に横へスクロールして全体を確認してください。
ローカルで確認しますか?SkillsMP が現在取得できるファイルをダウンロードできます。
SOC 職業分類に基づく
SKILL.md を表示中
| name | e2e-testing |
| description | Playwright-based end-to-end testing workflow. |
| user-invocable | false |
| agent | testing-automation-engineer |
| allowed-tools | ["Read","Write","Bash","Grep","Glob","Edit","Task","Skill"] |
| adr | adr/ADR-107-e2e-testing.md |
| routing | {"category":"testing","triggers":["playwright","E2E test","end-to-end","browser test","page object model","POM","test flakiness"],"not_for":"full test automation strategy including Vitest, coverage, and CI integration (use testing-automation-engineer agent) — this skill runs Playwright E2E tests","pairs_with":["testing-automation-engineer","typescript-frontend-engineer","test-driven-development"]} |
Playwright-based E2E testing across four phases: Scaffold, Build, Run, Validate. Each phase produces a saved artifact and must pass its gate before the next phase begins.
| Signal | Load These Files | Why |
|---|---|---|
| async, Promise.all, race condition, waitForTimeout, fixture teardown | async.md | Routes to the matching deep reference |
| auth, login, storageState, OAuth, SSO, JWT, RBAC, multi-role, session expiry | auth.md | Routes to the matching deep reference |
| config, playwright.config.ts, POM, data-testid, CI/CD workflow | templates.md | Routes to the matching deep reference |
| error, timeout, tsc fail, locator, fill, missing JSON | errors.md | Routes to the matching deep reference |
| POM examples, waiting, multi-browser, shared auth session | playwright-patterns.md | Routes to the matching deep reference |
| Web3, MetaMask, wallet, addInitScript | wallet-testing.md | Routes to the matching deep reference |
| payment, financial, production skip, blockchain | financial-flows.md | Routes to the matching deep reference |
| flaky, intermittent, repeat-each, retries, quarantine | flakiness-triage.md | Routes to the matching deep reference |
Goal: Verify Playwright is installed, create the directory structure, and generate playwright.config.ts.
Actions:
@playwright/test is installed: npx playwright --version. If not, run npm install -D @playwright/test and npx playwright install.tests/
e2e/
auth/
features/
api/
pages/ <- POM classes live here
artifacts/
screenshots/
traces/
videos/
playwright.config.ts using the template in references/templates.md. The config bakes in failure diagnostics by default: screenshot: 'only-on-failure', trace: 'on-first-retry', and video: 'retain-on-failure' so that every failure produces actionable artifacts without manual setup. CI retries (retries: process.env.CI ? 2 : 0) absorb transient infrastructure flakiness without masking real bugs.playwright.config.ts is valid TypeScript: npx tsc --noEmit. Run this deterministic check before any subjective assessment of the config -- compiler errors are facts, opinions are not.Artifact: playwright.config.ts + tests/e2e/ directory structure.
Gate: playwright.config.ts exists AND tests/e2e/ directory exists. If either is missing, do not proceed to Phase 2 -- diagnose and fix.
See references/templates.md for the full playwright.config.ts template and multi-browser matrix rationale.
Goal: Write POM classes for target feature areas, then write spec files that use those POMs.
Every page or feature area gets a typed Page Object class. Spec files never contain inline locators -- all selectors live in the POM. This separation means a selector change is a one-line POM edit, not a grep-and-replace across dozens of specs.
Actions:
pages/ (see POM Pattern in references/templates.md). All locators must use data-testid attributes via page.getByTestId(). CSS selectors (page.locator('.btn-primary')) break silently when styles change. XPath breaks on DOM restructuring. Text matching (page.locator('text=Submit')) breaks on copy changes. data-testid is a testing contract that survives all three.tests/e2e/<area>/ using the POMs.npx tsc --noEmit to verify all files compile.Artifact: tests/e2e/**/*.spec.ts files + pages/*.ts POM classes, all compiling cleanly.
Gate: At least one .spec.ts exists under tests/e2e/ AND npx tsc --noEmit exits 0. If compile fails, fix errors -- do not proceed to Phase 3 with broken TypeScript.
See references/templates.md for the POM Pattern, data-testid convention, and waiting/timing rules.
Goal: Execute the test suite, capture the results JSON, and identify any failing or flaky tests.
Actions:
BASE_URL required).playwright.config.ts:
npx playwright test
--repeat-each=5 to distinguish flaky from consistently failing:
npx playwright test tests/e2e/auth/login.spec.ts --repeat-each=5
test.fixme(). Never delete a failing test -- deleted tests leave silent coverage gaps. Quarantined tests are visible debt with tracking references:
test.fixme('flaky: login redirects intermittently', async ({ page }) => {
// TODO: #123 -- investigate race condition with auth cookie
...
});
test.skip() only for conditional environment guards (e.g., "skip on WebKit"), not for sweeping failures under the rug.Artifact: playwright-results.json (presence is the gate -- pass rate is not).
Gate: playwright-results.json exists at the project root. The file must contain valid JSON. Pass rate does not block Phase 4 -- reporting on failures is Phase 4's job.
See references/templates.md for the full Flaky Test Quarantine Protocol.
Goal: Deterministic checks on test output, then structured report generation.
Actions:
playwright-results.json exists and parses as valid JSON.python3 -c "import json,sys; d=json.load(open('playwright-results.json')); print(d.get('stats', d))"unexpected (failed) and flaky result entries.e2e-report.md using the report template in references/templates.md.Artifact: e2e-report.md.
Gate: e2e-report.md exists. Skill is complete only when this file is written.
See references/templates.md for the e2e-report.md template and the GitHub Actions CI/CD workflow template.
See references/errors.md for the symptom/cause/fix matrix covering tsc failures, CI-only flakes, missing results JSON, locator timeouts, fill-vs-clear bugs, and DOM ordering issues.
| Signal / Task Type | Load This Reference |
|---|---|
| async, Promise.all, race condition, waitForTimeout, fixture teardown | async.md |
| auth, login, storageState, OAuth, SSO, JWT, RBAC, multi-role, session expiry | auth.md |
| config, playwright.config.ts, POM, data-testid, CI/CD workflow | templates.md |
| error, timeout, tsc fail, locator, fill, missing JSON | errors.md |
| POM examples, waiting, multi-browser, shared auth session | playwright-patterns.md |
| Web3, MetaMask, wallet, addInitScript | wallet-testing.md |
| payment, financial, production skip, blockchain | financial-flows.md |
| flaky, intermittent, repeat-each, retries, quarantine | flakiness-triage.md |