{"id":48347276,"url":"https://github.com/currents-dev/playwright-best-practices-skill","last_synced_at":"2026-04-19T23:00:54.456Z","repository":{"id":335200336,"uuid":"1143589800","full_name":"currents-dev/playwright-best-practices-skill","owner":"currents-dev","description":"AI Skill for Playwright Best Practices—made by Currents.dev","archived":false,"fork":false,"pushed_at":"2026-03-10T14:33:12.000Z","size":570,"stargazers_count":129,"open_issues_count":1,"forks_count":32,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-03-10T20:46:58.744Z","etag":null,"topics":["ai","ai-skill","ai-skills","playwright","playwright-typescript"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/currents-dev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-01-27T19:08:57.000Z","updated_at":"2026-03-10T14:33:17.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/currents-dev/playwright-best-practices-skill","commit_stats":null,"previous_names":["currents-dev/playwright-best-practices-skill"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/currents-dev/playwright-best-practices-skill","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/currents-dev%2Fplaywright-best-practices-skill","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/currents-dev%2Fplaywright-best-practices-skill/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/currents-dev%2Fplaywright-best-practices-skill/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/currents-dev%2Fplaywright-best-practices-skill/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/currents-dev","download_url":"https://codeload.github.com/currents-dev/playwright-best-practices-skill/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/currents-dev%2Fplaywright-best-practices-skill/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32025784,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-18T20:23:30.271Z","status":"online","status_checked_at":"2026-04-19T02:00:07.110Z","response_time":55,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","ai-skill","ai-skills","playwright","playwright-typescript"],"created_at":"2026-04-05T08:00:29.438Z","updated_at":"2026-04-19T23:00:54.450Z","avatar_url":"https://github.com/currents-dev.png","language":null,"funding_links":[],"categories":["Utils","測試 Testing"],"sub_categories":["Remix / React Router"],"readme":"```\n\n░█▀█░█░░░█▀█░█░█░█░█░█▀▄░▀█▀░█▀▀░█░█░▀█▀░░░█▀▄░█▀▀░█▀▀░▀█▀░░░█▀█░█▀▄░█▀█░█▀▀░▀█▀░▀█▀░█▀▀░█▀▀░█▀▀░\n░█▀▀░█░░░█▀█░░█░░█▄█░█▀▄░░█░░█░█░█▀█░░█░░░░█▀▄░█▀▀░▀▀█░░█░░░░█▀▀░█▀▄░█▀█░█░░░░█░░░█░░█░░░█▀▀░▀▀█░\n░▀░░░▀▀▀░▀░▀░░▀░░▀░▀░▀░▀░▀▀▀░▀▀▀░▀░▀░░▀░░░░▀▀░░▀▀▀░▀▀▀░░▀░░░░▀░░░▀░▀░▀░▀░▀▀▀░░▀░░▀▀▀░▀▀▀░▀▀▀░▀▀▀░\n```\n\u003cimg src=\"https://currents.dev/favicon-96x96.png\" width=\"24\" height=\"24\" align=\"left\" /\u003eby [currents.dev](https://currents.dev?utm_source=ai-skill) - The all-in-one Dashboard for Playwright Testing.\n\n# Playwright Best Practices Skill\n\nA skill that gives the AI specialized guidance for writing, debugging, and maintaining **Playwright** tests in **TypeScript**. Use it in any repo where you work with Playwright so the assistant follows best practices for E2E, component, API, visual regression, accessibility, security, i18n, Electron, and browser extension testing.\n\n## Installation\n\n```bash\nnpx skills add https://github.com/currents-dev/playwright-best-practices-skill\n```\n\nThe skill is activity-based: the AI is directed to the right reference depending on what you're doing, so you get focused advice without loading everything at once.\n\n## When the Skill Is Used\n\nThe skill triggers when the AI infers you need help with things like:\n\n- Writing new E2E, component, API, visual regression, or accessibility tests\n- Testing mobile/responsive layouts, touch gestures, or device emulation\n- Implementing file uploads/downloads, date/time mocking, or WebSocket testing\n- Handling OAuth popups, geolocation, permissions, or multi-tab flows\n- Testing iframes, canvas/WebGL, service workers, or PWA features\n- Testing Electron desktop apps or browser extensions\n- Internationalization (i18n), locales, RTL layouts, or date/number formats\n- Testing error states, offline mode, or network failure scenarios\n- Security testing (XSS, CSRF, authentication, authorization)\n- Performance testing with Web Vitals or Lighthouse\n- Reviewing or refactoring Playwright test code\n- Fixing flaky tests or debugging failures\n- Setting up CI/CD, test coverage, or global setup/teardown\n- Configuring projects, dependencies, parallel runs, or sharding\n\nYou don't have to mention \"skill\" or \"Playwright best practices\"; describe your task (e.g. \"fix this flaky login test\" or \"add accessibility tests\") and the AI will use the skill when it's relevant.\n\n## What's Inside\n\n**57 reference documents** organized into 8 categories:\n\n### Core (`core/`)\n\n| Topic                | Reference                   | Use for                                          |\n| -------------------- | --------------------------- | ------------------------------------------------ |\n| Test structure       | `test-suite-structure.md`   | Structure, config, E2E/component/API/visual tests |\n| Locators             | `locators.md`               | Selectors, robustness, avoiding brittle locators |\n| Assertions \u0026 waiting | `assertions-waiting.md`     | Expect APIs, auto-waiting, polling               |\n| Page Object Model    | `page-object-model.md`      | POM structure and patterns                       |\n| Fixtures \u0026 hooks     | `fixtures-hooks.md`         | Setup, teardown, auth, custom fixtures           |\n| Test data            | `test-data.md`              | Factories, Faker, data-driven testing            |\n| Annotations          | `annotations.md`            | skip, fixme, slow, test steps                    |\n| Configuration        | `configuration.md`          | playwright.config.ts options                     |\n| Global setup         | `global-setup.md`           | globalSetup/Teardown, DB migrations              |\n| Projects             | `projects-dependencies.md`  | Project config, dependencies, filtering          |\n\n### Debugging (`debugging/`)\n\n| Topic          | Reference            | Use for                                    |\n| -------------- | -------------------- | ------------------------------------------ |\n| Debugging      | `debugging.md`       | Trace viewer, inspector, common issues     |\n| Flaky tests    | `flaky-tests.md`     | Detection, diagnosis, fixing, quarantine   |\n| Error testing  | `error-testing.md`   | Error boundaries, offline, network failures |\n| Console errors | `console-errors.md`  | Capturing and failing on JS errors         |\n\n### Testing Patterns (`testing-patterns/`)\n\n| Topic               | Reference                 | Use for                                        |\n| ------------------- | ------------------------- | ---------------------------------------------- |\n| Accessibility       | `accessibility.md`        | Axe-core, keyboard nav, ARIA, focus management |\n| API testing         | `api-testing.md`          | REST API testing, request context              |\n| Component testing   | `component-testing.md`    | CT setup, mounting, props, mocking             |\n| Visual regression   | `visual-regression.md`    | Screenshot comparison, thresholds              |\n| File operations     | `file-operations.md`      | Upload, download basics                        |\n| File upload/download| `file-upload-download.md` | Progress, cancellation, retry patterns         |\n| Forms validation    | `forms-validation.md`     | Form testing, validation states                |\n| Drag and drop       | `drag-drop.md`            | Drag-and-drop interactions                     |\n| GraphQL testing     | `graphql-testing.md`      | GraphQL queries, mutations, mocking            |\n| Canvas/WebGL        | `canvas-webgl.md`         | Canvas testing, charts, WebGL, games           |\n| i18n                | `i18n.md`                 | Locales, RTL, date/number formats              |\n| Electron            | `electron.md`             | Desktop apps, IPC, main/renderer process       |\n| Browser extensions  | `browser-extensions.md`   | Popup, background, content scripts, APIs       |\n| Security testing    | `security-testing.md`     | XSS, CSRF, auth security, authorization        |\n| Performance testing | `performance-testing.md`  | Web Vitals, budgets, Lighthouse                |\n\n### Advanced (`advanced/`)\n\n| Topic            | Reference               | Use for                                     |\n| ---------------- | ----------------------- | ------------------------------------------- |\n| Authentication   | `authentication.md`     | Login flows, session storage, cookies       |\n| Auth flows       | `authentication-flows.md` | MFA, password reset, complex auth         |\n| Mobile testing   | `mobile-testing.md`     | Device emulation, touch gestures, viewports |\n| Clock mocking    | `clock-mocking.md`      | Date/time mocking, timezones, timers        |\n| Multi-context    | `multi-context.md`      | Popups, new tabs, OAuth flows               |\n| Multi-user       | `multi-user.md`         | Collaboration, RBAC, concurrent actions     |\n| Network advanced | `network-advanced.md`   | GraphQL, HAR, request modification          |\n| Third-party      | `third-party.md`        | OAuth, payments, email/SMS mocking          |\n\n### Browser APIs (`browser-apis/`)\n\n| Topic           | Reference            | Use for                                     |\n| --------------- | -------------------- | ------------------------------------------- |\n| Browser APIs    | `browser-apis.md`    | Geolocation, permissions, clipboard, camera |\n| WebSockets      | `websockets.md`      | Real-time testing, SSE, reconnection        |\n| iFrames         | `iframes.md`         | Cross-origin, nested, dynamic iframes       |\n| Service workers | `service-workers.md` | PWA, caching, offline, push notifications   |\n\n### Architecture (`architecture/`)\n\n| Topic             | Reference              | Use for                              |\n| ----------------- | ---------------------- | ------------------------------------ |\n| POM vs fixtures   | `pom-vs-fixtures.md`   | Choosing between patterns            |\n| Test architecture | `test-architecture.md` | Test type selection, structure       |\n| When to mock      | `when-to-mock.md`      | Mock vs real services decisions      |\n\n### Frameworks (`frameworks/`)\n\n| Topic   | Reference     | Use for                        |\n| ------- | ------------- | ------------------------------ |\n| React   | `react.md`    | React-specific testing patterns |\n| Angular | `angular.md`  | Angular-specific testing        |\n| Vue     | `vue.md`      | Vue/Nuxt testing patterns       |\n| Next.js | `nextjs.md`   | Next.js SSR/SSG testing         |\n\n### Infrastructure \u0026 CI/CD (`infrastructure-ci-cd/`)\n\n| Topic            | Reference              | Use for                              |\n| ---------------- | ---------------------- | ------------------------------------ |\n| CI/CD            | `ci-cd.md`             | Pipelines, general CI setup          |\n| GitHub Actions   | `github-actions.md`    | GitHub-specific workflows            |\n| GitLab CI        | `gitlab.md`            | GitLab-specific pipelines            |\n| Other providers  | `other-providers.md`   | CircleCI, Azure DevOps, Jenkins      |\n| Docker           | `docker.md`            | Container setup, Playwright images   |\n| Parallel/sharding| `parallel-sharding.md` | Sharding, parallel execution         |\n| Performance      | `performance.md`       | Parallel runs, optimization          |\n| Reporting        | `reporting.md`         | Test reporters, artifacts            |\n| Test coverage    | `test-coverage.md`     | V8 coverage, reports, thresholds, CI |\n\nThe skill's `SKILL.md` maps your current activity to these references so the right content is used in context.\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcurrents-dev%2Fplaywright-best-practices-skill","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcurrents-dev%2Fplaywright-best-practices-skill","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcurrents-dev%2Fplaywright-best-practices-skill/lists"}