#!/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" echo "==> preflight: ALL GREEN"