mister-wolf 1.0.3 → 1.1.0
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/dist/adapters/cli/cli-entry.d.ts.map +1 -1
- package/dist/adapters/cli/cli-entry.js +2 -0
- package/dist/adapters/cli/cli-entry.js.map +1 -1
- package/dist/adapters/cli/commands/memory-init.d.ts.map +1 -1
- package/dist/adapters/cli/commands/memory-init.js +33 -1
- package/dist/adapters/cli/commands/memory-init.js.map +1 -1
- package/dist/adapters/cli/commands/memory-sync.d.ts +3 -0
- package/dist/adapters/cli/commands/memory-sync.d.ts.map +1 -0
- package/dist/adapters/cli/commands/memory-sync.js +28 -0
- package/dist/adapters/cli/commands/memory-sync.js.map +1 -0
- package/dist/adapters/render/manifest.d.ts +13 -0
- package/dist/adapters/render/manifest.d.ts.map +1 -0
- package/dist/adapters/render/manifest.js +14 -0
- package/dist/adapters/render/manifest.js.map +1 -0
- package/dist/adapters/render/opencode/opencode-renderer.d.ts +22 -0
- package/dist/adapters/render/opencode/opencode-renderer.d.ts.map +1 -0
- package/dist/adapters/render/opencode/opencode-renderer.js +125 -0
- package/dist/adapters/render/opencode/opencode-renderer.js.map +1 -0
- package/dist/adapters/render/stamp.d.ts +8 -0
- package/dist/adapters/render/stamp.d.ts.map +1 -0
- package/dist/adapters/render/stamp.js +23 -0
- package/dist/adapters/render/stamp.js.map +1 -0
- package/dist/adapters/render/templates-root.d.ts +6 -0
- package/dist/adapters/render/templates-root.d.ts.map +1 -0
- package/dist/adapters/render/templates-root.js +30 -0
- package/dist/adapters/render/templates-root.js.map +1 -0
- package/dist/app/use-cases/init-project.d.ts +12 -0
- package/dist/app/use-cases/init-project.d.ts.map +1 -1
- package/dist/app/use-cases/init-project.js +13 -1
- package/dist/app/use-cases/init-project.js.map +1 -1
- package/dist/app/use-cases/seed-base-playbooks.d.ts +26 -0
- package/dist/app/use-cases/seed-base-playbooks.d.ts.map +1 -0
- package/dist/app/use-cases/seed-base-playbooks.js +43 -0
- package/dist/app/use-cases/seed-base-playbooks.js.map +1 -0
- package/dist/app/use-cases/sync-base-set.d.ts +12 -0
- package/dist/app/use-cases/sync-base-set.d.ts.map +1 -0
- package/dist/app/use-cases/sync-base-set.js +10 -0
- package/dist/app/use-cases/sync-base-set.js.map +1 -0
- package/dist/ports/base-set-renderer.port.d.ts +20 -0
- package/dist/ports/base-set-renderer.port.d.ts.map +1 -0
- package/dist/ports/base-set-renderer.port.js +2 -0
- package/dist/ports/base-set-renderer.port.js.map +1 -0
- package/package.json +11 -3
- package/templates/base/README.md +1 -0
- package/templates/base/agents/executor-lead.md +79 -0
- package/templates/base/agents/mr-wolf.md +76 -0
- package/templates/base/agents/steward.md +56 -0
- package/templates/base/agents/worker-implementer.md +58 -0
- package/templates/base/agents/worker-researcher.md +59 -0
- package/templates/base/agents/worker-reviewer.md +58 -0
- package/templates/base/commands/analyze-doc.md +11 -0
- package/templates/base/commands/complain.md +13 -0
- package/templates/base/commands/doc-review.md +15 -0
- package/templates/base/playbooks/complaint-protocol.md +39 -0
- package/templates/base/playbooks/steward-nastavnik.md +38 -0
- package/templates/base/playbooks/wolf-review-lenses.md +50 -0
- package/templates/base/playbooks/worker-implementer-playbook.md +51 -0
- package/templates/base/playbooks/worker-researcher-playbook.md +51 -0
- package/templates/base/playbooks/worker-reviewer-playbook.md +54 -0
- package/templates/base/skills/finishing-a-development-branch/SKILL.md +213 -0
- package/templates/base/skills/requesting-code-review/SKILL.md +123 -0
- package/templates/base/skills/test-driven-development/SKILL.md +391 -0
- package/templates/base/skills/using-git-worktrees/SKILL.md +178 -0
- package/templates/base/skills/using-skills/SKILL.md +128 -0
- package/templates/base/skills/verification-before-completion/SKILL.md +157 -0
- package/templates/base/skills/wolf-brainstorm/SKILL.md +167 -0
- package/templates/base/skills/wolf-debug/SKILL.md +293 -0
- package/templates/base/skills/wolf-execute/SKILL.md +96 -0
- package/templates/base/skills/wolf-handoff/SKILL.md +101 -0
- package/templates/base/skills/wolf-plan/SKILL.md +177 -0
- package/templates/base/skills/wolf-review/SKILL.md +61 -0
- package/templates/base/skills/wolf-sdd/SKILL.md +239 -0
- package/templates/opencode/README.md +1 -0
- package/templates/opencode/plugins/wolf-router.ts +104 -0
- package/templates/opencode/plugins/wolf-session-start.js +144 -0
|
@@ -0,0 +1,293 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: wolf-debug
|
|
3
|
+
description: "Используй при любом баге, падении теста или неожиданном поведении — ДО предложения фиксов. 4 фазы root-cause: исследование причины → анализ паттернов → гипотеза и тест → реализация фикса под падающий тест."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# wolf-debug: систематический дебаг
|
|
7
|
+
|
|
8
|
+
## Обзор
|
|
9
|
+
|
|
10
|
+
Случайные фиксы тратят время и порождают новые баги. Быстрые заплатки маскируют лежащие под ними проблемы.
|
|
11
|
+
|
|
12
|
+
**Ядро принципа:** ВСЕГДА находи корневую причину до попыток фикса. Фикс симптома — это провал.
|
|
13
|
+
|
|
14
|
+
**Нарушение буквы этого процесса — нарушение духа дебага.**
|
|
15
|
+
|
|
16
|
+
## Железный закон
|
|
17
|
+
|
|
18
|
+
```
|
|
19
|
+
НИКАКИХ ФИКСОВ БЕЗ ИССЛЕДОВАНИЯ КОРНЕВОЙ ПРИЧИНЫ
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
Если ты не завершил фазу 1, ты не можешь предлагать фиксы.
|
|
23
|
+
|
|
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.
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: wolf-execute
|
|
3
|
+
description: "Fallback-режим линейного исполнения плана без субагентов (FLAT): загрузи план, критически осмотрись, исполняй задачи батчами с чекпоинтами. Используй, когда диспетчеризация воркеров недоступна."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# wolf-execute: линейное исполнение плана (FLAT)
|
|
7
|
+
|
|
8
|
+
## Обзор
|
|
9
|
+
|
|
10
|
+
Загрузи план, критически его осмотрись, исполняй все задачи, отчитайся по завершении. Это FLAT-режим — без спавна воркеров, всё в одной сессии.
|
|
11
|
+
|
|
12
|
+
**Анонс на старте:** «Использую скилл wolf-execute для исполнения этого плана».
|
|
13
|
+
|
|
14
|
+
**Если доступны субагенты** — используй wolf-sdd вместо этого скилла: свежий воркер на задачу + двухстадийное ревью дают заметно более высокое качество. wolf-execute — fallback для платформ/сессий без диспетчеризации.
|
|
15
|
+
|
|
16
|
+
## REQUIRED-предусловие: worktree
|
|
17
|
+
|
|
18
|
+
**До старта исполнения worktree ОБЯЗАН существовать:** `.worktrees/<имя-задачи>` внутри проекта (правило проекта). Trunk-based: main — истина, работа идёт в ветке внутри worktree (см. скилл using-git-worktrees). Никогда не начинай исполнение в main без явного согласия владельца.
|
|
19
|
+
|
|
20
|
+
## Процесс
|
|
21
|
+
|
|
22
|
+
### Шаг 1: загрузи и осмотрись
|
|
23
|
+
1. Прочитай файл плана
|
|
24
|
+
2. Критическое ревью — определи вопросы и сомнения по плану
|
|
25
|
+
3. Есть сомнения — подними их перед владельцем до старта
|
|
26
|
+
4. Нет сомнений — заведи трекинг задач через {{tool.todowrite}} и продолжай
|
|
27
|
+
|
|
28
|
+
### Шаг 2: исполняй задачи
|
|
29
|
+
|
|
30
|
+
Для каждой задачи:
|
|
31
|
+
1. Отметь in_progress
|
|
32
|
+
2. Следуй каждому шагу точно (план состоит из bite-sized шагов)
|
|
33
|
+
3. Запускай верификацию, как предписано планом; после завершённых блоков — `npm run check` (verification-примитив проекта)
|
|
34
|
+
4. Отметь завершённой
|
|
35
|
+
|
|
36
|
+
### Шаг 3: заверши разработку
|
|
37
|
+
|
|
38
|
+
После всех задач и верификации:
|
|
39
|
+
- Анонс: «Использую скилл finishing-a-development-branch для завершения работы»
|
|
40
|
+
- **REQUIRED-СКИЛЛ:** finishing-a-development-branch
|
|
41
|
+
- Следуй ему: верифицируй тесты, представь опции финала ветки, исполни выбор владельца
|
|
42
|
+
|
|
43
|
+
## Когда остановиться и спросить
|
|
44
|
+
|
|
45
|
+
**СТОП исполнения немедленно, когда:**
|
|
46
|
+
- Ударился в блокер (нет зависимости, падает тест, инструкция непонятна)
|
|
47
|
+
- В плане критические пробелы, мешающие стартовать
|
|
48
|
+
- Ты не понимаешь инструкцию
|
|
49
|
+
- Верификация падает повторно
|
|
50
|
+
|
|
51
|
+
**Проси уточнения, а не угадывай.** Застрял — зафиксируй блокер в памяти (`wolf add --type blocker`) и поднимись к владельцу.
|
|
52
|
+
|
|
53
|
+
## Когда вернуться к ранним шагам
|
|
54
|
+
|
|
55
|
+
**Вернись к ревью (шаг 1), когда:**
|
|
56
|
+
- Владелец обновил план по твоему фидбеку
|
|
57
|
+
- Фундаментальный подход требует пересмотра
|
|
58
|
+
|
|
59
|
+
**Не продавливай блокеры силой** — остановись и спроси.
|
|
60
|
+
|
|
61
|
+
## Помни
|
|
62
|
+
|
|
63
|
+
- Сначала критически осмотрись планом
|
|
64
|
+
- Следуй шагам плана точно
|
|
65
|
+
- Не пропускай верификации
|
|
66
|
+
- Обращайся к скиллам, когда план говорит
|
|
67
|
+
- Остановился — не угадывай, спроси
|
|
68
|
+
- Никогда не начинай исполнение в main без явного согласия владельца
|
|
69
|
+
|
|
70
|
+
## Интеграция
|
|
71
|
+
|
|
72
|
+
**Обязательные скиллы воркфлоу:**
|
|
73
|
+
- **using-git-worktrees** — REQUIRED: изолированный worktree `.worktrees/<имя-задачи>` ДО старта исполнения
|
|
74
|
+
- **wolf-plan** — создаёт план, который этот скилл исполняет
|
|
75
|
+
- **finishing-a-development-branch** — завершение разработки после всех задач
|
|
76
|
+
|
|
77
|
+
---
|
|
78
|
+
|
|
79
|
+
## Трассировка адаптации
|
|
80
|
+
|
|
81
|
+
> Источник: `~/.config/opencode/superpowers/skills/executing-plans/SKILL.md`, upstream 6efe32c (2026-04-23)
|
|
82
|
+
|
|
83
|
+
| Пункт источника | Судьба | Почему |
|
|
84
|
+
|---|---|---|
|
|
85
|
+
| Обзор (load → review → execute → report) | сохранено | Ядро |
|
|
86
|
+
| Note «subagents work better» | заменено → wolf-sdd как приоритет, wolf-execute = FLAT-fallback | Спека §5.2 (FLAT-режим) |
|
|
87
|
+
| Упоминания платформ (Claude Code, Codex) | отброшено | Research §1: платформенные упоминания |
|
|
88
|
+
| TodoWrite | заменено → `{{tool.todowrite}}` | Research §1; плейсхолдер |
|
|
89
|
+
| Шаги 1–3 | сохранено; шаг 2 дополнен `npm run check` | Wolf-переплетение |
|
|
90
|
+
| «When to Stop» (4) | сохранено полностью (4/4); + `wolf add --type blocker` | H7 + Wolf |
|
|
91
|
+
| «When to Revisit» (2) | сохранено полностью (2/2) | H7 |
|
|
92
|
+
| «Remember» (6) | сохранено полностью (6/6); main/master → trunk-based | H7 |
|
|
93
|
+
| Integration (worktrees REQUIRED) | сохранено; H5-формулировка «до старта исполнения» | H5; `.worktrees/<имя-задачи>` |
|
|
94
|
+
| — | добавлено: REQUIRED-предусловие worktree (H5) | Спека §5.2 |
|
|
95
|
+
|
|
96
|
+
Перенесённые списки: Stop 4/4, Revisit 2/2, Remember 6/6.
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: wolf-handoff
|
|
3
|
+
description: "Используй, когда текущая сессия перегружена контекстом, обросла ошибками, дрейфует или работу нужно продолжить в свежей сессии без потери прогресса. Экономика тёплых/холодных сессий: значимое — в память Wolf, продолжение — свежему субагенту."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# wolf-handoff: передача в свежую сессию
|
|
7
|
+
|
|
8
|
+
## Обзор
|
|
9
|
+
|
|
10
|
+
Когда контекст перегружен, сессия обросла ошибками или впереди много шагов — запиши сжатое резюме handoff и продолжи работу в свежем субагенте через {{tool.task}}.
|
|
11
|
+
|
|
12
|
+
**Экономика тёплых/холодных сессий:** тёплая сессия дорожает с каждым токеном истории; холодная стартует дёшево, но не знает ничего. Память Wolf ломает этот компромисс: сначала зафиксируй значимое в памяти (`wolf add` — решения, уроки, блокеры), затем передай минимум — свежая сессия подтянет состояние сама (`wolf call` + `wolf brief` на холодном старте).
|
|
13
|
+
|
|
14
|
+
## Когда использовать
|
|
15
|
+
|
|
16
|
+
- Окно контекста заполняется или сессия дрейфует
|
|
17
|
+
- Переключение с исследования на реализацию
|
|
18
|
+
- Нужно сбросить якорь после серии неудачных попыток
|
|
19
|
+
- У задачи несколько оставшихся независимых шагов
|
|
20
|
+
- Ты сам запущен как субагент и тебе нужно делегировать дальше
|
|
21
|
+
|
|
22
|
+
## Шаги
|
|
23
|
+
|
|
24
|
+
1. **Зафиксируй значимое в памяти Wolf.** До передачи:
|
|
25
|
+
- Решения и их обоснование → `wolf add --type decision`
|
|
26
|
+
- Уроки (что сработало / что нет) → `wolf add --type lesson`
|
|
27
|
+
- Открытые блокеры → `wolf add --type blocker`
|
|
28
|
+
Преемник получит их через `wolf call` / `wolf brief` — дублировать в промпте не нужно.
|
|
29
|
+
|
|
30
|
+
2. **Запиши резюме handoff.** Включи:
|
|
31
|
+
- Что сделано
|
|
32
|
+
- Что осталось
|
|
33
|
+
- Ключевые решения и их логика (ссылками на объекты памяти)
|
|
34
|
+
- Релевантные пути файлов, URL, ссылки на issues/PR
|
|
35
|
+
- Какие скиллы преемнику стоит задействовать
|
|
36
|
+
- Отметку о редактированных секретах, API-ключах, токенах, PII
|
|
37
|
+
|
|
38
|
+
3. **Запусти свежий субагент через {{tool.task}}.**
|
|
39
|
+
- `description`: короткое описательное имя задачи
|
|
40
|
+
- `subagent_type`: роль преемника — исполнительская роль проекта (например, worker-implementer для реализации, worker-researcher для исследования; координация — через executor-lead)
|
|
41
|
+
- `prompt`: резюме handoff
|
|
42
|
+
|
|
43
|
+
4. **Отчитайся владельцу: ID и статус задачи субагента.**
|
|
44
|
+
|
|
45
|
+
## Пример
|
|
46
|
+
|
|
47
|
+
Резюме handoff:
|
|
48
|
+
- Решили оставить публикацию v9-сигналов в `adviser/` (решение: mem от 2026-08-30).
|
|
49
|
+
- Реализован `adviser/src/publishers/signal_v9.py`.
|
|
50
|
+
- Осталось: подключить в DI-контейнер `adviser/services/di.py` и добавить тесты.
|
|
51
|
+
- Файлы: `adviser/src/publishers/signal_v9.py`, `adviser/services/di.py`.
|
|
52
|
+
- Скиллы преемнику: test-driven-development, verification-before-completion.
|
|
53
|
+
|
|
54
|
+
Затем диспетчеризация:
|
|
55
|
+
```
|
|
56
|
+
{{tool.task}}
|
|
57
|
+
description: Подключить v9-паблишер в DI и тесты
|
|
58
|
+
subagent_type: worker-implementer
|
|
59
|
+
prompt: <резюме handoff>
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## Что включить
|
|
63
|
+
|
|
64
|
+
- Конкретные пути файлов и имена символов
|
|
65
|
+
- Принятые решения и почему (или ссылки на них в памяти)
|
|
66
|
+
- Открытые вопросы и блокеры
|
|
67
|
+
- Релевантные тесты, команды, шаги верификации
|
|
68
|
+
|
|
69
|
+
## Что исключить
|
|
70
|
+
|
|
71
|
+
- Длинные транскрипты и полные листинги кода
|
|
72
|
+
- Секреты, учётные данные, персональные данные
|
|
73
|
+
- Контент, уже зафиксированный в артефактах (планы, спеки, коммиты, диффы, память Wolf)
|
|
74
|
+
|
|
75
|
+
## Red Flags
|
|
76
|
+
|
|
77
|
+
- Передача без письменного резюме
|
|
78
|
+
- Копирование всей беседы в промпт субагента
|
|
79
|
+
- Включение API-ключей или токенов
|
|
80
|
+
- «Кажется» и размытые следующие шаги вместо исполнимых задач
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
## Трассировка адаптации
|
|
85
|
+
|
|
86
|
+
> Источник: `~/.config/opencode/superpowers/skills/opencode-handoff/SKILL.md`, upstream 6efe32c (2026-04-23)
|
|
87
|
+
|
|
88
|
+
| Пункт источника | Судьба | Почему |
|
|
89
|
+
|---|---|---|
|
|
90
|
+
| Обзор (перегрузка → свежий субагент) | сохранено + экономика тёплых/холодных сессий | Спека §5.2 |
|
|
91
|
+
| Тула `task` с `subagent_type` | заменено → `{{tool.task}}` (subagent_type сохранён как параметр) | Research §1: opencode-тул; плейсхолдер |
|
|
92
|
+
| When to Use (5) | сохранено полностью (5/5) | H7 |
|
|
93
|
+
| Шаги (3) | сохранено; + шаг 0 «зафиксируй в памяти Wolf» (`wolf add`) | Wolf-переплетение |
|
|
94
|
+
| `subagent_type: general/explore` | заменено → роли проекта (worker-implementer / worker-researcher / executor-lead) | Generic-типы не переносимы |
|
|
95
|
+
| Пример | адаптировано (тип → worker-implementer, ссылка на объект памяти) | Иллюстрация |
|
|
96
|
+
| What to Include (4) | сохранено полностью (4/4); + память как артефакт | H7 |
|
|
97
|
+
| What to Exclude (3) | сохранено полностью (3/3); + «память Wolf» | H7 |
|
|
98
|
+
| Red Flags (4) | сохранено полностью (4/4) | H7 |
|
|
99
|
+
| — | добавлено: холодный старт преемника — `wolf call` + `wolf brief` | Протокол проекта |
|
|
100
|
+
|
|
101
|
+
Перенесённые списки: red flags 4/4, include 4/4, exclude 3/3, when-to-use 5/5.
|