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.
72
87%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
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.Establish command scope.
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.Inspect current support.
lib/utils/RedisCommander.ts, bin/, test/functional/commands/, and test/typing/ for the command and related aliases.Update generator inputs.
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.Regenerate declarations.
node bin/index.js unless package.json later adds an explicit generation script.lib/utils/RedisCommander.ts.Add focused runtime coverage.
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()}.Add typing coverage when useful.
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.Consider documentation.
docs-sync skill when command support changes public signatures, return mapping, examples, or documented command behavior.Validate.
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:
c0cd66c
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.