feat: 重组为标准 skill 包结构 + 修复 verify.sh bash 3.2 兼容

- 新增 .claude/skills/new-project/SKILL.md(标准 skill 格式)
- install-skill.sh 安装时组装 SKILL.md + verify.sh,单一源无重复
- verify.sh 改用索引数组替代 declare -A,兼容 macOS bash 3.2
- log_pass/log_skip 显式 return 0,避免 set -e 下非 verbose 误退出
- README 改为 skill 优先;补全 copier.yml/scripts/template 入库
This commit is contained in:
baozaotumao
2026-06-01 21:19:45 -07:00
parent 167fa10dde
commit 39fe248f9f
53 changed files with 3744 additions and 55 deletions
+51
View File
@@ -0,0 +1,51 @@
#!/usr/bin/env bash
# 把 new-project skill 安装到 ~/.claude/skills/(全局,任意项目可用)。
#
# 单一源原则:verify.sh 只在仓库根 scripts/ 维护一份,
# 本脚本在安装时把它和 SKILL.md 组装进 ~/.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"
SKILL_MD_URL="$RAW_BASE/.claude/skills/$SKILL_NAME/SKILL.md"
VERIFY_URL="$RAW_BASE/scripts/verify.sh"
# 在仓库内运行时优先用本地文件,否则从 GitHub 拉取
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
LOCAL_SKILL_MD="$SCRIPT_DIR/../.claude/skills/$SKILL_NAME/SKILL.md"
LOCAL_VERIFY="$SCRIPT_DIR/verify.sh"
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 [[ -f "$LOCAL_SKILL_MD" && -f "$LOCAL_VERIFY" ]]; then
echo "→ 从本地仓库组装安装"
cp "$LOCAL_SKILL_MD" "$DEST/SKILL.md"
cp "$LOCAL_VERIFY" "$DEST/scripts/verify.sh"
else
echo "→ 从 GitHub 组装安装"
fetch "$SKILL_MD_URL" "$DEST/SKILL.md"
fetch "$VERIFY_URL" "$DEST/scripts/verify.sh"
fi
chmod +x "$DEST/scripts/verify.sh"
echo "✓ 已安装 skill 到 $DEST"
echo " 在任意项目中打开 Claude Code,输入 /$SKILL_NAME 或描述\"新建项目\"即可触发"