Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Use when reviewing JavaScript that performs synchronous loops over large datasets, recursive tree traversals, or bulk DOM updates that may exceed 50 ms on mid-range devices.
.claude/skills/thedaviddias-scheduler-yield/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-02 | ✗→✓ | ▲ Improved | 26% | 0% |
| case-14 | ✗→✓ | ▲ Improved | -28% | 0% |
| case-17 | ✗→✓ | ▲ Improved | 1% | 0% |
| case-01 | ✓→✓ | = Same ✓ | -20% | 0% |
| case-03 | ✓→✓ | = Same ✓ | -5% | 0% |
Any JavaScript task longer than 50 ms blocks the browser's main thread, preventing it from processing clicks, keyboard events, and rendering frames. Yielding between chunks of work keeps Interaction to Next Paint (INP) low and makes the page feel responsive even during heavy computation.
Identify synchronous loops, recursive traversals, or bulk operations in this code that could run for more than 50 ms and block user input.
Refactor long synchronous tasks to yield to the browser between chunks using scheduler.yield() with a MessageChannel fallback.
Explain why tasks longer than 50 ms hurt INP, how scheduler.yield() works, and when to use it versus Web Workers.
Review event handlers, data transformation functions, and initialization routines for synchronous loops over large collections that could block input. Flag any loop where the total work could exceed 50 ms.
For full implementation details, code examples, and framework-specific guidance, see references/rule.md.
Rule page: https://frontendchecklist.io/en/rules/javascript/scheduler-yield
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | pass→pass | 14,248 | 9,892 | -31% | 1 | 1 | 0% | 2,880 | 2,295 | -20% | 0 | 0 | — |
case-02 | fail→pass | 10,939 | 11,689 | +7% | 1 | 1 | 0% | 2,068 | 2,611 | +26% | 0 | 0 | — |
case-03 | pass→pass | 17,596 | 15,033 | -15% | 1 | 1 | 0% | 3,093 | 2,952 | -5% | 0 | 0 | — |
case-04 | pass→pass | 3,854 | 2,289 | -41% | 1 | 1 | 0% | 675 | 733 | +9% | 0 | 0 | — |
case-05 | pass→pass | 9,738 | 8,339 | -14% | 1 | 1 | 0% | 1,793 | 1,942 | +8% | 0 | 0 | — |
case-06 | pass→pass | 13,574 | 11,702 | -14% | 1 | 1 | 0% | 2,514 | 2,695 | +7% | 0 | 0 | — |
case-07 | pass→pass | 10,447 | 8,100 | -22% | 1 | 1 | 0% | 1,957 | 1,839 | -6% | 0 | 0 | — |
case-08 | pass→pass | 13,098 | 10,521 | -20% | 1 | 1 | 0% | 2,636 | 2,288 | -13% | 0 | 0 | — |
case-09 | fail→fail | 12,529 | 8,876 | -29% | 1 | 1 | 0% | 2,428 | 2,012 | -17% | 0 | 0 | — |
case-10 | pass→pass | 13,995 | 8,827 | -37% | 1 | 1 | 0% | 2,582 | 1,873 | -27% | 0 | 0 | — |
case-11 | pass→pass | 12,327 | 10,828 | -12% | 1 | 1 | 0% | 2,070 | 2,153 | +4% | 0 | 0 | — |
case-12 | pass→pass | 13,420 | 8,261 | -38% | 1 | 1 | 0% | 2,284 | 1,764 | -23% | 0 | 0 | — |
case-13 | pass→pass | 15,386 | 9,768 | -37% | 1 | 1 | 0% | 2,715 | 2,110 | -22% | 0 | 0 | — |
case-14 | fail→pass | 10,010 | 5,452 | -46% | 1 | 1 | 0% | 1,835 | 1,313 | -28% | 0 | 0 | — |
case-15 | pass→pass | 15,676 | 10,568 | -33% | 1 | 1 | 0% | 2,859 | 2,216 | -22% | 0 | 0 | — |
case-16 | pass→pass | 10,293 | 7,032 | -32% | 1 | 1 | 0% | 1,820 | 1,591 | -13% | 0 | 0 | — |
case-17 | fail→pass | 9,754 | 7,523 | -23% | 1 | 1 | 0% | 1,681 | 1,700 | +1% | 0 | 0 | — |
case-18 | pass→pass | 12,463 | 8,510 | -32% | 1 | 1 | 0% | 2,005 | 1,806 | -10% | 0 | 0 | — |
case-19 | pass→pass | 12,108 | 12,069 | -0% | 1 | 1 | 0% | 2,263 | 2,683 | +19% | 0 | 0 | — |
case-20 | pass→pass | 13,090 | 12,376 | -5% | 1 | 1 | 0% | 2,452 | 2,875 | +17% | 0 | 0 | — |
case-21 | pass→pass | 15,814 | 11,767 | -26% | 1 | 1 | 0% | 2,567 | 2,350 | -8% | 0 | 0 | — |
case-22 | pass→pass | 14,072 | 12,312 | -13% | 1 | 1 | 0% | 2,418 | 2,603 | +8% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +14 percentage points is the difference between those two pass rates over the 22 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.