fix(check-permissions): add project-status.py to DANGEROUS_PATTERNS #105
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Контекст
В ходе реализации issue #103 (добавление deny-правил для
project-status.pyвreviewer.md) обнаружена асимметрия в.opencode/scripts/check-permissions.py— валидаторDANGEROUS_PATTERNSсодержит паттерны дляpipeline-status.py(строки 15-22) иspec-status.py(строки 25-32), но НЕ дляproject-status.py.check-permissions.pyпроверяет толькоallow-правила (строка 151:if action != "allow": continue), поэтому deny-правила из issue #103 проходят корректно. Но если какой-либо агент получитallow-правило вида"python3 .../project-status.py": allow, валидатор его пропустит — в отличие от аналогичных правил дляpipeline-status.py/spec-status.py, которые будут помечены как опасные.Это нарушает ADR-019: все 3 oracle-скрипта (
pipeline-status.py,spec-status.py,project-status.py) должны вызываться ТОЛЬКО через нативные tools (pipeline-status/spec-status/project-status), НЕ через bash. Валидатор должен единообразно покрывать все 3 скрипта.Задача
Добавить 2 паттерна для
project-status.pyвDANGEROUS_PATTERNSв.opencode/scripts/check-permissions.py(симметрично с существующими дляpipeline-status.pyиspec-status.py).Контракты
DANGEROUS_PATTERNS(симметрично строкам 15-22 и 25-32):spec-status.py(после строки 32), передgit clone(строка 34)."agent"— те же правила, что уpipeline-status.py/spec-status.py.Инварианты
pipeline-status.pyиspec-status.py.check_rules(проверка толькоallow-правил — корректна).check-permissions.py— exit 0 на текущих конфигах (deny-правила из issue #103 не триггерят валидатор).tests/test_check_permissions.pyиtests/test_permissions.py:test_check_permissions_passes— зелёные.Граничные случаи
tests/test_check_permissions.pyмогут быть хардкоженыDANGEROUS_PATTERNSили их количество — проверить и обновить ожидания (+2 паттерна).project-status.py.Влияние на связанные компоненты
.opencode/scripts/check-permissions.py—DANGEROUS_PATTERNS.tests/test_check_permissions.py— возможно, обновить ожидания.tests/test_permissions.py:test_check_permissions_passes— black-box, не должен сломаться.Вне scope
reviewer.md/vision.md(это issue #103).check_rulesилиparse_agent_bash_rules.project-status.pyв другие agent .md файлы.Критерии приемки
uv run pytest tests/ -x -q— все зелёные.python3 .opencode/scripts/check-permissions.py— exit 0.DANGEROUS_PATTERNSесть 2 паттерна дляproject-status.py(симметрично сpipeline-status.py/spec-status.py)."python3 .opencode/scripts/project-status.py": allowкак опасное (если добавить тест).