871e0589cd
- .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 兜底。
59 lines
2.0 KiB
Bash
Executable File
59 lines
2.0 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# 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)"
|
|
README="$ROOT/README.md"
|
|
fail=0
|
|
|
|
check_service_layers() {
|
|
local svc="$1" srcdir="$ROOT/template/$svc/src"
|
|
[ -d "$srcdir" ] || return 0
|
|
for d in "$srcdir"/*/; do
|
|
[ -d "$d" ] || continue
|
|
local name
|
|
name="$(basename "$d")"
|
|
if ! grep -q "$name" "$README"; then
|
|
echo "✗ template/$svc/src/$name/ 未在 README 记录"
|
|
fail=1
|
|
fi
|
|
done
|
|
}
|
|
|
|
for svc in backend agent frontend; do
|
|
check_service_layers "$svc"
|
|
done
|
|
|
|
# 顶层关键产物也应在 README 出现
|
|
for entry in ".vscode" ".claude/commands" ".copier-answers.yml" "pnpm-workspace.yaml"; do
|
|
if [ -e "$ROOT/template/$entry" ] && ! grep -q "$(basename "$entry")" "$README"; then
|
|
echo "✗ template/$entry 未在 README 记录"
|
|
fail=1
|
|
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 架构基座目录;skill verify.sh 与根一致"
|
|
else
|
|
echo ""
|
|
echo "→ 修复上述问题后重试(文档更新 / 同步 verify.sh)。"
|
|
exit 1
|
|
fi
|