redis/implement-command
Use when adding or updating Redis command support in ioredis, including command metadata checks, generator inputs under bin/, generated RedisCommander typings, return and argument overrides, functional command tests, optional tsd coverage, and validation.
npx skills add https://github.com/redis/node-redis --skill implement-command
Use this skill when adding a missing Redis command, correcting an existing command signature, changing command return types, or adding coverage for command-specific Buffer, callback, pipeline, or transformer behavior.
@ioredis/commands: upstream command metadata consumed by the generator.bin/index.js: generator entry point for lib/utils/RedisCommander.ts.bin/returnTypes.js: command return type map. Most new commands need an entry here.bin/argumentTypes.js: command-specific argument shape overrides when metadata or global mapping is insufficient.bin/typeMaps.js: global Redis argument category to TypeScript type mapping.bin/overrides.js: manual overloads for signatures the generator cannot express cleanly.bin/sortArguments.js: argument reordering for commands whose generated order is wrong.lib/utils/RedisCommander.ts: generated declarations. Regenerate it; do not hand-edit it.lib/Command.ts: command argument and reply transformer registry. Touch only when transformer behavior is needed.test/functional/commands/<command>.ts: runtime command coverage.test/functional/transformer.ts: transformer runtime coverage.test/typing/commands.test-d.ts: public command typing coverage.test/typing/transformers.test-d.ts: transformer typing coverage.bin/returnTypes.js.@ioredis/commands. If it is missing there, stop and report that the metadata package must be updated before ioredis can generate typed command support.lib/utils/RedisCommander.ts, bin/, test/functional/commands/, and test/typing/ for the command and related aliases.bin/returnTypes.js for return type corrections.hasToken and matchSubcommand in bin/returnTypes.js when they fit.bin/argumentTypes.js only for command-specific argument overrides.bin/typeMaps.js only for broad metadata category fixes that should affect multiple commands.bin/overrides.js only when generated overloads cannot express the supported API cleanly.node bin/index.js unless package.json later adds an explicit generation script.lib/utils/RedisCommander.ts.test/functional/commands/<lowercase-command>.ts.import Redis from "../../../lib/Redis"; and import { expect } from "chai";.let redis: Redis, beforeEach(() => { redis = new Redis(); }), and afterEach(() => { redis.disconnect(); }).test/functional/commands/, import isRedisVersionLowerThan from ../../helpers/util, and use before(async function () { ... this.skip(); }); use function syntax when calling this.skip().${command}_${caseName}_${Date.now()}.test/typing/commands.test-d.ts when the command has nontrivial overloads, return types, Buffer variants, callback typing, or option-dependent replies.expectType<Promise<...>>(redis.command(...)).expectError only for meaningful invalid signatures.test/typing/transformers.test-d.ts only when transformer APIs are affected.docs-sync skill when command support changes public signatures, return mapping, examples, or documented command behavior.node bin/index.js after generator input changes.test/helpers/*.ts.npm run build when generated declarations, public TypeScript, or generator output changed.npx tsd --files test/typing/commands.test-d.ts after building.code-change-verification skill before handoff to choose any additional validation.Report:
Take redis/implement-command from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.
The instructions reference npx.
Without those the skill loads but fails at the first command.