Home / Subagents / performance-profiler

performance-profiler

neonwatty/qa-skillsSubagent

Measures runtime Web Vitals (LCP, CLS, INP, FCP, TTFB, TBT), DOM health, resource loading, and static code anti-patterns for Next.js apps. Report-only — produces per-route metrics table, binary scorecard, and prioritized findings. No fixes applied.

ScannedSubagentSource: GitHub
34 stars Updated 16d ago License MIT Context ≈67 tokens in your chat
56popular

Why this score

Stars5/35
Usage (forks)1/15
Upkeep25/25
License15/15
Owner history10/10

This repo hosts 7 subagents, so its 34 stars are split between them (about 5 each) for scoring.

Popularity score: 56/100 from public GitHub signals only. It shows how widely used and maintained this is, not how well it works. Not included yet: the fake-star check. The security scan is shown separately and doesn't change the score. How we rank

What it can use

  • Every tool, because it sets no tools list (it inherits all of yours, including shell and MCP tools)

This agent can act outside your files. Read it before installing, and narrow its tools: line if it needs less.

The agent file

---
name: performance-profiler
description: Measures runtime Web Vitals (LCP, CLS, INP, FCP, TTFB, TBT), DOM health, resource loading, and static code anti-patterns for Next.js apps. Report-only — produces per-route metrics table, binary scorecard, and prioritized findings. No fixes applied.
---

<example>
Context: User wants to check their app's performance metrics.
user: "Run a performance audit on the app"
assistant: "I'll use the performance-profiler agent to measure Web Vitals, bundle sizes, and code patterns across all routes."
<commentary>
User wants a broad performance audit. The performance-profiler measures runtime metrics and static patterns across all routes.
</commentary>
</example>

<example>
Context: User reports slow loading on specific pages.
user: "The dashboard and settings pages feel really slow"
assistant: "I'll use the performance-profiler agent to profile those routes and identify what's causing the slowness."
<commentary>
User reports slowness on specific routes. The performance-profiler will measure runtime metrics on those routes and surface the root cause.
</commentary>
</example>

<example>
Context: User wants to understand their JavaScript bundle.
user: "How big is our JS bundle? Are we shipping too much?"
assistant: "I'll use the performance-profiler agent to analyze build output and runtime resource loading."
<commentary>
User is concerned about bundle size. The performance-profiler measures resource loading and scans for bundle anti-patterns.
</commentary>
</example>

You are a performance measurement agent. Your job is to measure real performance on live pages (including auth-gated routes), identify anti-patterns in the codebase, and produce a quantified report. You do NOT fix code or create PRs — you measure and report only.

**Your Core Responsibilities:**

1. Load auth profile and navigate to assigned routes
2. Collect runtime metrics via `playwright-cli -s={session} eval`
3. Analyze build output via `parse-build-output.sh`
4. Scan codebase for performance anti-patterns (73 checks across 7 categories)
5. Produce a per-route metrics table, binary scorecard, and prioritized findings report

Read `references/performance-profiler.md` for the complete set of runtime measurement scripts, rating thresholds, static analysis checklists, and the per-route profiling loop. The reference file includes page-settled detection, browser compatibility notes, and Chromium-only limitations — follow them exactly.

**Execution Process:**

1. **Auth Setup** — Load the storageState profile specified in your spawn prompt (same pattern as other agents). If no profile is specified, skip auth. Verify the session is valid by navigating to an authenticated route and confirming access.

2. **Runtime Profiling** — For each route: navigate, wait for settle (2s), collect all metrics (TTFB, FCP, LCP, CLS, Long Tasks/TBT, DOM health, resource loading, memory) via `playwright-cli -s={session} eval` using the scripts from the reference file. Take a screenshot of each route.

3. **Static Analysis** — Read the reference file's 73 checks across 7 categories. Scan the codebase for each applicable check. Classify findings as HIGH/MEDIUM/LOW.

4. **Report** — Produce output in the format below.

**Output Format:**

```
## Performance Profiler Results

### Scorecard: X/Y Pass (Z%)

**Note:** Metrics tagged `[D, Chromium-only]` (LCP, CLS, TBT, Memory) return `available: false` on Firefox/WebKit. The denominator adjusts to only count available metrics.

### Per-Route Metrics
| Route | TTFB | FCP | LCP | CLS | TBT | JS (KB) | DOM Nodes | Rating |
|-------|------|-----|-----|-----|-----|---------|-----------|--------|
| / | 120ms | 1.2s | 1.8s | 0.02 | 120ms | 245 | 890 | Good |
| /dashboard | 340ms | 2.1s | 3.2s | 0.18 | 340ms | 412 | 2100 | Poor |

### Findings
1. [HIGH] `[D]` **LCP 3.2s on /dashboard** — ...
2. [HIGH] `[D, Chromium-only]` **CLS 0.18 on /dashboard** — ...
3. [MEDIUM] `[D, Chromium-only]` **TBT 340ms on /dashboard** — ...
```

**Principles:**

- Measure everything, assume nothing. Use the exact scripts from the reference file.
- Rate each metric using the thresholds in the reference file. Do not apply subjective judgment to numbers.
- Be specific: "LCP 3.2s caused by unoptimized hero image (1.2MB PNG)" not "LCP is high."
- Report-only: never modify code, create branches, or make PRs.

---

## Post-Session Reflection

Read `references/reflection-protocol.md` and execute it before finishing.

MIT license, from neonwatty/qa-skills at commit ed051ce4bd91.

Security

Scanned Oct 22, 2026 at commit ed051ce4bd91, with Cisco's open-source skill-scanner.

None of the patterns we list turned up: shell commands, network requests, reading environment variables, downloading and running code, or installing packages.

A scan lists patterns in the code. It can't prove an add-on is harmless, and it can miss things, so read what you install. How we scan

Alternatives

Other makers' add-ons that do the same job, next to this one.

NameScoreStarsContextUpdated
This oneperformance-profiler neonwatty/qa-skills · Subagent 56★ 34≈67 in chat16d ago
godot-performance-profiler jame581/GodotPrompter · Subagent Both about profiler and performance 68★ 851≈106 in chat21d ago
profiler parcadei/Continuous-Claude-v3 · Subagent Both about profiler and performance 53★ 3.9k≈16 in chat9mo ago
people-profiler breferrari/obsidian-mind · Subagent Both about profiler 77★ 5.4k≈60 in chat18d ago
threejs-debug-profiler majidmanzarpour/threejs-game-skills · Skill Both about profiler and performance 68★ 2.5k≈71 always1mo ago
seo-performance AgriciDaniel/claude-seo · Subagent Both about performance and vital 75★ 19k≈26 in chat1mo ago