forked from bchanot/claude
chore(skills): drop find-skills — unused, and its update step began timing out
RC fix (soak day 1): `make update` step 7.5 failed on a 300s clone timeout of alchaincyf/find-skills. The skill (search the skills.sh registry from Claude) was never used; the discovery case stays reachable manually via `npx -y skills find <query>`. Removed from install-plugins.sh (install list + summary + comment), update-all.sh (refresh list), link.sh (NPX_EXTERNAL_SKILLS), lib/toggle-external.sh (MANAGED_TOOLS + case arms), plugin-advisor.md, .gitignore; local skills/find-skills symlink deleted. Memory-registry and test-fixture mentions kept — append-only history. toggle-external `list` verified post-removal; suites 8/8. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XpphkdTosUzokBDNG7PToS
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
28026d8403
commit
5a1fff5030
@@ -68,7 +68,6 @@ skills/impeccable
|
|||||||
|
|
||||||
# External skills installed via `npx skills add` — auto-created by link.sh
|
# External skills installed via `npx skills add` — auto-created by link.sh
|
||||||
skills/darwin-skill
|
skills/darwin-skill
|
||||||
skills/find-skills
|
|
||||||
|
|
||||||
# Context7 docs-lookup skill — installed by `ctx7 setup --claude --cli`
|
# Context7 docs-lookup skill — installed by `ctx7 setup --claude --cli`
|
||||||
# (install-plugins.sh Step 6, when absent) into ~/.claude/skills (a symlink to
|
# (install-plugins.sh Step 6, when absent) into ~/.claude/skills (a symlink to
|
||||||
|
|||||||
@@ -25,6 +25,9 @@ Format follows [Keep a Changelog](https://keepachangelog.com/).
|
|||||||
- `gitflow_finish` ignored its `<type> <name>` arguments and always merged the checked-out branch — naming a different branch silently merged the wrong one. The arguments are now an optional safety assertion: if given and not equal to the current branch, `finish` refuses with a clear error instead of merging. No-argument calls (the only real caller) are unchanged.
|
- `gitflow_finish` ignored its `<type> <name>` arguments and always merged the checked-out branch — naming a different branch silently merged the wrong one. The arguments are now an optional safety assertion: if given and not equal to the current branch, `finish` refuses with a clear error instead of merging. No-argument calls (the only real caller) are unchanged.
|
||||||
- `doctor.sh` false-warnings removed (a check that cries wolf is one you learn to ignore): `cargo` absence no longer claims "RTK unavailable" (RTK ships as a prebuilt binary); `check_symlink` no longer flags files reached through directory-level symlinks (e.g. `hooks/session-start.sh`); the GStack check counts the per-skill symlinks instead of a `skills/gstack` link that `link.sh` deliberately removes; the token-budget estimate is measured against the ~200k context window instead of a mis-framed "~11k session budget" that produced a false "92% CRITICAL".
|
- `doctor.sh` false-warnings removed (a check that cries wolf is one you learn to ignore): `cargo` absence no longer claims "RTK unavailable" (RTK ships as a prebuilt binary); `check_symlink` no longer flags files reached through directory-level symlinks (e.g. `hooks/session-start.sh`); the GStack check counts the per-skill symlinks instead of a `skills/gstack` link that `link.sh` deliberately removes; the token-budget estimate is measured against the ~200k context window instead of a mis-framed "~11k session budget" that produced a false "92% CRITICAL".
|
||||||
|
|
||||||
|
### Removed
|
||||||
|
- **find-skills** (alchaincyf) — skill-discovery helper dropped from the toolchain (install/update/link/toggle/advisor). Never used, and its `make update` refresh step had started failing on clone timeouts. The discovery use case stays reachable manually: `npx -y skills find <query>`.
|
||||||
|
|
||||||
## [4.0.0] — 2026-06-30
|
## [4.0.0] — 2026-06-30
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ Detect active plugins and project signals. Recommend enable/disable. Apply compa
|
|||||||
claude plugin list 2>/dev/null || echo "plugin-list-unavailable"
|
claude plugin list 2>/dev/null || echo "plugin-list-unavailable"
|
||||||
|
|
||||||
# External (non-marketplace) tools status — gstack, emil-design-eng,
|
# External (non-marketplace) tools status — gstack, emil-design-eng,
|
||||||
# darwin-skill, find-skills. Managed by lib/toggle-external.sh since
|
# darwin-skill. Managed by lib/toggle-external.sh since
|
||||||
# `claude plugin enable|disable` does not apply to them.
|
# `claude plugin enable|disable` does not apply to them.
|
||||||
bash "$HOME/.claude/lib/toggle-external.sh" list 2>/dev/null || echo "toggle-external-unavailable"
|
bash "$HOME/.claude/lib/toggle-external.sh" list 2>/dev/null || echo "toggle-external-unavailable"
|
||||||
|
|
||||||
@@ -353,8 +353,8 @@ RULE: IF `complex-arch` signal (multiple services, event bus, distributed system
|
|||||||
## TOGGLING EXTERNAL TOOLS
|
## TOGGLING EXTERNAL TOOLS
|
||||||
|
|
||||||
Marketplace plugins toggle via `claude plugin enable|disable <name>@<marketplace>`.
|
Marketplace plugins toggle via `claude plugin enable|disable <name>@<marketplace>`.
|
||||||
Non-marketplace tools (gstack per-skill symlinks, emil-design-eng, darwin-skill,
|
Non-marketplace tools (gstack per-skill symlinks, emil-design-eng, darwin-skill)
|
||||||
find-skills) toggle via `bash $HOME/.claude/lib/toggle-external.sh enable|disable <tool>`.
|
toggle via `bash $HOME/.claude/lib/toggle-external.sh enable|disable <tool>`.
|
||||||
|
|
||||||
When a recommendation flips the state of one of those tools, emit the exact
|
When a recommendation flips the state of one of those tools, emit the exact
|
||||||
command — never write files directly.
|
command — never write files directly.
|
||||||
|
|||||||
+1
-3
@@ -832,7 +832,6 @@ echo ""
|
|||||||
|
|
||||||
NPX_SKILLS=(
|
NPX_SKILLS=(
|
||||||
"alchaincyf/darwin-skill"
|
"alchaincyf/darwin-skill"
|
||||||
"alchaincyf/find-skills"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
# `skills add` resolves its target (.agents/skills/, skills-lock.json) RELATIVE
|
# `skills add` resolves its target (.agents/skills/, skills-lock.json) RELATIVE
|
||||||
@@ -985,7 +984,7 @@ echo ""
|
|||||||
# STEP 10 — REFRESH SYMLINKS (final, so this script is self-sufficient)
|
# STEP 10 — REFRESH SYMLINKS (final, so this script is self-sufficient)
|
||||||
# ============================================================
|
# ============================================================
|
||||||
# Steps 2/8/8.5 INSTALL skills (gstack submodule, emil/frontend/motion, npx
|
# Steps 2/8/8.5 INSTALL skills (gstack submodule, emil/frontend/motion, npx
|
||||||
# darwin/find-skills) that link.sh must symlink into ~/.claude/skills/. Since
|
# darwin-skill) that link.sh must symlink into ~/.claude/skills/. Since
|
||||||
# link.sh runs BEFORE this script in install.sh, those symlinks would be missing
|
# link.sh runs BEFORE this script in install.sh, those symlinks would be missing
|
||||||
# on a fresh run until link.sh is run again by hand. Re-run it here so
|
# on a fresh run until link.sh is run again by hand. Re-run it here so
|
||||||
# `make plugin` (and `make install`) finish complete — nothing left to do.
|
# `make plugin` (and `make install`) finish complete — nothing left to do.
|
||||||
@@ -1023,7 +1022,6 @@ echo " 🔄 frontend-design — distinctive frontend interfaces, anti-AI-
|
|||||||
echo " 🔄 impeccable — /impeccable design verbs + 45-rule deterministic detector (npx impeccable detect)"
|
echo " 🔄 impeccable — /impeccable design verbs + 45-rule deterministic detector (npx impeccable detect)"
|
||||||
echo " 🔄 design-motion-principles — motion/animation design, 3-designer lens (kylezantos)"
|
echo " 🔄 design-motion-principles — motion/animation design, 3-designer lens (kylezantos)"
|
||||||
echo " 🔄 darwin-skill — autonomous skill optimizer (npx skills, ~/.agents/skills/)"
|
echo " 🔄 darwin-skill — autonomous skill optimizer (npx skills, ~/.agents/skills/)"
|
||||||
echo " 🔄 find-skills — skill discovery helper (npx skills, ~/.agents/skills/)"
|
|
||||||
echo " 🔄 magic MCP — 21st-dev UI generation MCP (toggle: lib/toggle-external.sh enable magic)"
|
echo " 🔄 magic MCP — 21st-dev UI generation MCP (toggle: lib/toggle-external.sh enable magic)"
|
||||||
echo ""
|
echo ""
|
||||||
echo " All plugins installed at: user scope (~/.claude/plugins/)"
|
echo " All plugins installed at: user scope (~/.claude/plugins/)"
|
||||||
|
|||||||
@@ -20,7 +20,6 @@
|
|||||||
# gstack — per-skill symlinks populated by gstack's own setup
|
# gstack — per-skill symlinks populated by gstack's own setup
|
||||||
# emil-design-eng — single symlink → skills-external/emil-design-eng
|
# emil-design-eng — single symlink → skills-external/emil-design-eng
|
||||||
# darwin-skill — single symlink → ~/.agents/skills/darwin-skill
|
# darwin-skill — single symlink → ~/.agents/skills/darwin-skill
|
||||||
# find-skills — single symlink → ~/.agents/skills/find-skills
|
|
||||||
# magic — 21st-dev Magic MCP server (API key in .env)
|
# magic — 21st-dev Magic MCP server (API key in .env)
|
||||||
#
|
#
|
||||||
# For fine-grained activation (only design skills, only qa skills, only
|
# For fine-grained activation (only design skills, only qa skills, only
|
||||||
@@ -41,7 +40,7 @@ warn() { echo -e "${YELLOW}⚠${NC} $1"; }
|
|||||||
err() { echo -e "${RED}✗${NC} $1"; }
|
err() { echo -e "${RED}✗${NC} $1"; }
|
||||||
|
|
||||||
# All non-plugin tools this script can toggle.
|
# All non-plugin tools this script can toggle.
|
||||||
MANAGED_TOOLS=(gstack emil-design-eng darwin-skill find-skills magic)
|
MANAGED_TOOLS=(gstack emil-design-eng darwin-skill magic)
|
||||||
|
|
||||||
# Load MAGIC_API_KEY (and any other secrets) from $REPO/.env if present.
|
# Load MAGIC_API_KEY (and any other secrets) from $REPO/.env if present.
|
||||||
# Called only by the magic branch — other tools don't need env vars.
|
# Called only by the magic branch — other tools don't need env vars.
|
||||||
@@ -81,7 +80,7 @@ status_tool() {
|
|||||||
[ -d "$REPO/skills-external/emil-design-eng" ] || { echo "missing"; return; }
|
[ -d "$REPO/skills-external/emil-design-eng" ] || { echo "missing"; return; }
|
||||||
[ -e "$SKILLS_DIR/emil-design-eng" ] && echo "enabled" || echo "disabled"
|
[ -e "$SKILLS_DIR/emil-design-eng" ] && echo "enabled" || echo "disabled"
|
||||||
;;
|
;;
|
||||||
darwin-skill|find-skills)
|
darwin-skill)
|
||||||
[ -d "$HOME/.agents/skills/$tool" ] || { echo "missing"; return; }
|
[ -d "$HOME/.agents/skills/$tool" ] || { echo "missing"; return; }
|
||||||
[ -e "$SKILLS_DIR/$tool" ] && echo "enabled" || echo "disabled"
|
[ -e "$SKILLS_DIR/$tool" ] && echo "enabled" || echo "disabled"
|
||||||
;;
|
;;
|
||||||
@@ -116,7 +115,7 @@ disable_tool() {
|
|||||||
done < <(gstack_skills)
|
done < <(gstack_skills)
|
||||||
ok "gstack disabled ($moved symlinks moved)"
|
ok "gstack disabled ($moved symlinks moved)"
|
||||||
;;
|
;;
|
||||||
emil-design-eng|darwin-skill|find-skills)
|
emil-design-eng|darwin-skill)
|
||||||
if [ -e "$SKILLS_DIR/$tool" ]; then
|
if [ -e "$SKILLS_DIR/$tool" ]; then
|
||||||
rm -rf "${DISABLED_DIR:?}/${tool:?}"
|
rm -rf "${DISABLED_DIR:?}/${tool:?}"
|
||||||
mv "$SKILLS_DIR/$tool" "$DISABLED_DIR/$tool"
|
mv "$SKILLS_DIR/$tool" "$DISABLED_DIR/$tool"
|
||||||
@@ -158,11 +157,11 @@ enable_tool() {
|
|||||||
ok "gstack enabled ($moved symlinks restored)"
|
ok "gstack enabled ($moved symlinks restored)"
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
emil-design-eng|darwin-skill|find-skills)
|
emil-design-eng|darwin-skill)
|
||||||
local src
|
local src
|
||||||
case "$tool" in
|
case "$tool" in
|
||||||
emil-design-eng) src="$REPO/skills-external/$tool" ;;
|
emil-design-eng) src="$REPO/skills-external/$tool" ;;
|
||||||
darwin-skill|find-skills) src="$HOME/.agents/skills/$tool" ;;
|
darwin-skill) src="$HOME/.agents/skills/$tool" ;;
|
||||||
esac
|
esac
|
||||||
if [ -e "$DISABLED_DIR/$tool" ]; then
|
if [ -e "$DISABLED_DIR/$tool" ]; then
|
||||||
rm -rf "${SKILLS_DIR:?}/${tool:?}"
|
rm -rf "${SKILLS_DIR:?}/${tool:?}"
|
||||||
|
|||||||
@@ -90,7 +90,7 @@ done
|
|||||||
# absolute paths so the link stays valid regardless of where the
|
# absolute paths so the link stays valid regardless of where the
|
||||||
# repo is cloned (relative ../../ paths broke on repos deeper than
|
# repo is cloned (relative ../../ paths broke on repos deeper than
|
||||||
# one level below $HOME).
|
# one level below $HOME).
|
||||||
NPX_EXTERNAL_SKILLS=(darwin-skill find-skills)
|
NPX_EXTERNAL_SKILLS=(darwin-skill)
|
||||||
for _ext in "${NPX_EXTERNAL_SKILLS[@]}"; do
|
for _ext in "${NPX_EXTERNAL_SKILLS[@]}"; do
|
||||||
_target="$HOME/.agents/skills/$_ext"
|
_target="$HOME/.agents/skills/$_ext"
|
||||||
_link="$REPO/skills/$_ext"
|
_link="$REPO/skills/$_ext"
|
||||||
|
|||||||
@@ -388,7 +388,6 @@ echo "── Updating external skills (npx skills)..."
|
|||||||
if command -v npx &>/dev/null; then
|
if command -v npx &>/dev/null; then
|
||||||
NPX_SKILLS=(
|
NPX_SKILLS=(
|
||||||
"alchaincyf/darwin-skill"
|
"alchaincyf/darwin-skill"
|
||||||
"alchaincyf/find-skills"
|
|
||||||
)
|
)
|
||||||
for _src in "${NPX_SKILLS[@]}"; do
|
for _src in "${NPX_SKILLS[@]}"; do
|
||||||
_name="${_src##*/}"
|
_name="${_src##*/}"
|
||||||
|
|||||||
Reference in New Issue
Block a user