"""Правила фаз: порог вопроса владельцу записан там, где его прочтёт исполнитель.

Закрывает R13i.1: строка про «спрашивать только когда без ответа продолжать нельзя»
должна находиться грепом в phases/, а не только в спеке одного прогона.
"""

from __future__ import annotations

from pathlib import Path

PHASES_DIR = Path(__file__).resolve().parent.parent / "phases"


def test_ask_threshold_is_documented_in_phases() -> None:
    matches = []
    for path in PHASES_DIR.glob("*.md"):
        text = path.read_text(encoding="utf-8")
        if "без ответа продолжать нельзя" in text:
            matches.append(path.name)
    assert matches, (
        "правило порога для вопроса владельцу не найдено грепом в phases/ "
        "(ищем «без ответа продолжать нельзя»)"
    )


def test_gate_claims_are_treated_as_work_in_phases() -> None:
    """Правило «претензия гейта — список работы» должно жить в phases/.

    Без него исполнитель встаёт на красном гейте и ждёт владельца, хотя гейт уже
    перечислил, что именно доделать. Владелец жаловался ровно на это.
    """
    matches = []
    for path in PHASES_DIR.glob("*.md"):
        if "это список работы, а не остановка" in path.read_text(encoding="utf-8"):
            matches.append(path.name)
    assert matches, (
        "правило про претензии гейта не найдено грепом в phases/ "
        "(ищем «это список работы, а не остановка»)"
    )
