#!/usr/bin/env python3
"""PostToolUse hook: 编辑 backend router 后提醒重抓 OpenAPI

历史教训(2026-04-06 commit 779b2f6):
脚本 scripts/ops/_export_openapi.py 被 Claude Opus 4.6 误归档到 _DEL/,
导致 28 天内 docs/contracts/openapi/backend-api.json 与代码漂移
(137 paths stale → 实际 167 paths,缺 30 个端点)。

Wave 1 F2-1A 恢复脚本 + F2-1B(本 hook)建立防御机制,
任何 router 改动后提醒重抓,确保 OpenAPI 静态导出不再 stale。
"""
import json
import re
import sys

try:
    data = json.load(sys.stdin)
except Exception:
    sys.exit(0)

fp = (data.get("tool_input") or {}).get("file_path", "")
if not fp:
    sys.exit(0)

rel = re.sub(r"^.*?NeoZQYY[/\\]", "", fp.replace("\\", "/"))

if re.search(r"^apps/backend/app/routers/.*\.py$", rel):
    print(json.dumps({
        "hookSpecificOutput": {
            "hookEventName": "PostToolUse",
            "additionalContext": (
                f"[openapi-sync] 已编辑后端 router: {rel} — "
                "如有新增/修改/删除端点,完成后须重抓 OpenAPI: "
                "`.venv/Scripts/python.exe scripts/ops/_export_openapi.py` "
                "(更新 docs/contracts/openapi/backend-api.json,避免静态导出 stale)"
            )
        }
    }))
