Borrowing it
Nothing to install: this file belongs to PackmindHub/packmind. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/PackmindHub/packmind/main/.claude/skills/create-run-e2e-tests/SKILL.mdgit clone --depth 1 https://github.com/PackmindHub/packmindWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/packmindhub/packmind/create-run-e2e-tests)<a href="https://agentmods.dev/skills/packmindhub/packmind/create-run-e2e-tests"><img src="https://agentmods.dev/badge/skills/packmindhub/packmind/create-run-e2e-tests/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/packmindhub/packmind/create-run-e2e-tests"><img src="https://agentmods.dev/badge/skills/packmindhub/packmind/create-run-e2e-tests.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector warn
SkillSpector: 6 findings, up to medium
These are SkillSpector’s own severities. On a checked sample its high-severity flags on skills were ~96% false positives — a documented command, a public API, a “never do X” rule — so we show them as a caution to read, not a verdict. Why →
- medium MCP Rug Pull · line 154 npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.Fix: Pin the version: npx @scope/[email protected]
- medium MCP Rug Pull · line 162 npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.Fix: Pin the version: npx @scope/[email protected]
- medium MCP Rug Pull · line 163 npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.Fix: Pin the version: npx @scope/[email protected]
- medium MCP Rug Pull · line 164 npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.Fix: Pin the version: npx @scope/[email protected]
- medium MCP Rug Pull · line 165 npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.Fix: Pin the version: npx @scope/[email protected]
- medium MCP Rug Pull · line 189 npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.Fix: Pin the version: npx @scope/[email protected]
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.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00175 | $0.02695 |
| Opus 5.5 | $0.00070 | $0.01078 |
| Sonnet 5.5 | $0.00035 | $0.00539 |
| Haiku 4.5 | $0.00017 | $0.00269 |
Grade A, and why
create-run-e2e-tests 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 1mo 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 — 191 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Authoring Packmind E2E Tests
Overview
apps/e2e-tests/ runs Playwright against the real frontend (http://localhost:4200) and API. Tests drive the browser through a Page Object Model and seed irrelevant setup data through the API, not the UI. The dev stack must be running first (see michel-run-local-dev-stack).
Two rules dominate everything here, and both come from the project's .packmind standards:
- Never use Playwright's raw
test. Always use one of the project fixtures. They handle user creation, sign-up, and API-key setup so each test starts from a clean, authenticated state. - Drive the UI through Page Objects, never raw selectors in specs. A spec should read like a user story; selectors live inside page objects so a markup change breaks one file, not twenty tests.
Where files go
| File type | Location | Naming |
|---|---|---|
| Spec | src/features/<area>/ |
<Feature>.spec.ts — one spec per feature |
| Page object interface | src/domain/pages/index.ts |
IXxxPage |
| Page object impl | src/infra/pages/ |
XxxPage.ts |
| API gateway type | src/domain/api/IPackmindApi.ts |
Gateway<IXxxUseCase> |
| API gateway impl | src/infra/api/PackmindApi.ts |
— |
| API data factory | src/domain/apiDataFactories/ |
apiXxxFactory.ts |
This mirrors the hexagonal split used across the repo: domain/ holds interfaces, infra/ holds implementations.
Choosing a fixture
The three fixtures form a chain — each extends the previous and adds one capability. Pick the lowest one that gives you what the test needs, so you don't pay for setup you won't use.
| Fixture | Provides | Use when |
|---|---|---|
testWithUserData |
userData (email/password), page |
Testing sign-up / activation / trial itself — i.e. flows that run before a session exists. You drive the PageFactory yourself. |
testWithUserSignedUp |
everything above + dashboardPage (already signed in) |
Testing in-app UI where you don't need to seed API data. |
testWithApi |
everything above + packmindApi |
You must seed standards/packages/skills/etc. before exercising the UI. |
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.
- 1mo ago First seen · 191 lines · 175 tokens per session scan A e4880851aeef
create-run-e2e-tests is a skill published in the GitHub repository PackmindHub/packmind (319 stars, last pushed 4d ago), licensed Apache-2.0. It adds 175 tokens to every session and 2,695 once invoked, about $0.0007 per session on Opus 5.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
gsd-verify-work
Validate built features through conversational UAT.
gsd-add-tests
Generate tests for a completed phase based on UAT criteria and implementation.
agent-evaluation
A guide to measuring whether an AI agent works reliably on the tasks that matter. It covers repeatable test environments, program checks, human-like scoring rules, failure analysis, and experiments that separate model problems from system problems.
eval-dataset-design
A guide to creating reliable test sets for AI agents. Each evaluation task includes the request, the simulated user's behaviour, a reset starting state, and a success check that can be independently verified.
gsd-verify-work
Validate built features through conversational UAT.
gsd-add-tests
Generate tests for a completed phase based on UAT criteria and implementation.