Give the anchor lint an uncapped tally by target root, because a zone counting its own red anchors by grep hits the output cap and reads zero, and put PD-438 under the heading its weight names

This commit is contained in:
heaven 2026-09-04 19:13:14 +03:00
parent 3839a86f65
commit ce612a2a19
2 changed files with 38 additions and 12 deletions

View file

@ -632,6 +632,19 @@ def main() -> int:
print("" + msg)
if len(problems) > CAP:
print(f" … ещё {len(problems) - CAP} не показано (кап вывода {CAP}, сначала тяжёлые)")
# ⚠ РАЗБИВКА, КОТОРАЯ НЕ КАПИТСЯ — и она здесь не для красоты. Зона считает «сколько красных
# целят в меня» грепом по строкам «✗», а их печатается не больше CAP, поэтому хвост уезжает
# под черту МОЛЧА и грep возвращает ноль там, где хитов восемь. Так и случилось 04.09:
# платформенная сессия доложила «в моей зоне красных нет», проверив обрезанный вывод.
# Строка ниже считает ВСЕ проблемы по КОРНЮ ЦЕЛИ якоря, независимо от капа.
by_target = {}
for _, msg in problems:
m = re.search(r"якор[ья] `([^`:]+)", msg) # «якорь …» и «токен якоря …» — обе формы
root = m.group(1).split("/")[0] if m else "?"
by_target[root] = by_target.get(root, 0) + 1
if by_target:
parts = " · ".join(f"{k} {v}" for k, v in sorted(by_target.items(), key=lambda kv: -kv[1]))
print(f" по КОРНЮ ЦЕЛИ (не капится, считай зону отсюда, а не грепом по ✗): {parts}")
print(f"\n--lint: {len(problems)} проблемных якорей в {tally['files']} живых доках")
# ⚠ Норма «гейт печатает, чего он НЕ проверяет» (D39.153 п.9г). Прежняя редакция молча
# проверяла только существование файла и переполнение номера — и дала ЗЕЛЁНЫЙ на четыре

File diff suppressed because one or more lines are too long