#!/usr/bin/env bash set -euo pipefail # Read hook input from stdin (JSON with tool_input.file_path) INPUT=$(cat) FILE_PATH=$(echo "$INPUT" | python3 -c "import sys,json; print(json.load(sys.stdin).get('tool_input',{}).get('file_path',''))" 2>/dev/null || echo "") # Only run for OpenAPI spec files case "$FILE_PATH" in */openapi/*.yaml|*/openapi/*.yml) ;; *) exit 0 ;; esac cd "$CLAUDE_PROJECT_DIR/backend" # Run validation (zero-config: structural validity only) if OUTPUT=$(npx @redocly/cli@latest lint src/main/resources/openapi/api.yaml --format=stylish 2>&1); then echo '{"hookSpecificOutput":{"hookEventName":"PostToolUse","additionalContext":"✓ OpenAPI spec validation passed."}}' else ESCAPED=$(echo "$OUTPUT" | python3 -c "import sys,json; print(json.dumps(sys.stdin.read()))") echo "{\"hookSpecificOutput\":{\"hookEventName\":\"PostToolUse\",\"additionalContext\":$ESCAPED}}" fi