e07d57eea1
- scripts/check-docs.sh:校验 template/{backend,agent,frontend}/src 各层目录
及 .vscode/.claude-commands/.copier-answers/pnpm-workspace 都在 README 有记录
- .github/workflows/docs-check.yml:scaffold 仓库根级 CI(区别于 template/.github,
那是生成项目用的),改 template/ 或 README 时触发
- 仅作用于 scaffold 自身,不进生成项目、不属 skill
- README scripts 树补 check-docs.sh + docs-check.yml
44 lines
1.3 KiB
Bash
Executable File
44 lines
1.3 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# 校验 README.md 是否记录了 template/ 的架构基座目录,防止文档随模板改动漂移。
|
|
# 仅作用于 scaffold 仓库自身(不进生成项目、不属 skill)。
|
|
# 用法:./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
|
|
|
|
if [ "$fail" -eq 0 ]; then
|
|
echo "✓ README 已覆盖 template 的架构基座目录与关键产物"
|
|
else
|
|
echo ""
|
|
echo "→ 请更新 README.md 的「架构基座」章节与「脚手架内容」文件树后重试。"
|
|
exit 1
|
|
fi
|