Skip to content

feat(init): install the official Redis skills with lock-aware reporting - #1102

Open
VaskoAtanasovRedis wants to merge 3 commits into
feat/init/4-project-wiringfrom
feat/init/5-skills-install
Open

feat(init): install the official Redis skills with lock-aware reporting#1102
VaskoAtanasovRedis wants to merge 3 commits into
feat/init/4-project-wiringfrom
feat/init/5-skills-install

Conversation

@VaskoAtanasovRedis

@VaskoAtanasovRedis VaskoAtanasovRedis commented Aug 13, 2026

Copy link
Copy Markdown

Stacked on #1101. The official redis/agent-skills install with the PoC's lock semantics.

  • Primary path: npx -y skills add redis/agent-skills in the project directory; statuses are diffed from the CLI's own skills-lock.json (created / unchanged / updated). Verified live against all 8 official skills.
  • Unmanaged skill dirs are warned about before install and reported from disk truth afterwards (kept / updated). --skills-global reads names only from the user lock (its hash schema churns).
  • --skills-repo / $REDISCTL_INIT_SKILLS_REPO copies from a local checkout - offline-safe, and the seam that keeps the test suite hermetic. No npx and no checkout → skipped with the remedy.
  • Deviation: the PoC's clone-cache fallback is not ported (it needs network anyway, and a stale cache never refreshes). Skills are additive; onboarding still validates.

Tests: hermetic via the fixture checkout; one #[ignore] test codifies the real npx path.

Verify: run init twice in a scratch dir with a dead --url; first run installs 8 skills + lock, second reads all unchanged.

Testing

Init run

1-init-with-skills

Re-run

2-rerun-unchanged

Update: the skills CLI is now invoked as skills@latest (a stale npx cache could run an old CLI), and a failed install reports the installer's own error line instead of a generic "(offline?)" guess.

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
VaskoAtanasovRedis force-pushed the feat/init/5-skills-install branch from 478ff14 to d448666 Compare August 14, 2026 09:16
@VaskoAtanasovRedis
VaskoAtanasovRedis marked this pull request as ready for review August 18, 2026 13:34
…error

A stale npx cache can run an old skills CLI, and any failure was reported
as a generic '(offline?)' guess that hides the real cause. Pin skills@latest
so npx always resolves the current CLI, and lead the skipped note with the
installer's own first error line.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant