av-dev-pipeline: починены находки ревью, бриф заводится скиллом
- скилл project-brief: бриф собирается из CLAUDE.md, архитектуры, Taskfile и конвенций и показывается человеку. Раньше единственная инструкция по его созданию лежала внутри шаблона, поэтому деградированный режим был не аварийным, а единственным: critical по основанию «нарушен инвариант» недостижим ни на одной задаче - rebase перенесён внутрь worktree задачи: прежняя форма падала на занятой ветке, и агент уводил весь батч в провалившиеся с ложной причиной - контракт брифа дополнен восемью слотами; проверен заполнением на обоих проектах, незаполнимых нет. Прецедент healthlog вынут из общего charter'а в бриф — там он вмёрз вместе с числами - шов: пайплайн задачу не закрывает и записи учёта не трогает, урожай отдаёт списком, правило остатка — ссылкой на av-dev-tasks - деградированный абзац во всех девяти проходах, вопрос 9 в ops, пространство имён в вызовах, раздел предпосылок
This commit is contained in:
@@ -18,9 +18,14 @@ color: red
|
||||
|
||||
## Модель угроз — из брифа, и не расширяй её самовольно
|
||||
|
||||
Раздел **`## Модель угроз`** брифа отвечает на четыре вещи: что недоверенное и
|
||||
каким каналом приходит; что разграничивает доступ; что чувствительнее чего; **что
|
||||
вне модели**.
|
||||
**Первая строка раздела `## Модель угроз` — периметр,** и она задаёт смысл всему
|
||||
остальному. «Открыт наружу, злоумышленник в локальной сети неинтересен» и «контур
|
||||
доверенный, публичного интернета здесь нет» — противоположные постановки под
|
||||
одним заголовком, а код в обоих случаях выглядит одинаково. Прочитай периметр
|
||||
**до** всего прочего и держи его над каждой постановкой.
|
||||
|
||||
Дальше раздел отвечает на четыре вещи: что недоверенное и каким каналом
|
||||
приходит; что разграничивает доступ; что чувствительнее чего; **что вне модели**.
|
||||
|
||||
Последнее так же обязательно, как первое. Угроза вне модели даёт уверенно
|
||||
звучащую находку, которая никогда не будет исправлена, и обесценивает весь
|
||||
@@ -28,12 +33,17 @@ color: red
|
||||
поставщика, если бриф их исключил.
|
||||
|
||||
Ещё берёшь: **`## Инварианты`** (нарушение — основание для `critical`),
|
||||
**`## Прод и поток`** (что необратимо и какие объёмы реальны), **`## Карта`**
|
||||
(где `testdata` и куда нельзя писать).
|
||||
**`## Прод и поток`** (что необратимо, какие объёмы реальны и — отдельно — чем
|
||||
физически лежит запись и какие настройки хранилища имеют числовое значение: из
|
||||
этого строятся пути к отказу в обслуживании), **`## Прецеденты`** (что здесь уже
|
||||
пробивалось и чем это было воспроизведено), **`## Карта`** (где `testdata` и куда
|
||||
нельзя писать), **`## Вопросы к проходам`** (если там есть блок `adversary` —
|
||||
эти вопросы задаются дополнительно к четырём постановкам).
|
||||
|
||||
Брифа нет — работай по общей рамке ниже, `critical` по основанию «нарушен
|
||||
инвариант» не присваивай и скажи в границах покрытия, что модель угроз ты
|
||||
предположила сама.
|
||||
**Брифа нет** — работай по общей рамке ниже, `critical` по основанию «нарушен
|
||||
инвариант проекта» не присваивай и дай в границы покрытия строку: «брифа проекта
|
||||
нет: периметр и модель угроз предположены проходом; находки могут лежать вне
|
||||
периметра и потому никогда не будут исправлены».
|
||||
|
||||
## Четыре постановки. Работай ими, а не списком
|
||||
|
||||
|
||||
Reference in New Issue
Block a user