Files
baozaotumao 871e0589cd refactor: skill 改为自包含(符合工业惯例),install 简化为整目录拷贝
- .claude/skills/new-project/ 自带 scripts/verify.sh:拷了即用、可移植,
  不再依赖 install 时从根 scripts/ 组装
- install-skill.sh 简化:本地整目录 cp -R / 远程按清单拉取
- check-docs.sh 增加一致性校验:根 scripts/verify.sh 与 skill 内副本必须相同
  (改了根副本需同步,CI/本地都会报漂移)
- README 更新 skill 自包含说明 + 文件树

取舍:接受 verify.sh 两份小重复,换 skill 自包含可移植——符合 Anthropic skills 惯例,
比'安装时组装'更专业、更好维护;漂移由 CI 兜底。
2026-06-02 01:07:04 -07:00

49 lines
1.5 KiB
Bash
Executable File

#!/usr/bin/env bash
# 把 new-project skill 安装到 ~/.claude/skills/(全局,任意项目可用)。
#
# skill 目录是自包含的(SKILL.md + scripts/verify.sh 都在 .claude/skills/new-project/ 内),
# 安装即整目录拷贝——符合 skill 自包含、可移植的惯例,无需"组装"。
#
# 用法:
# curl -fsSL https://raw.githubusercontent.com/baozaotumao2025/scaffold/main/scripts/install-skill.sh | bash
# 或在已克隆的仓库内:
# ./scripts/install-skill.sh
set -euo pipefail
SKILL_NAME="new-project"
DEST="$HOME/.claude/skills/$SKILL_NAME"
RAW_BASE="https://raw.githubusercontent.com/baozaotumao2025/scaffold/main/.claude/skills/$SKILL_NAME"
# skill 自包含的文件清单(新增文件时在此登记)
FILES=("SKILL.md" "scripts/verify.sh")
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
LOCAL_SKILL="$SCRIPT_DIR/../.claude/skills/$SKILL_NAME"
fetch() { # fetch <url> <dest>
if command -v curl &>/dev/null; then
curl -fsSL "$1" -o "$2"
elif command -v wget &>/dev/null; then
wget -qO "$2" "$1"
else
echo "错误:需要 curl 或 wget" >&2
exit 1
fi
}
mkdir -p "$DEST/scripts"
if [[ -d "$LOCAL_SKILL" ]]; then
echo "→ 从本地仓库整目录拷贝"
cp -R "$LOCAL_SKILL/." "$DEST/"
else
echo "→ 从 GitHub 拉取 skill 文件"
for f in "${FILES[@]}"; do
fetch "$RAW_BASE/$f" "$DEST/$f"
done
fi
chmod +x "$DEST/scripts/verify.sh"
echo "✓ 已安装 skill 到 $DEST"
echo " 在任意项目中打开 Claude Code,输入 /$SKILL_NAME 或描述\"新建项目\"即可触发"