Files
portal/docs/superpowers/specs/2026-06-17-wall-read-block-bug-spec.md
T

60 lines
4.5 KiB
Markdown

# Спека — требования к заметке-багу «чтение под стеной» для claude-brain
## Цель
Зафиксировать требования к новому файлу-заметке о дефекте чтения в режиме
реализации под стеной «роутер-наставник» — для передачи в claude-brain. Документ
описывает контракт, перечень случаев и приоритет починки; сам файл-заметка
пишется отдельным шагом плана, не этим документом.
## Что фиксируем — суть бага {#B1}
**Контракт.** Заметка обязана одной фразой назвать дефект: в режиме реализации
(под опечатанным планом) чтение разрешено только по пути текущего шага; всё
остальное — включая файлы, появившиеся в ходе прогона, и собственный вывод
запущенных инструментов — читать нельзя (гейт ДР-1).
**Критерий.** В файле есть короткая формулировка сути в одно-два предложения.
## Случаи, где дефект бьёт {#B2}
**Контракт.** Заметка перечисляет конкретные сценарии: (1) свой вывод команды в
temp-файле; (2) забытое до печати плана чтение; (3) файл, созданный сторонним
сервисом/процессом во время прогона; (4) нечем проверить результат шага; (5)
ветвление по содержимому файла невозможно; (6) диагностика ошибки по внешнему
логу; (7) промежуточный артефакт в цепочке инструментов; (8) перечитать только
что записанное; (9) неожиданно найденный файл; (10) файлы от параллельной сессии.
**Edge-case.** Указать живой пример: на прогоне go-live аудита так не прочитался
вывод Nuclei и был пропущен шаг gitleaks.
**Критерий.** В файле — нумерованный список сценариев с коротким пояснением каждого.
## Связь с рассинхроном указателя {#B3}
**Контракт.** Заметка фиксирует, почему наивный escape на чтение опасен: стена
двигает счётчик шагов даже когда действие не прошло (десинк F-J); если пустить
чтение через ту же машинерию шагов — очередь сдвинется. Вывод: чтение не является
шагом (шаги — только Write/Edit/Bash/MultiEdit), поэтому разрешение на чтение
должно работать «сбоку от очереди», не трогая счётчик.
**Критерий.** В файле явно сказано: счётчик не должен двигаться на чтении.
## Приоритет починки {#B4}
**Контракт.** Заметка предлагает порядок: (1) счётчик шагов += 1 только при
успешно завершённом настоящем шаге (чинит и десинк, и делает чтение безопасным);
(2) пассивно разрешить чтение своего вывода и файлов, созданных после
опечатывания, без escape и без касания очереди; (3) escape-метка `read:<путь>`
крайний резерв, строго мимо счётчика шагов.
**Критерий.** В файле — список из трёх пунктов починки по приоритету, с пометкой,
что главное — починка счётчика, а escape — последнее.
```verified-context-json
[
{"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"}
]
```