Cursor supports bundling multiple skills in a single plugin, so the
Cursor marketplace now publishes one redis-development plugin - the
same directory the Claude Code plugin uses - instead of eight
per-skill plugins. Requested by the Cursor marketplace team for
user discoverability.
A `with_skill` run passes `skills/<skill-name>/` to the model under test via
addDirs and tells it to use the skill at that path. `evals.json` carries
`expected_output` and the grader's `expectations`, so while it sat at
`skills/<skill-name>/evals/<suite>/evals.json` the run handed the model the
answer sheet for the question it was being asked, along with the committed
baseline scores. Whether any past run read it cannot be established: only the
final text, grading, and timing are persisted, not the tool calls.
Everything under `skills/` is also what the marketplaces publish, so nesting
suites and baselines there shipped them to every user installing via
`npx skills add`.
Move the suites to `evals/<skill-name>/<suite-name>/` and point the runner,
aggregator, baseline promoter, and baseline validator at the new root. All 56
files move unchanged.
Two workarounds go away with the nesting: skill-validator no longer needs
`--allow-dirs=evals` to accept a skill directory, and the plugin sync no longer
excludes `evals` (only `.cursor-plugin` remains, which Cursor reads from
`skills/`). The published plugin is byte-identical, so this does not trigger a
republish.
The Claude Code plugin directory pins our entry to the `plugins/redis-development`
subdirectory, and its nightly bot advances that pin only when the subtree itself
changes. Every skill lived only in top-level `skills/`, so each nightly run
logged "subtree unchanged; suppressing no-op bump" and nothing since 3d6f255
reached users. The same subdirectory fetch is also why the installed plugin
reports no skills or agents: it materializes only `plugins/redis-development`,
where the eight skill entries were symlinks pointing outside the fetched tree.
Vendor real copies instead of pointing the symlinks the other way. Claude Code
and Cursor both drop symlinks that escape a plugin root on install, per
neondatabase/agent-skills, which hit this and reached the same conclusion; real
files also survive a Windows checkout, where git writes symlinks as plain text
unless core.symlinks is on. `skills/` stays the source of truth and keeps the
paths the agentskills CLI and the Cursor marketplace read.
Vendor only what an agent loads at runtime. `evals/` and `.cursor-plugin/` stay
out, so eval suites and baselines are not duplicated and an eval-only change
leaves the published plugin untouched.
Keep the copies honest without hand work: the pre-commit hook regenerates and
stages them, and `validate:plugin-skills` runs inside `validate:plugins` in both
the hook and CI. It fails on drift, on a file left behind by a deleted skill, on
a symlink reappearing on either side, and on a `SKILL.md` that is not a regular
file. The hook refuses when `skills/` has unstaged changes, so the committed
source and its published copies always agree.
* fix(validate): fail structure validation when --all finds no skills
`--all` walking to zero skill directories printed "No skill directories found."
and exited 0, so a broken walk reads as a clean pass. The check then reports
success having validated nothing, which is worse than failing: CI goes green
over an empty result.
`--changed` legitimately resolves to nothing when a PR touches no skill, so it
keeps the exit-0 path.
* ci: run validation on every pull request, not only those targeting main
Restricting the pull_request trigger to branches: [main] means a PR stacked on
another branch gets no checks at all, which reads as passing rather than as
unverified.
A matrix without repetitions runs at the runner's default of 1 and promotes
normally, but the run-count check skipped when the field was absent, silently
exempting that suite from partial-run detection forever. The check now
resolves repetitions ?? 1 like the runner, and a present-but-invalid value is
an error instead of a skip, since the runner never validates it and garbage
would corrupt the expected counts on both sides.
Two more from Bugbot on #37.
Model names alone cannot tell a full run from a killed one that touched every
model. The aggregate records each configuration's run count per model, which a
complete run pins to repetitions x eval count, so checkCoverage now verifies
that. A partial workspace aggregated and promoted by hand previously produced
a baseline that passed validation with scores from a subset of the runs.
A baseline aggregate without a models array skipped coverage checking
silently. Nothing else ever reads the committed aggregate, so absence must
fail here; the live matrix keeps its skip because the runner validates it
loudly before any spend.
Two more from Bugbot on #37.
checkMatrix compares the baseline's copied matrix against the suite's, which
are the same file, so it cannot tell whether the run behind the baseline
actually covered those models. A run killed partway and then promoted leaves a
baseline whose scores come from a subset of the matrix. checkCoverage now
compares the models the aggregate scored against the models the matrix lists,
in both directions. Three runs were killed mid-flight while producing these
baselines, so this was reachable rather than theoretical.
listDirectories treated every readdir failure as an empty directory, so a
permissions or I/O error on skills/ was indistinguishable from a repo with no
skills and exited 0 having validated nothing. Only ENOENT now counts as empty;
anything else is reported, and discovery errors reach the failure report
instead of taking the empty-repo exit.
Five more from Bugbot on #37.
The validator now mirrors the runner's own suite validation: evals.json's
skill_name and eval_suite are required rather than only checked when present,
and a non-array evals field reads as a validation error instead of throwing a
TypeError out of .map and aborting the run.
It also rejects duplicate eval ids and duplicate matrix models or
configurations. The runner has no duplicate handling and derives output paths
from the eval id and model, so repeats silently overwrite each other's results
rather than failing.
Retries no longer discard billed cost. A failed attempt is frequently still
charged, but only the successful result was recorded, so any run that retried
understated its spend. Failures now carry their CommandResult, and the
recovered cost is added to the recorded total alongside an attempts count and
a discarded_retry_usd field.
The runner compares model-matrix.json's eval_suite to evals.json's and
resolves the skill directory from evals.json's skill_name, so a one-sided
edit passed validation while `npm run eval` refused the suite. A skill_name
naming another real skill is worse than an error: the runner would resolve
that skill's directory and produce results for the wrong skill.
checkIdentity now compares evals.json's skill_name and eval_suite, and
model-matrix.json's eval_suite, against the directory, alongside the baseline
fields it already checked. The directory is the ground truth, since that is
what suite discovery walks.
Two more from Bugbot on #37.
The pre-commit hook ran its two checks on separate lines, so with no set -e
the hook exited with only the last command's status and a plugin-manifest
failure still allowed the commit. Verified: `false` then `true` exits 0.
Chained with && so either failure blocks.
The generated baseline README pinned --iteration to whatever was promoted, so
following its update command after a later run re-promoted the older results.
Same defect already fixed in the validator's hint. The generator now omits the
flag and lets eval:baseline resolve default_iteration; the eight committed
READMEs are corrected to match.
Regenerating the baselines to pick this up was rejected: promoting over an
existing baseline embeds a baseline_comparison of the baseline against itself,
so the READMEs are edited in place instead.
Two more from Bugbot on #37.
Discovering no suites exited 0, so a wrong working directory or removed
suite files reported success for having validated nothing. It now fails when
skills exist but no suite does, while a genuinely empty skills/ still passes.
Nothing compared the baseline's own skill and suite names against the
directory holding it, so another suite's promoted aggregate could sit in a
baselines/ directory and pass whenever the matrix and eval names aligned.
Three divergences from the runner, all found by Bugbot on #37:
The promote hint hardcoded --iteration iteration-1, but eval:baseline
resolves the iteration from the matrix default_iteration. Following the hint
after an iteration-2 run would re-promote the older results while the matrix
files still looked current, which is the stale baseline this check exists to
catch. The hint now omits the flag.
Suite discovery accepted any directory holding evals.json, while the runner
requires model-matrix.json alongside it, so a half-scaffolded directory was
asked for a baseline it could not yet produce.
Eval keys were built from raw names, but the aggregate trims them and falls
back to eval-<id> when blank, so a padded name would fail validation straight
after a valid promote.
The extra script and --skip passthrough existed to keep link checking out of
the pre-commit hook, which the hook can do by simply not running
skill-structure validation. Link checks only cost 3s, so speed was never the
reason; the reason is that a link failing on a flaky network fails an
otherwise good commit, and false positives train people into --no-verify.
The hook now runs the plugin-manifest and eval-baseline checks, which are
fast and deterministic. CI still runs the full validate, links included.
`npm run validate` was red on a fresh clone. It shells out to
skill-validator, a Go binary that is not an npm dependency and was
documented nowhere, and a missing binary was a hard failure, so the
pre-commit hook blocked every commit. It now prints the install command
and skips locally, while still failing in CI where a silent skip would let
unvalidated skills merge. CI reads the version from package.json so the
documented command cannot drift from the installed one.
Link checking made committing depend on network access: the validator
makes a live request per external link, and under --enforce an unreachable
docs host became 26 errors. Adds a --skip passthrough and a
validate:offline script for the pre-commit hook; CI still checks links.
Adds validate-eval-baselines, which requires every eval suite to carry a
baseline that still matches its evals and model matrix. Nothing previously
caught drift, so a report kept comparing against a stale baseline instead
of failing, which is how redis-core's 4.x baseline survived. Reordering the
models list is not a change and does not trip it.
Only redis-core had eval coverage, so a change to any other skill had
nothing to measure against. Adds suites for the remaining seven and
promotes a committed baseline for all eight.
Suites run on claude-opus-5 / claude-sonnet-5 / claude-haiku-4-5 with a
sonnet-5 judge; redis-core moves off its stale 4.x matrix so all eight are
comparable. Mean pass-rate deltas: iris-development +45,
redis-semantic-cache +32, redis-search +16, redis-observability +10,
redis-clustering +9, redis-security +7, redis-connections +6, redis-core +1.
The delta tracks how much a skill knows that the model does not. Skills
covering a Redis product API gain on every model; those restating general
Redis practice gain little above Haiku, though their evals also sit at
84-100% baseline on Opus, leaving little headroom to show a gain.
A matrix run is hundreds of `claude -p` calls, so a single transient
failure is near-certain. Both the generation and judge calls now retry
with backoff before giving up, instead of one blip aborting every
remaining suite.
The judge response is parsed inside the retry: it occasionally emits an
invalid JSON escape when quoting candidate output, which previously threw
out of an unguarded JSON.parse and killed the whole suite. Failures also
report stdout alongside stderr, since the CLI puts API errors on stdout
and leaves stderr empty.
Keep the Claude Code marketplace in lockstep with the Cursor bundle. The
redis-development plugin already serves the reworked redis-search skill via
symlink, but the version never moved, so Claude Code clients had no signal
to pull the update. Bump metadata.version and the redis-development entry
1.3.0 -> 1.4.0.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The redis-search skill was substantially reworked (schema references,
vector/hybrid guidance, client examples, HybridQuery 7.1.0 fix) but its
version fields still advertised 0.1.0, so the Cursor marketplace listing
stayed several versions behind. Bump redis-search to 1.0.0 across the
manifest Cursor reads (.cursor-plugin/plugin.json), the marketplace entry,
and the SKILL.md frontmatter, and bump the marketplace bundle to 1.4.0 so
a re-sync registers a new release.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Cursor Bugbot flagged a contradiction in the python-redis-py client
reference: §10 claimed the high-level `HybridQuery` builder ships in
redis-py 5.x, while python-redisvl.md (correctly) gates it on
redis-py >= 7.1.0.
Verified against upstream: redis/commands/search/hybrid_query.py is
present at the v7.1.0 tag and absent at v7.0.1 and v5.3.1. So 7.1.0 is
the floor.
- §10 version gate + builder intro: 5.x -> >= 7.1.0
- Added a `redis-py` (for HybridQuery) >= 7.1.0 row to the version table
- Added an ImportError troubleshooting row for redis-py < 7.1.0
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Addresses review feedback on #33:
- Remove the `redis-syntax-eval` git submodule and its `.gitmodules`
entry (benoitdion, DimoHG #2). The eval/testing infra should not be
vendored from a personal fork; it belongs in the repo stack or a
dedicated Redis repo, to be decided separately.
- Remove the `spec/` directory (0001–0007) and the "Spec-Driven
Workflow" section in AGENTS.md/CLAUDE.md (benoitdion, DimoHG #1).
These are working design docs that don't need to live in source
control for the merged skill.
The redis-search skill (SKILL.md, references/, plugin manifest) is
unchanged and self-contained — none of it referenced the submodule
or the specs.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Adds a short "Spec-Driven Workflow" section to both root agent-instruction
files explaining the /spec/ convention and pointing at spec 0007 as the
layout authority for the redis-search skill. The section is mirrored
verbatim across CLAUDE.md and AGENTS.md (the two are kept identical in
this repo).
Updates the spec/0007 iteration log with a 2026-05-29 entry recording
implementation completion, the §5.1 simplification (no metadata.json /
README.md per upstream convention), and the final validator state
(0 errors, 2 deliberate warnings).
Refs: spec/0007-redis-search-skill-consolidation.md
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Final cleanup of the spec 0007 migration:
- Removed skills/redis-query-engine/ and skills/redis-vector-search/ —
their content lives in skills/redis-search/ now.
- Updated .claude-plugin/marketplace.json: refreshed bundle description
and bumped metadata + plugin version 1.2.0 -> 1.3.0.
- Updated .cursor-plugin/marketplace.json: replaced redis-query-engine
and redis-vector-search entries with a single redis-search entry
(version 0.1.0, combined tags); bumped metadata.version to 1.3.0.
- Swapped plugins/redis-development/skills/ symlinks: dropped two old,
added redis-search.
- Updated root AGENTS.md and README.md skill listings to point at
redis-search instead of the two old skills.
- Added query-optimization.md link in SKILL.md §3 (clears one
skill-validator unreferenced-file warning).
- package-lock.json regenerated by npm install.
Local validation results (npm run validate):
- validate:claude-plugins PASS
- validate:cursor-plugins PASS
- validate:skill-structure PASS — 0 errors, 2 warnings on redis-search:
(1) 'deep nesting detected: references/clients/' — deliberate per
spec 0007 §6.4 (client refs grouped by audience).
(2) 'total reference files: 30426 tokens' — informational; the skill
consolidates two upstream skills + three full client references,
so the volume is inherent to scope.
Both are warnings, not errors; CI --enforce mode passes.
Refs: spec/0007-redis-search-skill-consolidation.md
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Three client-specific quick-reference docs covering the FT.* surface
in each supported client. Ported from branch
adriano-search-new-skills-set/skills/redis-development/references/clients/
with these adjustments:
- YAML frontmatter (scope / triggerWhen / appliesTo / minimumVersion
/ sourceUpstream / relatedReferences) stripped — the conditional-
loading machinery is replaced by direct SKILL.md links per spec 0007
cross-cutting decision §6.3.
- 'Read at most one client reference per task — see the router in
../README.md' trailers removed — no router file in the new layout.
- 'rule `search-X.md`' cross-references rewritten to flat reference
paths '[X.md](../X.md)'.
- LangCache prose updated to point at the upstream redis-semantic-cache
skill rather than the retired redis-development skill.
Bodies (covering Bicycle dataset CLI form, schema imports, FT.SEARCH /
FT.AGGREGATE / FT.HYBRID idioms, cursors, vector queries, debugging,
and version gates) are preserved verbatim.
- clients/python-redis-py.md (786 lines) — spec 0002
- clients/java-jedis.md (1018 lines) — spec 0003
- clients/python-redisvl.md (938 lines) — spec 0004
Refs: spec/0002-redis-py-client-reference.md, spec/0003-jedis-client-reference.md, spec/0004-redisvl-client-reference.md, spec/0007-redis-search-skill-consolidation.md
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Batch 1 of the spec 0007 migration. Creates skills/redis-search/ with:
- SKILL.md (220 lines): single routing doc covering FT.SEARCH / FT.AGGREGATE
/ FT.HYBRID command selection, schema basics, common queries, vector
similarity, hybrid retrieval, RAG, aggregations, and operations. Links
forward to references/*.md that land in subsequent batches.
- .cursor-plugin/plugin.json: redis-search marketplace entry (0.1.0).
Matches upstream skill layout (SKILL.md + references/ + .cursor-plugin/);
no README.md or metadata.json — those aren't used by other skills in the
repo.
Refs: spec/0007-redis-search-skill-consolidation.md
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Pulls in the redis-syntax-eval harness used by specs 0005 and 0006.
Submodule lives at repo root, tracking the baseline-2026-05 reference.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Carries forward the design history for the redis-search skill from
branch adriano-search-new-skills-set, plus the new spec 0007 proposing
consolidation of upstream redis-query-engine + redis-vector-search into
a single redis-search skill.
Specs 0001-0006 are copied verbatim — their content decisions are still
authoritative; only the target layout changes under spec 0007.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* chore(plugins): publish 8 spec-compliant skills via Redis plugin
* chore: retire legacy redis-development skill and rules compiler
* docs: rewrite root AGENTS.md for the spec-only era
* chore: fold skill-structure check into npm run validate (enforced)
* chore(ci): retire legacy build/validate steps; fold structure check in
* docs(contributing): mandate skill-validator + eval framework + screenshots
Replaces the single symlink to the legacy redis-development skill with
one symlink per spec-compliant skill that has migrated out of it. After
this commit, the Claude Code marketplace and Cursor marketplace publish
the same eight skills:
redis-core redis-vector-search
redis-connections redis-semantic-cache
redis-query-engine redis-clustering
redis-security redis-observability
Marketplace and plugin name stay as "redis-development" so anyone who
already installed the Redis Marketplace plugin keeps receiving updates
instead of having to reinstall.
Plugin and marketplace metadata versions bumped from 1.0.0 to 1.1.0 to
signal that the bundle's contents changed (8 new skills, 1 legacy skill
removed in a following commit).
Each new skill also gains a .cursor-plugin/plugin.json manifest so the
Cursor validator can resolve the per-skill metadata. Cursor's plugin
model maps one source = one skill directory under skills/, so the
cursor marketplace gets 8 separate plugin entries (one per skill)
instead of a single bundle entry.
Pure structural move of the iris team's existing skill to the
agentskills.io spec layout. The body content, section structure,
tables, and rule prose stay byte-for-byte identical — only the file
locations change and the SKILL.md gets minimal markup tweaks to stay
discoverable under the new layout.
Moves (git mv, history preserved):
rules/setup-cloud-service.md → references/setup-cloud-service.md
rules/setup-auth-token.md → references/setup-auth-token.md
rules/session-when-to-use.md → references/session-when-to-use.md
rules/session-add-event.md → references/session-add-event.md
rules/session-retrieval.md → references/session-retrieval.md
rules/ltm-bulk-create.md → references/ltm-bulk-create.md
rules/ltm-search.md → references/ltm-search.md
rules/ltm-organize.md → references/ltm-organize.md
rules/promotion-overview.md → references/promotion-overview.md
For each moved file: only the build-pipeline YAML frontmatter at the
top is stripped (`title`, `impact`, `tags`, etc. — fields the rules
compiler used). The actual rule content, including its H2 heading,
code blocks, and tables, is unchanged.
SKILL.md edits are minimal:
- Quick Reference list items get explicit links to references/<file>.md
so skill-validator recognizes the references as discoverable. The
rule names, descriptions, ordering, and section headings are kept
exactly as the iris team wrote them.
- "How to Use" sample paths changed from rules/*.md to references/*.md.
- The "Full Compiled Document" section is removed (AGENTS.md is gone).
Deletes the legacy files that no longer apply to a spec-format skill:
AGENTS.md, README.md, metadata.json, and the three rules/ template
files (_contributing.md, _sections.md, _template.md).
Drops the iris-development entry from
packages/redis-development-build/src/config.ts since iris no longer
goes through the rules compiler. The compiler itself stays in place
for now — redis-development is still rules-based and will be retired
in #29.
Validation:
- skill-validator check skills/iris-development --allow-dirs=evals → passed
- npm run validate → rules, claude-plugins, cursor-plugins all green
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Introduces skills/redis-observability/ covering the two observe-* rules
from skills/redis-development/rules/ in agentskills.io spec layout:
observe-metrics → references/metrics.md
observe-commands → references/commands.md
SKILL.md summarizes the key metrics to monitor (with alert thresholds),
the built-in commands for incident triage (SLOWLOG, INFO, MEMORY DOCTOR,
CLIENT LIST, FT.PROFILE), and a short pointer to Redis Insight as the
interactive GUI complement.
Additive only: the source observe-*.md rules under skills/redis-development/
remain in place so the legacy compiled AGENTS.md continues to serve
existing plugin consumers unchanged. They are removed in the final
cleanup PR alongside the rest of the rules/ tree.
Validation:
- skill-validator check skills/redis-observability → passed (0 warnings)
- npm run validate → rules + plugin validators green
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Introduces skills/redis-security/ covering the three security-* rules
from skills/redis-development/rules/ in agentskills.io spec layout:
security-auth → references/auth.md
security-acls → references/acls.md
security-network → references/network.md
SKILL.md frames the skill around three layers that all need to be in
place for a production-grade deployment: authentication + TLS, ACL-
based least-privilege users, and network exposure controls (bind +
firewall + rename-command). References carry the full Python and
Java code samples and configuration snippets.
Additive only: the source security-*.md rules under skills/redis-development/
remain in place so the legacy compiled AGENTS.md continues to serve
existing plugin consumers unchanged. They are removed in the final
cleanup PR alongside the rest of the rules/ tree.
Validation:
- skill-validator check skills/redis-security → passed (0 warnings)
- npm run validate → rules + plugin validators green
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Introduces skills/redis-clustering/ covering the two cluster-* rules
from skills/redis-development/rules/ in agentskills.io spec layout:
cluster-hash-tags → references/hash-tags.md
cluster-read-replicas → references/read-replicas.md
SKILL.md frames the skill around the two failure modes that bite most
new cluster users: CROSSSLOT errors on multi-key operations (solved by
hash tags) and overloading primaries with read traffic (solved by
replica reads). Reference files carry the full Python and Java code
samples.
Additive only: the source cluster-*.md rules under skills/redis-development/
remain in place so the legacy compiled AGENTS.md continues to serve
existing plugin consumers unchanged. They are removed in the final
cleanup PR alongside the rest of the rules/ tree.
Validation:
- skill-validator check skills/redis-clustering → passed (0 warnings)
- npm run validate → rules + plugin validators green
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Introduces skills/redis-semantic-cache/ covering the two semantic-cache-*
rules from skills/redis-development/rules/ in agentskills.io spec layout:
semantic-cache-langcache-usage → references/langcache-usage.md
semantic-cache-best-practices → references/best-practices.md
SKILL.md describes the cache-aside flow, similarity-threshold tuning
table, and per-task cache separation; reference files carry the SDK +
REST samples and best-practices detail. Preserves the upstream
"LangCache is in preview" callout.
Additive only: the source semantic-cache-*.md rules under
skills/redis-development/ remain in place so the legacy compiled
AGENTS.md continues to serve existing plugin consumers unchanged.
They are removed in the final cleanup PR alongside the rest of the
rules/ tree.
Validation:
- skill-validator check skills/redis-semantic-cache → passed (0 warnings)
- npm run validate → rules + plugin validators green
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Introduces skills/redis-vector-search/ covering the four vector-* rules
from skills/redis-development/rules/ in agentskills.io spec layout:
vector-algorithm-choice → references/algorithm-choice.md (HNSW vs FLAT)
vector-index-creation → references/index-creation.md (DIM, metric, etc.)
vector-hybrid-search → references/hybrid-search.md (filtered vector)
vector-rag-pattern → references/rag-pattern.md (full RAG pipeline)
SKILL.md summarizes index configuration, algorithm choice, hybrid
filtering, and the RAG pattern; the four reference files carry the
full code samples. The skill positions itself as a layer on top of
redis-query-engine, since vector fields live inside RQE indexes.
Additive only: the source vector-*.md rules under skills/redis-development/
remain in place so the legacy compiled AGENTS.md continues to serve
existing plugin consumers unchanged. They are removed in the final
cleanup PR alongside the rest of the rules/ tree.
Validation:
- skill-validator check skills/redis-vector-search → passed (0 warnings)
- npm run validate → rules + plugin validators green
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Introduces skills/redis-query-engine/ covering the six rqe-* rules from
skills/redis-development/rules/ in agentskills.io spec layout:
rqe-dialect → references/dialect.md
rqe-field-types → references/field-types.md
rqe-index-creation → references/index-creation.md
rqe-index-management → references/index-management.md
rqe-query-optimization → references/query-optimization.md
rqe-skip-initial-scan → references/skip-initial-scan.md
SKILL.md carries decision-oriented summaries (field-type table,
DIALECT 2 default, schema/prefix rule, alias-based zero-downtime
updates, SKIPINITIALSCAN guidance, query-optimization levers) with
pointers into references/ for full code samples.
Additive only: the source rqe-*.md rules under skills/redis-development/
remain in place so the legacy compiled AGENTS.md continues to serve
existing plugin consumers unchanged. They are removed in the final
cleanup PR alongside the rest of the rules/ tree.
Validation:
- skill-validator check skills/redis-query-engine → passed (0 warnings)
- npm run validate → rules + plugin validators green
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Introduces skills/redis-connections/ covering the five conn-* rules from
skills/redis-development/rules/ in agentskills.io spec layout:
conn-pooling → references/pooling.md (pool vs multiplex)
conn-pipelining → references/pipelining.md (batch round-trips)
conn-blocking → references/blocking.md (KEYS/SMEMBERS/SCAN)
conn-client-cache → references/client-cache.md (RESP3 caching)
conn-timeouts → references/timeouts.md (socket timeouts)
SKILL.md carries inline summary tables and key principles; full
Python/Java examples live in references/, loaded on demand.
Additive only: the source conn-*.md rules under skills/redis-development/
remain in place so the legacy compiled AGENTS.md continues to serve
existing plugin consumers unchanged. They are removed in the final
cleanup PR alongside the rest of the rules/ tree.
Validation:
- skill-validator check skills/redis-connections → passed (0 warnings)
- npm run validate → rules + plugin validators green
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>