# Docs Sync

> Keep ioredis documentation synchronized with code behavior. Use when an agent changes public APIs, options, Redis command support, examples, generated typings, connection behavior, Cluster/Sentinel behavior, Pub/Sub, pipelines, transactions, scan streams, reconnect behavior, TypeScript usage, or release-facing behavior that may require README or docs updates.

- Skill: `redis-ioredis/docs-sync` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add redis-ioredis/docs-sync`
- Raw SKILL.md: https://api.skillmd.com/api/skills/redis-ioredis/docs-sync/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: redis (https://skillmd.com/u/redis-ioredis)
- Updated: 2026-09-10
- Page: https://skillmd.com/skills/redis-ioredis/docs-sync

---


# Docs Sync

Use this skill to decide whether an ioredis change needs documentation, update the right docs, and keep examples aligned with tested behavior.

For broad documentation audits, option/API coverage checks, or unclear documentation scope, also read `references/doc-coverage-checklist.md` before deciding what to update.

## Workflow

1. Inspect the changed behavior.
   - Read the diff and the surrounding implementation.
   - Identify whether users must know a new capability, option, error case, event, command signature, return shape, or migration concern.
   - Treat TypeScript declarations and public JSDoc as documentation when command signatures, constructor options, or exported types change.

2. Find the documentation surface.
   - `README.md`: primary user-facing guide, examples, feature overview, options, and common workflows.
   - `lib/redis/RedisOptions.ts`: `RedisOptions`, `CommonRedisOptions`, option JSDoc, and `DEFAULT_REDIS_OPTIONS`.
   - `lib/cluster/ClusterOptions.ts`: `ClusterOptions`, cluster option JSDoc, and `DEFAULT_CLUSTER_OPTIONS`.
   - `lib/connectors/StandaloneConnector.ts` and `lib/connectors/SentinelConnector/types.ts`: connection option types that contribute to public constructor options.
   - `docs/`: generated TypeDoc output from public source comments.
   - `examples/`: runnable snippets that should match current API behavior.
   - `lib/index.ts` and public TypeDoc comments: exported API documentation surface.
   - `test/typing/`: executable documentation for TypeScript signatures.

3. Update docs when the change affects users.
   - Public option or constructor behavior: document option name, default, behavior, topology limitations, and Redis version constraints in JSDoc first; update README/examples when users need prose or usage guidance.
   - Redis command support: update generator config in `bin/`, regenerate `lib/utils/RedisCommander.ts`, and document only if README/docs mention related command groups or if the change affects command typing, return mapping, or examples.
   - Pub/Sub, sharded Pub/Sub, monitor, pipeline, transaction, Sentinel, Cluster, TLS, reconnect, or offline queue behavior: update the relevant README/docs section.
   - New or changed public exports from `lib/index.ts`: update TypeDoc comments and typing tests when the exported type or class is part of the supported API.
   - Breaking or compatibility-sensitive behavior: add explicit migration or caveat wording.
   - Internal-only refactors with no behavioral/API impact: state that no docs update is needed and why.

4. Keep examples honest.
   - Prefer short examples that compile against the current public API.
   - Avoid documenting behavior that is not covered by tests unless you also add or request coverage.
   - If an example requires a Redis version, topology, or protocol mode, say so near the example.
   - Use existing README style and terminology.

5. Verify documentation changes.
   - For TypeScript examples or declarations, run the focused tsd test or add one when appropriate.
   - For API docs comments, run `npm run docs` when the change affects generated docs.
   - For command typing changes, run `node bin/index.js` before validating generated typings.
   - For Markdown-only edits, inspect nearby formatting and links; run `npm run format-check` only when relevant files are covered by Prettier.

## Documentation Decision Checklist

- Does the change alter public exports from `lib/index.ts`?
- Does it add, remove, rename, or change JSDoc/defaults for `RedisOptions`, `CommonRedisOptions`, `ClusterOptions`, standalone connection options, or Sentinel connection options?
- Does it add, remove, or change a Redis command method signature?
- Does it change reply transformation, Buffer variants, callbacks, or Promise behavior?
- Does it affect connection lifecycle, retries, ready checks, offline queue, or subscriber mode?
- Does it affect Cluster routing, redirections, subscriber groups, Sentinel discovery, or TLS?
- Does it add an option, event, error condition, or environment assumption?
- Would a user need different code after this change?

If any answer is yes, update docs or explicitly explain why existing docs already cover it.

