Proxy Setup
asmyshlyaev177/test-proxy-recorder
Set up test-proxy-recorder for any Playwright project. An agent skill from asmyshlyaev177/test-proxy-recorder.
Configuration and environment variable conventions for the Playwright scaffold — env file layout (env/.env.), dotenv loading via playwright.config.ts and the ENVIRONMENT variable, config objects in…
$ npx skills add idavidov13/agentic-playwright --skill config -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install idavidov13/agentic-playwright config --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/idavidov13/agentic-playwright.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/config .claude/skills/config && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "config" agent skill from https://github.com/idavidov13/agentic-playwright/tree/main/.claude/skills/config into .claude/skills/config/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "config", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/idavidov13/agentic-playwright/tree/main/.claude/skills/configType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add idavidov13/agentic-playwright --skill config -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install idavidov13/agentic-playwright config --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/idavidov13/agentic-playwright.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/config .agents/skills/config && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "config" agent skill from https://github.com/idavidov13/agentic-playwright/tree/main/.claude/skills/config into .agents/skills/config/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "config", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add idavidov13/agentic-playwright --skill config -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install idavidov13/agentic-playwright config --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/idavidov13/agentic-playwright.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/config .cursor/skills/config && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "config" agent skill from https://github.com/idavidov13/agentic-playwright/tree/main/.claude/skills/config into .cursor/skills/config/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "config", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/idavidov13/agentic-playwright.git --path .claude/skills/config--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add idavidov13/agentic-playwright --skill config -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install idavidov13/agentic-playwright config --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/idavidov13/agentic-playwright.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/config .gemini/skills/config && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "config" agent skill from https://github.com/idavidov13/agentic-playwright/tree/main/.claude/skills/config into .gemini/skills/config/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "config", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install idavidov13/agentic-playwright configInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add idavidov13/agentic-playwright --skill config -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/idavidov13/agentic-playwright.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/config .github/skills/config && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "config" agent skill from https://github.com/idavidov13/agentic-playwright/tree/main/.claude/skills/config into .github/skills/config/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "config", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add idavidov13/agentic-playwright --skill config -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install idavidov13/agentic-playwright config --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/idavidov13/agentic-playwright.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/config .opencode/skills/config && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "config" agent skill from https://github.com/idavidov13/agentic-playwright/tree/main/.claude/skills/config into .opencode/skills/config/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "config", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
configConfiguration and environment variable conventions for the Playwright scaffold — env file layout (env/.env.), dotenv loading via playwright.config.ts and the ENVIRONMENT variable, config objects in…
Config is an agent skill from idavidov13/agentic-playwright. Configuration and environment variable conventions for the Playwright scaffold — env file layout (env/.env.), dotenv loading via playwright.config.ts and the ENVIRONMENT variable, config objects in config/app.ts and config/util/util.ts, and the rules for adding new env-driven values. Use when adding a new environment variable, a new config property, a new environment file, a new utility-service URL, or when a test/fixture needs to consume APPURL / APIURL / APPEMAIL / APPPASSWORD / UTILITYURL. This skill owns…
Its SKILL.md is about 2.8k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Testing & QA, covering Secrets management, Browser testing and Type safety. It works with Playwright. The repository describes itself as: Production-grade Playwright + TypeScript Scaffold for Agentic Testing. Harness for all major AI coding agents baked in. The licence is MIT.
5 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit f6cbf35. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
npxgitFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use npx and git, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
ACCESS_TOKENAPP_PASSWORDFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Config loads about 2.8k tokens when it runs. Until then it costs about 180 tokens; SKILL.md has 1,097 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
aywright scaffold — env file layout (env/.env.*), dotenv loading via playwright.config.ts and the ENVIRONMENT variable,alues is `process.env.*`, backed by `env/.env.${environment}`.- **NEVER** commit `env/.env.dev`, `env/.env.staging`, or any other real env file containing credentials. Only `env/.env| Env (active) | `env/.env.${ENVIRONMENT}` | Real values, selected at runtime (`.env.dev` etc.) — untracked |const environmentPath = `./env/.env.${environment}`;Default environment is `dev` (file `env/.env.dev`).hell** level; it is not declared in any `.env` file.real value to your active env file (`env/.env.dev` or similar) — this file is untracked.2. Create `env/.env.staging` **locally** (untracked) with the real staging URLs/credentials, using the same keys as `envhaven't changed) and **do not** commit `.env.staging`.Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from idavidov13/agentic-playwright at commit f6cbf35, republished under its MIT licence (© idavidov13). 1,097 words, ~2,827 tokens.
.claude/skills/config/SKILL.md (or your agent's skills folder).process.env.*, backed by env/.env.${environment}.config/. Paths belong in enums/{area}/* (see the enums skill).env/.env.example with a safe placeholder — no real secrets, no production URLs.config/app.ts and utility/third-party services in config/util/util.ts. Do not create ad-hoc config files elsewhere.env/.env.dev, env/.env.staging, or any other real env file containing credentials. Only env/.env.example is tracked.| Type | Directory | Purpose |
|---|---|---|
| App config | config/app.ts | URLs and settings for the main application |
| Utility config | config/util/util.ts | Utility / third-party service configuration |
| Env template | env/.env.example | Tracked template — safe placeholders only |
| Env (active) | env/.env.${ENVIRONMENT} | Real values, selected at runtime (.env.dev etc.) — untracked |
playwright.config.ts loads env values via dotenv at startup:
const environment = process.env.ENVIRONMENT ?? 'dev';
const environmentPath = `./env/.env.${environment}`;
dotenv.config({ path: environmentPath });Consequences:
dev (file env/.env.dev).ENVIRONMENT=staging npx playwright test.process.env.* becomes undefined.ENVIRONMENT itself is set at the shell level; it is not declared in any .env file.Use this decision table before adding anything:
| Value kind | Home |
|---|---|
| URL of the main app under test | env var + config/app.ts (appConfig.appUrl, apiUrl) |
| URL of a utility / third-party service | env var + config/util/util.ts (utilityConfig.*) |
| Credential (email, password, API key, token seed) | env var only — do not expose through a config object |
Endpoint path (e.g. /api/users) or route (e.g. /login) | enums/{area}/* — not config/ and not an env var |
| Storage-state file path | enums/{area}/* (e.g. StorageStatePaths) — not config/ |
| Timeout / retry / workers tuning | playwright.config.ts — not config/ unless reused outside Playwright |
Runtime selector (ENVIRONMENT, CI) | Shell-level env var only — not .env.example |
If the value fits none of the rows above, stop and ask — do not invent a new config file.
env/.env.exampleEvery env var the scaffold relies on must appear in the tracked template with a safe placeholder:
APP_URL=https://your-app-url.com
API_URL=https://your-api-url.com
APP_EMAIL=your-email@example.com
APP_PASSWORD=your-secure-password
UTILITY_URL=https://your-utility-service.comRules for the placeholder:
process.env.* lookup (exact case).Then add the real value to your active env file (env/.env.dev or similar) — this file is untracked.
Not every env var gets a config-object slot. Credentials (APP_EMAIL, APP_PASSWORD, tokens) stay env-only. URLs and infra settings that the scaffold wants to document do go into a config object.
config/app.ts — app-facing URLs and settings:
/**
* Application configuration object.
* Contains URL configuration for the main application.
*
* For route paths and API endpoints, use enums from `enums/app/app.ts`.
*/
export const appConfig = {
/** Frontend application URL loaded from APP_URL env variable */
appUrl: process.env.APP_URL,
/** Backend API URL loaded from API_URL env variable */
apiUrl: process.env.API_URL,
};config/util/util.ts — utility / third-party services:
/**
* Utility service configuration object.
* Contains URL configuration for utility/helper services.
*
* For API endpoints, use enums from `enums/` folder.
*/
export const utilityConfig = {
/** Utility service base URL */
baseUrl: process.env.UTILITY_URL,
};Every property requires a JSDoc comment naming the backing env var.
Two equally valid access patterns exist in the scaffold today:
Direct process.env.* access — the dominant pattern in tests, fixtures, and helpers:
baseUrl: process.env.API_URL,
headers: process.env.ACCESS_TOKEN,
body: { email: process.env.APP_EMAIL, password: process.env.APP_PASSWORD },Config-object access — used when you want to import a documented, organized surface:
import { appConfig } from '../../config/app';
await page.goto(appConfig.appUrl!);Pick whichever fits the call site; do not mix them inside a single file without reason. For how to satisfy the TypeScript string | undefined that process.env.* returns — non-null assertion (!) vs fallback default — see the type-safety skill.
User says: "Add a staging environment pointing at the staging cluster."
Actions:
playwright.config.ts already honors ENVIRONMENT; no code change needed.env/.env.staging locally (untracked) with the real staging URLs/credentials, using the same keys as env/.env.example.ENVIRONMENT=staging npx playwright test to verify the file loads.env/.env.example (the key names haven't changed) and do not commit .env.staging.User says: "Wire up the reporting service URL so helpers can post run results."
Actions:
Phase 2 — It's a utility-service URL → belongs in config/util/util.ts as a property of utilityConfig; env var REPORTING_URL.
Phase 3 — Add to env/.env.example:
# Optional: Additional service URLs
UTILITY_URL=https://your-utility-service.com
REPORTING_URL=https://your-reporting-service.comPhase 4 — Extend config/util/util.ts:
export const utilityConfig = {
/** Utility service base URL */
baseUrl: process.env.UTILITY_URL,
/** Reporting service base URL loaded from REPORTING_URL env variable */
reportingUrl: process.env.REPORTING_URL,
};Phase 5 — Import utilityConfig.reportingUrl in the helper that posts results; follow the type-safety skill for ! vs fallback handling.
process.env.X is undefined at runtime.
Cause: The key is missing from the active env file, or the active env file doesn't exist.
Fix: Confirm the key exists in env/.env.${ENVIRONMENT} (default env/.env.dev). If you renamed or added a key, also update env/.env.example.
Wrong environment is being loaded.
Cause: ENVIRONMENT is unset, misspelled, or points at a missing file.
Fix: playwright.config.ts defaults to dev. Set ENVIRONMENT=staging in the shell (not in an .env file) before running tests; confirm env/.env.staging exists.
I can't find ACCESS_TOKEN / ACCESS_TOKEN_ZERO in env/.env.example.
Cause: These tokens are populated dynamically by an auth-bootstrap helper, not committed.
Fix: In the scaffold's demo setup, an auth-bootstrap helper under helpers/{area}/ logs in and writes the token into process.env.ACCESS_TOKEN before the main suite runs. Do not add the token to env/.env.example. See the helpers skill (Phase 6) for the pattern.
TypeScript complains that process.env.X is string | undefined.
Cause: process.env values are always optional types in Node.
Fix: See the type-safety skill for the two sanctioned patterns (non-null assertion with ! for values guaranteed to exist at runtime; fallback default with ?? otherwise).
I want to put an endpoint path in a config file.
Cause: Wrong skill. Paths are source-controlled constants, not environment-driven settings.
Fix: Add the path to enums/{area}/* (see the enums skill). config/ is only for URLs, credentials, and infra settings.
My new config property has no JSDoc and the PR review is blocking.
Fix: Every config property requires a JSDoc comment naming the backing env var, e.g. /** Reporting service base URL loaded from REPORTING_URL env variable */.
I accidentally committed env/.env.dev.
Fix: Remove the file from the commit (git rm --cached env/.env.dev), verify it's covered by .gitignore, rotate any credentials that were exposed, and push the fix.
enums skill — endpoint paths, route constants, and storage-state paths live there, not in config/.type-safety skill — handling string | undefined returned by process.env.* (! vs fallback defaults).api-testing skill — which env vars tests consume (API_URL, ACCESS_TOKEN, ACCESS_TOKEN_ZERO, APP_EMAIL, APP_PASSWORD) and how.debugging skill — when process.env.X is undefined at runtime, when a CI run reads different env values than local, or when a navigation times out because APP_URL is wrong.© idavidov13, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .claude/skills/config of idavidov13/agentic-playwright.
Open the folder on GitHubat commit f6cbf35
Config next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Config this skillidavidov13/agentic-playwright | 223 | — | ~2.8k | Automated safety check: Notes | MIT | |
| Proxy Setupasmyshlyaev177/test-proxy-recorder | 112 | — | ~4.3k | Automated safety check: Pass | MIT | |
| Redmine Playwright Loginharu/redmine_ai_helper | 106 | — | ~796 | Automated safety check: Pass | MIT | |
| Testing Patternsbybren-llc/safe-agentic-workflow | 421 | — | ~1.5k | Automated safety check: Notes | MIT | |
| Electron Best Practicesjwynia/agent-skills | 166 | — | ~3.1k | Automated safety check: Pass | MIT | |
| Playwright E2E Builderdavila7/claude-code-templates | 32k | — | ~5.3k | Automated safety check: Notes | MIT |
asmyshlyaev177/test-proxy-recorder
Set up test-proxy-recorder for any Playwright project. An agent skill from asmyshlyaev177/test-proxy-recorder.
haru/redmine_ai_helper
Connect to the running Redmine instance and log in via the Playwright MCP browser, using REDMINEPLAYRIGHTURL/REDMINEPLAYRIGHTUSER/REDMINEPLAYRIGHTPASSWORD environment variables.
bybren-llc/safe-agentic-workflow
Testing patterns for Jest and Playwright. An agent skill from bybren-llc/safe-agentic-workflow.
jwynia/agent-skills
Guide AI agents through Electron app development with React including security patterns, type-safe IPC, React integration, packaging with code signing, and testing.
davila7/claude-code-templates
Plan and build comprehensive Playwright E2E test suites with Page Object Model, authentication state persistence, custom fixtures, visual regression, and CI integration.
AI-Unified-Process/marketplace
Creates Playwright browser-based tests for Vaadin views using the Drama Finder library for type-safe element wrappers with accessibility-first APIs.
idavidov13/agentic-playwright
Sole entry-point router for AI-assisted work on this Playwright scaffold — owns the 8-phase main workflow (classify → route → explore → plan+confidence → human gate → apply → verify → report), the…
idavidov13/agentic-playwright
Copy-paste AI prompt templates for common Playwright scaffold development tasks — adding page objects, functional/E2E/API tests, Zod schemas, factories, fixtures, and components.
idavidov13/agentic-playwright
Test data strategy for the Playwright scaffold — Faker + Zod factories for dynamic happy-path data, static TS files (.ts with as const exports — never .json) for domain-specific curated invalid…
idavidov13/agentic-playwright
Page Object Model pattern for the Playwright scaffold — class structure, get-accessor locator pattern, action-method conventions, component composition, registration via the page-object fixture, and…
idavidov13/agentic-playwright
Selector strategy, exploration-first workflow, locator priority order (getByRole then getByLabel then getByPlaceholder then getByText then getByTestId), and feedback/validation-message selector…
idavidov13/agentic-playwright
Spec file conventions for the Playwright scaffold — imports from test-options.ts, test file structure (describe / beforeEach / test / test.step), single-tag rule, functional vs E2E vs API vs setup…
Works with
Categories
Configuration and environment variable conventions for the Playwright scaffold — env file layout (env/.env.), dotenv loading via playwright.config.ts and the ENVIRONMENT variable, config objects in…. Config is an agent skill from idavidov13/agentic-playwright.ts, and the rules for adding new env-driven values.
Config fits situations like: adding a new environment variable; A new config property; A new environment file; A new utility-service URL.
Run `npx skills add idavidov13/agentic-playwright --skill config -a claude-code`. Or copy the skill folder (.claude/skills/config in idavidov13/agentic-playwright) into .claude/skills/config in your project. Claude Code loads it when a task matches its description.
Run `npx skills add idavidov13/agentic-playwright --skill config -a codex`. Or copy the skill folder (.claude/skills/config in idavidov13/agentic-playwright) into .agents/skills/config in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add idavidov13/agentic-playwright --skill config -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/config, .gemini/skills/config, .github/skills/config and .opencode/skills/config in your project.
Going by SKILL.md and its folder, Config needs the command-line tools its instructions call (npx and git) and credentials named ACCESS_TOKEN and APP_PASSWORD. Our summary lists: Node.js; A credential in ACCESS_TOKEN.
SKILL.md contains no URLs. Its commands use npx and git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
Config is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.8k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Config: Proxy Setup (asmyshlyaev177/test-proxy-recorder, 112 stars), Redmine Playwright Login (haru/redmine_ai_helper, 106 stars), Testing Patterns (bybren-llc/safe-agentic-workflow, 421 stars) and Electron Best Practices (jwynia/agent-skills, 166 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
idavidov13 (a GitHub user) maintains it in idavidov13/agentic-playwright, which has 223 GitHub stars. The repository holds 13 skills in this directory. The repository was last updated on October 1, 2026.
Source: idavidov13/agentic-playwright on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.