verify
# /verify - Unified Verification Skill
What this skill does
# /verify - Unified Verification Skill
A comprehensive verification skill that chains static analysis, tests, and visual verification. Inspired by Boris Cherny's "verify-app" subagent pattern.
## Trigger
- `/verify` - Run full verification suite
- `/verify quick` - Static analysis only
- `/verify visual` - Browser-based visual verification
- `/verify [component]` - Verify specific component/feature
## Philosophy
> "The most important thing to get great results out of Claude Code -- give Claude a way to verify its work."
> — Boris Cherny, Creator of Claude Code
This skill provides that verification loop. It should be run:
1. After completing a feature
2. Before creating a PR
3. After merging from main
4. When debugging issues
## Verification Layers
```
┌─────────────────────────────────────┐
│ Layer 1: Static Analysis │
│ - TypeScript compilation │
│ - ESLint/Biome linting │
│ - Prettier formatting check │
├─────────────────────────────────────┤
│ Layer 2: Unit Tests │
│ - Jest/Vitest unit tests │
│ - Component tests │
│ - Utility function tests │
├─────────────────────────────────────┤
│ Layer 3: Integration Tests │
│ - API route tests │
│ - Database integration │
│ - Service layer tests │
├─────────────────────────────────────┤
│ Layer 4: E2E Tests │
│ - Playwright browser tests │
│ - Critical user flows │
│ - Cross-browser verification │
├─────────────────────────────────────┤
│ Layer 5: Visual Verification │
│ - Live browser inspection │
│ - Screenshot comparison │
│ - Console error detection │
│ - Network request validation │
├─────────────────────────────────────┤
│ Layer 6: Build Verification │
│ - Production build succeeds │
│ - Bundle size check │
│ - No build warnings │
└─────────────────────────────────────┘
```
## Execution Protocol
### Full Verification (`/verify`)
```
1. STATIC ANALYSIS
├── Run: npm run type-check || npx tsc --noEmit
├── Run: npm run lint
└── GATE: Must pass before continuing
2. UNIT TESTS
├── Run: npm test
├── Collect: Coverage report
└── GATE: Must pass before continuing
3. E2E TESTS (if playwright.config exists)
├── Run: npx playwright test
└── GATE: Must pass before continuing
4. VISUAL VERIFICATION (using Playwright MCP)
├── Start dev server if not running
├── Navigate to key pages
├── Take screenshots
├── Check console for errors
├── Verify no network failures
└── GATE: No critical issues
5. BUILD
├── Run: npm run build
└── GATE: Must succeed
6. REPORT
└── Summary of all layers
```
### Quick Mode (`/verify quick`)
Only runs Layer 1 (Static Analysis).
### Visual Mode (`/verify visual`)
Only runs Layer 5 (Visual Verification) using Playwright MCP.
## Playwright MCP Integration
For visual verification, use these MCP tools:
```typescript
// 1. Start by checking if dev server is running
mcp__playwright-server__browser_navigate({ url: "http://localhost:3000" })
// 2. Capture page state
mcp__playwright-server__browser_snapshot()
// 3. Check for console errors
mcp__playwright-server__browser_console_messages({ level: "error" })
// 4. Take screenshot for visual record
mcp__playwright-server__browser_take_screenshot({ filename: "verify-{timestamp}.png" })
// 5. Check network requests
mcp__playwright-server__browser_network_requests()
// 6. Navigate to key routes and repeat
```
## Key Pages to Verify
For Next.js apps, automatically check:
- `/` - Homepage
- `/login` or `/auth` - Authentication (if exists)
- Key feature pages based on recent changes
## Error Classification
| Severity | Action |
|----------|--------|
| CRITICAL | Stop verification, report immediately |
| ERROR | Log and continue, fail at end |
| WARNING | Log and continue, pass with warnings |
| INFO | Log for reference |
## Output Format
```
╔══════════════════════════════════════════════════════════╗
║ VERIFICATION REPORT ║
╠══════════════════════════════════════════════════════════╣
║ Layer 1 - Static Analysis ✅ PASS ║
║ TypeScript: 0 errors ║
║ ESLint: 0 errors, 2 warnings ║
╠══════════════════════════════════════════════════════════╣
║ Layer 2 - Unit Tests ✅ PASS ║
║ 42 tests passed ║
║ Coverage: 78% ║
╠══════════════════════════════════════════════════════════╣
║ Layer 3 - E2E Tests ✅ PASS ║
║ 12 specs passed ║
╠══════════════════════════════════════════════════════════╣
║ Layer 4 - Visual Verification ✅ PASS ║
║ 3 pages checked ║
║ 0 console errors ║
║ Screenshots: verify-20240102-143022.png ║
╠══════════════════════════════════════════════════════════╣
║ Layer 5 - Build ✅ PASS ║
║ Build time: 12.3s ║
╠══════════════════════════════════════════════════════════╣
║ ║
║ OVERALL: ✅ VERIFICATION PASSED ║
║ ║
╚══════════════════════════════════════════════════════════╝
```
## Integration with Other Skills
This skill works with:
- `/commit-push-pr` - Run verify before creating PR
- `/test-verify` - Subset focused on testing
- `code-reviewer` subagent - Code quality checks
## Automation Hook
Can be triggered automatically via Stop hook for long-running tasks:
```bash
# ~/.claude/hooks/stop/verify-on-complete.sh
# Runs /verify when Claude finishes a significant task
```
Related in General
modeling-omnistudio-epc-catalog
IncludedSalesforce Industries CME EPC product-modeling skill for Product2-based catalog creation. Use when creating EPC products, configuring product attributes, building offer bundles with Product Child Items, or reviewing EPC DataPack JSON metadata for product catalog changes. TRIGGER when: user creates or updates Product2 EPC records, AttributeAssignment payloads, AttributeMetadata/AttributeDefaultValues, Offer bundles, or ProductChildItem relationships. DO NOT TRIGGER when: designing OmniScripts/FlexCards/Integration Procedures (use building-omnistudio-omniscript, building-omnistudio-flexcard, or building-omnistudio-integration-procedure), implementing Apex business logic (use generating-apex), or troubleshooting deployment pipelines (use deploying-metadata).
relationship-science-coach
IncludedUse this skill for direct, practical adult relationship coaching: couples conflict, repair, trust, marriage, dating, flirting, attachment patterns, emotional connection, sex, desire differences, eroticism, kink negotiation, affection, love languages, breakups, and long-term passion. Draw on Gottman, EFT and Hold Me Tight, attachment science, modern sex research, Perel, Nagoski, Kerner, Schnarch, Love and Stosny, and flexible love-language tools. Be concrete and low-hedge. Redirect only for imminent danger, abuse, coercive control, minors, non-consent, self-harm, stalking, or medical/legal/psychiatric decisions.
building-sf-integrations
IncludedSalesforce integration architecture and runtime plumbing with 120-point scoring. Use this skill to set up Named Credentials, External Credentials, External Services, REST/SOAP callout patterns, Platform Events, and Change Data Capture. TRIGGER when: user sets up Named Credentials, External Services, REST/SOAP callouts, Platform Events, CDC, or touches .namedCredential-meta.xml files. DO NOT TRIGGER when: Connected App/OAuth config (use configuring-connected-apps), Apex-only logic (use generating-apex), or data import/export (use handling-sf-data).
venue-templates
IncludedAccess comprehensive LaTeX templates, formatting requirements, and submission guidelines for major scientific publication venues (Nature, Science, PLOS, IEEE, ACM), academic conferences (NeurIPS, ICML, CVPR, CHI), research posters, and grant proposals (NSF, NIH, DOE, DARPA). This skill should be used when preparing manuscripts for journal submission, conference papers, research posters, or grant proposals and need venue-specific formatting requirements and templates.
let-fate-decide
IncludedDraws the 12 Houses of the Zodiac Tarot spread to inject entropy into planning when prompts are vague, ambiguous, or casually delegated. Interprets the spread to guide next steps. Use when the user says 'let fate decide', 'YOLO', 'whatever', 'idk', or other nonchalant phrases, makes Yu-Gi-Oh references, or when you are about to arbitrarily pick between multiple reasonable approaches. Prefer over ask-questions-if-underspecified when the user's tone is casual or playful rather than precision-seeking.
net-ops
IncludedCross-platform network troubleshooting (Windows, macOS, Linux) via local or remote shell. Use for: DNS broken, can't resolve hostnames, nslookup/dig works but apps fail, NRPT, WFP, scutil, /etc/resolver, systemd-resolved, /etc/resolv.conf, NetworkManager, VPN DNS leak residue (ProtonVPN/Mullvad/WireGuard/AnyConnect), AV/firewall blocking DNS or DoH, Tailscale DNS interaction, intermittent connectivity, remote diagnostics over SSH.