#!/usr/bin/env bash
set -euo pipefail

ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
AGENTS_FILE="${ROOT_DIR}/AGENTS.md"
CLAUDE_FILE="${ROOT_DIR}/CLAUDE.md"

if [[ ! -f "${AGENTS_FILE}" ]]; then
  echo "check-entry-docs: source file missing: ${AGENTS_FILE}" >&2
  exit 1
fi

if [[ ! -f "${CLAUDE_FILE}" ]]; then
  echo "check-entry-docs: source file missing: ${CLAUDE_FILE}" >&2
  exit 1
fi

require_pattern() {
  local file="$1"
  local pattern="$2"
  local label="$3"

  if ! grep -Fq -- "${pattern}" "${file}"; then
    echo "check-entry-docs: ${label} 缺少关键内容: ${pattern}" >&2
    exit 1
  fi
}

for ref in \
  "docs/standards/05-development-workflow.md" \
  "docs/standards/06-documentation-system.md" \
  ".agents/skills/README.md"
do
  require_pattern "${AGENTS_FILE}" "${ref}" "AGENTS.md"
  require_pattern "${CLAUDE_FILE}" "${ref}" "CLAUDE.md"
done

require_pattern "${AGENTS_FILE}" '`CLAUDE.md` 是面向 Claude 的并行入口文档' "AGENTS.md"
require_pattern "${AGENTS_FILE}" '修改 `AGENTS.md` 时，必须同步检查并更新 `CLAUDE.md`' "AGENTS.md"
require_pattern "${AGENTS_FILE}" '修改 `CLAUDE.md` 时，必须同步检查并更新 `AGENTS.md`' "AGENTS.md"

require_pattern "${CLAUDE_FILE}" '本文件是 Claude Code 在本仓库中的正式入口文档' "CLAUDE.md"
require_pattern "${CLAUDE_FILE}" '`CLAUDE.md` 与 `AGENTS.md` 是并行入口' "CLAUDE.md"
require_pattern "${CLAUDE_FILE}" '如修改 `CLAUDE.md`，必须同步检查并更新 `AGENTS.md`' "CLAUDE.md"
require_pattern "${CLAUDE_FILE}" '如修改 `AGENTS.md`，必须同步检查并更新 `CLAUDE.md`' "CLAUDE.md"

if grep -Fq '轻量入口' "${CLAUDE_FILE}"; then
  echo "check-entry-docs: CLAUDE.md 仍包含旧的“轻量入口”表述，请改为并行正式入口。" >&2
  exit 1
fi

echo "entry docs are in sync"
