resolve: хвост задачи собран в один агентский запуск
Архивация change и синк документации уходят одному агенту одним заданием: второй шаг читает то, что оставил первый, и платить дважды за сбор того же контекста незачем. Гейт после правок документов доводит тот же агент, вычитку языка зовёт сам doc-sync. Коммит и закрытие задачи остаются оркестратору — они необратимы для учёта. В обслуживании синк тоже ушёл агенту. Журнал — тема 75.
This commit is contained in:
@@ -30,13 +30,12 @@ flowchart TD
|
||||
s4["4. opsx:apply — код, гейт,<br/>поведенческая верификация — агентом"]
|
||||
s5["5. разметка — review-scope по диффу:<br/>размер, сложность, метка, план тем"]
|
||||
s6["6. ревью кода по метке<br/>+ отработка замечаний агентом"]
|
||||
s7["7. opsx:archive"]
|
||||
s8["8. синк документации — av-dev:doc-sync"]
|
||||
s9["9. коммит работы — av-dev-git:commit"]
|
||||
s10["10. закрыть задачу — av-dev:task-track,<br/>вторым коммитом учёта"]
|
||||
s7["7. opsx:archive + синк документации —<br/>одним агентом"]
|
||||
s8["8. коммит работы — av-dev-git:commit"]
|
||||
s9["9. закрыть задачу — av-dev:task-track,<br/>вторым коммитом учёта"]
|
||||
|
||||
in --> s1
|
||||
s1 --> s2 --> s3 --> s4 --> s5 --> s6 --> s7 --> s8 --> s9 --> s10
|
||||
s1 --> s2 --> s3 --> s4 --> s5 --> s6 --> s7 --> s8 --> s9
|
||||
s5 -.->|"план задачи: темы и глубины"| s6
|
||||
s3 -.->|"скорректировать:<br/>правка спек и дизайна"| s3
|
||||
s6 -.->|"находка отменяет дизайн:<br/>меняются дельта-спеки"| s3
|
||||
@@ -326,21 +325,37 @@ flowchart TD
|
||||
единственный **независимый** артефакт о составе прогона: своей прозе здесь верить
|
||||
нельзя — она написана тем же, кто мог проход и пропустить.
|
||||
|
||||
### 7. Архивировать — `opsx:archive`
|
||||
### 7. Архивация и синк документации — одним агентом
|
||||
|
||||
Вызови Skill `opsx:archive`: change уезжает в архив, дельты вливаются в
|
||||
актуальные спеки. Не пропускай `openspec validate --strict` перед этим.
|
||||
**Оба шага уходят одному агенту, и это один запуск** (SKILL.md, «Кто пишет»).
|
||||
Работа здесь письменная от начала до конца: `opsx:archive` вливает дельты в
|
||||
актуальные спеки, `av-dev:doc-sync` правит документы канона, и обе правки идут по
|
||||
чек-листам своих скиллов, а не по суждению оркестратора. Разнесённые по двум
|
||||
запускам, они стоили бы двух заданий, двух возвратов и паузы между ними — при том
|
||||
что второй шаг читает ровно то, что оставил первый.
|
||||
|
||||
### 8. Синк документации
|
||||
В задании: корень проекта, идентификатор change, база диффа и **порядок** —
|
||||
сначала `opsx:archive` с `openspec validate --strict` перед ним, затем
|
||||
`av-dev:doc-sync`. Плюс требование довести гейт проекта до зелёного после правок:
|
||||
документы у многих проектов гейт проверяет, и красный гейт здесь остановил бы
|
||||
коммит следующим шагом.
|
||||
|
||||
**Вызови Skill `av-dev:doc-sync`**: он владеет содержимым документов канона и
|
||||
ведёт чек-лист синка.
|
||||
**Вычитку языка зовёт сам `av-dev:doc-sync`** — агента `doc-wording` по пачке
|
||||
правленых документов. Отдельным запуском её тянуть не надо, и в задании она не
|
||||
называется: правило живёт в том скилле, а не здесь.
|
||||
|
||||
**Правило одно и оно жёсткое: принуждённое отрицание.** Доклад обязан назвать
|
||||
**Возврат — адреса тронутого, исход валидации, чек-лист синка и исход гейта.**
|
||||
Чек-лист уезжает в доклад целиком, и переписывать его своими словами нельзя — это
|
||||
единственный след того, что каждый документ был назван.
|
||||
|
||||
**Правило, которое задаёт его форму, одно и оно жёсткое: принуждённое
|
||||
отрицание.** Доклад обязан назвать
|
||||
**каждый** документ канона — либо чем он обновлён, либо «не требуется, потому
|
||||
что…». Нетронутые группируются одной строкой с общей причиной. Список триггеров
|
||||
прозой уже проверен на живом проекте и дал 6 записей ADR на 43 изменения;
|
||||
работает только обязательное отрицание.
|
||||
работает только обязательное отрицание. **Требование стоит в задании агента** —
|
||||
без него возврат придёт перечнем тронутого, а тронутое без нетронутого не
|
||||
отличается от невыполненного шага.
|
||||
|
||||
**Список документов и их триггеров здесь не дублируется** — он в чек-листе скилла
|
||||
`av-dev:doc-sync`, и копия уже однажды разошлась с оригиналом, потеряв два
|
||||
@@ -351,7 +366,7 @@ flowchart TD
|
||||
задачу нельзя: документ, заведённый мимо канона, окажется вторым домом ровно
|
||||
тому, что канон потом заведёт своим.
|
||||
|
||||
### 9. Коммит
|
||||
### 8. Коммит
|
||||
|
||||
Коммить **в текущую ветку** (`git rev-parse --abbrev-ref HEAD`), сам ветку не
|
||||
создавай и не переключай, ничего не пушь.
|
||||
@@ -361,14 +376,14 @@ flowchart TD
|
||||
напиши сообщение сам и скажи строкой доклада, что форму коммита не сверял никто.
|
||||
Одна задача — один осмысленный коммит.
|
||||
|
||||
### 10. Закрыть задачу — **после коммита, не раньше**
|
||||
### 9. Закрыть задачу — **после коммита, не раньше**
|
||||
|
||||
**Вызови Skill `av-dev:task-track`** и попроси закрыть задачу как реализованную —
|
||||
он владеет форматом и двигает строку индекса сам. Путь к его скрипту не выясняй и
|
||||
индексы руками не правь: мост между плагинами — вызов скилла, а не путь.
|
||||
|
||||
**Порядок обязателен.** Закрытие удаляет файл задачи; сделанное до коммита оно
|
||||
оставило бы задачу закрытой без единого следа работы, если шаг 9 упадёт.
|
||||
оставило бы задачу закрытой без единого следа работы, если шаг 8 упадёт.
|
||||
|
||||
**Закрытие тоже коммитится — вторым коммитом, тут же.** Удаление файла задачи и
|
||||
правка индексов (их имена знает `av-dev:task-track`, не ты) — это правки в рабочем
|
||||
|
||||
Reference in New Issue
Block a user