agentsclimarketplace

Neo javascript

Skill Benknightdark/neo-skills/skills/neo-javascript

Neo Skills 是專為現代 AI Agent 設計的全方位能力擴充套件。本專案透過標準化的通訊架構,為 AI 代理安裝可插拔的「技能模組 (Skills)」,使其不僅僅是一個聊天機器人,而是能轉化為具備「感知-推理-行動」能力的多領域專家。

Install
npx -y skills add Benknightdark/neo-skills --skill neo-javascript

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 7 stars7 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Use this skill when writing, reviewing, debugging, or modernizing JavaScript across browser, Node.js, and pure JS projects. Trigger for ES module/CommonJS issues, async patterns, functional array/set/iterator code, DOM/runtime behavior, or version-aware ECMAScript syntax.

SKILL.md

9.9 KB, as published. Nobody here has run it

Modern JavaScript (ES6+) Expert Skill

Trigger On

  • The user asks to write, debug, refactor, or review JavaScript code.
  • The project directory contains *.js, *.mjs, or JavaScript configuration files (e.g., eslint.config.js, vite.config.js).
  • HTML files (*.html) or Razor views (*.cshtml) contain inline <script> blocks or reference external .js files via <script src="...">.
  • The target runtime is a modern browser (Chrome 80+, Firefox 78+, Safari 14+) or a pure JS environment.
  • Code modernization is needed (e.g., converting var to const/let, callbacks to async/await, legacy scripts to ESM).

Workflow

  1. Perceive (Environment Awareness):
    • Inspect ESLint / Biome configuration to identify the project's ecmaVersion and coding conventions.
    • Determine runtime target: browser (check for DOM APIs, bundler config like vite.config.js, webpack.config.js).
    • Detect JavaScript embedded in HTML (*.html) or Razor views (*.cshtml): identify inline <script> blocks and external <script src="..."> references. For .cshtml files, note the interplay with Razor syntax (@ directives, @section Scripts).
    • Identify the effective ES version upper limit based on the runtime/transpiler configuration (e.g., Babel targets, TypeScript target, browserslist). For inline scripts without a build pipeline, default to the browser's native ES support.
  2. Reason (Planning Phase):
    • Evaluate the modernization level of the current code to determine the refactoring strategy.
    • In environments targeting older runtimes (e.g., IE11 via Babel), avoid using features without polyfill support, but prioritize using const/let, arrow functions, and template literals.
    • In modern environments (modern browsers), actively adopt new features to reduce boilerplate code.
    • Be aware of browser-specific concerns (DOM manipulation, Web APIs, rendering performance).
  3. Act (Execution Phase):
    • Write high-quality code using modern syntax to improve readability and maintainability.
    • Implement immutable data patterns (spread operators, Object.freeze, structuredClone, immutable array methods).
    • Utilize async/await and Promise composition for asynchronous operations.
    • Prefer ESM (import/export) as the standard module system.
  4. Validate (Standard Validation):
    • Validate strict equality (===) usage and absence of var declarations.
    • Check if asynchronous operations correctly handle errors (try/catch around await, .catch() on Promises).
    • Ensure code avoids common security pitfalls (no eval(), no prototype pollution, no innerHTML with unsanitized input).
    • Verify naming conventions follow community standards (camelCase for variables/functions, PascalCase for classes).

Feature Roadmap (ES6 - ES2025+)

ES6 & ES2016-ES2019 (Origin)

  • Arrow Functions: (a, b) => a + b concise function syntax with lexical this binding.
  • let / const: Block-scoped variable declarations replacing var.
  • Template Literals: `Hello, ${name}!` for string interpolation and multi-line strings.
  • Destructuring: const { id, name } = user; extract values from objects and arrays.
  • Default / Rest / Spread: Default parameters, ...rest parameters, and ...spread for arrays/objects.
  • Classes: class syntax for prototype-based inheritance with constructor, extends, and super.
  • Promises: new Promise((resolve, reject) => ...) for asynchronous flow control.
  • Modules: import / export for modular code organization (ES Modules).
  • Symbol / Map / Set: New primitive type and collection data structures.
  • String Methods (ES6): includes(), startsWith(), endsWith() for easier string searching.
  • Array Methods (ES6): Array.from(), Array.of(), find(), findIndex() for enhanced array manipulation.
  • Number/Math Methods (ES6): Number.isInteger(), Number.isNaN(), Math.trunc(), Math.sign().
  • Generators & Iterators: function* and for...of for lazy iteration.
  • async / await (ES2017): Syntactic sugar for Promise-based asynchronous code.
  • Object.values / Object.entries (ES2017): Iterate over object values and key-value pairs.
  • Rest / Spread Properties (ES2018): { ...obj } for object shallow cloning and rest extraction.
  • Promise.finally (ES2018): Execute cleanup logic regardless of fulfillment or rejection.
  • Async Iteration (ES2018): for await...of for consuming async iterables.
  • Array.flat / flatMap (ES2019): Flatten nested arrays and map-then-flatten in one step.
  • Object.fromEntries (ES2019): Convert key-value pairs back into an object.
  • Optional Catch Binding (ES2019): catch { } without requiring the error parameter.

ES2020 & ES2021 (Foundation)

  • Optional Chaining (?.): Safely access deeply nested properties without manual null checks.
  • Nullish Coalescing (??): Provide defaults only for null/undefined, unlike || which also catches 0, "", false.
  • BigInt: Arbitrary-precision integer arithmetic via 123n literal syntax.
  • Promise.allSettled(): Wait for all promises to complete regardless of rejection.
  • globalThis: Universal reference to the global object across all environments.
  • Dynamic import(): Load modules conditionally or lazily at runtime.
  • Logical Assignment (&&=, ||=, ??=): Combine logical operators with assignment for concise state updates.
  • String.prototype.replaceAll(): Replace all occurrences without regex.
  • Promise.any(): Resolve with the first fulfilled promise, reject only if all reject.
  • Numeric Separators: 1_000_000 for readable large numbers.

ES2022 & ES2023 (Productivity)

  • Top-level await: Use await directly in ESM modules without wrapping in an async function.
  • Error Cause ({ cause }): Chain errors to preserve root cause context.
  • Array.at(): Negative indexing for arrays, e.g., arr.at(-1) for the last element.
  • Object.hasOwn(): Safer, prototype-independent property check replacing hasOwnProperty.
  • Class Fields: Public and private (#field) instance fields and methods.
  • RegExp Match Indices (/d flag): Get start/end positions of captured groups.
  • Immutable Array Methods: toSorted(), toReversed(), toSpliced(), with() — return new arrays without mutation.
  • Array.findLast() / findLastIndex(): Search arrays from the end.

ES2024 & ES2025+ (Version-Specific Features)

  • Promise.withResolvers(): Destructure { promise, resolve, reject } for cleaner deferred patterns.
  • Object.groupBy() / Map.groupBy(): Group array elements by a classifier function.
  • Set Methods: union(), intersection(), difference(), symmetricDifference(), isSubsetOf(), isSupersetOf(), isDisjointFrom().
  • Iterator Helpers: .map(), .filter(), .take(), .drop(), .flatMap(), .toArray() on iterators.
  • RegExp.escape(): Safely escape special characters for use in RegExp construction.
  • Import Attributes: import data from './data.json' with { type: 'json' }.
  • Decorators (Stage 3): Class and method decorators for cross-cutting concerns.
  • Promise.try(): Safely start a promise chain from a synchronous or asynchronous function.
  • Well-formed Unicode Strings: String.prototype.isWellFormed() and toWellFormed().
  • Temporal API (Stage 3): A modern replacement for the Date object, providing robust date/time arithmetic.
  • Explicit Resource Management (Stage 3): using keyword with Symbol.dispose for deterministic cleanup.

Coding Standards

  • Variable Declarations: Always use const by default; use let only when reassignment is necessary. Never use var.
  • Modules: Use ESM (import/export) as the default module system. Use import() for dynamic/lazy loading.
  • Immutability: Prefer non-mutating array methods (toSorted, toReversed, with), spread operators, and structuredClone for deep copies.
  • Async Safety: Always wrap await in try/catch or chain .catch(). Never leave Promises unhandled. Use AbortController for cancellable operations.

Deliver

  • Runtime-Optimized Code: Provide the most appropriate modern syntax code based on the target runtime and ES version.
  • Modernization Insights: Provide specific refactoring suggestions for upgrading from older JavaScript syntax to new features (e.g., from callbacks to async/await, from var to const/let).
  • Syntax Explanations: Clearly explain the design intent and advantages behind the modern JavaScript features used.

Validate

  • Ensure the provided code complies with the syntax specifications of the target ES version and runtime.
  • Validate whether the code follows JavaScript best practices for error handling, null safety, and immutability.
  • Confirm the code has good readability and modern conventions (e.g., proper use of destructuring, template literals, ESM).

Documentation

Official References

Internal References

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.