audit-performance-frontend
Skill9 starsChanged 23 days agoMITView on GitHub
Low-level frontend performance audit, specialized for WebKit/JSC and embedded or real-time contexts - on a mainstream stack (React/Chrome SPA) many questions are N/A and the grid adapts. Use when auditing frontend rendering performance, WebKit internals, JSC optimization, DOM structure, CSS rendering pipeline, memory/GC, cache strategy, or profiling methodology. Triggers on "audit performance", "audit frontend", "audit perf", "audit rendering", "audit webkit", "audit jsc".
In this repository59 other files it gives its agents.
- AGENTS.mdAGENTS.md
- adversarial-feature-challengeSkill
- api-contract-versioningSkill
- bug-ticket-root-causeSkill
- bug-triage-structuredSkill
- ci-pipeline-orchestrationSkill
- commit-readiness-reviewSkill
- comprehensive-test-strategySkill
- database-schema-evolutionSkill
- ddd-backend-implementationSkill
- design-system-component-lifecycleSkill
- detection-sweepSkill
- domain-glossarySkill
- domain-modeling-designSkill
- frontend-fullstack-implementationSkill
- frontend-spec-call-site-auditSkill
- merge-request-reviewSkill
- performance-profilingSkill
- recording-decisionsSkill
- recurring-bug-root-causeSkill
- refactoring-shared-component-apiSkill
- validating-features-end-to-endSkill
- visual-regression-checkSkill
- writing-robust-testsSkill
- adversarial-feature-challengeSkill
- api-contract-versioningSkill
- audit-architectureSkill
- audit-ci-cdSkill
- audit-complianceSkill
- audit-industrialisationSkill
- audit-observabilitySkill
- audit-qualitySkill
- audit-reportSkill
- audit-securitySkill
- audit-testingSkill
- bug-ticket-root-causeSkill
- bug-triage-structuredSkill
- ci-pipeline-orchestrationSkill
- commit-readiness-reviewSkill
- comprehensive-test-strategySkill
- daily-workflow-optimizationSkill
- database-schema-evolutionSkill
- ddd-backend-implementationSkill
- design-system-component-lifecycleSkill
- detection-sweepSkill
- domain-glossarySkill
- domain-modeling-designSkill
- frontend-fullstack-implementationSkill
- frontend-spec-call-site-auditSkill
- merge-request-reviewSkill
- performance-profilingSkill
- production-incident-diagnosticSkill
- qa-session-intakeSkill
- recording-decisionsSkill
- recurring-bug-root-causeSkill
- refactoring-shared-component-apiSkill
- validating-features-end-to-endSkill
- visual-regression-checkSkill
- writing-robust-testsSkill
The file
We split this skill into the rules it gives an agent
6 rules. About 0 are common, 5 are distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈5
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 12
ME when: an audit scoped to this domain only
- Distinctive: line 13
audit-industrialisation: instead if: a cross-domain global audit - it orchestrates every audit (including ME) and produces a consolidated …
- Very specific: line 56
Category 3 - JS Engine: look for polymorphism patterns, delete, arrow functions in loops, eval, sparse arrays.
- Distinctive: line 57
Category 4 - Memory: check allocations in loops, event listeners without cleanup, caches without eviction.
- Distinctive: line 59
Category 6 - Profiling: check instrumentation, metrics, performance CI.
- Distinctive: line 80
Every question applies with the standard grid
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
When ME and not audit-industrialisation
- ME when: an audit scoped to this domain only
- audit-industrialisation instead if: a cross-domain global audit - it orchestrates every audit (including ME) and produces a consolidated report
For a full project audit, use
audit-industrialisationrather than invoking each skill separately.
Low-Level Frontend Performance Audit
Scope check before starting: this grid targets WebKit/JSC internals and embedded/real-time constraints. On a mainstream stack (e.g. a React SPA on evergreen browsers), mark the engine-specific questions N/A per the Variants section instead of forcing answers - a mostly-N/A domain is a valid outcome.
Overview
Audit a project's frontend performance maturity, targeting sub-100ms rendering. Covers the integrity of the rendering pipeline: DOM structure, CSS rendering, JS engine internals (JSC), memory and GC management, network/cache strategy, and profiling tooling. Micro-optimization oriented, for embedded or real-time contexts running on WebKit.
29 questions split across 6 categories:
| Category | Questions | Grid |
| 1 - HTML & Critical Path | 4 (PF-01 to PF-04) | reference/html-critical-path.md |
| 2 - CSS & Rendering Pipeline | 5 (PF-05 to PF-09) | reference/css-rendering-pipeline.md |
| 3 - JavaScript Engine & Runtime JSC | 9 (PF-10 to PF-18) | reference/js-engine-runtime.md |
| 4 - Memory & Garbage Collection | 4 (PF-19 to PF-22) | reference/memory-gc.md |
| 5 - Assets, Cache & Network | 4 (PF-23 to PF-26) | reference/assets-cache-network.md |
| 6 - Profiling & Tooling | 3 (PF-27 to PF-29) | reference/profiling-tooling.md |
Scoring
- Each scored question gets a level from 0 to 4.
- Questions marked N/A are excluded from the calculation.
- Domain score = sum of levels / number of scored questions (excluding N/A).
- Criticality (used to prioritize remediation, NOT in the score - see
audit-report/reference/scoring-model.md):- MUST: PF-01, PF-02, PF-03, PF-06, PF-10, PF-13, PF-17, PF-23, PF-27, PF-28, PF-29
- SHOULD: PF-04, PF-05, PF-07, PF-09, PF-11, PF-12, PF-14, PF-15, PF-19, PF-20, PF-21, PF-22, PF-24, PF-25, PF-26
- COULD: PF-08, PF-16, PF-18
Audit protocol
- Detect the project type: SPA, SSR, PWA, embedded WebKit, component library.
- Category 1 - HTML: scan for
document.write, measure DOM depth, check blocking scripts and priority attributes. - Category 2 - CSS: audit selectors, animations, compositing, custom properties, fonts.
- Category 3 - JS Engine: look for polymorphism patterns,
delete, arrow functions in loops,eval, sparse arrays. - Category 4 - Memory: check allocations in loops, event listeners without cleanup, caches without eviction.
- Category 5 - Assets: measure critical-path size, check compression, cache headers, font loading.
- Category 6 - Profiling: check instrumentation, metrics, performance CI.
- Run the verification commands for each question (see grids).
- Assign a level (0-4) per question with justification and confidence level.
- Mark N/A the non-applicable questions (e.g. PF-10 to PF-18 if there is no custom JS, just a framework).
- Produce the report (output format below).
Variants by project type
SSR application (Nuxt, Next.js)
- PF-01 to PF-04: Fully applicable, the server generates the initial HTML
- PF-23: Adapted - TTFB includes server render time
UI component library
- PF-23 to PF-26: N/A (no control over deployment)
- PF-27 to PF-29: Adapted - component performance benchmarks
Static site (11ty, Hugo, Astro)
- PF-10 to PF-18: Often N/A (little custom JS)
- PF-01 to PF-09, PF-23 to PF-29: Fully applicable
Embedded WebKit application (WKWebView, Electron)
- Every question applies with the standard grid
- Particular focus on PF-10 to PF-22 (memory/CPU constraints)
Grids by category
Each grid contains, per question: statement, criticality, elements to analyze, bash verification commands, points to check, and a 0-4 level table.
- reference/html-critical-path.md - Category 1, HTML & Critical Path, 4 questions (PF-01 to PF-04)
- reference/css-rendering-pipeline.md - Category 2, CSS & Rendering Pipeline, 5 questions (PF-05 to PF-09)
- reference/js-engine-runtime.md - Category 3, JavaScript Engine & Runtime JSC, 9 questions (PF-10 to PF-18)
- reference/memory-gc.md - Category 4, Memory & Garbage Collection, 4 questions (PF-19 to PF-22)
- reference/assets-cache-network.md - Category 5, Assets, Cache & Network, 4 questions (PF-23 to PF-26)
- reference/profiling-tooling.md - Category 6, Profiling & Tooling, 3 questions (PF-27 to PF-29)
Output format
## Frontend Performance - Global score: X.X/4 (Y questions scored out of 29)
### Summary
[2-3 sentences summarizing frontend performance maturity]
[Detected project type: SPA / SSR / PWA / embedded / static]
### Detail by question
#### Category 1 - HTML & Critical Path
| Code | Question | Criticality | Level | Confidence | Justification |
|------|----------|-----------|--------|-----------|---------------|
| PF-01 | DOM structure and parsing | MUST | X | high/medium/low | ... |
| PF-02 | Render-blocking | MUST | X | high/medium/low | ... |
| PF-03 | Layout thrashing | MUST | X | high/medium/low | ... |
| PF-04 | Loading & priority | SHOULD | X | high/medium/low | ... |
#### Category 2 - CSS & Rendering Pipeline
| Code | Question | Criticality | Level | Confidence | Justification |
|------|----------|-----------|--------|-----------|---------------|
| PF-05 | CSS selectors | SHOULD | X | high/medium/low | ... |
| PF-06 | Layout triggers | MUST | X | high/medium/low | ... |
| PF-07 | Paint & GPU | SHOULD | X | high/medium/low | ... |
| PF-08 | Custom properties | COULD | X | high/medium/low | ... |
| PF-09 | Font rendering | SHOULD | X | high/medium/low | ... |
#### Category 3 - JavaScript Engine & Runtime
| Code | Question | Criticality | Level | Confidence | Justification |
|------|----------|-----------|--------|-----------|---------------|
| PF-10 | JSC monomorphism | MUST | X | high/medium/low | ... |
| PF-11 | NaN-boxing | SHOULD | X | high/medium/low | ... |
| PF-12 | JSC compilation tiers | SHOULD | X | high/medium/low | ... |
| PF-13 | Deoptimization | MUST | X | high/medium/low | ... |
| PF-14 | Functions & closures | SHOULD | X | high/medium/low | ... |
| PF-15 | JSC arrays | SHOULD | X | high/medium/low | ... |
| PF-16 | Strings & RegExp | COULD | X | high/medium/low | ... |
| PF-17 | Event loop | MUST | X | high/medium/low | ... |
| PF-18 | Weak references | COULD | X | high/medium/low | ... |
#### Category 4 - Memory & GC
| Code | Question | Criticality | Level | Confidence | Justification |
|------|----------|-----------|--------|-----------|---------------|
| PF-19 | GC Riptide | SHOULD | X | high/medium/low | ... |
| PF-20 | Allocation pressure | SHOULD | X | high/medium/low | ... |
| PF-21 | Memory leaks | SHOULD | X | high/medium/low | ... |
| PF-22 | GPU memory | SHOULD | X | high/medium/low | ... |
#### Category 5 - Assets, Cache & Network
| Code | Question | Criticality | Level | Confidence | Justification |
|------|----------|-----------|--------|-----------|---------------|
| PF-23 | Network critical path | MUST | X | high/medium/low | ... |
| PF-24 | Compression & encoding | SHOULD | X | high/medium/low | ... |
| PF-25 | Multi-layer cache | SHOULD | X | high/medium/low | ... |
| PF-26 | Font loading | SHOULD | X | high/medium/low | ... |
#### Category 6 - Profiling & Tooling
| Code | Question | Criticality | Level | Confidence | Justification |
|------|----------|-----------|--------|-----------|---------------|
| PF-27 | Methodical profiling | MUST | X | high/medium/low | ... |
| PF-28 | Sub-100ms metrics | MUST | X | high/medium/low | ... |
| PF-29 | Performance regression CI | MUST | X | high/medium/low | ... |
### Strengths
- ...
### Weaknesses
- ...
### Recommendations
1. [MUST] ...
2. [SHOULD] ...
3. [COULD] ...
### Non-auditable items
- [List the items impossible to verify by static analysis: runtime metrics, JIT profiling, real GC pauses, real-world VRAM, etc.]Exit condition
- Project type detected and matching variant applied
- All 29 questions reviewed (scored 0-4 or marked N/A with justification)
- Verification commands run for each scored question
- Confidence level assigned per question
- Global score computed (excluding N/A)
- Report produced in the output format, with strengths/weaknesses, prioritized recommendations, and non-auditable items
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

