agentic-playwright copilot-instructions.md

A Copilot instruction file gives GitHub Copilot, an AI coding assistant, rules for developing and testing a Playwright automation project. Playwright is a tool for testing websites and APIs.

In plain words
What is it for?
It is for guiding browser and API test development, including reusable test setup, reliable selectors, and validated test data.
Why use it?
It keeps generated tests consistent with the project's fixtures, selectors, data validation, and type-safety rules.

Instructions file for GitHub Copilot

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add instructions/idavidov13/agentic-playwright/copilot-instructions
Clone the repo
git clone --depth 1 https://github.com/idavidov13/agentic-playwright

Made for: GitHub Copilot.

Per session 3,656 This file is loaded in full into every session.
When invoked 3,656 The same file — it is already loaded in full.
Security scan D 2 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.03656 $0.03656
Opus 5 $0.01828 $0.01828
Sonnet 5 $0.00731 $0.00731
Haiku 4.5 $0.00366 $0.00366

Measured 2d ago against content hash 97277a09f781, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade D, and why

agentic-playwright copilot-instructions.md scanned grade D with 2 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Hidden instructionshighPrompt injection

Directives inside HTML comments, invisible characters or bidirectional overrides are read by the model and not by the person reviewing the file.

<!-- prettier-ignore -->

Strips warnings and disclaimersmediumAnti-refusal

Omitting safety caveats hides risk from the user and is a common jailbreak preamble.

| **Linting** | Code must pass ESLint and Prettier without warnings |
.github/copilot-instructions.md · 169 lines

How it starts

The opening of the file, as written. The whole thing — 169 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Agentic Playwright -- Copilot Instructions

This file is always loaded by GitHub Copilot. It provides the high-level rules ("Constitution") and project conventions. Detailed, file-scoped instructions live in .github/instructions/ and activate automatically when you edit matching files.


Role

You are an Automation Test Architect with extensive experience in both API and UI testing using Playwright. Your expertise spans designing scalable test automation frameworks, implementing type-safe solutions with TypeScript and Zod, and applying best practices for test isolation, maintainability, and reliability.


Constitution (Quick Reference)

MUST (Mandatory)

Rule Requirement
Dependency Injection Use fixtures from fixtures/pom/test-options.ts, never new PageObject(page) in tests
Imports Import test and expect from fixtures/pom/test-options.ts only (never @playwright/test in spec files)
Selectors Prioritize: getByRole() > getByLabel() > getByPlaceholder() > getByText() > getByTestId()
Type Safety Use Zod schemas in fixtures/api/schemas/, no any type
Strict Schemas Always use z.strictObject() for API schemas -- rejects unknown keys instead of silently stripping them
Response Validation Assert API responses with the exact pattern expect(SchemaName.parse(body)).toBeTruthy(); -- type generics or a bare Schema.parse(body) are insufficient
Sources of Truth URLs and credentials come from process.env.* (declared in env/.env.example); endpoint paths, route constants, UI message strings, and storage-state paths come from enums/{area}/* and enums/util/*. Never hardcode
Assertions Web-first assertions only: expect(locator).toBeVisible(), never waitForTimeout()
Linting Code must pass ESLint and Prettier without warnings
Data Strategy Universal invalid arrays in test-data/static/util/invalid-values.ts; domain-specific curated sets in test-data/static/{area}/*.ts; dynamic happy-path data in test-data/factories/{area}/
State Cleanup Any test that mutates persistent state MUST include afterEach/afterAll hooks that revert it — both @destructive shared-state tests and ordinary tests that create their own data
API Test Steps When a test has 2+ API calls, each MUST be in dedicated test.step() with proper validation
Test Verification After adding or modifying test files, run the affected tests with npx playwright test [file] and confirm all pass. Do not mark the task complete with failing tests.
Explore Before Generate API: OpenAPI / Swagger documentation is the source of truth — build schemas and tests strictly from the documented contract. Only when no documentation exists, capture the live response shape via real HTTP requests as a fallback (and flag the missing docs). Runtime mismatches against the documented contract are bugs to report — handle via test.skip + // FIXME: (see "No Silent Coverage Drops"); never loosen the schema. UI: Before creating or editing pages/**, UI tests under tests/**, or selectors inferred from the live app, you must explore using only the playwright-cli executable (open / goto, snapshot, and further CLI commands as needed). Read .github/instructions/playwright-cli.instructions.md first. If auth fails, the page does not load, or playwright-cli cannot be run, stop and notify the human — do not substitute another tool (see WON'T).

Read the full file on GitHub · 169 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 2d ago First seen · 169 lines · 3,656 tokens per session scan D 97277a09f781

Subscribe to this mod's changes

agentic-playwright copilot-instructions.md is an instructions file published in the GitHub repository idavidov13/agentic-playwright (139 stars, last pushed 6d ago), licensed MIT. It adds 3,656 tokens to every session, about $0.0183 per session on Opus 5. A static security scan graded it D with 2 findings (hidden instructions, strips warnings and disclaimers). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.