feat(install): add Mistral Vibe wiring target (parity with local-dev)
release / tag (push) Failing after 1s

Ports the Vibe wiring from local-dev's wire-skills.sh so this repo's installer
covers all four harnesses. Vibe uses a flat layout — ~/.vibe/skills/<name>.md
symlinked to the skill's SKILL.md file (not the directory, unlike Claude/Crush/
Antigravity). Added to both `task install` and install.sh, idempotent.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-07-04 00:13:42 +02:00
co-authored by Claude Opus 4.8
parent 1e29c6d1af
commit ef72982489
2 changed files with 47 additions and 1 deletions
+24
View File
@@ -19,6 +19,7 @@ CHECKOUT_DIR="${SKILLS_CHECKOUT_DIR:-$HOME/.local/share/skills}"
CLAUDE_GLOBAL_DIR="${CLAUDE_SKILLS_DIR:-$HOME/.claude/skills}"
CRUSH_DIR="${CRUSH_SKILLS_DIR:-$HOME/.config/crush/skills}"
ANTIGRAVITY_DIR="${ANTIGRAVITY_SKILLS_DIR:-$HOME/.gemini/antigravity/skills}"
VIBE_SKILLS_DIR="${VIBE_SKILLS_DIR:-$HOME/.vibe/skills}"
log() { printf '[skills] %s\n' "$*"; }
@@ -112,12 +113,35 @@ wire_claude_repo() {
done < <(list_skills)
}
wire_vibe() {
# Mistral Vibe reads a flat ~/.vibe/skills/<name>.md — link the SKILL.md
# file directly (not the skill directory, as the other harnesses do).
mkdir -p "$VIBE_SKILLS_DIR"
while IFS= read -r skill; do
[ -n "$skill" ] || continue
local target="$CHECKOUT_DIR/$skill/SKILL.md"
[ -f "$target" ] || continue
local link="$VIBE_SKILLS_DIR/$skill.md"
if [ -L "$link" ] || [ -e "$link" ]; then
local current
current=$(readlink "$link" 2>/dev/null || true)
if [ "$current" = "$target" ]; then
continue
fi
rm -rf "$link"
fi
ln -s "$target" "$link"
log "linked $link$target"
done < <(list_skills)
}
main() {
ensure_checkout
wire_claude_global
wire_claude_repo
wire_crush
wire_antigravity
wire_vibe
log "done — $(list_skills | wc -l | tr -d ' ') skill(s) wired at ref=$REF"
}