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 兜底。
This commit is contained in:
baozaotumao
2026-06-02 01:07:04 -07:00
parent e07d57eea1
commit 871e0589cd
4 changed files with 394 additions and 27 deletions
+20 -5
View File
@@ -1,7 +1,8 @@
#!/usr/bin/env bash
# 校验 README.md 是否记录了 template/ 的架构基座目录,防止文档随模板改动漂移。
# 仅作用于 scaffold 仓库自身(不进生成项目、不属 skill)。
# 用法:./scripts/check-docs.sh 退出码 0=同步 / 1=有未记录目录
# scaffold 仓库自身的一致性检查(不进生成项目、不属 skill):
# 1) README 是否记录了 template/ 的架构基座目录(防文档漂移)
# 2) skill 自包含的 verify.sh 是否与根 scripts/verify.sh 同步(防两份漂移)
# 用法:./scripts/check-docs.sh 退出码 0=一致 / 1=有问题
set -euo pipefail
ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
@@ -34,10 +35,24 @@ for entry in ".vscode" ".claude/commands" ".copier-answers.yml" "pnpm-workspace.
fi
done
# ── skill 自包含校验:两份 verify.sh 必须一致 ──────────────────────────────
ROOT_VERIFY="$ROOT/scripts/verify.sh"
SKILL_VERIFY="$ROOT/.claude/skills/new-project/scripts/verify.sh"
if [ -f "$ROOT_VERIFY" ] && [ -f "$SKILL_VERIFY" ]; then
if ! cmp -s "$ROOT_VERIFY" "$SKILL_VERIFY"; then
echo "✗ scripts/verify.sh 与 skill 内副本不一致"
echo " 改了 scripts/verify.sh 后需同步:cp scripts/verify.sh .claude/skills/new-project/scripts/verify.sh"
fail=1
fi
else
echo "✗ verify.sh 缺失(根或 skill 内)"
fail=1
fi
if [ "$fail" -eq 0 ]; then
echo "✓ README 覆盖 template 架构基座目录与关键产物"
echo "✓ README 覆盖 template 架构基座目录skill verify.sh 与根一致"
else
echo ""
echo "→ 请更新 README.md 的「架构基座」章节与「脚手架内容」文件树后重试。"
echo "→ 修复上述问题后重试(文档更新 / 同步 verify.sh。"
exit 1
fi