Frontend development skills
JavaScript Skills-md for Claude, Codex & AI Agents
Free SKILL.md files that teach Claude, Cursor and other AI agents to audit and fix JavaScript failures that run silently: promises nobody handles, loops that finish before their work does, requests that cannot be cancelled and timers that never clear. Each skill runs a read-only scanner first and changes code only in batches you approve.
5 skills published so far in a set planned as 12: promises and async/await, AbortController cancellation, yielding to the main thread, error handling, and dynamic import and code splitting.
By Afeez Adebayo, Marketing, SEO & Growth Expert with 10+ years of experience.
Created 5 November 2026. Updated 7 November 2026. Free to use under CC BY 4.0.
Start with Promises and Async/Await if a loop finishes before its work does, a Node process dies on an unhandled rejection, or a batch fails without telling anyone. Start with AbortController Cancellation if a search box shows stale results, a timeout leaves work running, or MaxListenersExceededWarning appears. Start with Yield to the Main Thread if a click freezes the page, Lighthouse reports long tasks, or scheduler.yield() is in the code and the page still stalls.
Promises and Async/Await
promises-async-await · async · 3,460 words · start here
Find floating promises, forEach(async) and the wrong combinator with a scanner, then fix only the flagged lines.
AbortController Cancellation
abortcontroller-cancellation · async · 3,309 words
Fix fetches with no signal, timeouts that leave work running and stale responses with a scanner.
Yield to the Main Thread
yield-to-main-thread · performance · 3,478 words
Fix long tasks, forEach yields and scheduler.yield() mistakes with a scanner, a Chromium probe and a Safari fallback.
JavaScript Error Handling
javascript-error-handling · errors · 3,551 words
Fix empty catch blocks, lost causes, unchecked fetch responses and global handlers with a scanner, editing only flagged lines.
Dynamic Import and Code Splitting
dynamic-import-code-splitting · loading · 3,948 words
Fix failed chunk loads, stale chunks after a deploy, lazy() setup and import() hazards with a scanner, editing only flagged lines.
No skill matches that search. Clear it or choose All.
What is in this set
The set covers JavaScript behaviour that a scanner can point at and a test can confirm. Promises and Async/Await finds floating promises, forEach(async) loops, the wrong Promise combinator and swallowed errors. AbortController Cancellation finds fetches with no signal, timeouts that are never cleared, abort listeners that leak and effects that race. Both read the same MDN, DOM standard and Node.js pages, so they split the topic between them instead of repeating it.
Both scanners are heuristics. They read text, not a syntax tree, so a hit can be a false positive, and a clean scan shows only that the patterns they know are absent. Each skill says what it cannot see and tells the agent to run the project tests. MDN lists AbortSignal as Baseline widely available since April 2018 and Promise since July 2015, so the basics are safe to use. Newer methods such as AbortSignal.any carry a verify marker in the skills.
How to use these skills
Open a skill page, copy the file or download the .md and its scanner script, and add the folder to your skills directory in Claude, Cursor or another agent. Then ask the agent to use the skill on a folder of JavaScript or TypeScript you own. The scanners are Python scripts that need only the standard library.
Frequently asked questions
Who are the JavaScript skills for?
They are for frontend and Node developers, and for anyone who reviews JavaScript written by an AI tool. Each skill reads your files with a scanner, reports hazards by file and line, and edits only flagged lines in batches you approve.
Do these skills change my code without asking?
No. Each skill reports first and edits only after you approve a batch, on a branch under version control. It never pushes, merges or deploys, and it does not replay writes, payments or emails to test a fix against live services.
Do the scanners need Node or a build step?
No. The scanners are Python scripts that use only the standard library and read source files as text. That keeps them fast and dependency free, and it also means they cannot see types. Each skill points to type-aware linting for what a text scan misses.
Which JavaScript skill should I install first?
Install Promises and Async/Await first if code runs in the wrong order or rejections crash a process, because those faults are the most common. Add AbortController Cancellation when requests, timeouts or effects leave work running after the answer is no longer wanted.
