feat(init): install the official Redis skills with lock-aware reporting - #1102
Draft
VaskoAtanasovRedis wants to merge 2 commits into
Draft
feat(init): install the official Redis skills with lock-aware reporting#1102VaskoAtanasovRedis wants to merge 2 commits into
VaskoAtanasovRedis wants to merge 2 commits into
Conversation
VaskoAtanasovRedis
force-pushed
the
feat/init/5-skills-install
branch
from
August 13, 2026 08:16
334f71b to
4ffa607
Compare
VaskoAtanasovRedis
force-pushed
the
feat/init/5-skills-install
branch
from
August 13, 2026 08:20
4ffa607 to
9c29803
Compare
VaskoAtanasovRedis
force-pushed
the
feat/init/5-skills-install
branch
from
August 13, 2026 11:37
9c29803 to
3066d19
Compare
VaskoAtanasovRedis
force-pushed
the
feat/init/5-skills-install
branch
from
August 13, 2026 13:14
3066d19 to
478ff14
Compare
The standard skills CLI (npx skills add redis/agent-skills) is the primary path, with statuses diffed from the skills-lock.json it owns; unmanaged skill dirs are surfaced and their fate reported from disk truth. An explicit --skills-repo / REDISCTL_INIT_SKILLS_REPO checkout is copied directly, and --skills-global installs for the user. With neither npx nor a checkout the step is skipped with the remedy in the note - skills are additive, so the onboarding still stands (the PoC's clone-cache fallback is deliberately not ported). Two adjacent fixes surfaced by this slice's testing: the free-port probe now checks loopback and both wildcard families (Docker publishes ports on a dual-stack [::] listener the old IPv4 probe missed), and project-mutating commands run in the plan's cwd instead of the process cwd (sh_in), which the future MCP consumer depends on.
A solo-Claude checkout copy lands in .claude/skills but was reported as .agents/skills, and unmanaged-collision detection scanned only the shared layout - a skill the installer left in place could read as updated. Subjects now come from the actual destination, collisions scan both layouts, and disk truth is read from the probed path. Also in this slice's scope: a dry run with --skills-repo names the checkout instead of pretending to npx (fix(init): dry-run skills checkout instead of pretending to npx).
VaskoAtanasovRedis
force-pushed
the
feat/init/5-skills-install
branch
from
August 14, 2026 09:16
478ff14 to
d448666
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Stacked on #1101. The official redis/agent-skills install, with the PoC's managed-vs-user lock semantics.
What this slice does
npx -y skills add redis/agent-skills -s '*' -a <agent>... -y(claude→claude-code, vscode→github-copilot), run in the project directory. Statuses are diffed from theskills-lock.jsonthe CLI owns (v1computedHash): first runcreated, re-rununchanged, upstream changesupdated. Verified live: all 8 official skills install and re-read as unchanged.keptif the installer left them,updatedif it replaced them. The global scope (--skills-global) reads only the names from~/.agents/.skill-lock.json(its hash schema churns across versions) plus in-run content signatures.--skills-repo <dir>/$REDISCTL_INIT_SKILLS_REPOcopies from a local redis/agent-skills checkout directly - offline-safe, and the seam that keeps the test suite hermetic.skippedwith the remedy in the note. Deliberate simplification vs the PoC: its clone-cache + shallow-clone fallback is not ported (a user without npx needs network for the clone anyway, and a stale cache never refreshes). Skills are additive; the onboarding still validates.Two adjacent fixes surfaced by this slice's testing
free_portnow probes loopback + both wildcard families: Docker publishes ports on a dual-stack[::]listener the old IPv4-only probe missed - a leftover container holding 6379 madedocker runfail with "port is already allocated". This bug exists in feat(init): provision and validate a local Docker database through plan/apply #1100 as reviewed; the fix rides here (happy to backport if preferred).sh_in), not the process cwd - the CLI masked this (process cwd = project), but the future MCP consumer would have installed into the wrong directory.What it deliberately defers
redis-project-setupskill +.claude/skillssymlinks (next slice), MCP, wizard, cloud, products, telemetry.Test notes
REDISCTL_INIT_SKILLS_REPO; one#[ignore]test codifies the real npx path (network + npx).Verify by hand