mister-wolf 2.14.0 → 2.15.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/README.md +2 -0
- package/README.ru.md +2 -0
- package/dist/adapters/cli/commands/memory-doctor.d.ts.map +1 -1
- package/dist/adapters/cli/commands/memory-doctor.js +32 -1
- package/dist/adapters/cli/commands/memory-doctor.js.map +1 -1
- package/dist/adapters/cli/commands/memory-scaffold.d.ts.map +1 -1
- package/dist/adapters/cli/commands/memory-scaffold.js +15 -0
- package/dist/adapters/cli/commands/memory-scaffold.js.map +1 -1
- package/dist/adapters/cli/commands/memory-sync.d.ts.map +1 -1
- package/dist/adapters/cli/commands/memory-sync.js +8 -0
- package/dist/adapters/cli/commands/memory-sync.js.map +1 -1
- package/dist/adapters/fs/artifact-fs.d.ts +4 -0
- package/dist/adapters/fs/artifact-fs.d.ts.map +1 -0
- package/dist/adapters/fs/artifact-fs.js +29 -0
- package/dist/adapters/fs/artifact-fs.js.map +1 -0
- package/dist/adapters/platforms/opencode-adapter.d.ts +8 -1
- package/dist/adapters/platforms/opencode-adapter.d.ts.map +1 -1
- package/dist/adapters/platforms/opencode-adapter.js +33 -0
- package/dist/adapters/platforms/opencode-adapter.js.map +1 -1
- package/dist/app/use-cases/artifact-front-matter.d.ts +5 -0
- package/dist/app/use-cases/artifact-front-matter.d.ts.map +1 -0
- package/dist/app/use-cases/artifact-front-matter.js +16 -0
- package/dist/app/use-cases/artifact-front-matter.js.map +1 -0
- package/dist/app/use-cases/init-project.d.ts +3 -1
- package/dist/app/use-cases/init-project.d.ts.map +1 -1
- package/dist/app/use-cases/init-project.js +36 -16
- package/dist/app/use-cases/init-project.js.map +1 -1
- package/dist/app/use-cases/lint-artifacts.d.ts +18 -0
- package/dist/app/use-cases/lint-artifacts.d.ts.map +1 -0
- package/dist/app/use-cases/lint-artifacts.js +249 -0
- package/dist/app/use-cases/lint-artifacts.js.map +1 -0
- package/dist/app/use-cases/scaffold-agent.d.ts +1 -1
- package/dist/app/use-cases/scaffold-agent.d.ts.map +1 -1
- package/dist/app/use-cases/scaffold-agent.js +1 -1
- package/dist/app/use-cases/scaffold-agent.js.map +1 -1
- package/dist/app/use-cases/scaffold-artifact.d.ts +22 -0
- package/dist/app/use-cases/scaffold-artifact.d.ts.map +1 -0
- package/dist/app/use-cases/scaffold-artifact.js +153 -0
- package/dist/app/use-cases/scaffold-artifact.js.map +1 -0
- package/dist/app/use-cases/sync-artifact-index.d.ts +20 -0
- package/dist/app/use-cases/sync-artifact-index.d.ts.map +1 -0
- package/dist/app/use-cases/sync-artifact-index.js +68 -0
- package/dist/app/use-cases/sync-artifact-index.js.map +1 -0
- package/dist/domain/memory-types.d.ts +12 -0
- package/dist/domain/memory-types.d.ts.map +1 -1
- package/dist/domain/memory-types.js +4 -0
- package/dist/domain/memory-types.js.map +1 -1
- package/dist/domain/schemas/relation-schema.d.ts +1 -1
- package/dist/ports/platform-adapter.port.d.ts +15 -0
- package/dist/ports/platform-adapter.port.d.ts.map +1 -1
- package/package.json +1 -1
- package/templates/.wolf/router.log +1 -0
- package/templates/base/skills/finishing-a-development-branch/SKILL.md +32 -13
- package/templates/base/skills/receiving-code-review/SKILL.md +39 -0
- package/templates/base/skills/test-driven-development/SKILL.md +59 -37
- package/templates/base/skills/using-git-worktrees/SKILL.md +25 -15
- package/templates/base/skills/verification-before-completion/SKILL.md +39 -25
- package/templates/base/skills/wolf-brainstorm/SKILL.md +51 -36
- package/templates/base/skills/wolf-design/SKILL.md +45 -0
- package/templates/base/skills/wolf-execute/SKILL.md +30 -13
- package/templates/base/skills/wolf-plan/SKILL.md +38 -21
- package/templates/base/skills/wolf-review/SKILL.md +33 -14
- package/templates/base/skills/wolf-sdd/SKILL.md +38 -16
- package/templates/base/skills/wolf-skill-intake/SKILL.md +66 -0
- package/templates/base/skills/wolf-testplan/SKILL.md +37 -0
- package/templates/base/skills/writing-skills/SKILL.md +40 -0
- package/templates/opencode/plugins/wolf-router.ts +110 -52
- package/templates/opencode/plugins/wolf-session-start.js +88 -40
|
@@ -10,14 +10,14 @@ description: Используй при старте фичи, которой н
|
|
|
10
10
|
|
|
11
11
|
## Трассировка адаптации
|
|
12
12
|
|
|
13
|
-
| Пункт upstream
|
|
14
|
-
|
|
15
|
-
| Верификация gitignore (`git check-ignore`), автодетект сетапа, бейзлайн-тесты, механика `git worktree add`, отчёт о готовности, частые ошибки (4), red flags Never/Always (5/4) | **сохранено** (red flags — дословно по смыслу, H7)
|
|
16
|
-
| Приоритет каталогов upstream (`.worktrees` / `worktrees` / глобальный / опрос)
|
|
17
|
-
| `grep CLAUDE.md`
|
|
18
|
-
| Бейзлайн `npm test`
|
|
19
|
-
| Глобальный путь `~/.config/superpowers/worktrees/`
|
|
20
|
-
| Ветка-альтернатива `worktrees/` (без точки), персоналия upstream («Jesse's rule»)
|
|
13
|
+
| Пункт upstream | Судьба |
|
|
14
|
+
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------ |
|
|
15
|
+
| Верификация gitignore (`git check-ignore`), автодетект сетапа, бейзлайн-тесты, механика `git worktree add`, отчёт о готовности, частые ошибки (4), red flags Never/Always (5/4) | **сохранено** (red flags — дословно по смыслу, H7) |
|
|
16
|
+
| Приоритет каталогов upstream (`.worktrees` / `worktrees` / глобальный / опрос) | **заменено** правилом проекта: worktree всегда ВНУТРИ проекта — `.worktrees/<имя-задачи>` |
|
|
17
|
+
| `grep CLAUDE.md` | **заменено**: чтение AGENTS.md |
|
|
18
|
+
| Бейзлайн `npm test` | **заменено**: `npm run check` (верификационный примитив проекта) |
|
|
19
|
+
| Глобальный путь `~/.config/superpowers/worktrees/` | **отброшено**: противоречит правилу проекта (worktree внутри проекта) и непереносим (research §1: «глобальный путь worktrees») |
|
|
20
|
+
| Ветка-альтернатива `worktrees/` (без точки), персоналия upstream («Jesse's rule») | **отброшено**: единая конвенция `.worktrees/`; правило «чинить сломанное сразу» сохранено как механика без имени |
|
|
21
21
|
|
|
22
22
|
## Обзор
|
|
23
23
|
|
|
@@ -106,13 +106,13 @@ Worktree готов: <полный-путь>
|
|
|
106
106
|
|
|
107
107
|
## Быстрая шпаргалка
|
|
108
108
|
|
|
109
|
-
| Ситуация
|
|
110
|
-
|
|
111
|
-
| `.worktrees/` существует
|
|
112
|
-
| Не существует
|
|
113
|
-
| Каталог не игнорируется
|
|
114
|
-
| Тесты падают на бейзлайне
|
|
115
|
-
| Нет package.json / Cargo.toml и т.п. | Скипнуть установку зависимостей
|
|
109
|
+
| Ситуация | Действие |
|
|
110
|
+
| ------------------------------------ | ------------------------------------------------------ |
|
|
111
|
+
| `.worktrees/` существует | Использовать (проверить игнор) |
|
|
112
|
+
| Не существует | Создать внутри проекта `.worktrees/` (правило проекта) |
|
|
113
|
+
| Каталог не игнорируется | Добавить в .gitignore + коммит |
|
|
114
|
+
| Тесты падают на бейзлайне | Доложить о падениях + спросить |
|
|
115
|
+
| Нет package.json / Cargo.toml и т.п. | Скипнуть установку зависимостей |
|
|
116
116
|
|
|
117
117
|
## Частые ошибки
|
|
118
118
|
|
|
@@ -155,6 +155,7 @@ Worktree готов: /путь/к/проекту/.worktrees/auth
|
|
|
155
155
|
## Red flags
|
|
156
156
|
|
|
157
157
|
**Никогда:**
|
|
158
|
+
|
|
158
159
|
- Не создавать worktree без проверки игнора (project-local)
|
|
159
160
|
- Не пропускать бейзлайн-верификацию тестов
|
|
160
161
|
- Не продолжать с падающими тестами без вопроса
|
|
@@ -162,6 +163,7 @@ Worktree готов: /путь/к/проекту/.worktrees/auth
|
|
|
162
163
|
- Не пропускать проверку AGENTS.md
|
|
163
164
|
|
|
164
165
|
**Всегда:**
|
|
166
|
+
|
|
165
167
|
- Следовать правилу проекта: worktree внутри проекта, `.worktrees/<имя-задачи>`
|
|
166
168
|
- Верифицировать игнор для project-local каталогов
|
|
167
169
|
- Автодетектить и запускать сетап проекта
|
|
@@ -170,9 +172,17 @@ Worktree готов: /путь/к/проекту/.worktrees/auth
|
|
|
170
172
|
## Интеграция
|
|
171
173
|
|
|
172
174
|
**Вызывается из:**
|
|
175
|
+
|
|
173
176
|
- **wolf-sdd** — REQUIRED до старта исполнения задач (H5)
|
|
174
177
|
- **wolf-execute** — REQUIRED до старта исполнения задач (H5)
|
|
175
178
|
- Любого скилла, которому нужен изолированный workspace
|
|
176
179
|
|
|
177
180
|
**Пара с:**
|
|
181
|
+
|
|
178
182
|
- **finishing-a-development-branch** — REQUIRED для уборки после завершения работы
|
|
183
|
+
|
|
184
|
+
## Конвейер (2.15)
|
|
185
|
+
|
|
186
|
+
Параллельные потоки волны — отдельные worktree `.worktrees/<имя-задачи>` (агрегат
|
|
187
|
+
Стюарда по параллельным воркерам): независимые потоки стартуют параллельно,
|
|
188
|
+
конфликт-точки сериализуются порядком влитий.
|
|
@@ -10,12 +10,12 @@ description: Используй перед любым заявлением о з
|
|
|
10
10
|
|
|
11
11
|
## Трассировка адаптации
|
|
12
12
|
|
|
13
|
-
| Пункт upstream
|
|
14
|
-
|
|
15
|
-
| Iron Law, функция-гейт (5 шагов), таблица типовых сбоев (7), red flags (8), рационализации (8), ключевые паттерны (5), «Why This Matters» (5), «When To Apply» (2 списка) | **сохранено полностью** по смыслу дословно (H7; research §1: «Нет — полностью переносим»)
|
|
16
|
-
| «Agent delegation»
|
|
17
|
-
| Тестовая команда
|
|
18
|
-
| Nothing
|
|
13
|
+
| Пункт upstream | Судьба |
|
|
14
|
+
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- |
|
|
15
|
+
| Iron Law, функция-гейт (5 шагов), таблица типовых сбоев (7), red flags (8), рационализации (8), ключевые паттерны (5), «Why This Matters» (5), «When To Apply» (2 списка) | **сохранено полностью** по смыслу дословно (H7; research §1: «Нет — полностью переносим») |
|
|
16
|
+
| «Agent delegation» | **заменено**: агенты → воркеры контура Wolf (worker-\*); отчёт воркера — не доказательство, dispatcher проверяет git-дифф и верификацию |
|
|
17
|
+
| Тестовая команда | **конкретизировано**: `npm run check` — верификационный примитив проекта (+ точечные прогоны `npx vitest run <путь>`) |
|
|
18
|
+
| Nothing | **отброшено**: ничего — привязок к harness у источника нет |
|
|
19
19
|
|
|
20
20
|
## Обзор
|
|
21
21
|
|
|
@@ -51,15 +51,15 @@ description: Используй перед любым заявлением о з
|
|
|
51
51
|
|
|
52
52
|
## Типовые сбои
|
|
53
53
|
|
|
54
|
-
| Заявление
|
|
55
|
-
|
|
56
|
-
| Тесты проходят
|
|
57
|
-
| Линтер чист
|
|
58
|
-
| Сборка проходит
|
|
59
|
-
| Баг исправлен
|
|
60
|
-
| Регрессионный тест работает | Проверен цикл красный-зелёный
|
|
61
|
-
| Воркер завершил задачу
|
|
62
|
-
| Требования выполнены
|
|
54
|
+
| Заявление | Требуется | Недостаточно |
|
|
55
|
+
| --------------------------- | --------------------------------- | ------------------------------------------ |
|
|
56
|
+
| Тесты проходят | Вывод тестовой команды: 0 падений | Прошлый прогон, «должно пройти» |
|
|
57
|
+
| Линтер чист | Вывод линтера: 0 ошибок | Частичная проверка, экстраполяция |
|
|
58
|
+
| Сборка проходит | Команда сборки: exit 0 | Линтер зелёный, логи выглядят хорошо |
|
|
59
|
+
| Баг исправлен | Тест исходного симптома: проходит | Код изменён, «предположительно исправлено» |
|
|
60
|
+
| Регрессионный тест работает | Проверен цикл красный-зелёный | Тест прошёл один раз |
|
|
61
|
+
| Воркер завершил задачу | git-дифф показывает изменения | Отчёт воркера «успех» |
|
|
62
|
+
| Требования выполнены | Построчный чеклист | Тесты проходят |
|
|
63
63
|
|
|
64
64
|
## Red flags — СТОП
|
|
65
65
|
|
|
@@ -74,44 +74,49 @@ description: Используй перед любым заявлением о з
|
|
|
74
74
|
|
|
75
75
|
## Профилактика рационализаций
|
|
76
76
|
|
|
77
|
-
| Оправдание
|
|
78
|
-
|
|
79
|
-
| «Сейчас должно работать»
|
|
80
|
-
| «Я уверен»
|
|
81
|
-
| «Только этот раз»
|
|
82
|
-
| «Линтер прошёл»
|
|
83
|
-
| «Воркер доложил об успехе»
|
|
84
|
-
| «Я устал»
|
|
85
|
-
| «Частичной проверки хватит»
|
|
86
|
-
| «Другие слова — правило не применяется» | Дух важнее буквы
|
|
77
|
+
| Оправдание | Реальность |
|
|
78
|
+
| --------------------------------------- | ------------------------------ |
|
|
79
|
+
| «Сейчас должно работать» | ЗАПУСТИ верификацию |
|
|
80
|
+
| «Я уверен» | Уверенность ≠ доказательство |
|
|
81
|
+
| «Только этот раз» | Без исключений |
|
|
82
|
+
| «Линтер прошёл» | Линтер ≠ компилятор |
|
|
83
|
+
| «Воркер доложил об успехе» | Проверь независимо |
|
|
84
|
+
| «Я устал» | Усталость ≠ оправдание |
|
|
85
|
+
| «Частичной проверки хватит» | Частичное не доказывает ничего |
|
|
86
|
+
| «Другие слова — правило не применяется» | Дух важнее буквы |
|
|
87
87
|
|
|
88
88
|
## Ключевые паттерны
|
|
89
89
|
|
|
90
90
|
**Тесты:**
|
|
91
|
+
|
|
91
92
|
```
|
|
92
93
|
✅ [npm run check] [Видно: 591/591 pass] «Все тесты проходят»
|
|
93
94
|
❌ «Сейчас должно пройти» / «Выглядит корректно»
|
|
94
95
|
```
|
|
95
96
|
|
|
96
97
|
**Регрессионные тесты (TDD красный-зелёный):**
|
|
98
|
+
|
|
97
99
|
```
|
|
98
100
|
✅ Написал → Запустил (проходит) → Откатил фикс → Запустил (ОБЯЗАН УПАСТЬ) → Вернул → Запустил (проходит)
|
|
99
101
|
❌ «Я написал регрессионный тест» (без красно-зелёной верификации)
|
|
100
102
|
```
|
|
101
103
|
|
|
102
104
|
**Сборка:**
|
|
105
|
+
|
|
103
106
|
```
|
|
104
107
|
✅ [npm run build] [Видно: exit 0] «Сборка проходит»
|
|
105
108
|
❌ «Линтер прошёл» (линтер не проверяет компиляцию)
|
|
106
109
|
```
|
|
107
110
|
|
|
108
111
|
**Требования:**
|
|
112
|
+
|
|
109
113
|
```
|
|
110
114
|
✅ Перечитай план → составь чеклист → проверь каждый пункт → доложи пробелы или завершение
|
|
111
115
|
❌ «Тесты проходят, фаза завершена»
|
|
112
116
|
```
|
|
113
117
|
|
|
114
118
|
**Делегирование воркерам:**
|
|
119
|
+
|
|
115
120
|
```
|
|
116
121
|
✅ Воркер доложил успех → проверь git-дифф → верифицируй изменения → доложи фактическое состояние
|
|
117
122
|
❌ Доверять отчёту воркера (воркер, спавненный через {{tool.task}}, мог ошибиться)
|
|
@@ -120,6 +125,7 @@ description: Используй перед любым заявлением о з
|
|
|
120
125
|
## Почему это важно
|
|
121
126
|
|
|
122
127
|
Из 24 воспоминаний о сбоях:
|
|
128
|
+
|
|
123
129
|
- партнёр сказал «я тебе не верю» — доверие разрушено
|
|
124
130
|
- В прод уехали неопределённые функции — урон
|
|
125
131
|
- В прод уехали пропущенные требования — незавершённые фичи
|
|
@@ -129,6 +135,7 @@ description: Используй перед любым заявлением о з
|
|
|
129
135
|
## Когда применять
|
|
130
136
|
|
|
131
137
|
**ВСЕГДА перед:**
|
|
138
|
+
|
|
132
139
|
- Любой вариацией заявлений об успехе/завершённости
|
|
133
140
|
- Любым выражением удовлетворения
|
|
134
141
|
- Любым позитивным утверждением о состоянии работы
|
|
@@ -137,6 +144,7 @@ description: Используй перед любым заявлением о з
|
|
|
137
144
|
- Делегированием воркерам
|
|
138
145
|
|
|
139
146
|
**Правило распространяется на:**
|
|
147
|
+
|
|
140
148
|
- Точные формулировки
|
|
141
149
|
- Парафразы и синонимы
|
|
142
150
|
- Импликации успеха
|
|
@@ -155,3 +163,9 @@ description: Используй перед любым заявлением о з
|
|
|
155
163
|
Запусти команду. Прочитай вывод. ТОЛЬКО ПОТОМ заявляй результат.
|
|
156
164
|
|
|
157
165
|
Это не обсуждается.
|
|
166
|
+
|
|
167
|
+
## Конвейер (2.15)
|
|
168
|
+
|
|
169
|
+
Верификация — условие переворота чекбокса plan.md: `- [ ]` → `- [x]` допустимо
|
|
170
|
+
только после прогона проверок задачи (точечные тесты зелёные) + строка
|
|
171
|
+
«сделано → коммит <hash>». Чекбокс — истина завершённости.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: wolf-brainstorm
|
|
3
|
-
description:
|
|
3
|
+
description: 'Обязателен до любой творческой работы — новых фич, компонентов, изменения поведения. Превращает идею в дизайн через диалог: вопросы по одному, варианты с трейд-оффами, аппрув владельца. Discovery-режим координатора.'
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# wolf-brainstorm: идея → дизайн
|
|
@@ -102,35 +102,50 @@ digraph wolf_brainstorm {
|
|
|
102
102
|
- Если существующий код мешает работе (файл разросся, границы размыты, ответственности перепутаны) — включи точечные улучшения в дизайн, как хороший разработчик, улучшающий код, в котором работает.
|
|
103
103
|
- Не предлагай несвязанный рефакторинг. Фокус на том, что служит текущей цели.
|
|
104
104
|
|
|
105
|
-
##
|
|
105
|
+
## Выход: requirements.md (v2 — анатомия §4.1 спеки конвейера)
|
|
106
106
|
|
|
107
|
-
|
|
107
|
+
Диалог с владельцем завершается артефактом `docs/dev/<дата>-<slug>/requirements.md`.
|
|
108
|
+
Папку создаёт `wolf scaffold artifact <slug>` — файлы артефактов вручную не создавать.
|
|
108
109
|
|
|
109
|
-
|
|
110
|
-
- Закоммить дизайн-документ (правило проекта: коммит после завершённой работы)
|
|
111
|
-
- Ключевые решения дизайна зафиксируй в памяти: `wolf add --type decision` — с обоснованием; они переживут сессию и достанутся исполнителям
|
|
110
|
+
Структура документа — 7 секций:
|
|
112
111
|
|
|
113
|
-
|
|
114
|
-
|
|
112
|
+
1. Контекст и проблема — зачем, прозой, бизнес-языком; метрика успеха.
|
|
113
|
+
2. Область — что входит; НЕ входит (не-цели уровня требований).
|
|
114
|
+
3. Глоссарий — бизнес-термины фичи, если появились новые.
|
|
115
|
+
4. Функциональные требования — записи REQ-NN.
|
|
116
|
+
5. Нефункциональные (NFR-NN) — производительность, безопасность, совместимость;
|
|
117
|
+
каждая с измеримым критерием.
|
|
118
|
+
6. Ограничения и допущения — что считаем данным.
|
|
119
|
+
7. Журнал изменений (CR) — append-only: дата, затронутый REQ/NFR, что/почему,
|
|
120
|
+
кем утверждено, downstream-перегенерации.
|
|
115
121
|
|
|
116
|
-
|
|
117
|
-
2. **Внутренняя согласованность:** противоречат ли секции друг другу? Согласуется ли архитектура с описанием фич?
|
|
118
|
-
3. **Проверка scope:** достаточно ли фокусировки для одного плана реализации, или нужна декомпозиция?
|
|
119
|
-
4. **Проверка двусмысленности:** можно ли истолковать требование двумя способами? Если да — выбери одну трактовку и сделай явной.
|
|
122
|
+
Анатомия записи (обязательные поля каждой записи REQ/NFR):
|
|
120
123
|
|
|
121
|
-
|
|
124
|
+
- История: Как <роль>, я хочу <возможность>, чтобы <выгода>.
|
|
125
|
+
- Требование: Когда <условие>, система должна <поведение>.
|
|
126
|
+
- Обоснование: <зачем это бизнесу — словами владельца>.
|
|
127
|
+
- AC: <измеримый критерий; нетривиальные — Given/When/Then>.
|
|
128
|
+
- Приоритет: Must | Should | Could.
|
|
129
|
+
- Источник: <диалог <дата> / жалоба mem-… / ревью-линза>.
|
|
122
130
|
|
|
123
|
-
|
|
124
|
-
|
|
131
|
+
Критерии готовности записи (гейт линзы полноты; часть проверяет линт):
|
|
132
|
+
одно требование — одна запись; есть история И формальная запись; есть AC
|
|
133
|
+
(REQ без AC — находка линта); есть источник; неопределённость помечена
|
|
134
|
+
`[НЕОПРЕДЕЛЕНО: вопрос]`, не сжата; владелец пересказывает требование своими
|
|
135
|
+
словами — не может, это дефект требования, а не читателя.
|
|
125
136
|
|
|
126
|
-
|
|
137
|
+
Язык: полные предложения, ноль сленга, термины домена без сокращений, новое
|
|
138
|
+
понятие объясняется при первом употреблении, смысловое сжатие запрещено.
|
|
127
139
|
|
|
128
|
-
|
|
140
|
+
## Второй режим: roadmap-триаж
|
|
129
141
|
|
|
130
|
-
|
|
142
|
+
Диалог с владельцем по кандидатурам волн → вердикт по каждой: «волна N / бэклог /
|
|
143
|
+
отклонено + причина». Запись — перемещением, не копированием (пункт живёт ровно
|
|
144
|
+
в одном файле; дубль — находка линта doctor):
|
|
131
145
|
|
|
132
|
-
-
|
|
133
|
-
-
|
|
146
|
+
- волна N → `docs/dev/roadmap/wave-N.md` (состав волны, источник вердикта);
|
|
147
|
+
- бэклог → `docs/dev/roadmap/backlog.md`;
|
|
148
|
+
- отклонено → `docs/dev/roadmap/rejected.md` (+ причина).
|
|
134
149
|
|
|
135
150
|
## Ключевые принципы
|
|
136
151
|
|
|
@@ -147,21 +162,21 @@ digraph wolf_brainstorm {
|
|
|
147
162
|
|
|
148
163
|
> Источник: `~/.config/opencode/superpowers/skills/brainstorming/SKILL.md`, upstream 6efe32c (2026-04-23)
|
|
149
164
|
|
|
150
|
-
| Пункт источника
|
|
151
|
-
|
|
152
|
-
| HARD-GATE до аппрува
|
|
153
|
-
| Анти-паттерн «слишком просто для дизайна»
|
|
154
|
-
| Чеклист (9 пунктов)
|
|
155
|
-
| Пункт «Invoke writing-plans skill»
|
|
156
|
-
| TodoWrite
|
|
157
|
-
| Flowchart
|
|
158
|
-
| «The Process» (5 блоков)
|
|
159
|
-
| Путь `docs/superpowers/specs/`
|
|
160
|
-
| Саморевью спеки (4 проверки)
|
|
161
|
-
| Гейт ревью владельца
|
|
162
|
-
| Ключевые принципы (6)
|
|
163
|
-
| Скилл elements-of-style (секция «Документация»)
|
|
164
|
-
| Visual Companion (секция + `visual-companion.md`) | отброшено
|
|
165
|
-
| —
|
|
165
|
+
| Пункт источника | Судьба | Почему |
|
|
166
|
+
| ------------------------------------------------- | --------------------------------------------------------------------------- | ----------------------------------------------------------- |
|
|
167
|
+
| HARD-GATE до аппрува | сохранено | Ядро скилла; «user» → «владелец» |
|
|
168
|
+
| Анти-паттерн «слишком просто для дизайна» | сохранено полностью (1/1) | H7 |
|
|
169
|
+
| Чеклист (9 пунктов) | сохранено; п.2 (visual companion) отброшен, п.9 → wolf-plan | Браузерный компаньон вне базового набора |
|
|
170
|
+
| Пункт «Invoke writing-plans skill» | заменено → `{{tool.skill}} wolf-plan` | H4: терминальное состояние — только wolf-plan |
|
|
171
|
+
| TodoWrite | заменено → `{{tool.todowrite}}` | Плейсхолдер |
|
|
172
|
+
| Flowchart | сохранено; терминальный узел → wolf-plan | Ядро-флоу |
|
|
173
|
+
| «The Process» (5 блоков) | сохранено | Переносимое ядро |
|
|
174
|
+
| Путь `docs/superpowers/specs/` | заменено → `docs/specs/…` + предпочтения проекта | Harness-привязка (research §1) |
|
|
175
|
+
| Саморевью спеки (4 проверки) | сохранено полностью (4/4) | Чеклист-ядро |
|
|
176
|
+
| Гейт ревью владельца | сохранено | Ядро |
|
|
177
|
+
| Ключевые принципы (6) | сохранено полностью (6/6) | H7 |
|
|
178
|
+
| Скилл elements-of-style (секция «Документация») | отброшено | Скилл вне базового набора (research §6) |
|
|
179
|
+
| Visual Companion (секция + `visual-companion.md`) | отброшено | Браузерный компаньон и sibling-файл не переносятся |
|
|
180
|
+
| — | добавлено: Discovery-режим; worktree НЕ создаёт; `wolf add --type decision` | Спека §5.2 (архив §2.3), H5-распределение владения worktree |
|
|
166
181
|
|
|
167
182
|
Перенесённые списки: анти-паттерны 1/1, принципы 6/6, саморевью 4/4.
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: wolf-design
|
|
3
|
+
description: 'Вход: requirements.md (approved) + кодовая база. Выход: design.md — компоненты, контракты кодом (≤10 строк), псевдокод алгоритмов, ADR-карточки, глоссарий. Копипаста реализации запрещена.'
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# wolf-design: design.md по requirements.md
|
|
7
|
+
|
|
8
|
+
## Обзор
|
|
9
|
+
|
|
10
|
+
Артефакт-конвейер Wolf: requirements.md (approved владельцем) → design.md.
|
|
11
|
+
Скилл исполняется чистым воркером; диспетчеризация не меняется.
|
|
12
|
+
|
|
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
|
+
## Железные запреты
|
|
33
|
+
|
|
34
|
+
- Копипаста реализации продукта в design.md запрещена (урок старых планов: ошибка
|
|
35
|
+
была не в наличии кода, а в наличии готовой реализации в документе планирования).
|
|
36
|
+
- Переопределять требования: единственный источник AC — requirements.md.
|
|
37
|
+
- Писать design.md до approved requirements.md.
|
|
38
|
+
|
|
39
|
+
## Процесс
|
|
40
|
+
|
|
41
|
+
1. Прочитать requirements.md целиком; каждый REQ/NFR должен иметь место в design
|
|
42
|
+
(компонент, контракт или осознанное «не требует дизайна»).
|
|
43
|
+
2. Сверить контракты с кодом базлайна (file:line).
|
|
44
|
+
3. Заполнить секции; front-matter `status: review`.
|
|
45
|
+
4. Отчёт: список ADR-карточек (владельцу на визу) + открытые `[НЕОПРЕДЕЛЕНО: …]`.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: wolf-execute
|
|
3
|
-
description:
|
|
3
|
+
description: 'Fallback-режим линейного исполнения плана без субагентов (FLAT): загрузи план, критически осмотрись, исполняй задачи батчами с чекпоинтами. Используй, когда диспетчеризация воркеров недоступна.'
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# wolf-execute: линейное исполнение плана (FLAT)
|
|
@@ -13,6 +13,10 @@ description: "Fallback-режим линейного исполнения пла
|
|
|
13
13
|
|
|
14
14
|
**Если доступны субагенты** — используй wolf-sdd вместо этого скилла: свежий воркер на задачу + двухстадийное ревью дают заметно более высокое качество. wolf-execute — fallback для платформ/сессий без диспетчеризации.
|
|
15
15
|
|
|
16
|
+
wolf-execute — FLAT-fallback линейного исполнения для агентов без диспетчеризации;
|
|
17
|
+
mr-wolf его не использует (правило роли `mem_20260903_..._e95317`). Вопрос о судьбе
|
|
18
|
+
скилла — в backlog роадмапа, вне волны 2.15.
|
|
19
|
+
|
|
16
20
|
## REQUIRED-предусловие: worktree
|
|
17
21
|
|
|
18
22
|
**До старта исполнения worktree ОБЯЗАН существовать:** `.worktrees/<имя-задачи>` внутри проекта (правило проекта). Trunk-based: main — истина, работа идёт в ветке внутри worktree (см. скилл using-git-worktrees). Никогда не начинай исполнение в main без явного согласия владельца.
|
|
@@ -20,14 +24,22 @@ description: "Fallback-режим линейного исполнения пла
|
|
|
20
24
|
## Процесс
|
|
21
25
|
|
|
22
26
|
### Шаг 1: загрузи и осмотрись
|
|
27
|
+
|
|
23
28
|
1. Прочитай файл плана
|
|
24
29
|
2. Критическое ревью — определи вопросы и сомнения по плану
|
|
25
30
|
3. Есть сомнения — подними их перед владельцем до старта
|
|
26
31
|
4. Нет сомнений — заведи трекинг задач через {{tool.todowrite}} и продолжай
|
|
27
32
|
|
|
33
|
+
Вход плана — трио `requirements.md` + `design.md` + `plan.md` в `docs/dev/<дата>-<slug>/`. Спека-монолит как вход плана не используется.
|
|
34
|
+
|
|
35
|
+
Задачи плана — чекбоксы `- [ ]`: исполнитель переворачивает чекбокс в `[x]` в конце
|
|
36
|
+
задачи вместе со строкой «сделано → коммит <hash>» — часть Definition of Done задачи.
|
|
37
|
+
wolf-sdd — основной диспетчерский путь конвейера.
|
|
38
|
+
|
|
28
39
|
### Шаг 2: исполняй задачи
|
|
29
40
|
|
|
30
41
|
Для каждой задачи:
|
|
42
|
+
|
|
31
43
|
1. Отметь in_progress
|
|
32
44
|
2. Следуй каждому шагу точно (план состоит из bite-sized шагов)
|
|
33
45
|
3. Запускай верификацию, как предписано планом; после завершённых блоков — `npm run check` (verification-примитив проекта)
|
|
@@ -36,13 +48,16 @@ description: "Fallback-режим линейного исполнения пла
|
|
|
36
48
|
### Шаг 3: заверши разработку
|
|
37
49
|
|
|
38
50
|
После всех задач и верификации:
|
|
51
|
+
|
|
39
52
|
- Анонс: «Использую скилл finishing-a-development-branch для завершения работы»
|
|
40
53
|
- **REQUIRED-СКИЛЛ:** finishing-a-development-branch
|
|
41
54
|
- Следуй ему: верифицируй тесты, представь опции финала ветки, исполни выбор владельца
|
|
55
|
+
- Валидация волны сверяется с `docs/dev/<дата>-<slug>/test-plan.md`: прогон сценариев — заготовки финальной проверки плана.
|
|
42
56
|
|
|
43
57
|
## Когда остановиться и спросить
|
|
44
58
|
|
|
45
59
|
**СТОП исполнения немедленно, когда:**
|
|
60
|
+
|
|
46
61
|
- Ударился в блокер (нет зависимости, падает тест, инструкция непонятна)
|
|
47
62
|
- В плане критические пробелы, мешающие стартовать
|
|
48
63
|
- Ты не понимаешь инструкцию
|
|
@@ -53,6 +68,7 @@ description: "Fallback-режим линейного исполнения пла
|
|
|
53
68
|
## Когда вернуться к ранним шагам
|
|
54
69
|
|
|
55
70
|
**Вернись к ревью (шаг 1), когда:**
|
|
71
|
+
|
|
56
72
|
- Владелец обновил план по твоему фидбеку
|
|
57
73
|
- Фундаментальный подход требует пересмотра
|
|
58
74
|
|
|
@@ -70,6 +86,7 @@ description: "Fallback-режим линейного исполнения пла
|
|
|
70
86
|
## Интеграция
|
|
71
87
|
|
|
72
88
|
**Обязательные скиллы воркфлоу:**
|
|
89
|
+
|
|
73
90
|
- **using-git-worktrees** — REQUIRED: изолированный worktree `.worktrees/<имя-задачи>` ДО старта исполнения
|
|
74
91
|
- **wolf-plan** — создаёт план, который этот скилл исполняет
|
|
75
92
|
- **finishing-a-development-branch** — завершение разработки после всех задач
|
|
@@ -80,17 +97,17 @@ description: "Fallback-режим линейного исполнения пла
|
|
|
80
97
|
|
|
81
98
|
> Источник: `~/.config/opencode/superpowers/skills/executing-plans/SKILL.md`, upstream 6efe32c (2026-04-23)
|
|
82
99
|
|
|
83
|
-
| Пункт источника
|
|
84
|
-
|
|
85
|
-
| Обзор (load → review → execute → report) | сохранено
|
|
86
|
-
| Note «subagents work better»
|
|
87
|
-
| Упоминания платформ (Claude Code, Codex) | отброшено
|
|
88
|
-
| TodoWrite
|
|
89
|
-
| Шаги 1–3
|
|
90
|
-
| «When to Stop» (4)
|
|
91
|
-
| «When to Revisit» (2)
|
|
92
|
-
| «Remember» (6)
|
|
93
|
-
| Integration (worktrees REQUIRED)
|
|
94
|
-
| —
|
|
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 |
|
|
95
112
|
|
|
96
113
|
Перенесённые списки: Stop 4/4, Revisit 2/2, Remember 6/6.
|