Agent skill

Perf Fix With Proof

by Comfy-Org in Comfy-Org/ComfyUI_frontend

Ships performance fixes with CI-proven improvement using stacked PRs.

GPL-3.0Auto-check passedTesting & QA

Install Perf Fix With Proof

skills CLI
$ npx skills add Comfy-Org/ComfyUI_frontend --skill perf-fix-with-proof -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install Comfy-Org/ComfyUI_frontend perf-fix-with-proof --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/Comfy-Org/ComfyUI_frontend.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/perf-fix-with-proof .claude/skills/perf-fix-with-proof && rm -rf skills-src

Use ~/.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/

Facts

Skill name
perf-fix-with-proof
GitHub stars
2.1k
Token cost
~1.6k tokens
SKILL.md length
459 words
Files
1
Skills in repo
22
Repo updated
First seen
Licence
GPL-3.0

At a glance

Ships performance fixes with CI-proven improvement using stacked PRs.

  • Works in 8 steps: Create the test branch → Write the @perf test → Add test workflow asset (if needed) → …
  • Implementing a perf optimization and wanting to prove it in CI
  • SKILL.md covers Why Two PRs, Workflow, Test Design Guidelines and Examples, plus 1 more section
  • Calls git, pnpm and gh

What it does

Perf Fix With Proof is an agent skill from Comfy-Org/ComfyUI_frontend. Ships performance fixes with CI-proven improvement using stacked PRs. PR1 adds a @perf test (establishes baseline on main), PR2 adds the fix (CI shows delta). Use when implementing a perf optimization and wanting to prove it in CI.

Its SKILL.md is about 1.6k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Testing & QA, covering Failing and flaky tests. The repository describes itself as: Official front-end implementation of ComfyUI. The licence is GPL-3.0.

When your agent uses it

  • Implementing a perf optimization and wanting to prove it in CI
  • Tasks that involve Failing and flaky tests

Example prompts

  • “Use the perf-fix-with-proof skill to ship performance fixes with CI-proven improvement using stacked PRs”
  • “/perf-fix-with-proof”

Workflow steps

8 steps, taken from the step headings in SKILL.md.

  1. Create the test branch
  2. Write the @perf test
  3. Add test workflow asset (if needed)
  4. Verify locally
  5. Create PR1 (test-only)
  6. Get PR1 merged
  7. Create PR2 (fix) on top of main
  8. Verify the improvement shows in CI

What it can do on your machine

Read from SKILL.md and the folder at commit f9be289. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    Shell commands in SKILL.md call:

    • git
    • pnpm
    • gh

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use git, pnpm and gh, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Perf Fix With Proof loads about 1.6k tokens when it runs. Until then it costs about 63 tokens; SKILL.md has 459 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~63
When it runs · the whole SKILL.md, loaded when a task matches
~1.6k

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.

Safety

Auto-check passed

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.

SKILL.md

The full file from Comfy-Org/ComfyUI_frontend at commit f9be289, republished under its GPL-3.0 licence (© Comfy-Org). 459 words, ~1,649 tokens.

Download SKILL.mdSave it as .claude/skills/perf-fix-with-proof/SKILL.md (or your agent's skills folder).
name
perf-fix-with-proof
description
Ships performance fixes with CI-proven improvement using stacked PRs. PR1 adds a @perf test (establishes baseline on main), PR2 adds the fix (CI shows delta). Use when implementing a perf optimization and wanting to prove it in CI.

Performance Fix with Proof

Ships perf fixes as two stacked PRs so CI automatically proves the improvement.

Why Two PRs

The ci-perf-report.yaml workflow compares PR metrics against the base branch baseline. If you add a new @perf test in the same PR as the fix, that test doesn't exist on main yet — no baseline, no delta, no proof. Stacking solves this:

  1. PR1 (test-only) — adds the @perf test that exercises the bottleneck. Merges to main. CI runs it on main → baseline established.
  2. PR2 (fix) — adds the optimization. CI runs the same test → compares against PR1's baseline → delta shows improvement.

Workflow

Step 1: Create the test branch
bash
git worktree add <worktree-path> -b perf/test-<name> origin/main
Step 2: Write the @perf test

Add a test to browser_tests/tests/performance.spec.ts (or a new file with @perf tag). The test should stress the specific bottleneck.

Test structure:

typescript
test('<descriptive name>', async ({ comfyPage }) => {
  // 1. Load a workflow that exercises the bottleneck
  await comfyPage.workflow.loadWorkflow('<workflow>')

  // 2. Start measuring
  await comfyPage.perf.startMeasuring()

  // 3. Perform the action that triggers the bottleneck (at scale)
  for (let i = 0; i < N; i++) {
    // ... stress the hot path ...
    await comfyPage.nextFrame()
  }

  // 4. Stop measuring and record
  const m = await comfyPage.perf.stopMeasuring('<metric-name>')
  recordMeasurement(m)
  console.log(`<name>: ${m.styleRecalcs} recalcs, ${m.layouts} layouts`)
})

Available metrics (from PerformanceHelper):

  • m.styleRecalcs / m.styleRecalcDurationMs — style recalculation count and time
  • m.layouts / m.layoutDurationMs — forced layout count and time
  • m.taskDurationMs — total main-thread JS execution time
  • m.heapDeltaBytes — memory pressure delta

Key helpers (from ComfyPage):

  • comfyPage.perf.startMeasuring() / .stopMeasuring(name) — CDP metrics capture
  • comfyPage.nextFrame() — wait one animation frame
  • comfyPage.workflow.loadWorkflow(name) — load a test workflow from browser_tests/assets/
  • comfyPage.canvas — the canvas locator
  • comfyPage.page.mouse.move(x, y) — mouse interaction
Step 3: Add test workflow asset (if needed)

If the bottleneck needs a specific workflow (e.g., 50+ nodes, many DOM widgets), add it to browser_tests/assets/. Keep it minimal — only the structure needed to trigger the bottleneck.

Step 4: Verify locally
bash
pnpm exec playwright test --project=performance --grep "<test name>"

Confirm the test runs and produces reasonable metric values.

Step 5: Create PR1 (test-only)
bash
pnpm typecheck:browser
pnpm lint
git add browser_tests/
git commit -m "test: add perf test for <bottleneck description>"
git push -u origin perf/test-<name>
gh pr create --title "test: add perf test for <bottleneck>" \
  --body "Adds a @perf test to establish a baseline for <bottleneck>.

This is PR 1 of 2. The fix will follow in a separate PR once this baseline is established on main.

## What
Adds \`<test-name>\` to the performance test suite measuring <metric> during <action>.

## Why
Needed to prove the improvement from the upcoming fix for backlog item #<N>." \
  --base main
Step 6: Get PR1 merged

Once PR1 merges, CI runs the test on main → baseline artifact saved.

Show full SKILL.md (197 more words)Show less
Step 7: Create PR2 (fix) on top of main
bash
git worktree add <worktree-path> -b perf/fix-<name> origin/main

Implement the fix. The @perf test from PR1 is now on main and will run automatically. CI will:

  1. Run the test on the PR branch
  2. Download the baseline from main (which includes PR1's test results)
  3. Post a PR comment showing the delta
Step 8: Verify the improvement shows in CI

The ci-perf-report.yaml posts a comment like:

markdown
## ⚡ Performance Report

| Metric                | Baseline | PR (n=3) | Δ    | Sig |
| --------------------- | -------- | -------- | ---- | --- |
| <name>: style recalcs | 450      | 12       | -97% | 🟢  |

If Δ is negative for the target metric, the fix is proven.

Test Design Guidelines

  1. Stress the specific bottleneck — don't measure everything, isolate the hot path
  2. Use enough iterations — the test should run long enough that the metric difference is clear (100+ frames for idle tests, 50+ interactions for event tests)
  3. Keep it deterministic — avoid timing-dependent assertions; measure counts not durations when possible
  4. Match the backlog entry — reference the backlog item number in the test name or PR description

Examples

Testing DOM widget reactive mutations (backlog #8):

typescript
test('DOM widget positioning recalculations', async ({ comfyPage }) => {
  await comfyPage.workflow.loadWorkflow('default')
  await comfyPage.perf.startMeasuring()
  // Idle for 120 frames — DOM widgets update position every frame
  for (let i = 0; i < 120; i++) {
    await comfyPage.nextFrame()
  }
  const m = await comfyPage.perf.stopMeasuring('dom-widget-idle')
  recordMeasurement(m)
})

Testing measureText caching (backlog #4):

typescript
test('canvas text rendering with many nodes', async ({ comfyPage }) => {
  await comfyPage.workflow.loadWorkflow('large-workflow-50-nodes')
  await comfyPage.perf.startMeasuring()
  for (let i = 0; i < 60; i++) {
    await comfyPage.nextFrame()
  }
  const m = await comfyPage.perf.stopMeasuring('text-rendering-50-nodes')
  recordMeasurement(m)
})

Reference

ResourcePath
Perf test filebrowser_tests/tests/performance.spec.ts
PerformanceHelperbrowser_tests/fixtures/helpers/PerformanceHelper.ts
Perf reporterbrowser_tests/fixtures/utils/perfReporter.ts
CI workflow.github/workflows/ci-perf-report.yaml
Report generatorscripts/perf-report.ts
Stats utilitiesscripts/perf-stats.ts
Backlogdocs/perf/BACKLOG.md (local only, not committed)
Playbookdocs/perf/PLAYBOOK.md (local only, not committed)

© Comfy-Org, GPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .claude/skills/perf-fix-with-proof of Comfy-Org/ComfyUI_frontend.

Open the folder on GitHubat commit f9be289

Compare with similar skills

Perf Fix With Proof 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.

Perf Fix With Proof compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Perf Fix With Proof this skillComfy-Org/ComfyUI_frontend2.1k—~1.6kAutomated safety check: PassGPL-3.0
Swig Testswig/swig6.3k—~2.3kAutomated safety check: PassCustom licence
Triage CI FailureDataDog/datadog-agent3.8k—~2.3kAutomated safety check: PassApache-2.0
Dynamo Jira TicketDynamoDS/Dynamo2k—~1.1kAutomated safety check: PassApache-2.0
Fix Ready PRsfastrepl/anarlog9.5k—~1.4kAutomated safety check: PassMIT
Trx Analysismicrosoft/vstest969—~1.8kAutomated safety check: PassMIT

Similar skills

  • Swig Test

    swig/swig

    Run SWIG test suite for specific languages. An agent skill from swig/swig.

    6.3k GitHub stars~2.3k tokensUpdated 2 days ago
    Testing & QAAuto-check passed
  • Triage CI Failure

    DataDog/datadog-agent

    Official

    Classify a failed CI as either caused by an active incident, flakiness, or a true code regression.

    3.8k GitHub stars~2.3k tokensUpdated today
    Testing & QAAuto-check passed
  • Dynamo Jira Ticket

    DynamoDS/Dynamo

    Create structured Jira tickets for Dynamo from bug reports, failing tests, or feature requests.

    2k GitHub stars~1.1k tokensUpdated today
    Testing & QAAuto-check passed
  • Fix Ready PRs

    fastrepl/anarlog

    Inspect every open non-draft PR for CI failures and unresolved Cursor Bugbot findings, then fix them on the existing PR branches.

    9.5k GitHub stars~1.4k tokensUpdated today
    Testing & QAAuto-check passed
  • Trx Analysis

    microsoft/vstest

    Official

    Parse and analyze Visual Studio TRX test result files. An agent skill from microsoft/vstest.

    969 GitHub stars~1.8k tokensUpdated yesterday
    Testing & QAAuto-check passed
  • Wio

    workersio/skills

    Testing workflow skill for finding high-value test candidates, writing focused tests, generating realistic workloads, reviewing test value, and diagnosing test-suite health.

    200 GitHub stars~5.8k tokensUpdated 2 mo ago
    Testing & QAAuto-check passed

More from Comfy-Org/ComfyUI_frontend

All 22 skills in this repo
  • Adding Deprecation Warnings

    Comfy-Org/ComfyUI_frontend

    Adds deprecation warnings for renamed or removed properties/APIs.

    2.1k GitHub stars~775 tokensUpdated today
    Auto-check passed
  • Agent Integration Replay

    Comfy-Org/ComfyUI_frontend

    Replay recorded agent conversations as Playwright tests against the real chat panel and canvas.

    2.1k GitHub stars~805 tokensUpdated today
    Auto-check: notes
  • Codegen Transform

    Comfy-Org/ComfyUI_frontend

    Transforms raw Playwright codegen output into ComfyUI convention-compliant tests.

    2.1k GitHub stars~2k tokensUpdated today
    Auto-check passed
  • Comment Sicko

    Comfy-Org/ComfyUI_frontend

    Dispatches the comment-sicko subagent to hunt gratuitous comments in a PR/diff, triages its raw findings, and posts a polite, professional writeup.

    2.1k GitHub stars~1.1k tokensUpdated today
    Auto-check passed
  • Hardening Flaky E2E Tests

    Comfy-Org/ComfyUI_frontend

    Diagnoses and fixes flaky Playwright e2e tests by replacing race-prone patterns with retry-safe alternatives.

    2.1k GitHub stars~2.8k tokensUpdated today
    Auto-check passed
  • Publishing A New Package

    Comfy-Org/ComfyUI_frontend

    Publishes a new package from this monorepo to npm under @comfyorg and proves it is consumable from another repo.

    2.1k GitHub stars~1.8k tokensUpdated today
    Auto-check passed

Categories

Questions about Perf Fix With Proof

What does Perf Fix With Proof do?

Ships performance fixes with CI-proven improvement using stacked PRs. Perf Fix With Proof is an agent skill from Comfy-Org/ComfyUI_frontend. Ships performance fixes with CI-proven improvement using stacked PRs.

When should I use Perf Fix With Proof?

Perf Fix With Proof fits situations like: implementing a perf optimization and wanting to prove it in CI; tasks that involve Failing and flaky tests.

How do I install Perf Fix With Proof in Claude Code?

Run `npx skills add Comfy-Org/ComfyUI_frontend --skill perf-fix-with-proof -a claude-code`. Or copy the skill folder (.claude/skills/perf-fix-with-proof in Comfy-Org/ComfyUI_frontend) into .claude/skills/perf-fix-with-proof in your project. Claude Code loads it when a task matches its description.

How do I install Perf Fix With Proof in Codex?

Run `npx skills add Comfy-Org/ComfyUI_frontend --skill perf-fix-with-proof -a codex`. Or copy the skill folder (.claude/skills/perf-fix-with-proof in Comfy-Org/ComfyUI_frontend) into .agents/skills/perf-fix-with-proof in your project. Codex loads it when a task matches its description.

Can I use Perf Fix With Proof in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Comfy-Org/ComfyUI_frontend --skill perf-fix-with-proof -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/perf-fix-with-proof, .gemini/skills/perf-fix-with-proof, .github/skills/perf-fix-with-proof and .opencode/skills/perf-fix-with-proof in your project.

What does Perf Fix With Proof need to run?

Going by SKILL.md and its folder, Perf Fix With Proof needs the command-line tools its instructions call (git, pnpm and gh).

Does Perf Fix With Proof access the network?

SKILL.md contains no URLs. Its commands use git and gh, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Perf Fix With Proof safe to install?

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.

What licence does Perf Fix With Proof use?

Perf Fix With Proof is published under the GPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Perf Fix With Proof use?

About 1.6k tokens (SKILL.md is roughly 6.6k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Perf Fix With Proof?

Skills that share tags, products or a category with Perf Fix With Proof: Swig Test (swig/swig, 6.3k stars), Triage CI Failure (DataDog/datadog-agent, 3.8k stars), Dynamo Jira Ticket (DynamoDS/Dynamo, 2k stars) and Fix Ready PRs (fastrepl/anarlog, 9.5k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Perf Fix With Proof?

Comfy-Org (a GitHub organization) maintains it in Comfy-Org/ComfyUI_frontend, which has 2,056 GitHub stars. The repository holds 22 skills in this directory. The repository was last updated on October 9, 2026.

Source: Comfy-Org/ComfyUI_frontend on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.