Claude-skill-registry code-review-js

JavaScript-specific code review guidelines focusing on functional patterns and modern APIs

install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/code-review-js" ~/.claude/skills/majiayu000-claude-skill-registry-code-review-js && rm -rf "$T"
manifest: skills/data/code-review-js/SKILL.md
source content

JavaScript Code Review

Includes all guidelines from code-review skill, plus JavaScript-specific rules.

Prefer Functional Over OO

The reviewer SHOULD:

  • Prefer pure functions and data transforms over classes when state is not required.
  • Encourage small, composable utilities instead of deep inheritance trees.

The reviewer MUST:

  • Flag new classes that only wrap stateless helpers or act as namespaces.

Acceptable:

const formatUser = (user) => `${user.firstName} ${user.lastName}`;

Discouraged:

class UserFormatter {
  format(user) {
    return `${user.firstName} ${user.lastName}`;
  }
}

Use
switch
for Enum-like Values

The reviewer MUST:

  • Flag
    if/else if
    chains that branch on the same enum-like value when a
    switch
    is clearer.

Preferred:

switch (status) {
  case "idle":
    return renderIdle();
  case "running":
    return renderRunning();
  case "failed":
    return renderFailed();
  default:
    return assertNever(status);
}

Discouraged:

if (status === "idle") return renderIdle();
if (status === "running") return renderRunning();
if (status === "failed") return renderFailed();

Avoid Duplicated Code

The reviewer MUST:

  • Flag duplicated logic and suggest extracting helpers or shared utilities.

The reviewer SHOULD:

  • Prefer a single source of truth for calculations and formatting.

Use Modern JavaScript APIs When Available

The reviewer SHOULD:

  • Prefer modern APIs like
    Object.hasOwn
    ,
    Array.prototype.at
    ,
    flatMap
    ,
    replaceAll
    ,
    URL
    ,
    AbortController
    , and
    Promise.any
    when they improve clarity.
  • Confirm runtime targets or polyfills before requiring newer APIs.