Web Application Testing
anthropics/skills
Tests local web applications with Python Playwright scripts, checking frontend behavior, capturing screenshots and reading browser console logs.
选择并设计能在可观测边界证明已接受行为的最小集成/E2E 测试集。用于编写或评审 E2E 或集成测试时. An agent skill from shinpr/ai-coding-project-boilerplate.
$ npx skills add shinpr/ai-coding-project-boilerplate --skill integration-e2e-testing -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install shinpr/ai-coding-project-boilerplate integration-e2e-testing --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/shinpr/ai-coding-project-boilerplate.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills-zh-CN/integration-e2e-testing .claude/skills/integration-e2e-testing && 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 "integration-e2e-testing" agent skill from https://github.com/shinpr/ai-coding-project-boilerplate/tree/main/.claude/skills-zh-CN/integration-e2e-testing into .claude/skills/integration-e2e-testing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "integration-e2e-testing", 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/shinpr/ai-coding-project-boilerplate/tree/main/.claude/skills-zh-CN/integration-e2e-testingType 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 shinpr/ai-coding-project-boilerplate --skill integration-e2e-testing -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install shinpr/ai-coding-project-boilerplate integration-e2e-testing --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/shinpr/ai-coding-project-boilerplate.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills-zh-CN/integration-e2e-testing .agents/skills/integration-e2e-testing && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "integration-e2e-testing" agent skill from https://github.com/shinpr/ai-coding-project-boilerplate/tree/main/.claude/skills-zh-CN/integration-e2e-testing into .agents/skills/integration-e2e-testing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "integration-e2e-testing", 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 shinpr/ai-coding-project-boilerplate --skill integration-e2e-testing -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install shinpr/ai-coding-project-boilerplate integration-e2e-testing --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/shinpr/ai-coding-project-boilerplate.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills-zh-CN/integration-e2e-testing .cursor/skills/integration-e2e-testing && 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 "integration-e2e-testing" agent skill from https://github.com/shinpr/ai-coding-project-boilerplate/tree/main/.claude/skills-zh-CN/integration-e2e-testing into .cursor/skills/integration-e2e-testing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "integration-e2e-testing", 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/shinpr/ai-coding-project-boilerplate.git --path .claude/skills-zh-CN/integration-e2e-testing--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 shinpr/ai-coding-project-boilerplate --skill integration-e2e-testing -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install shinpr/ai-coding-project-boilerplate integration-e2e-testing --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/shinpr/ai-coding-project-boilerplate.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills-zh-CN/integration-e2e-testing .gemini/skills/integration-e2e-testing && 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 "integration-e2e-testing" agent skill from https://github.com/shinpr/ai-coding-project-boilerplate/tree/main/.claude/skills-zh-CN/integration-e2e-testing into .gemini/skills/integration-e2e-testing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "integration-e2e-testing", 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 shinpr/ai-coding-project-boilerplate integration-e2e-testingInstalls 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 shinpr/ai-coding-project-boilerplate --skill integration-e2e-testing -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/shinpr/ai-coding-project-boilerplate.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills-zh-CN/integration-e2e-testing .github/skills/integration-e2e-testing && 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 "integration-e2e-testing" agent skill from https://github.com/shinpr/ai-coding-project-boilerplate/tree/main/.claude/skills-zh-CN/integration-e2e-testing into .github/skills/integration-e2e-testing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "integration-e2e-testing", 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 shinpr/ai-coding-project-boilerplate --skill integration-e2e-testing -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install shinpr/ai-coding-project-boilerplate integration-e2e-testing --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/shinpr/ai-coding-project-boilerplate.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills-zh-CN/integration-e2e-testing .opencode/skills/integration-e2e-testing && 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 "integration-e2e-testing" agent skill from https://github.com/shinpr/ai-coding-project-boilerplate/tree/main/.claude/skills-zh-CN/integration-e2e-testing into .opencode/skills/integration-e2e-testing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "integration-e2e-testing", 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.
integration-e2e-testing选择并设计能在可观测边界证明已接受行为的最小集成/E2E 测试集。用于编写或评审 E2E 或集成测试时. An agent skill from shinpr/ai-coding-project-boilerplate.
Integration E2E Testing is an agent skill from shinpr/ai-coding-project-boilerplate. 选择并设计能在可观测边界证明已接受行为的最小集成/E2E 测试集。用于编写或评审 E2E 或集成测试时。
Its SKILL.md is about 1.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 3 other files, including reference files (for example `references/e2e-design.md` and `references/e2e-environment-prerequisites.md`).
It sits in Testing & QA, covering End-to-end testing. The repository describes itself as: Agentic coding TypeScript boilerplate for Claude Code: sub-agent workflows with built-in quality checks and context engineering. The licence is MIT.
6 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 56913a2. 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.
No scripts in the folder and no shell commands in SKILL.md (its code samples are typescript).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Integration E2E Testing loads about 1.4k tokens when it runs, and up to ~3.4k if it reads all its reference files. Until then it costs about 19 tokens; SKILL.md has 305 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 found no risky patterns in SKILL.md.
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 shinpr/ai-coding-project-boilerplate at commit 56913a2, republished under its MIT licence (© shinpr). 305 words, ~1,367 tokens.
.claude/skills/integration-e2e-testing/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.| 测试类型 | 目的 | 范围 | 外部依赖 | 文件格式 | 实现时机 |
|---|---|---|---|---|---|
| Integration | 验证组件间进程内交互 | 部分系统集成(进程内模块;对于 UI 组件,React/TS 使用 RTL+MSW) | 已 Mock 或进程内 | *.int.test.ts | 与实现同步创建 |
| fixture-e2e | 使用确定性 fixture 验证浏览器行为 | 使用 mock 后端/fixture 驱动状态的完整 UI 流程 | 仅 Mock/fixture — 无实际运行的服务 | *.fixture-e2e.test.ts | 与 UI 功能同步创建 |
| service-integration-e2e | 验证只有运行中的技术栈才能暴露的契约 | 跨服务的完整系统 | 实际运行的本地服务或服务级桩(stub) | *.service-e2e.test.ts | 在所需服务就绪后执行 |
Lane 选择(仅限 E2E):
从已接受的证明义务出发,将每项义务分配给能暴露其失败的最低成本边界,去除重复覆盖,并保留能覆盖每个剩余独立失败的最小测试集。让这些义务决定测试数量。一个功能在某个测试通道中可以合理地产生零项测试。
一个集成/E2E 候选项需陈述:
将可在隔离环境中观测到的行为路由至单元/组件验证。若受控环境不可用,将其记录为 service-integration-e2e 的证明前提条件。
一个符合项目测试匹配模式的已提交文件,对其运行器而言必须保持有效。使用所检测框架中最小的挂起(pending)套件(describe 加 it.todo,或其等价形式),仅包含测试框架的 import 语句和必需的注释。实现任务会替换掉挂起用例,并加入应用层 import、断言、fixture 和 mock 设置以配合实现。
每个测试必须包含以下注解。
// AC: "[验收标准原文]"
// Behavior: [触发] -> [处理] -> [可观测结果]
// @lane: integration | fixture-e2e | service-integration-e2e
// @dependency: none | [组件名称] | full-ui (mocked backend) | full-system
// @real-dependency: [组件名称](可选,当“测试边界”指定了非 mock 设置时)
// Primary failure mode: [必须使已实现的测试失败的具体回归问题]
// Proof obligation: [已实现的测试必须断言的边界与可观测状态]
// Verification items: [用以证实该义务的观察项]@lane 选择规则:
integration — 组件间进程内交互,无浏览器(例如 React/TS 的 RTL+MSW,或任意语言中的进程内模块/处理器集成)fixture-e2e — 使用 mock 后端/fixture 驱动状态的浏览器级 UI 验证。@dependency 通常为 full-ui (mocked backend)service-integration-e2e — 针对实际运行的本地服务或桩的浏览器级或端到端验证。@dependency 为 full-system// Property: `[验证表达式]`
// fast-check: fc.property(fc.[arbitrary], (input) => [invariant])从已接受行为和仓库证明边界出发进行选择;产品分析数据和数值估算并非必需。当已接受行为或所需契约在查阅约束来源与仓库依据后仍无法确定时,需上报处理。
当存在 Property 注解时,必须使用 fast-check:
fc.assert(fc.property(...)) 格式编写// fast-check: 注释行为描述验证级别:
| 步骤类型 | 验证目标 | 示例 |
|---|---|---|
| Trigger | 在 Arrange 中复现 | API 失败 -> mockResolvedValue({ ok: false }) |
| Process | 中间状态或调用 | 函数调用、状态变化 |
| Observable Result | 最终输出值 | 返回值、错误信息、日志输出 |
通过标准:若“可观测结果”作为测试目标的返回值或 mock 调用参数得到验证,则通过
| 骨架状态 | 验证项确定方法 |
|---|---|
已列出 // Verification items: | 使用 expect 实现所有列出的项目 |
无 // Verification items: | 从 “Behavior” 描述中的“可观测结果”推导 |
| 两者皆有 | 优先采用验证项,将行为描述作为补充 |
选取第一条与被评审断言相匹配的规则:
| 条件 | 应使用的边界 |
|---|---|
| 被测对象正是外部适配器、查询、迁移或服务契约本身 | 使用真实边界,或在 service-integration-e2e 测试通道中使用服务级桩 —— mock 无法证明其所替代的契约 |
| 未被测试的外部 API 或网络调用 | Mock |
| 被测的组件间交互 | 真实的进程内组件 |
| 调用本身即是测试所验证的对象(例如日志输出) | 可验证的 mock(vi.fn()) |
| 调用及其目标均不在测试范围内 | 使用真实对象,或忽略 |
fixture-e2e:
@dependency: full-ui (mocked backend))service-integration-e2e:
@dependency: full-system)| 检查项 | 失败条件 |
|---|---|
| Property Verification | 存在 Property 注解但未使用 fast-check |
| Behavior Verification | 未对“可观测结果”进行 expect |
| Verification Item Coverage | 已列出的验证项未包含在 expect 中 |
| Mock Boundary | 集成测试中 mock 了内部组件 |
| 检查项 | 失败条件 |
|---|---|
| AAA Structure | Arrange/Act/Assert 划分不清晰 |
| Independence | 测试间存在状态共享、执行顺序依赖 |
| Reproducibility | 依赖日期/随机数,结果不稳定 |
当多个路由到达同一个变更操作时——例如 CLI 路径与 HTTP 处理器、定时任务与手动触发、批量端点与单条目端点——需沿四个维度进行比较:校验、分类、资源边界,以及读取、解析、变更、上报的顺序。
只有能够决定意图的来源——需求、设计文档或 ADR——才能允许存在差异。测试处于该决策的下游——它们记录的是既有行为,因此一个覆盖了宽松路由的既有测试只是确认了该绕过行为,而非赋予其正当性。一旦某项差异被允许,测试便用于验证其行为是否符合该决策。
当某项差异没有任何允许来源时,需要一个能暴露该绕过问题的测试:通过跳过检查的路由驱动该变更操作,并断言原本被跳过的检查所要保护的状态。
| 检查项 | 失败条件 |
|---|---|
| Validation parity | 一个路由校验了某项输入,而另一路由未经检查即接受,且没有需求或契约允许此差异 |
| Classification parity | 同一失败在不同路由中被分类不同,改变了调用方所观察到的结果 |
| Resource-bound parity | 一个路由强制执行了大小、数量或超时边界,而另一路由缺失该限制 |
| Operation-order parity | 各路由在读取/解析/变更/上报的顺序上存在差异,导致某一路由可能在校验之前变更,或在持久化之前上报 |
| Bypass coverage | 一项未加说明的差异,没有测试通过宽松路由驱动该变更操作来加以覆盖 |
© shinpr, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 2 other files (references) in .claude/skills-zh-CN/integration-e2e-testing of shinpr/ai-coding-project-boilerplate.
Open the folder on GitHubat commit 56913a2
Integration E2E Testing 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 |
|---|---|---|---|---|---|---|
| Integration E2E Testing this skillshinpr/ai-coding-project-boilerplate | 232 | — | ~1.4k | Automated safety check: Pass | MIT | |
| Web Application Testinganthropics/skills | 180k | 51 repos | ~966 | Automated safety check: Pass | Apache-2.0 | |
| TDD WorkflowhellangleZ/burn-in-cceverywhere-ralph | 112 | 11 repos | ~2.4k | Automated safety check: Pass | None | |
| Uloop Replay Inputkurotu/VRCQuestTools | 373 | 3 repos | ~615 | Automated safety check: Pass | MIT | |
| Ui4 Convert Testspayloadcms/payload | 45k | — | ~3.5k | Automated safety check: Pass | MIT | |
| E2Estackia/rtp2httpd | 2.2k | — | ~517 | Automated safety check: Pass | GPL-2.0 |
anthropics/skills
Tests local web applications with Python Playwright scripts, checking frontend behavior, capturing screenshots and reading browser console logs.
hellangleZ/burn-in-cceverywhere-ralph
A skill your agent uses when writing new features, fixing bugs, or refactoring code.
kurotu/VRCQuestTools
Replay recorded PlayMode keyboard and mouse input. An agent skill from kurotu/VRCQuestTools.
payloadcms/payload
A skill your agent uses when UI changes are complete and e2e tests need updating.
stackia/rtp2httpd
Write, run, review, or debug rtp2httpd E2E tests and their harness in e2e/ and scripts/run-e2e.sh.
MotherofallVPNs/MoaV
Run and debug MoaV's end-to-end tests — real protocol connectivity (client-test.sh) and the moav CLI smoke test — against a LIVE server, via the self-hosted e2e workflow or a local test VPS.
shinpr/ai-coding-project-boilerplate
Selects and designs the smallest integration/E2E test set that proves accepted behavior at an observable boundary.
shinpr/ai-coding-project-boilerplate
Evaluates and optimizes skill file quality using 9 content patterns and 10 editing principles.
shinpr/ai-coding-project-boilerplate
Defines React environment, component architecture, state/data flow, build verification, and frontend non-functional criteria from repository evidence.
shinpr/ai-coding-project-boilerplate
Applies React/TypeScript type safety, component design, and state management rules.
shinpr/ai-coding-project-boilerplate
Selects implementation strategy (vertical slice, horizontal, or hybrid) with risk assessment.
shinpr/ai-coding-project-boilerplate
Coordinates subagents through scale-based planning, approval, implementation, verification, and escalation flows.
Categories
选择并设计能在可观测边界证明已接受行为的最小集成/E2E 测试集。用于编写或评审 E2E 或集成测试时. An agent skill from shinpr/ai-coding-project-boilerplate. Integration E2E Testing is an agent skill from shinpr/ai-coding-project-boilerplate.
Integration E2E Testing fits situations like: tasks that involve End-to-end testing.
Run `npx skills add shinpr/ai-coding-project-boilerplate --skill integration-e2e-testing -a claude-code`. Or copy the skill folder (.claude/skills-zh-CN/integration-e2e-testing in shinpr/ai-coding-project-boilerplate) into .claude/skills/integration-e2e-testing in your project. Claude Code loads it when a task matches its description.
Run `npx skills add shinpr/ai-coding-project-boilerplate --skill integration-e2e-testing -a codex`. Or copy the skill folder (.claude/skills-zh-CN/integration-e2e-testing in shinpr/ai-coding-project-boilerplate) into .agents/skills/integration-e2e-testing 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 shinpr/ai-coding-project-boilerplate --skill integration-e2e-testing -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/integration-e2e-testing, .gemini/skills/integration-e2e-testing, .github/skills/integration-e2e-testing and .opencode/skills/integration-e2e-testing in your project.
SKILL.md names no scripts, command-line tools or credentials: Integration E2E Testing is instructions for the agent only.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Integration E2E Testing is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.4k tokens (SKILL.md is roughly 5.5k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 2k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Integration E2E Testing: Web Application Testing (anthropics/skills, 180k stars), TDD Workflow (hellangleZ/burn-in-cceverywhere-ralph, 112 stars), Uloop Replay Input (kurotu/VRCQuestTools, 373 stars) and Ui4 Convert Tests (payloadcms/payload, 45k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
shinpr (a GitHub user) maintains it in shinpr/ai-coding-project-boilerplate, which has 232 GitHub stars. The repository holds 42 skills in this directory. The repository was last updated on October 4, 2026.
Source: shinpr/ai-coding-project-boilerplate on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.