Cette page est affichée en anglais. Une traduction française est en cours.
SkillsApr 28, 2026·3 min de lecture

verify-app — E2E Test Subagent for Claude Code

Open-source Claude Code subagent that runs end-to-end tests on recent changes and triages failures. Inspired by Boris Cherny's verify-app setup.

Introduction

verify-app is a Claude Code subagent that runs end-to-end tests on whatever Claude just changed and reports failures with reproduction hints. It is the open-source equivalent of one of Boris Cherny's named subagents — he calls it out specifically on his setup page as the agent he uses to test Claude Code's work end-to-end.

The pattern is high-leverage: at the end of a feature-build session, instead of eyeballing diffs and hoping CI catches things, the subagent maps changed files to relevant E2E tests, runs only those, and tells you which ones broke and likely why.

Works with: Claude Code 1.x and above. Setup time: under 1 minute.


How verify-app Works

Save to .claude/agents/verify-app.md:

---
name: verify-app
description: Run end-to-end tests on recently changed files and report failures with reproduction steps. Use after a feature implementation session, before opening a PR.
tools: Bash, Read, Grep, Glob
---

You are the verify-app subagent. Your single responsibility is to run E2E tests against the code Claude just modified and report what works vs. what is broken.

## Workflow

1. Identify changed files via `git status --short` and `git diff --name-only`.
2. For each changed file, locate E2E tests that exercise it:
   - Look in `tests/e2e/`, `cypress/`, `playwright/`, or `e2e/`
   - Match by import paths and feature names
3. Run only the matched tests (`npm run test:e2e -- <pattern>` or framework equivalent).
4. For each failure, capture the failing assertion + file:line, identify the most likely changed file responsible, and suggest a one-line root-cause hypothesis.
5. Output the structured summary below.

## Output format

verify-app summary
==================
Changed files: N
E2E tests run: N
Passed: N
Failed: N

Failures (if any):
1. <test_path:line><assertion>
   Likely cause: <changed_file>
   Hypothesis: <one-line>

## Boundaries

- Do not run unit tests (that is the test-runner agent's job).
- Do not fix anything yourself — only report.
- If no E2E tests match the changed files, escalate: "No E2E coverage for X. Add a smoke test?"

When to use

  • End of a feature-implementation session, before opening a PR.
  • After running /loop or /ralph-loop — long sessions accumulate untested code.
  • Before merging a long-lived branch.

When not to use

  • Mid-feature — let Claude finish first.
  • For pure refactors with no behavior change (use code-simplifier instead).

Example session

You:    "Implement audit logging for the admin panel."
Claude: ... (writes 5 files, ~400 lines)
You:    "Run verify-app on what you just changed."
Claude: -> invokes verify-app subagent
        -> finds 4 E2E tests in tests/e2e/admin/
        -> runs them
        -> 3 pass, 1 fails
        -> reports: tests/e2e/admin/audit.spec.ts:24
                   Likely cause: src/lib/auditLogger.ts
                   Hypothesis: timestamp format changed from ISO to epoch

FAQ

Q: Is verify-app the same as Boris Cherny's verify-app? A: No — it is a community-written equivalent. Boris's subagent lives in his private .claude/agents/ and Anthropic has not open-sourced it. This entry captures the same pattern from his public description on howborisusesclaudecode.com.

Q: Do I need a specific E2E framework? A: The Workflow section auto-detects Playwright, Cypress, and generic tests/e2e/ directories. For other frameworks, edit the Bash invocation.

Q: Does it fix failures? A: No. The contract is "test, don't touch." Pair it with a code-fixer subagent if you want auto-repair.

Q: Will it run my entire E2E suite? A: No — it runs only tests matched to the changed files. That keeps the feedback loop fast.

Q: How is this different from CI? A: It runs locally during your Claude session, before push. Catches regressions ~10 minutes earlier than CI.


🙏

Source et remerciements

Inspired by Boris Cherny's verify-app subagent — referenced on howborisusesclaudecode.com and his Threads post. Original concept: the Anthropic Claude Code team's daily workflow.

Citations:

Fil de discussion

Connectez-vous pour rejoindre la discussion.
Aucun commentaire pour l'instant. Soyez le premier à partager votre avis.

Actifs similaires