refactor(skill): плейбук возвращён к оптике тонкого мастера
- Зачем: - субагенты должны сохранять внимание мастера и помогать результату, а не обслуживать обязательный конвейер. - Что: - семиступенчатый процесс заменён эвристиками выбора исполнителя, проверяющего и независимого ревьюера. - права агентов отделены от канала результата, а полная полезная нагрузка выведена из контекста мастера. - добавлены авторитетные договоры промптов, полевые заметки и handoff следующей сессии. - Проверка: - git diff --cached --check. - свежий обзор через writing-great-skills, все принятые находки закрыты.
This commit is contained in:
1 parent
7110a075ea
commit
f9ea5b8c44
10 files changed
+344
-290
No files matched your search
@@ -1,87 +1,88 @@
|
||||
# Скелеты нативных промптов
|
||||
# Сборка нативных промптов
|
||||
|
||||
Читай только тот раздел, который нужен на текущем этапе. Полный текст
|
||||
задания и отчёта живёт в обменном временном каталоге; вызов агента содержит
|
||||
короткую обёртку с абсолютными путями.
|
||||
Открывай только раздел выбранного приёма. Это справочник готовых договоров,
|
||||
а не обязательная последовательность. Постоянный текст живёт в
|
||||
[prompts/](prompts/):
|
||||
|
||||
## Общий договор результата
|
||||
- [result-contract.md](prompts/result-contract.md) — обычный результат;
|
||||
- [review-boilerplate.md](prompts/review-boilerplate.md) — слепое ревью;
|
||||
- [triage-header.md](prompts/triage-header.md) — закрытие находок;
|
||||
- [recheck-header.md](prompts/recheck-header.md) — узкая перепроверка;
|
||||
- [runtime-language.md](prompts/runtime-language.md) — язык временного обмена.
|
||||
|
||||
Полный отчёт, независимо от канала:
|
||||
Текст договора меняй только в его авторитетном файле. Здесь остаются выбор и
|
||||
механика сборки.
|
||||
|
||||
## Канал результата
|
||||
|
||||
Канал выбери по [основной оптике](../SKILL.md). Здесь важна только механика:
|
||||
для файлового канала задай уникальный `REPORT`, для сообщения не создавай
|
||||
вторую копию результата.
|
||||
|
||||
## Обычный исполнитель или исследователь
|
||||
|
||||
Параметрический файл содержит только нужные конкретной задаче поля:
|
||||
|
||||
```text
|
||||
ИТОГ: завершено | есть вопросы | заблокировано
|
||||
ДОКАЗАТЕЛЬСТВА: изменённые файлы, команды и итоговые счётчики
|
||||
РЕШЕНИЯ: только вопросы, которые должен решить мастер или пользователь
|
||||
НАХОДКИ: SEVERITY файл:строка — суть — как проверить
|
||||
СЛЕДУЮЩИЙ ШАГ: одно конкретное действие или «нет»
|
||||
GOAL: one verifiable goal
|
||||
BOUNDARIES: allowed and forbidden work
|
||||
READ FIRST: paths to contracts and examples
|
||||
CHECKS: commands this agent should run
|
||||
REPORT: path, only when the result will be reused
|
||||
```
|
||||
|
||||
Пустые разделы пропускаются. Сырой вывод и ход рассуждений не включаются.
|
||||
При файловом канале этот договор заполняется в файле, а финальное сообщение
|
||||
содержит только `ИТОГ`, счётчики и `АРТЕФАКТ: абсолютный путь`. При
|
||||
`read-only` договор возвращается один раз сообщением без поля `АРТЕФАКТ`.
|
||||
Добавь общий результат и язык временного обмена:
|
||||
|
||||
## Исполнитель
|
||||
|
||||
Файл задачи должен содержать:
|
||||
|
||||
```text
|
||||
ЦЕЛЬ: одна проверяемая цель
|
||||
КРИТЕРИИ: исчерпывающий список
|
||||
ГРАНИЦЫ: разрешённые и запрещённые изменения
|
||||
СНАЧАЛА ПРОЧИТАТЬ: пути к контрактам и образцам
|
||||
ПРОВЕРКИ: узкие команды разработки
|
||||
ОТЧЁТ: отдельный путь в обменном каталоге
|
||||
```bash
|
||||
cat "$D/params.md" "$P/result-contract.md" "$P/runtime-language.md" \
|
||||
> "$D/prompt.md"
|
||||
```
|
||||
|
||||
Короткий вызов: прочитать файл задачи и выполнить буквально. Агент с записью
|
||||
в обменный каталог сохраняет полный отчёт по заданному пути и финальным
|
||||
сообщением возвращает состояние, счётчики и путь. `read-only`-агент
|
||||
возвращает короткий результат один раз сообщением. Коммит не делать.
|
||||
Самодостаточный файл задачи, критерии и подробное обязательное чтение добавляй
|
||||
только когда они действительно нужны выбранной работе.
|
||||
|
||||
## Слепое ревью
|
||||
## Свежий ревьюер
|
||||
|
||||
Один канонический файл на всех ревьюеров:
|
||||
Общая часть содержит задачу, изменённый объём и известные проверки. Фокус
|
||||
содержит только выбранный для этого ревью класс риска. Для одного ревьюера:
|
||||
|
||||
```text
|
||||
АРТЕФАКТ: задача и изменённый объём
|
||||
ФОКУС: корректность, контракт, краевые случаи, честность тестов
|
||||
МАНДАТ: исследовать и проверять гипотезы, исходники не исправлять
|
||||
ФОРМАТ: severity, файл:строка, сценарий сбоя, доказательство, проверка
|
||||
ВЕРДИКТ: APPROVED | REVISE
|
||||
```bash
|
||||
cat "$D/review-common.md" "$D/review-focus.md" \
|
||||
"$P/review-boilerplate.md" "$P/runtime-language.md" \
|
||||
> "$D/review-prompt.md"
|
||||
```
|
||||
|
||||
Вызов каждого ревьюера добавляет только его фокус и канал результата:
|
||||
|
||||
- `workspace-write`: уникальный путь файла; финальное сообщение — вердикт,
|
||||
счётчики по severity и путь; исходники не менять, Git сверить до и после;
|
||||
- `read-only`: короткий индекс один раз финальным сообщением, без требования
|
||||
записать файл.
|
||||
Если осознанно выбраны несколько линий, каждому ревьюеру дай отдельный файл
|
||||
фокуса и отдельный путь результата. Не создавай вторую линию только ради
|
||||
симметрии или свежего треда того же семейства.
|
||||
|
||||
## Закрытие находок
|
||||
|
||||
Исполнителю передаются пути к исходным индексам ревью и такой короткий
|
||||
мандат:
|
||||
Передай исполнителю исходные индексы без пересказа. Обязательный
|
||||
`triage-params.md` задаёт путь полного отчёта и нужные проверки. `notes.md`
|
||||
добавляй только для новых решений мастера, которых у исполнителя ещё нет:
|
||||
|
||||
```text
|
||||
По каждой находке: исправить, сузить или отклонить через контракт и проверку.
|
||||
Не менять соседний объём. Полный отчёт решений записать по указанному пути.
|
||||
Финальным сообщением вернуть счётчики, проверки и путь.
|
||||
```bash
|
||||
cat "$P/triage-header.md" "$D/triage-params.md" "$D/review-a.md" \
|
||||
> "$D/fix-prompt.md"
|
||||
if [ -f "$D/review-b.md" ]; then
|
||||
cat "$D/review-b.md" >> "$D/fix-prompt.md"
|
||||
fi
|
||||
if [ -f "$D/notes.md" ]; then
|
||||
cat "$D/notes.md" >> "$D/fix-prompt.md"
|
||||
fi
|
||||
cat "$P/runtime-language.md" >> "$D/fix-prompt.md"
|
||||
```
|
||||
|
||||
Не переписывай находки в сообщение или новый файл: исходные индексы уже
|
||||
являются неизменяемым входом.
|
||||
|
||||
## Узкая перепроверка
|
||||
|
||||
Прежнему ревьюеру передаются путь к его исходному индексу и путь к отчёту
|
||||
решений исполнителя:
|
||||
Используй прежний тред ревьюера. Параметры содержат пути к его исходному
|
||||
индексу и отчёту решений, а также проверку, если она нужна:
|
||||
|
||||
```text
|
||||
Проверь только прежние находки и новые правки рядом с ними.
|
||||
По каждой: CLOSED | NOT_CLOSED | REJECTION_VALID | REJECTION_INVALID.
|
||||
Полный повторный обход не выполнять.
|
||||
```bash
|
||||
cat "$P/recheck-header.md" "$D/recheck-params.md" \
|
||||
"$P/runtime-language.md" > "$D/recheck-prompt.md"
|
||||
```
|
||||
|
||||
Финальное сообщение: `ALL_CLOSED` или `ISSUES_REMAIN`, счётчики и путь к
|
||||
файлу перепроверки.
|
||||
Не запускай перепроверку автоматически: она нужна для принятых исправлений,
|
||||
спорного отклонения или дорогой ошибки, а не для закрытия ритуального этапа.
|
||||
Reference in new issue
Block a user