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.
npx agentmods add skills/crowdstrike/foundry-skills/e2e-testingnpx skills add CrowdStrike/foundry-skills --skill e2e-testinggit clone --depth 1 https://github.com/CrowdStrike/foundry-skillsWhat 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.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00116 | $0.05263 |
| Opus 5 | $0.00058 | $0.02632 |
| Sonnet 5 | $0.00023 | $0.01053 |
| Haiku 4.5 | $0.00012 | $0.00526 |
Grade A, and why
e2e-testing scanned grade A with 0 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 3d 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.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 459 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Foundry E2E Testing
End-to-end testing for Falcon Foundry apps using Playwright and the @crowdstrike/foundry-playwright library.
The library provides authentication, app install/uninstall, page objects, and configuration so each app only writes its app-specific tests.
Part of a suite. If
development-workflowhas not already run, and this is a new app or its first capability, load thedevelopment-workflowskill first — it owns the CLI prerequisite check, scaffolding order, and manifest coordination.
Quick Start
1. Create the e2e/ directory
my-foundry-app/
├── e2e/
│ ├── .env # Local credentials (git-ignored)
│ ├── .env.sample # Template for other developers
│ ├── .gitignore
│ ├── package.json
│ ├── playwright.config.ts
│ └── tests/
│ └── foundry.spec.ts
├── manifest.yml
└── ...
2. package.json
Node.js LTS is recommended.
{
"name": "playwright-foundry",
"version": "1.0.0",
"scripts": {
"test": "npx playwright test",
"test:ui": "npx playwright test --ui",
"test:debug": "npx playwright test --debug",
"test:verbose": "DEBUG=true npx playwright test --reporter=list"
},
"type": "commonjs",
"devDependencies": {
"@crowdstrike/foundry-playwright": "0.5.0",
"@types/node": "25.6.0"
}
}
Always pin exact versions — never use "latest", "^", or "~". Check npm for the current version of each package.
The library brings @playwright/test, @dotenvx/dotenvx, and otpauth as transitive dependencies. No need to install them separately.
3. .env
[email protected]
FALCON_PASSWORD=your-password
FALCON_AUTH_SECRET=your-totp-secret
FALCON_BASE_URL=https://falcon.us-2.crowdstrike.com
APP_NAME=your-app-name
Convention for sample apps: Set APP_NAME to match the manifest name field, which should match the repo name (e.g., foundry-sample-functions-python). This avoids spaces in names and simplifies CI. This is a convention, not a hard requirement.
What ships with it
1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
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.
- 3d ago First seen · 459 lines · 116 tokens per session scan A 41d0f30a8835
e2e-testing is a skill published in the GitHub repository CrowdStrike/foundry-skills (24 stars, last pushed 3d ago), licensed MIT. It adds 116 tokens to every session and 5,263 once invoked, about $0.0006 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
e2e-reviewer
Use when reviewing Playwright or Cypress E2E specs, Page Objects (POM), PRs, pull requests, patches, diffs, or changed test files — asked to review tests, audit test quality, or find weak, flaky, or silently-passing tests; when tests pass CI but prove nothing or miss bugs; when auditing missing awaits, vacuous or…
cypress-debugger
Use when a Cypress end-to-end test has already run and failed and the user wants the root cause and a concrete fix. Trigger on a failing Cypress spec, Timed-out-retrying command, unresolved selector, cy.intercept alias or request race, suite-breaking hook, retry-only flake, hydration or timing race, or a…
playwright-debugger
Use when a Playwright end-to-end test has already run and failed and the user wants the root cause and a concrete fix. Trigger on a failing Playwright spec, TimeoutError, broken or ambiguous selector, post-deploy suite failure, retry-only flake, hydration or timing race, or a passes-locally-but-fails-in-CI split.…
playwright-test-generator
Use when someone wants to add, write, create, or scaffold new Playwright end-to-end tests for a page, flow, form, component, uncovered route, or first-project setup. The skill analyzes coverage gaps, explores live pages only on local/disposable or externally isolated approved non-production targets, proposes scenarios…
Playwright Test Builder
Generates robust Playwright end-to-end tests for web pages and user flows.
e2e-test-implementation
Guide for implementing E2E tests from the test gap analysis, with patterns for CIDR validation, state management, and navigation workflows.