#!/usr/bin/env bash
# preflight.sh — pre-push gate. Blocks A/B/C verify config drift; Block D is a
# headless `dotnet build` to catch compile-time API drift; Block E runs
# `dotnet csharpier check` against HellionChat/; Block F runs markdownlint
# against the repo's *.md files. Test execution lives in the local Build-Suite
# repo and is NOT part of this preflight.

set -euo pipefail
ROOT="$(cd "$(dirname "$0")/.." && pwd)"
cd "$ROOT"

echo "==> preflight: Block A — version consistency"
./scripts/verify-version-consistency.sh

echo "==> preflight: Block B — manifest shape"
./scripts/verify-manifest-shape.sh

echo "==> preflight: Block C — changelog sync"
./scripts/verify-changelog-sync.sh

echo "==> preflight: Block D — plugin compile health"
dotnet build HellionChat/HellionChat.csproj --configuration Release --nologo --verbosity quiet

echo "==> preflight: Block E — csharpier reflow check"
dotnet csharpier check HellionChat/

echo "==> preflight: Block F — markdownlint"
# npx --yes avoids a global install; first run caches into ~/.npm/_npx/.
# Subsequent runs are sub-second.
npx --yes markdownlint-cli2 "**/*.md" "#node_modules" "#bin" "#obj" "#.claude" "#CLAUDE.md"

echo "==> preflight: ALL GREEN"
