mister-wolf 2.15.0 → 2.15.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +20 -11
- package/README.ru.md +20 -11
- package/package.json +1 -1
- package/templates/.wolf/router.log +1 -1
- package/templates/base/AGENTS.md +3 -2
- package/templates/base/agents/executor-lead.md +4 -0
- package/templates/base/agents/mr-wolf.md +3 -2
- package/templates/base/agents/steward.md +4 -2
- package/templates/base/agents/worker-implementer.md +5 -2
- package/templates/base/agents/worker-researcher.md +4 -2
- package/templates/base/agents/worker-reviewer.md +9 -7
- package/templates/base/commands/analyze-doc.md +1 -1
- package/templates/base/commands/complain.md +1 -1
- package/templates/base/commands/doc-review.md +1 -1
- package/templates/base/playbooks/executor-lead-playbook.md +10 -5
- package/templates/base/playbooks/steward-nastavnik.md +5 -4
- package/templates/base/playbooks/worker-implementer-playbook.md +17 -7
- package/templates/base/playbooks/worker-researcher-playbook.md +5 -2
- package/templates/base/playbooks/worker-reviewer-playbook.md +21 -8
- package/templates/base/skills/finishing-a-development-branch/SKILL.md +19 -211
- package/templates/base/skills/receiving-code-review/SKILL.md +12 -28
- package/templates/base/skills/requesting-code-review/SKILL.md +11 -110
- package/templates/base/skills/test-driven-development/SKILL.md +18 -396
- package/templates/base/skills/using-git-worktrees/SKILL.md +15 -177
- package/templates/base/skills/using-skills/SKILL.md +38 -123
- package/templates/base/skills/verification-before-completion/SKILL.md +16 -157
- package/templates/base/skills/wolf-brainstorm/SKILL.md +17 -168
- package/templates/base/skills/wolf-debug/SKILL.md +15 -281
- package/templates/base/skills/wolf-design/SKILL.md +16 -35
- package/templates/base/skills/wolf-execute/SKILL.md +13 -101
- package/templates/base/skills/wolf-handoff/SKILL.md +22 -88
- package/templates/base/skills/wolf-plan/SKILL.md +18 -181
- package/templates/base/skills/wolf-review/SKILL.md +25 -64
- package/templates/base/skills/wolf-sdd/SKILL.md +17 -248
- package/templates/base/skills/wolf-skill-intake/SKILL.md +14 -57
- package/templates/base/skills/wolf-testplan/SKILL.md +15 -27
- package/templates/base/skills/writing-skills/SKILL.md +16 -30
- package/templates/opencode/plugins/wolf-router.ts +2 -1
- package/templates/opencode/plugins/wolf-session-start.js +11 -9
|
@@ -1,293 +1,27 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: wolf-debug
|
|
3
|
-
description: "
|
|
3
|
+
description: "Исследуй баг, падение проверки или неожиданное поведение: воспроизведение, evidence, гипотезы, изолированные эксперименты и регрессионный фикс. Различай устранение причины и аварийное снижение ущерба."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
#
|
|
6
|
+
# Систематическая отладка
|
|
7
7
|
|
|
8
|
-
##
|
|
8
|
+
## Процесс
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
1. Зафиксируй симптом, ожидаемое, revision, среду, частоту, точные шаги и исходный лог. Не воспроизводится — сохраняй наблюдение и собирай данные, не объявляй причину установленной.
|
|
11
|
+
2. Проверь недавние изменения и работающий аналог. Прочитай относящиеся к проблеме контракты и зависимости; не требуй читать несвязанный большой референс целиком.
|
|
12
|
+
3. Трассируй входы/выходы на подозреваемых границах. Логируй минимальные метаданные с редактированием секретов/PII; не печатай окружение и payload полностью. Диагностические изменения должны иметь cleanup.
|
|
13
|
+
4. Веди журнал: hypothesis, evidence for/against, discriminating experiment, result, next step. Рассматривай альтернативы; каждый эксперимент меняет одну существенную переменную или явно описывает связанные изменения.
|
|
14
|
+
5. Подтверждённую причину зафиксируй воспроизводимой проверкой. Исправление проведи по test-driven-development; проверь исходный сценарий, регрессии и важные взаимодействия.
|
|
15
|
+
6. По завершении укажи root cause, fix, evidence, остаточные риски и удалённую временную диагностику. Урок записывай только при возможности переиспользования и с областью применимости.
|
|
11
16
|
|
|
12
|
-
|
|
17
|
+
## Повторы и эскалация
|
|
13
18
|
|
|
14
|
-
|
|
19
|
+
После 2 неудачных исправлений либо повторения одной гипотезы останови угадывание: проверь качество воспроизведения, полноту модели и входы. Третья неудача — сигнал независимого разбора, не доказательство дефекта архитектуры. L2 возвращает BLOCKED с журналом; L1 решает о новом контексте, модели, декомпозиции или архитектурном исследовании. Scope не расширяй сам.
|
|
15
20
|
|
|
16
|
-
##
|
|
21
|
+
## Инцидент
|
|
17
22
|
|
|
18
|
-
|
|
19
|
-
НИКАКИХ ФИКСОВ БЕЗ ИССЛЕДОВАНИЯ КОРНЕВОЙ ПРИЧИНЫ
|
|
20
|
-
```
|
|
23
|
+
При текущем ущербе сначала допустимо обратимое containment в пределах полномочий: откат, отключение функции или ограничение нагрузки. Зафиксируй разрешение, действие и способ возврата; не называй это устранением причины. Необратимые или внешние действия требуют действующего разрешения. После стабилизации продолжи расследование.
|
|
21
24
|
|
|
22
|
-
|
|
25
|
+
## Неизвестный исход
|
|
23
26
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
Используй для ЛЮБОЙ технической проблемы:
|
|
27
|
-
- Падения тестов
|
|
28
|
-
- Баги в проде
|
|
29
|
-
- Неожиданное поведение
|
|
30
|
-
- Проблемы производительности
|
|
31
|
-
- Сломанные сборки
|
|
32
|
-
- Интеграционные проблемы
|
|
33
|
-
|
|
34
|
-
**Используй ОСОБЕННО, когда:**
|
|
35
|
-
- Давит время (авралы делают угадывание соблазнительным)
|
|
36
|
-
- «Просто один быстрый фикс» кажется очевидным
|
|
37
|
-
- Ты уже попробовал несколько фиксов
|
|
38
|
-
- Предыдущий фикс не сработал
|
|
39
|
-
- Ты не до конца понимаешь проблему
|
|
40
|
-
|
|
41
|
-
**Не пропускай, когда:**
|
|
42
|
-
- Проблема кажется простой (у простых багов тоже есть корневые причины)
|
|
43
|
-
- Ты спешишь (спешка гарантирует переделку)
|
|
44
|
-
- Владелец требует «починить СЕЙЧАС» (систематичность быстрее метаний)
|
|
45
|
-
|
|
46
|
-
## Четыре фазы
|
|
47
|
-
|
|
48
|
-
Каждую фазу ОБЯЗАН завершить до перехода к следующей.
|
|
49
|
-
|
|
50
|
-
### Фаза 1: исследование корневой причины
|
|
51
|
-
|
|
52
|
-
**ДО попытки ЛЮБОГО фикса:**
|
|
53
|
-
|
|
54
|
-
1. **Внимательно читай сообщения об ошибках**
|
|
55
|
-
- Не проскальзывай мимо ошибок и предупреждений
|
|
56
|
-
- Они часто содержат точное решение
|
|
57
|
-
- Читай стектрейсы полностью
|
|
58
|
-
- Отмечай номера строк, пути файлов, коды ошибок
|
|
59
|
-
|
|
60
|
-
2. **Воспроизводи стабильно**
|
|
61
|
-
- Можешь ли вызвать это надёжно?
|
|
62
|
-
- Каковы точные шаги?
|
|
63
|
-
- Происходит ли каждый раз?
|
|
64
|
-
- Не воспроизводится → собирай больше данных, не угадывай
|
|
65
|
-
|
|
66
|
-
3. **Проверь недавние изменения**
|
|
67
|
-
- Что изменилось из того, что могло это вызвать?
|
|
68
|
-
- Git diff, недавние коммиты
|
|
69
|
-
- Новые зависимости, изменения конфигурации
|
|
70
|
-
- Различия окружения
|
|
71
|
-
|
|
72
|
-
4. **Собирай улики в мультикомпонентных системах**
|
|
73
|
-
|
|
74
|
-
**КОГДА система имеет много компонентов (CI → сборка → подпись, API → сервис → БД):**
|
|
75
|
-
|
|
76
|
-
**ДО предложения фиксов добавь диагностическую инструментацию:**
|
|
77
|
-
```
|
|
78
|
-
Для КАЖДОЙ границы компонентов:
|
|
79
|
-
- Логируй, какие данные входят в компонент
|
|
80
|
-
- Логируй, какие данные выходят из компонента
|
|
81
|
-
- Проверяй проброс окружения/конфигурации
|
|
82
|
-
- Проверяй состояние на каждом слое
|
|
83
|
-
|
|
84
|
-
Один прогон для сбора улик — ГДЕ ломается
|
|
85
|
-
ЗАТЕМ анализ улик — какой компонент падает
|
|
86
|
-
ЗАТЕМ исследование именно этого компонента
|
|
87
|
-
```
|
|
88
|
-
|
|
89
|
-
**Это показывает:** какой слой падает (секреты → workflow ✓, workflow → сборка ✗)
|
|
90
|
-
|
|
91
|
-
5. **Трассируй поток данных**
|
|
92
|
-
|
|
93
|
-
**КОГДА ошибка глубоко в стектрейсе:**
|
|
94
|
-
- Где порождается плохое значение?
|
|
95
|
-
- Кто вызвал это с плохим значением?
|
|
96
|
-
- Трассируй вверх, пока не найдёшь источник
|
|
97
|
-
- Чини в источнике, а не в симптоме
|
|
98
|
-
|
|
99
|
-
### Фаза 2: анализ паттернов
|
|
100
|
-
|
|
101
|
-
**Найди паттерн до фикса:**
|
|
102
|
-
|
|
103
|
-
1. **Найди работающие примеры**
|
|
104
|
-
- Найди похожий работающий код в той же кодовой базе
|
|
105
|
-
- Что работает так же, как то, что сломано?
|
|
106
|
-
|
|
107
|
-
2. **Сравни с эталонами**
|
|
108
|
-
- Если реализуешь паттерн — прочитай референс ПОЛНОСТЬЮ
|
|
109
|
-
- Не просматривай по диагонали — каждую строку
|
|
110
|
-
- Пойми паттерн полностью до применения
|
|
111
|
-
|
|
112
|
-
3. **Определи различия**
|
|
113
|
-
- Что отличается между работающим и сломанным?
|
|
114
|
-
- Перечисли каждое различие, каким бы малым ни было
|
|
115
|
-
- Не предполагай «это не может иметь значения»
|
|
116
|
-
|
|
117
|
-
4. **Пойми зависимости**
|
|
118
|
-
- Какие ещё компоненты ему нужны?
|
|
119
|
-
- Какие настройки, конфигурация, окружение?
|
|
120
|
-
- Какие предположения он делает?
|
|
121
|
-
|
|
122
|
-
### Фаза 3: гипотеза и тестирование
|
|
123
|
-
|
|
124
|
-
**Научный метод:**
|
|
125
|
-
|
|
126
|
-
1. **Сформулируй единственную гипотезу**
|
|
127
|
-
- Сформулируй ясно: «Я думаю, корневая причина — X, потому что Y»
|
|
128
|
-
- Запиши
|
|
129
|
-
- Будь конкретен, не расплывчат
|
|
130
|
-
|
|
131
|
-
2. **Тестируй минимально**
|
|
132
|
-
- Сделай САМОЕ МАЛЕНЬКОЕ возможное изменение для проверки гипотезы
|
|
133
|
-
- Одна переменная за раз
|
|
134
|
-
- Не чини несколько вещей сразу
|
|
135
|
-
|
|
136
|
-
3. **Верифицируй до продолжения**
|
|
137
|
-
- Сработало? Да → фаза 4
|
|
138
|
-
- Не сработало — сформулируй НОВУЮ гипотезу
|
|
139
|
-
- НЕ наслаивай ещё фиксы сверху
|
|
140
|
-
|
|
141
|
-
4. **Когда не знаешь**
|
|
142
|
-
- Скажи «я не понимаю X»
|
|
143
|
-
- Не притворяйся, что знаешь
|
|
144
|
-
- Проси помощи
|
|
145
|
-
- Исследуй дальше
|
|
146
|
-
|
|
147
|
-
### Фаза 4: реализация фикса
|
|
148
|
-
|
|
149
|
-
**Чини корневую причину, а не симптом:**
|
|
150
|
-
|
|
151
|
-
1. **Создай падающий тест**
|
|
152
|
-
- Простейшее возможное воспроизведение
|
|
153
|
-
- Автотест, если возможно
|
|
154
|
-
- Одноразовый тест-скрипт, если нет фреймворка
|
|
155
|
-
- ОБЯЗАН быть до фикса
|
|
156
|
-
- **Используй скилл test-driven-development для написания правильного падающего теста — фикс пишется ТОЛЬКО под падающий тест**
|
|
157
|
-
|
|
158
|
-
2. **Реализуй единственный фикс**
|
|
159
|
-
- Адресуй выявленную корневую причину
|
|
160
|
-
- ОДНО изменение за раз
|
|
161
|
-
- Никаких улучшений «раз уж я здесь»
|
|
162
|
-
- Никакого сопутствующего рефакторинга
|
|
163
|
-
|
|
164
|
-
3. **Верифицируй фикс**
|
|
165
|
-
- Тест теперь проходит?
|
|
166
|
-
- Другие тесты не сломались? (`npm run check` — verification-примитив проекта)
|
|
167
|
-
- Проблема реально решена?
|
|
168
|
-
|
|
169
|
-
4. **Если фикс не сработал**
|
|
170
|
-
- СТОП
|
|
171
|
-
- Посчитай: сколько фиксов ты уже попробовал?
|
|
172
|
-
- Если < 3 — вернись к фазе 1, переанализируй с новой информацией
|
|
173
|
-
- **Если ≥ 3 — СТОП и поставь под вопрос архитектуру (шаг 5 ниже)**
|
|
174
|
-
- НЕ пытайся делать фикс №4 без архитектурного обсуждения
|
|
175
|
-
|
|
176
|
-
5. **Если 3+ фиксов провалились: поставь под вопрос архитектуру**
|
|
177
|
-
|
|
178
|
-
**Паттерн, указывающий на архитектурную проблему:**
|
|
179
|
-
- Каждый фикс вскрывает новое общее состояние/связность/проблему в другом месте
|
|
180
|
-
- Фиксы требуют «массированного рефакторинга»
|
|
181
|
-
- Каждый фикс создаёт новые симптомы в других местах
|
|
182
|
-
|
|
183
|
-
**СТОП и спроси фундаментально:**
|
|
184
|
-
- Паттерн в принципе здрав?
|
|
185
|
-
- Не «держимся ли мы за него по чистой инерции»?
|
|
186
|
-
- Может, рефакторить архитектуру вместо продолжения латания симптомов?
|
|
187
|
-
|
|
188
|
-
**Обсуди с владельцем до новых попыток фикса.**
|
|
189
|
-
|
|
190
|
-
Это НЕ провалившаяся гипотеза — это неверная архитектура.
|
|
191
|
-
|
|
192
|
-
## Red Flags — СТОП и вернись к процессу
|
|
193
|
-
|
|
194
|
-
Если ловишь себя на мысли:
|
|
195
|
-
- «Быстрый фикс сейчас, исследую потом»
|
|
196
|
-
- «Просто поменяю X и посмотрю, сработает ли»
|
|
197
|
-
- «Внесу несколько изменений, прогоню тесты»
|
|
198
|
-
- «Пропущу тест, проверю руками»
|
|
199
|
-
- «Наверное, это X, поправлю это»
|
|
200
|
-
- «Я не до конца понимаю, но это может сработать»
|
|
201
|
-
- «В паттерне сказано X, но я адаптирую по-своему»
|
|
202
|
-
- «Вот основные проблемы: [список фиксов без исследования]»
|
|
203
|
-
- Предлагаешь решения до трассировки потока данных
|
|
204
|
-
- **«Ещё одна попытка фикса» (когда уже попробовал 2+)**
|
|
205
|
-
- **Каждый фикс вскрывает новую проблему в другом месте**
|
|
206
|
-
|
|
207
|
-
**ВСЁ это значит: СТОП. Вернись к фазе 1.**
|
|
208
|
-
|
|
209
|
-
**Если 3+ фиксов провалились:** поставь под вопрос архитектуру (фаза 4, шаг 5).
|
|
210
|
-
|
|
211
|
-
## Сигналы владельца, что ты делаешь не так
|
|
212
|
-
|
|
213
|
-
**Следи за этими поправками:**
|
|
214
|
-
- «А это вообще происходит?» — Ты предположил, не проверив
|
|
215
|
-
- «Это нам покажет…?» — Надо было добавить сбор улик
|
|
216
|
-
- «Перестань угадывать» — Ты предлагаешь фиксы без понимания
|
|
217
|
-
- «Продумай фундаментально» — Ставь под вопрос основы, а не только симптомы
|
|
218
|
-
- «Мы застряли?» (фрустрация) — Твой подход не работает
|
|
219
|
-
|
|
220
|
-
**Увидел — СТОП. Вернись к фазе 1.**
|
|
221
|
-
|
|
222
|
-
## Типичные рационализации
|
|
223
|
-
|
|
224
|
-
| Оправдание | Реальность |
|
|
225
|
-
|--------|---------|
|
|
226
|
-
| «Проблема простая, процесс не нужен» | У простых проблем тоже есть корневые причины. Процесс быстр для простых багов. |
|
|
227
|
-
| «Авария, нет времени на процесс» | Систематический дебаг БЫСТРЕЕ, чем метания угадай-и-проверь. |
|
|
228
|
-
| «Сначала попробую это, потом исследую» | Первый фикс задаёт паттерн. Делай правильно с самого начала. |
|
|
229
|
-
| «Тест напишу после подтверждения, что фикс работает» | Непроверенные фиксы не приживаются. Сначала тест — потом он доказывает. |
|
|
230
|
-
| «Несколько фиксов сразу сэкономят время» | Не изолировать, что сработало. Порождает новые баги. |
|
|
231
|
-
| «Референс слишком длинный, адаптирую паттерн по мотивам» | Частичное понимание гарантирует баги. Читай полностью. |
|
|
232
|
-
| «Вижу проблему, давайте чинить» | Видеть симптомы ≠ понимать корневую причину. |
|
|
233
|
-
| «Ещё одна попытка фикса» (после 2+ провалов) | 3+ провала = архитектурная проблема. Ставь паттерн под вопрос, не чини снова. |
|
|
234
|
-
|
|
235
|
-
## Быстрая шпаргалка
|
|
236
|
-
|
|
237
|
-
| Фаза | Ключевые активности | Критерий успеха |
|
|
238
|
-
|-------|---------------|------------------|
|
|
239
|
-
| **1. Корневая причина** | Читай ошибки, воспроизводи, проверь изменения, собери улики | Понимать ЧТО и ПОЧЕМУ |
|
|
240
|
-
| **2. Паттерн** | Найди работающие примеры, сравни | Определить различия |
|
|
241
|
-
| **3. Гипотеза** | Сформулируй теорию, тестируй минимально | Подтверждена или новая |
|
|
242
|
-
| **4. Реализация** | Создай тест, чини, верифицируй | Баг решён, тесты зелёные |
|
|
243
|
-
|
|
244
|
-
## Когда процесс показывает «корневой причины нет»
|
|
245
|
-
|
|
246
|
-
Если систематическое исследование показало, что проблема действительно экологическая, зависит от таймингов или внешняя:
|
|
247
|
-
|
|
248
|
-
1. Ты завершил процесс
|
|
249
|
-
2. Задокументируй, что исследовал (`wolf add --type lesson` — следующий агент не должен повторять путь)
|
|
250
|
-
3. Реализуй подходящую обработку (retry, timeout, сообщение об ошибке)
|
|
251
|
-
4. Добавь мониторинг/логирование для будущих исследований
|
|
252
|
-
|
|
253
|
-
**Но:** 95% случаев «нет корневой причины» — это незавершённое исследование.
|
|
254
|
-
|
|
255
|
-
## Смежные скиллы
|
|
256
|
-
|
|
257
|
-
- **test-driven-development** — для создания падающего теста (фаза 4, шаг 1): фикс только под падающий тест
|
|
258
|
-
- **verification-before-completion** — проверь, что фикс сработал, до заявления об успехе
|
|
259
|
-
|
|
260
|
-
## Реальный эффект
|
|
261
|
-
|
|
262
|
-
Из дебаг-сессий:
|
|
263
|
-
- Систематический подход: 15–30 минут на фикс
|
|
264
|
-
- Подход случайных фиксов: 2–3 часа метаний
|
|
265
|
-
- Фикс с первого раза: 95% против 40%
|
|
266
|
-
- Новые баги: почти ноль против обычного дела
|
|
267
|
-
|
|
268
|
-
---
|
|
269
|
-
|
|
270
|
-
## Трассировка адаптации
|
|
271
|
-
|
|
272
|
-
> Источник: `~/.config/opencode/superpowers/skills/systematic-debugging/SKILL.md`, upstream 6efe32c (2026-04-23)
|
|
273
|
-
|
|
274
|
-
| Пункт источника | Судьба | Почему |
|
|
275
|
-
|---|---|---|
|
|
276
|
-
| Обзор + ядро принципа | сохранено | Ядро |
|
|
277
|
-
| Железный закон | сохранено | STOP-правило |
|
|
278
|
-
| When to Use (6) / ESPECIALLY (5) / Don't skip (3) | сохранено полностью (14/14) | H7 |
|
|
279
|
-
| Фаза 1 (5 пунктов) | сохранено; bash-пример (codesign/macOS) отброшен | Средо-специфичный; техника инструментации сохранена |
|
|
280
|
-
| Ссылка на `root-cause-tracing.md` | заменено краткой версией (быстрая версия уже в источнике) | Sibling-файл не переносится |
|
|
281
|
-
| Фаза 2 (4) | сохранено полностью | Ядро |
|
|
282
|
-
| Фаза 3 (4) | сохранено полностью | Ядро |
|
|
283
|
-
| Фаза 4 (5) | сохранено; `superpowers:test-driven-development` → жёсткая отсылка к test-driven-development (фикс только под падающий тест); верификация — `npm run check` | Спека §5.2 |
|
|
284
|
-
| Red Flags (11) | сохранено полностью (11/11) | H7 |
|
|
285
|
-
| «Signals You're Doing Wrong» (5) | сохранено полностью (5/5); human partner → владелец | H7 |
|
|
286
|
-
| Common Rationalizations (8 строк) | сохранено полностью (8/8) | H7 |
|
|
287
|
-
| Quick Reference | сохранено | Чеклист |
|
|
288
|
-
| «No Root Cause» | сохранено; + `wolf add --type lesson` | Wolf-переплетение |
|
|
289
|
-
| Supporting techniques (3 sibling-файла) | отброшено | Файлы каталога скилла не переносятся |
|
|
290
|
-
| Related skills | сохранено; префикс superpowers: снят | Имена набора |
|
|
291
|
-
| Real-World Impact | сохранено | Мотивация |
|
|
292
|
-
|
|
293
|
-
Перенесённые списки: red flags 11/11, сигналы 5/5, рационализации 8/8, when-to-use 6/6 + особенно 5/5 + не-пропускать 3/3.
|
|
27
|
+
Если подтверждены только симптомы, верни INCONCLUSIVE в отчёте: исследованное, отвергнутые гипотезы, недостающие данные и следующая проверка. Retry/timeout — осознанное mitigation с проверками и наблюдаемостью, а не доказательство отсутствия причины.
|
|
@@ -1,45 +1,26 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: wolf-design
|
|
3
|
-
description:
|
|
3
|
+
description: "Проектируй решение по утверждённым требованиям: компоненты, контракты, потоки, риски и проверяемые решения. Используй при FULL или изменении интерфейсов, состояния, миграций и границ доверия."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
#
|
|
6
|
+
# Требования → дизайн
|
|
7
7
|
|
|
8
|
-
##
|
|
8
|
+
## Вход и выход
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
Скилл исполняется чистым воркером; диспетчеризация не меняется.
|
|
10
|
+
Вход: approved requirements или утверждённый бриф, baseline SHA, существующая архитектура и профиль проекта. Выход: design.md с состоянием review, картой покрытия REQ/NFR и решениями для согласования. Автор — назначенный L1/L2; утверждение — по политике проекта через L0.
|
|
12
11
|
|
|
13
|
-
##
|
|
14
|
-
|
|
15
|
-
- `docs/dev/<дата>-<slug>/requirements.md` со статусом `approved` (draft — стоп:
|
|
16
|
-
сначала гейт владельца/линз по wolf-review).
|
|
17
|
-
- Кодовая база (чтение; file:line для контрактов).
|
|
18
|
-
|
|
19
|
-
## Выход: design.md (в папке фичи)
|
|
20
|
-
|
|
21
|
-
Секция заполняется поверх скелета из `wolf scaffold artifact`:
|
|
22
|
-
|
|
23
|
-
1. **Глоссарий** — технические термины; термин вводится до использования.
|
|
24
|
-
2. **Компоненты и ответственность** — имя — ответственность — файл.
|
|
25
|
-
3. **Контракты** — типы, схемы, форматы событий блоками ≤ 10 строк; псевдокод
|
|
26
|
-
алгоритмов разрешён, когда точное описание делает дизайн однозначнее прозы.
|
|
27
|
-
4. **ADR-карточки** — «Контекст → Решение → Последствия» ключевых решений.
|
|
28
|
-
ADR — продуктовые выборы: владелец визирует отдельно (список ADR — в отчёт).
|
|
29
|
-
5. **Ссылки на NFR** — design ссылается на `NFR-NN` из requirements.md и добавляет
|
|
30
|
-
технические бюджеты; собственных ID-записей не заводит (двойное владение запрещено).
|
|
31
|
-
|
|
32
|
-
## Железные запреты
|
|
12
|
+
## Процесс
|
|
33
13
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
14
|
+
1. Проверь актуальность требований и прочитай код затронутых компонентов и потребителей. Ссылки задавай как revision:path:symbol; номера строк — дополнительный ориентир.
|
|
15
|
+
2. Для каждого REQ/NFR укажи компонент, контракт, проверяемое свойство либо обоснованное «дизайн не требуется».
|
|
16
|
+
3. Опиши ответственность компонентов, владение состоянием, границы интерфейсов, потоки данных и зависимостей. Для конкурентной работы задай инварианты и порядок записи.
|
|
17
|
+
4. Контракты задавай типами/схемами достаточной длины; алгоритмы — псевдокодом, если проза допускает разные реализации. Не вставляй готовую реализацию продукта.
|
|
18
|
+
5. Для существенного решения запиши ADR: контекст, альтернативы, выбор, последствия, риск, проверка допущения. Продуктовые компромиссы, scope и необратимые решения передай L0; локальные технические выборы оставь L1 в рамках мандата.
|
|
19
|
+
6. Проверь отказ зависимостей, частичный сбой, retry/idempotency, восстановление, observability, совместимость и миграции. Для каждой неприменимой области достаточно обоснования.
|
|
20
|
+
7. При работе с внешним контентом или исполнением команд опиши trust boundary, права, защиту секретов и validation. Не объявляй механизм реализованным только по наличию запрета в тексте.
|
|
21
|
+
8. Укажи технические бюджеты NFR и способ измерения; предложи ограниченный spike для неопределённости, блокирующей выбор. Результат spike не становится реализацией автоматически.
|
|
22
|
+
9. Передай design на wolf-review. Получи требуемые согласования и сохрани revision вердикта.
|
|
38
23
|
|
|
39
|
-
##
|
|
24
|
+
## Готовность и возврат
|
|
40
25
|
|
|
41
|
-
|
|
42
|
-
(компонент, контракт или осознанное «не требует дизайна»).
|
|
43
|
-
2. Сверить контракты с кодом базлайна (file:line).
|
|
44
|
-
3. Заполнить секции; front-matter `status: review`.
|
|
45
|
-
4. Отчёт: список ADR-карточек (владельцу на визу) + открытые `[НЕОПРЕДЕЛЕНО: …]`.
|
|
26
|
+
Каждое требование покрыто, контракты согласованы с baseline, критические допущения проверены или заблокированы. Утверждённый дизайн передай в wolf-plan и wolf-testplan. Изменение требования верни в discovery; изменение контракта инвалидирует зависимые задачи, тесты и ревью.
|
|
@@ -1,113 +1,25 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: wolf-execute
|
|
3
|
-
description:
|
|
3
|
+
description: "Исполняй согласованный план линейно, когда разрешена исполнительская роль и диспетчеризация недоступна или не нужна. Сохраняй чекпоинты, evidence и независимую приёмку; L0 сам не исполняет."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
#
|
|
6
|
+
# Линейное исполнение
|
|
7
7
|
|
|
8
|
-
##
|
|
8
|
+
## Вход и ограничения
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
**Анонс на старте:** «Использую скилл wolf-execute для исполнения этого плана».
|
|
13
|
-
|
|
14
|
-
**Если доступны субагенты** — используй wolf-sdd вместо этого скилла: свежий воркер на задачу + двухстадийное ревью дают заметно более высокое качество. wolf-execute — fallback для платформ/сессий без диспетчеризации.
|
|
15
|
-
|
|
16
|
-
wolf-execute — FLAT-fallback линейного исполнения для агентов без диспетчеризации;
|
|
17
|
-
mr-wolf его не использует (правило роли `mem_20260903_..._e95317`). Вопрос о судьбе
|
|
18
|
-
скилла — в backlog роадмапа, вне волны 2.15.
|
|
19
|
-
|
|
20
|
-
## REQUIRED-предусловие: worktree
|
|
21
|
-
|
|
22
|
-
**До старта исполнения worktree ОБЯЗАН существовать:** `.worktrees/<имя-задачи>` внутри проекта (правило проекта). Trunk-based: main — истина, работа идёт в ветке внутри worktree (см. скилл using-git-worktrees). Никогда не начинай исполнение в main без явного согласия владельца.
|
|
10
|
+
Применять только исполнительской роли. Входы и TASK/RESULT/EVIDENCE — как в using-skills. Утверждённый FULL plan требует design и test-plan; LITE/FIX достаточно разрешённого брифа. Проверь workspace, профиль проекта, baseline и права на git. L0 передаёт работу executor, не использует fallback для обхода своей рамки.
|
|
23
11
|
|
|
24
12
|
## Процесс
|
|
25
13
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
Вход плана — трио `requirements.md` + `design.md` + `plan.md` в `docs/dev/<дата>-<slug>/`. Спека-монолит как вход плана не используется.
|
|
34
|
-
|
|
35
|
-
Задачи плана — чекбоксы `- [ ]`: исполнитель переворачивает чекбокс в `[x]` в конце
|
|
36
|
-
задачи вместе со строкой «сделано → коммит <hash>» — часть Definition of Done задачи.
|
|
37
|
-
wolf-sdd — основной диспетчерский путь конвейера.
|
|
38
|
-
|
|
39
|
-
### Шаг 2: исполняй задачи
|
|
40
|
-
|
|
41
|
-
Для каждой задачи:
|
|
42
|
-
|
|
43
|
-
1. Отметь in_progress
|
|
44
|
-
2. Следуй каждому шагу точно (план состоит из bite-sized шагов)
|
|
45
|
-
3. Запускай верификацию, как предписано планом; после завершённых блоков — `npm run check` (verification-примитив проекта)
|
|
46
|
-
4. Отметь завершённой
|
|
47
|
-
|
|
48
|
-
### Шаг 3: заверши разработку
|
|
49
|
-
|
|
50
|
-
После всех задач и верификации:
|
|
51
|
-
|
|
52
|
-
- Анонс: «Использую скилл finishing-a-development-branch для завершения работы»
|
|
53
|
-
- **REQUIRED-СКИЛЛ:** finishing-a-development-branch
|
|
54
|
-
- Следуй ему: верифицируй тесты, представь опции финала ветки, исполни выбор владельца
|
|
55
|
-
- Валидация волны сверяется с `docs/dev/<дата>-<slug>/test-plan.md`: прогон сценариев — заготовки финальной проверки плана.
|
|
56
|
-
|
|
57
|
-
## Когда остановиться и спросить
|
|
58
|
-
|
|
59
|
-
**СТОП исполнения немедленно, когда:**
|
|
60
|
-
|
|
61
|
-
- Ударился в блокер (нет зависимости, падает тест, инструкция непонятна)
|
|
62
|
-
- В плане критические пробелы, мешающие стартовать
|
|
63
|
-
- Ты не понимаешь инструкцию
|
|
64
|
-
- Верификация падает повторно
|
|
65
|
-
|
|
66
|
-
**Проси уточнения, а не угадывай.** Застрял — зафиксируй блокер в памяти (`wolf add --type blocker`) и поднимись к владельцу.
|
|
67
|
-
|
|
68
|
-
## Когда вернуться к ранним шагам
|
|
69
|
-
|
|
70
|
-
**Вернись к ревью (шаг 1), когда:**
|
|
71
|
-
|
|
72
|
-
- Владелец обновил план по твоему фидбеку
|
|
73
|
-
- Фундаментальный подход требует пересмотра
|
|
74
|
-
|
|
75
|
-
**Не продавливай блокеры силой** — остановись и спроси.
|
|
76
|
-
|
|
77
|
-
## Помни
|
|
78
|
-
|
|
79
|
-
- Сначала критически осмотрись планом
|
|
80
|
-
- Следуй шагам плана точно
|
|
81
|
-
- Не пропускай верификации
|
|
82
|
-
- Обращайся к скиллам, когда план говорит
|
|
83
|
-
- Остановился — не угадывай, спроси
|
|
84
|
-
- Никогда не начинай исполнение в main без явного согласия владельца
|
|
85
|
-
|
|
86
|
-
## Интеграция
|
|
87
|
-
|
|
88
|
-
**Обязательные скиллы воркфлоу:**
|
|
89
|
-
|
|
90
|
-
- **using-git-worktrees** — REQUIRED: изолированный worktree `.worktrees/<имя-задачи>` ДО старта исполнения
|
|
91
|
-
- **wolf-plan** — создаёт план, который этот скилл исполняет
|
|
92
|
-
- **finishing-a-development-branch** — завершение разработки после всех задач
|
|
93
|
-
|
|
94
|
-
---
|
|
95
|
-
|
|
96
|
-
## Трассировка адаптации
|
|
14
|
+
1. Сверь входы с текущим кодом; обозначь несовместимость до правок. Зафиксируй зависимости и исходные падения проверок.
|
|
15
|
+
2. Выполняй ready-задачи последовательно: прочитай затронутый код, пройди подходящую тестовую дисциплину, внеси allowlist-изменения, проверь результат и сохранённые инварианты.
|
|
16
|
+
3. После каждой задачи запиши RESULT/evidence. Коммит выполняй только при разрешении роли и пользователя. Отметку [x] ставь после нужного ревью; до него сохрани состояние «готово к ревью» без выдуманного значения таксономии.
|
|
17
|
+
4. Чекпоинт делай на завершённом компоненте, перед сменой этапа или сессии; default не более 3 небольших задач без сохранения состояния. В него включи baseline/current state, completed/remaining, evidence и dirty-state.
|
|
18
|
+
5. Независимое ревью запроси через доступный разрешённый канал. Если его нет, сообщи ограничение и передай результат L0/владельцу; саморевью не выдавай за независимое.
|
|
19
|
+
6. После интеграции выполни test-plan и полный применимый гейт; сформируй ACCEPTANCE. Дальнейший git-финал — finishing-a-development-branch.
|
|
97
20
|
|
|
98
|
-
|
|
21
|
+
## Блокер и восстановление
|
|
99
22
|
|
|
100
|
-
|
|
101
|
-
| ---------------------------------------- | --------------------------------------------------------------- | ------------------------------------- |
|
|
102
|
-
| Обзор (load → review → execute → report) | сохранено | Ядро |
|
|
103
|
-
| Note «subagents work better» | заменено → wolf-sdd как приоритет, wolf-execute = FLAT-fallback | Спека §5.2 (FLAT-режим) |
|
|
104
|
-
| Упоминания платформ (Claude Code, Codex) | отброшено | Research §1: платформенные упоминания |
|
|
105
|
-
| TodoWrite | заменено → `{{tool.todowrite}}` | Research §1; плейсхолдер |
|
|
106
|
-
| Шаги 1–3 | сохранено; шаг 2 дополнен `npm run check` | Wolf-переплетение |
|
|
107
|
-
| «When to Stop» (4) | сохранено полностью (4/4); + `wolf add --type blocker` | H7 + Wolf |
|
|
108
|
-
| «When to Revisit» (2) | сохранено полностью (2/2) | H7 |
|
|
109
|
-
| «Remember» (6) | сохранено полностью (6/6); main/master → trunk-based | H7 |
|
|
110
|
-
| Integration (worktrees REQUIRED) | сохранено; H5-формулировка «до старта исполнения» | H5; `.worktrees/<имя-задачи>` |
|
|
111
|
-
| — | добавлено: REQUIRED-предусловие worktree (H5) | Спека §5.2 |
|
|
23
|
+
При недостатке контекста верни NEEDS_CONTEXT; при невозможности продолжения — BLOCKED с причиной, выполненным и безопасным следующим действием. Исправимые технические сбои исследуй wolf-debug, не спрашивая владельца на каждый локальный шаг. Изменение scope/контракта эскалируй.
|
|
112
24
|
|
|
113
|
-
|
|
25
|
+
После прерывания сверяй план с фактическими файлами, git и evidence. Не повторяй миграции, публикации и внешние действия без проверки их исхода. По лимиту повторов (default 2) пересмотри подход. Недоступную запись памяти передай ответственному уровню.
|