Use when adding, updating, or removing a `redislabs/client-libs-test` image tag used by the test stack — covers every place a Redis version → image-tag mapping lives so local `make test` and GitHub CI stay in sync.
npx skills add https://github.com/redis/go-redis --skill update-ci-image
The redislabs/client-libs-test image is referenced in six places (five live config + one doc). Miss one and either local make test and CI diverge, or a single CI job uses the wrong image. Always edit all relevant locations in one change.
| # | File | What lives here |
|---|------|-----------------|
| 1 | Makefile | CLIENT_LIBS_TEST_IMAGE ?= redislabs/client-libs-test:<tag> — default for local make test / make docker.start. |
| 2 | docker-compose.yml | x-default-image: &default-image ${CLIENT_LIBS_TEST_IMAGE:-redislabs/client-libs-test:<tag>} — fallback when the env var is unset. Should match the Makefile default. |
| 3 | .github/workflows/build.yml | redis_version_mapping bash assoc array (["8.X.x"]="<tag>"). Drives the benchmark job and the test-redis-ce matrix via run-tests. |
| 4 | .github/actions/run-tests/action.yml | Identical redis_version_mapping array — the composite action that the matrix jobs invoke. Keep in lockstep with build.yml. |
| 5 | .github/workflows/doctests.yaml | Hardcoded image: redislabs/client-libs-test:<tag> on the redis-stack service — doctests do not consult the mapping. |
| 6 | CONTRIBUTING.md | Prose line "By default the docker image … is redislabs/client-libs-test:<tag>." Documentation only — no CI impact, but goes stale silently. Update it to match the Makefile default. |
Makefile — replace the tag after redislabs/client-libs-test: on the CLIENT_LIBS_TEST_IMAGE line.docker-compose.yml — replace the tag in the :-redislabs/client-libs-test:<tag> default..github/workflows/build.yml — update the ["8.X.x"]="<tag>" line in redis_version_mapping..github/actions/run-tests/action.yml — update the matching ["8.X.x"]="<tag>" line..github/workflows/doctests.yaml — update the image: line only if doctests should run against this version. Doctests typically pin to the latest stable; check before changing.CONTRIBUTING.md — update the "By default the docker image … is redislabs/client-libs-test:<tag>." prose line to match the new Makefile default. This one is easy to forget because nothing breaks when it's stale.If the version that doctests run against (Makefile default) and the mapping for that same minor version diverge, you have a bug — they should resolve to the same tag.
.github/workflows/build.yml:- "<X.Y>.x" to both redis-version matrices (the benchmark job and the test-redis-ce job — they have separate lists).["<X.Y>.x"]="<tag>" to redis_version_mapping..github/actions/run-tests/action.yml — add the same ["<X.Y>.x"]="<tag>" entry to its redis_version_mapping.Makefile (REDIS_VERSION ?= and CLIENT_LIBS_TEST_IMAGE ?=) and docker-compose.yml..github/workflows/build.yml — drop the - "<X.Y>.x" line from both redis-version matrices and the ["<X.Y>.x"]="..." entry..github/actions/run-tests/action.yml — drop the same ["<X.Y>.x"]="..." mapping entry.Makefile / docker-compose.yml / doctests.yaml were pinned to this version, pick a replacement (usually the next-newest version still in the matrix) and update them too, along with the CONTRIBUTING.md prose line.custom-26172898734-debian for an unreleased server feature)Same as "update the tag," but think about scope:
Makefile / docker-compose.yml.REDIS_VERSION (the numeric 8.8 / 8.6 etc.) alone — it drives SkipBeforeRedisVersion gating in main_test.go, not the image. The custom image still reports its base version.After editing, search for any stale tag references:
# Use the Grep tool, not bash grep.
# Pattern: literal old tag, e.g. "8.8-rc1" or "client-libs-test:8.8"
Expected matches: zero in Makefile, docker-compose.yml, .github/**, and CONTRIBUTING.md. A reference in AGENTS.md or the testing skill documentation (e.g. "e.g. redislabs/client-libs-test:8.8-m03") is illustrative — leave it unless the doc is misleading after the change.
build.yml and run-tests/action.yml each declare their own redis_version_mapping. They are not deduped. Always edit both.build.yml. The benchmark job and the test-redis-ce job each have their own redis-version list. Adding/removing a version means editing both.doctests.yaml is hardcoded. It doesn't read the mapping. If the team intends "doctests follow the latest stable," verify the tag matches Makefile's default after any change.REDIS_VERSION when only swapping the image. The number gates version-specific test skips (SkipBeforeRedisVersion(8.8, ...)). A custom image built off 8.8 should keep REDIS_VERSION=8.8.CLIENT_LIBS_TEST_IMAGE=...; docker-compose.yml uses that env var first and falls back to its baked-in default. So the docker-compose default only matters when the Makefile isn't driving things — but it's still load-bearing for direct docker compose up calls. Keep it in sync.Use this skill when you develop, design, build, deploy, debug, migrate, or troubleshoot CloudBase (腾讯云开发, 云开发, TCB, 微信云开发) projects. Covers Web apps (React, Vue, Vite, Next, Nuxt, dashboards, 管理后台), 微信小程序, 小程序, uni-app, native/mobile (iOS, Android, Flutter, React Native) via HTTP API. Includes UI (页面, 界面, 登录页, 表单, form, dashboard, prototype, 原型), auth (登录, 注册, OAuth, 微信登录, publishable key), databases (NoSQL 文档数据库, MySQL, PostgreSQL/CloudBase PG, app.rdb(), queryPgDatabase/managePgDatabase, CRUD, security rules), 云函数 (serverless, scf_bootstrap, HTTP Functions), CloudRun (云托管, Dockerfile), 云存储 (file upload, hosting, 静态托管). Built-in AI (内置大模型, streaming, 流式输出, image generation, 图片生成, generateText, streamText, createModel, generateImage, TokenHub, Hunyuan, hunyuan-exp, DeepSeek, GLM, Token Credits 资源包, 小程序成长计划), 第三方大模型, 大模型接入, 大模型调用, LLM API, chatbot, AI 助手, AI agent, 智能体, AG-UI, LangGraph, LangChain. Ops (巡检, 诊断, health check, 日志, troubleshooting). Spec workflow (需求文档, 技术方案, requirements, tasks.md).
> Use this skill AUTOMATICALLY before writing any Higgsfield prompt. Query the memory databases for relevant past failures and pre-apply known fixes before the user even of the higgsfield-prompt skill, any mention of generating a video or image on Higgsfield, any MCSLA prompt construction. This skill should run SILENTLY in the background — don't announce it, just apply what's known. If the databases are empty, skip silently and proceed with normal prompt generation.
Corrects speech-to-text transcription errors in meeting notes, lectures, and interviews using dictionary rules and AI. Learns patterns to build personalized correction databases. Use when working with transcripts containing ASR/STT errors, homophones, or Chinese/English mixed content requiring cleanup.
Automates Apple Voice Memos (Mac Catalyst, no dictionary) via JXA using filesystem/SQLite access and System Events UI scripting. Use when asked to "automate Voice Memos", "export voice recordings", "access Voice Memos database", or "transcribe voice memos".
Create beautiful visual art in .png and .pdf documents using design philosophy. You should use this skill when the user asks to create a poster, piece of art, design, or other static piece. Create original visual designs, never copying existing artists' work to avoid copyright violations.
Creating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems. Create original algorithmic art rather than copying existing artists' work to avoid copyright violations.
Improves the quality of images, especially screenshots, by enhancing resolution, sharpness, and clarity. Perfect for preparing images for presentations, documentation, or social media posts.
Downloads videos from YouTube and other platforms for offline viewing, editing, or archival. Handles various formats and quality options.
Take redis/update-ci-image 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.