Files
portal/docs/superpowers/specs/2026-06-17-wall-guide-lessons-spec-v2.md
T
Дмитрий b65066f17c docs(security): go-live security gate отчёт 17.06 + уроки прогона в wall-guide
Прогон security-go-live на main, локальная цель 127.0.0.1:8000 — вердикт NO-GO.
Блокеры: pg_anonymizer не установлен (ПДн в дампах), F-P1 (телефоны лидов не
вычищаются по сроку), P0 из STRIDE (SAAS_ADMIN_TEST_BYPASS / SSRF webhooks-test /
открытые ручки). Nuclei чисто (1 info php). Semgrep/ZAP — PENDING.

Гайд стены: новый раздел уроков — читать контекст до печати плана, запасной
канал вставки в чат, недетерминизм судьи и рассинхрон указателя F-J.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-17 14:34:39 +03:00

5.1 KiB

Спека v2 — требования к дополнению операционного гайда уроками прогона

Цель

Зафиксировать требования к дополнению операционного гайда docs/superpowers/router-mentor-wall-GUIDE.md: какие два урока прогона go-live security gate (17.06.2026) должны быть в нём отражены, с каким содержанием и в каком месте файла. Документ описывает контракт, edge-cases и критерии приёмки правки; сама правка выполняется отдельным шагом плана, не этим документом.

Урок 1 — весь контекст до печати плана

Контракт. В режиме реализации (под опечатанным планом) чтение вне пути текущего шага блокируется — нельзя прочитать ни исходники для анализа, ни даже собственный вывод инструмента (temp-файл сканера). Поэтому всю разведку (схема, роуты, конфиги, reference-файлы навыков, вывод сканеров) собирают ДО печати плана, в разговорном режиме, где чтение свободно.

Edge-case / запасной канал. Если контекст всё же понадобился в режиме реализации — владелец вставляет содержимое файла прямо в чат: это контекст разговора, а не вызов Read-инструмента, поэтому дисциплина чтения его не трогает.

Конвенция. Для аудита/разведки: сперва читаешь всё нужное, формулируешь находки, и только потом печатаешь спеку→план, где шаги уже не требуют новых чтений.

Критерий приёмки правки. В гайде есть пункт, явно предписывающий собрать чтения до печати плана и называющий приём «вставка в чат» как запасной канал.

Урок 2 — наблюдаемые дефекты проверяющего и указателя

Контракт. На прогоне зафиксированы два дефекта машинерии, о которых сессия должна знать заранее: (1) проверяющий план может выдать разный вердикт на байт-идентичном тексте между кругами (наблюдалось NO-GO с пометкой fatal на одной строке цели, затем GO на том же тексте); (2) рассинхрон указателя — ранний хук в цепочке сдвигает указатель шага, а более поздний хук роняет само действие, из-за чего шаг считается пройденным, хотя инструмент не выполнился (на прогоне так был пропущен первый шаг).

Edge-case. Перепечатка плана байт-в-байт не сбрасывает указатель (тот же идентификатор плана) — для сброса нужен план с другим именем/содержимым.

Конвенция. При недетерминированном вердикте — повторить печать (async-повтор); при рассинхроне указателя — новый план с другим именем либо завершить застрявший план резерв-меткой.

Критерий приёмки правки. В гайде есть пункт, называющий оба дефекта и отсылающий к уже описанным средствам восстановления (новый план / резерв-метка).

Куда вписать

Контракт. Новый раздел добавляется в существующий гайд как отдельная секция (заголовок второго уровня) рядом с разделом «Частые ошибки», не ломая остальную структуру и оглавление.

Критерий приёмки правки. Раздел присутствует в файле гайда; прежний текст не повреждён.

[
  {"id":"vc1","kind":"EXTRACTED","ref":"docs/superpowers/router-mentor-wall-GUIDE.md","anchor":"Читать ПЕРЕД работой под стеной"},
  {"id":"vc2","kind":"EXTRACTED","ref":"docs/security/2026-06-17-go-live-security-report.md","anchor":"SECURITY GO-LIVE REPORT"}
]