mister-wolf 2.14.1 → 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/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/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/package.json +1 -1
- package/templates/.wolf/router.log +1 -1
- 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
|
@@ -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.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: wolf-plan
|
|
3
|
-
description:
|
|
3
|
+
description: 'Используй, когда есть спека или требования для многошаговой задачи — до касания кода. Пишет zero-context планы: каждая задача = самодостаточный бриф воркера, исполнитель не обязан знать кодовую базу.'
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# wolf-plan: план для zero-context исполнителя
|
|
@@ -17,11 +17,26 @@ description: "Используй, когда есть спека или треб
|
|
|
17
17
|
|
|
18
18
|
**Контекст:** исполнение плана начинается только в worktree `.worktrees/<имя-задачи>` (правило проекта; создаётся ДО старта исполнения — см. wolf-sdd / wolf-execute). Сам план можно писать и до worktree.
|
|
19
19
|
|
|
20
|
-
|
|
20
|
+
## Вход (v2)
|
|
21
21
|
|
|
22
|
-
|
|
22
|
+
- `docs/dev/<дата>-<slug>/requirements.md` (approved).
|
|
23
|
+
- `docs/dev/<дата>-<slug>/design.md` (approved линзами/владельцем).
|
|
24
|
+
Спека-монолит больше не вход: план не пересказывает требования и не переопределяет
|
|
25
|
+
контракты — единственный источник контрактов — design.md.
|
|
23
26
|
|
|
24
|
-
|
|
27
|
+
## Выход: plan.md (в папке фичи)
|
|
28
|
+
|
|
29
|
+
План остаётся обзорным. Каждая задача плана:
|
|
30
|
+
|
|
31
|
+
- цель задачи (одно предложение);
|
|
32
|
+
- ссылка на §design, откуда берутся контракты (`design §Компоненты`, `ADR-2`);
|
|
33
|
+
- file:line базлайна кода, куда вносится изменение;
|
|
34
|
+
- без копипасты реализации продукта; крупные детали — ссылками на design, не пересказом.
|
|
35
|
+
|
|
36
|
+
Каждая задача — чекбокс `- [ ]`. Исполнитель переворачивает чекбокс в `[x]` в конце
|
|
37
|
+
задачи вместе со строкой «сделано → коммит <hash>». Чекбокс — истина завершённости
|
|
38
|
+
для восстановления прерванной работы; вердикты и контекст — в памяти Wolf. Линза
|
|
39
|
+
«соответствие» сверяет чекбоксы с отчётами при приёмке волны.
|
|
25
40
|
|
|
26
41
|
## Структура файлов
|
|
27
42
|
|
|
@@ -37,6 +52,7 @@ description: "Используй, когда есть спека или треб
|
|
|
37
52
|
## Гранулярность bite-sized
|
|
38
53
|
|
|
39
54
|
**Каждый шаг — одно действие (2–5 минут):**
|
|
55
|
+
|
|
40
56
|
- «Напиши падающий тест» — шаг
|
|
41
57
|
- «Запусти и убедись, что он падает» — шаг
|
|
42
58
|
- «Напиши минимальный код, чтобы тест прошёл» — шаг
|
|
@@ -68,6 +84,7 @@ description: "Используй, когда есть спека или треб
|
|
|
68
84
|
### Задача N: [Имя компонента]
|
|
69
85
|
|
|
70
86
|
**Файлы:**
|
|
87
|
+
|
|
71
88
|
- Create: `точный/путь/к/file.ts`
|
|
72
89
|
- Modify: `точный/путь/к/existing.ts:123-145`
|
|
73
90
|
- Test: `tests/точный/путь/к/test.ts`
|
|
@@ -75,7 +92,7 @@ description: "Используй, когда есть спека или треб
|
|
|
75
92
|
- [ ] **Шаг 1: Напиши падающий тест**
|
|
76
93
|
|
|
77
94
|
```typescript
|
|
78
|
-
it(
|
|
95
|
+
it('конкретное поведение', () => {
|
|
79
96
|
expect(fn(input)).toBe(expected);
|
|
80
97
|
});
|
|
81
98
|
```
|
|
@@ -89,7 +106,7 @@ it("конкретное поведение", () => {
|
|
|
89
106
|
|
|
90
107
|
```typescript
|
|
91
108
|
export function fn(input: string): string {
|
|
92
|
-
return
|
|
109
|
+
return 'expected';
|
|
93
110
|
}
|
|
94
111
|
```
|
|
95
112
|
|
|
@@ -158,20 +175,20 @@ git commit -m "feat: add specific feature"
|
|
|
158
175
|
|
|
159
176
|
> Источник: `~/.config/opencode/superpowers/skills/writing-plans/SKILL.md`, upstream 6efe32c (2026-04-23)
|
|
160
177
|
|
|
161
|
-
| Пункт источника
|
|
162
|
-
|
|
163
|
-
| Zero-context принцип
|
|
164
|
-
| «created by brainstorming skill» (worktree)
|
|
165
|
-
| Путь `docs/superpowers/plans/`
|
|
166
|
-
| Заголовок «REQUIRED SUB-SKILL: sdd or executing-plans» | заменено → wolf-sdd ИЛИ wolf-execute
|
|
167
|
-
| Проверка масштаба
|
|
168
|
-
| Структура файлов
|
|
169
|
-
| Bite-sized гранулярность
|
|
170
|
-
| Структура задачи (пример)
|
|
171
|
-
| «No Placeholders» (6 провалов)
|
|
172
|
-
| «Remember» (4)
|
|
173
|
-
| Саморевью (3 проверки)
|
|
174
|
-
| Execution Handoff (2 опции)
|
|
175
|
-
| —
|
|
178
|
+
| Пункт источника | Судьба | Почему |
|
|
179
|
+
| ------------------------------------------------------ | ------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------- |
|
|
180
|
+
| Zero-context принцип | сохранено + усилено «вход воркеров по брифам» | Спека §5.2 |
|
|
181
|
+
| «created by brainstorming skill» (worktree) | заменено: worktree до старта исполнения, правило `.worktrees/<имя-задачи>` | H5; upstream-ребро brainstorm→worktree одностороннее, не воспроизводим |
|
|
182
|
+
| Путь `docs/superpowers/plans/` | заменено → `docs/plans/…` | Harness-привязка (research §1) |
|
|
183
|
+
| Заголовок «REQUIRED SUB-SKILL: sdd or executing-plans» | заменено → wolf-sdd ИЛИ wolf-execute | Рёбра набора Wolf |
|
|
184
|
+
| Проверка масштаба | сохранено | Ядро |
|
|
185
|
+
| Структура файлов | сохранено | Ядро |
|
|
186
|
+
| Bite-sized гранулярность | сохранено | Ядро |
|
|
187
|
+
| Структура задачи (пример) | сохранено; пример переведён (vitest вместо pytest) | Нейтральная иллюстрация под стек проекта |
|
|
188
|
+
| «No Placeholders» (6 провалов) | сохранено полностью (6/6) | H7 |
|
|
189
|
+
| «Remember» (4) | сохранено полностью (4/4) | H7 |
|
|
190
|
+
| Саморевью (3 проверки) | сохранено полностью (3/3) | Чеклист-ядро |
|
|
191
|
+
| Execution Handoff (2 опции) | сохранено; sdd-опция → executor-lead/worker-\*, ревью → worker-reviewer; добавлен `npm run check` | Wolf-переплетение |
|
|
192
|
+
| — | добавлено: задача = бриф воркера (worker-implementer) | Zero-context вход по брифам |
|
|
176
193
|
|
|
177
194
|
Перенесённые списки: anti-patterns «No Placeholders» 6/6, «Remember» 4/4, саморевью 3/3.
|
|
@@ -11,19 +11,19 @@ description: Мульти-линзовое ревью документов (doc-
|
|
|
11
11
|
|
|
12
12
|
## Трассировка переноса
|
|
13
13
|
|
|
14
|
-
| Пункт источника
|
|
15
|
-
|
|
|
16
|
-
| Рамочный паттерн analyze-doc: методика в памяти, файл — тонкая рамка
|
|
17
|
-
| Протокол подтягивания playbook перед прогоном
|
|
18
|
-
| Мульти-линзовость, изоляция линз в чистых сессиях (REVIEW-001)
|
|
19
|
-
| Перспектива линз полнота → консистентность → типоспецифичные (REVIEW-001) | Сохранено
|
|
20
|
-
| Контракты SUMMARY/VERDICT (REVIEW-001: вердикт «CHANGES»)
|
|
21
|
-
| Дедуп находок, подсчёт, счётчик раундов, критерий сходимости (REVIEW-001) | Сохранено
|
|
22
|
-
| Конфликты находок между линзами решает владелец (REVIEW-001)
|
|
23
|
-
| Security-линза (REVIEW-001)
|
|
24
|
-
| Самомутация playbook по фидбеку (analyze-doc PoC, п. 3)
|
|
25
|
-
| Исполнитель-аналитик PoC (apprentice)
|
|
26
|
-
| Продуктовый код оркестрации
|
|
14
|
+
| Пункт источника | Судьба |
|
|
15
|
+
| ------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- |
|
|
16
|
+
| Рамочный паттерн analyze-doc: методика в памяти, файл — тонкая рамка | Сохранено |
|
|
17
|
+
| Протокол подтягивания playbook перед прогоном | Сохранено; запрос `wolf search "wolf-review playbook"`, наибольшая версия |
|
|
18
|
+
| Мульти-линзовость, изоляция линз в чистых сессиях (REVIEW-001) | Сохранено |
|
|
19
|
+
| Перспектива линз полнота → консистентность → типоспецифичные (REVIEW-001) | Сохранено |
|
|
20
|
+
| Контракты SUMMARY/VERDICT (REVIEW-001: вердикт «CHANGES») | Сохранено; «CHANGES» заменён на `CHANGES_REQUIRED` (стандартизация по спеке §6) |
|
|
21
|
+
| Дедуп находок, подсчёт, счётчик раундов, критерий сходимости (REVIEW-001) | Сохранено |
|
|
22
|
+
| Конфликты находок между линзами решает владелец (REVIEW-001) | Сохранено |
|
|
23
|
+
| Security-линза (REVIEW-001) | Отброшено: осознанное отклонение — для документов не тянем (спека §6) |
|
|
24
|
+
| Самомутация playbook по фидбеку (analyze-doc PoC, п. 3) | Заменено: фидбек о методике/линзах → жалобный контур (`wolf complain`, тег complaint); мутатор — Стюард |
|
|
25
|
+
| Исполнитель-аналитик PoC (apprentice) | Заменено: линзы исполняют worker-reviewer; оркестратор цикла — mr-wolf |
|
|
26
|
+
| Продуктовый код оркестрации | Отброшено: весь цикл ведёт mr-wolf по протоколу этого скилла (спека §10) |
|
|
27
27
|
|
|
28
28
|
## Рамка (методика — НЕ в этом файле)
|
|
29
29
|
|
|
@@ -53,9 +53,28 @@ description: Мульти-линзовое ревью документов (doc-
|
|
|
53
53
|
8. **Конфликты**: противоречащие находки разных линз разрешает владелец
|
|
54
54
|
(слепой судьи в MVP нет) — mr-wolf докладывает конфликт, не выбирает сам.
|
|
55
55
|
|
|
56
|
+
## Линзы конвейера (v2): один вопрос — одна пара файлов
|
|
57
|
+
|
|
58
|
+
| Линза | Пара файлов | Вопрос |
|
|
59
|
+
| --------------- | ------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
60
|
+
| Полнота | requirements.md (целиком) | Атомарность, недвусмысленность, проверяемость записей; критерии готовности анатомии (история+формальная запись, AC, источник, `[НЕОПРЕДЕЛЕНО]` не сжат). Семантика; механику ловит линт doctor. |
|
|
61
|
+
| Консистентность | design.md | Соответствие requirements (REQ/NFR покрыты), базлайну кода (контракты с file:line), ADR-карточки полны. |
|
|
62
|
+
| Соответствие | plan.md ↔ design.md | Каждая задача ссылается на §design; контракты не переопределены; чекбоксы `[x]` сверены с отчётами при приёмке волны. |
|
|
63
|
+
| Покрытие AC | test-plan.md ↔ requirements.md | Сценарий на каждый REQ-NN; AC не переизобретены; маппинг на файлы существует. |
|
|
64
|
+
|
|
65
|
+
## Гейты (Kiro-паттерн)
|
|
66
|
+
|
|
67
|
+
1. Владелец аппрувит requirements.md до запуска технических ступеней.
|
|
68
|
+
2. ADR-карточки design.md — владельцу на визу отдельно (продуктовые выборы, не техника).
|
|
69
|
+
3. Следующая ступень (design → plan → test-plan) генерируется только после аппрува предыдущей.
|
|
70
|
+
4. Технические артефакты ревьюят линзы; владельцу — выжимка на визу.
|
|
71
|
+
5. Журнал вердиктов: вердикты линз и гейтов владельца — append-only строкой
|
|
72
|
+
(линза | дата | вердикт | ключевые находки | что исправлено) в `review.md`
|
|
73
|
+
папки фичи — каждую линзо-итерацию; детали — в памяти Wolf, в git — свод.
|
|
74
|
+
|
|
56
75
|
### Границы рамки
|
|
57
76
|
|
|
58
77
|
- Критичные запреты: `rm -rf`, `sudo`, деструктивный git, секреты.
|
|
59
78
|
- Продуктового кода оркестрации нет — цикл ведёт mr-wolf по этому протоколу.
|
|
60
79
|
- Этот файл не содержит методику линз и не должен её содержать:
|
|
61
|
-
|
|
80
|
+
версии линз живут в памяти Wolf.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: wolf-sdd
|
|
3
|
-
description:
|
|
3
|
+
description: 'Используй для исполнения планов реализации с независимыми задачами через субагентов: свежий воркер на каждую задачу через executor-lead + двухстадийное ревью worker-reviewer (соответствие брифу, затем качество).'
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# wolf-sdd: разработка через субагентов
|
|
@@ -40,11 +40,20 @@ digraph when_to_use {
|
|
|
40
40
|
```
|
|
41
41
|
|
|
42
42
|
**vs wolf-execute (параллельная/линейная сессия):**
|
|
43
|
+
|
|
43
44
|
- Та же сессия (без переключения контекста)
|
|
44
45
|
- Свежий воркер на задачу (без загрязнения контекста)
|
|
45
46
|
- Двухстадийное ревью после каждой задачи: сначала бриф, затем качество
|
|
46
47
|
- Быстрее итерация (без человека между задачами)
|
|
47
48
|
|
|
49
|
+
## Вход: план
|
|
50
|
+
|
|
51
|
+
Источник входа — план волны: `requirements.md` + `design.md` + `plan.md` в `docs/dev/<дата>-<slug>/`. Спека-монолит как вход плана не используется.
|
|
52
|
+
|
|
53
|
+
Задачи плана — чекбоксы `- [ ]`: исполнитель переворачивает чекбокс в `[x]` в конце
|
|
54
|
+
задачи вместе со строкой «сделано → коммит <hash>» — часть Definition of Done задачи.
|
|
55
|
+
wolf-sdd — основной диспетчерский путь конвейера.
|
|
56
|
+
|
|
48
57
|
## Ход процесса
|
|
49
58
|
|
|
50
59
|
```dot
|
|
@@ -92,6 +101,10 @@ digraph process {
|
|
|
92
101
|
}
|
|
93
102
|
```
|
|
94
103
|
|
|
104
|
+
## Валидация волны
|
|
105
|
+
|
|
106
|
+
- Валидация волны сверяется с `docs/dev/<дата>-<slug>/test-plan.md`: прогон сценариев — заготовки финальной проверки плана.
|
|
107
|
+
|
|
95
108
|
## Тиринг задач
|
|
96
109
|
|
|
97
110
|
Используй наименее мощную модель, которая справится с ролью — это экономит стоимость и время. Конкретные имена моделей — зона конфига проекта (тиринг), не этого скилла.
|
|
@@ -103,6 +116,7 @@ digraph process {
|
|
|
103
116
|
**Архитектура, дизайн и ревью:** самая способная доступная модель.
|
|
104
117
|
|
|
105
118
|
**Сигналы сложности задачи:**
|
|
119
|
+
|
|
106
120
|
- Трогает 1–2 файла с полным брифом → воркерская модель
|
|
107
121
|
- Трогает много файлов с интеграционными рисками → стандартная
|
|
108
122
|
- Требует дизайнерского суждения или широкого понимания кодовой базы → самая способная
|
|
@@ -118,6 +132,7 @@ digraph process {
|
|
|
118
132
|
**NEEDS_CONTEXT:** воркеру не хватило информации. Дай недостающий контекст и перезапусти.
|
|
119
133
|
|
|
120
134
|
**BLOCKED:** воркер не может завершить задачу. Оцени блокер:
|
|
135
|
+
|
|
121
136
|
1. Проблема контекста — дай больше контекста, перезапусти
|
|
122
137
|
2. Задача требует больше рассуждений — поднимись на уровень выше тирингом
|
|
123
138
|
3. Задача слишком велика — разбей на меньшие части
|
|
@@ -172,6 +187,7 @@ digraph process {
|
|
|
172
187
|
## Red Flags
|
|
173
188
|
|
|
174
189
|
**Никогда:**
|
|
190
|
+
|
|
175
191
|
- Не начинай исполнение в main без явного согласия владельца (работа — только в worktree-ветке)
|
|
176
192
|
- Не пропускай ревью (соответствие брифу ИЛИ качество — оба обязательны)
|
|
177
193
|
- Не продолжай с незакрытыми замечаниями
|
|
@@ -186,32 +202,38 @@ digraph process {
|
|
|
186
202
|
- Не переходи к следующей задаче, пока любое из ревью имеет открытые замечания
|
|
187
203
|
|
|
188
204
|
**Если воркер задаёт вопросы:**
|
|
205
|
+
|
|
189
206
|
- Отвечай ясно и полностью
|
|
190
207
|
- Дай дополнительный контекст при необходимости
|
|
191
208
|
- Не подгоняй его к реализации
|
|
192
209
|
|
|
193
210
|
**Если ревьюер нашёл проблемы:**
|
|
211
|
+
|
|
194
212
|
- Правит тот же воркер-исполнитель
|
|
195
213
|
- Ревьюер смотрит снова
|
|
196
214
|
- Повторять до аппрува
|
|
197
215
|
- Не пропускай повторное ревью
|
|
198
216
|
|
|
199
217
|
**Если воркер завалил задачу:**
|
|
218
|
+
|
|
200
219
|
- Спавнь чинящего воркера с точными инструкциями
|
|
201
220
|
- Не чини сам (загрязнение контекста)
|
|
202
221
|
|
|
203
222
|
## Интеграция
|
|
204
223
|
|
|
205
224
|
**Обязательные скиллы воркфлоу:**
|
|
225
|
+
|
|
206
226
|
- **using-git-worktrees** — REQUIRED: изолированный worktree `.worktrees/<имя-задачи>` ДО старта исполнения
|
|
207
227
|
- **wolf-plan** — создаёт план, который этот скилл исполняет
|
|
208
228
|
- **requesting-code-review** — рамка ревью для воркеров-ревьюеров
|
|
209
229
|
- **finishing-a-development-branch** — завершение разработки после всех задач
|
|
210
230
|
|
|
211
231
|
**Воркеры используют:**
|
|
232
|
+
|
|
212
233
|
- **test-driven-development** — воркеры следуют TDD на каждой задаче
|
|
213
234
|
|
|
214
235
|
**Альтернатива:**
|
|
236
|
+
|
|
215
237
|
- **wolf-execute** — линейное исполнение без субагентов, когда диспетчеризация недоступна
|
|
216
238
|
|
|
217
239
|
---
|
|
@@ -220,20 +242,20 @@ digraph process {
|
|
|
220
242
|
|
|
221
243
|
> Источник: `~/.config/opencode/superpowers/skills/subagent-driven-development/SKILL.md`, upstream 6efe32c (2026-04-23)
|
|
222
244
|
|
|
223
|
-
| Пункт источника
|
|
224
|
-
|
|
225
|
-
| «Fresh subagent per task + two-stage review»
|
|
226
|
-
| «Why subagents» (изоляция контекста)
|
|
227
|
-
| When-to-use флоучарт
|
|
228
|
-
| Process-флоучарт
|
|
229
|
-
| Model Selection
|
|
230
|
-
| Implementer Status (DONE/DONE_WITH_CONCERNS/NEEDS_CONTEXT/BLOCKED) | сохранено полностью (4/4)
|
|
231
|
-
| Prompt-templates (3 sibling-файла)
|
|
232
|
-
| Example Workflow
|
|
233
|
-
| Advantages/Cost
|
|
234
|
-
| Red Flags «Never» (12)
|
|
235
|
-
| «Если спрашивает / нашёл / завалил» (3+4+2)
|
|
236
|
-
| Integration
|
|
237
|
-
| —
|
|
245
|
+
| Пункт источника | Судьба | Почему |
|
|
246
|
+
| ------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------- |
|
|
247
|
+
| «Fresh subagent per task + two-stage review» | сохранено | Ядро принципа |
|
|
248
|
+
| «Why subagents» (изоляция контекста) | сохранено | Ядро |
|
|
249
|
+
| When-to-use флоучарт | сохранено; executing-plans → wolf-execute | Рёбра набора |
|
|
250
|
+
| Process-флоучарт | сохранено; диспетч субагентов → executor-lead/worker-implementer/worker-reviewer; TodoWrite → `{{tool.todowrite}}` | Research §1: диспетч субагентов непереносим — заменён ролями Wolf |
|
|
251
|
+
| Model Selection | заменено → тиринг проекта без имён моделей | Research §1: выбор моделей непереносим |
|
|
252
|
+
| Implementer Status (DONE/DONE_WITH_CONCERNS/NEEDS_CONTEXT/BLOCKED) | сохранено полностью (4/4) | Контракт статусов воркера |
|
|
253
|
+
| Prompt-templates (3 sibling-файла) | отброшено | Файлы каталога скилла не переносятся; заменено ролями worker-\* |
|
|
254
|
+
| Example Workflow | сжато сохранено; сущность цикла сохранена | Иллюстрация |
|
|
255
|
+
| Advantages/Cost | сохранено сжато | Ядро |
|
|
256
|
+
| Red Flags «Never» (12) | сохранено полностью (12/12); main/master → trunk-based формулировка | H7 |
|
|
257
|
+
| «Если спрашивает / нашёл / завалил» (3+4+2) | сохранено полностью (9/9) | H7 |
|
|
258
|
+
| Integration | заменено: worktrees → H5-предусловие `.worktrees/<имя-задачи>`; writing-plans → wolf-plan; code-reviewer → worker-reviewer; TDD — воркерам | Wolf-переплетение |
|
|
259
|
+
| — | добавлено: REQUIRED-предусловие worktree (H5) | Спека §5.2 |
|
|
238
260
|
|
|
239
261
|
Перенесённые списки: «Never» 12/12, вспомогательные 3+4+2 (9/9), статусы воркера 4/4.
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: wolf-skill-intake
|
|
3
|
+
description: 'Подключение внешнего скилла: поиск (npx skills find, skills.sh) → ревью-линза кандидата → гейт владельца (явное «да») → установка → регистрация tool → откат. Без аппрува владельца установка не идёт.'
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# wolf-skill-intake: подключение внешнего скилла
|
|
7
|
+
|
|
8
|
+
## Обзор
|
|
9
|
+
|
|
10
|
+
Чужой скилл меняет поведение агентов — это мутация лица. Процесс: поиск →
|
|
11
|
+
ревью → гейт владельца → установка → регистрация → наблюдаемость. Единственный
|
|
12
|
+
новый скилл блока intake; линза кандидата — роль в этом протоколе, не отдельный скилл.
|
|
13
|
+
|
|
14
|
+
## 1. Поиск
|
|
15
|
+
|
|
16
|
+
- CLI: `npx skills find <запрос>`; leaderboard: skills.sh.
|
|
17
|
+
- Критерии качества: ≥1K установок, репутация источника, звёзды репозитория.
|
|
18
|
+
- Изоляция: внешние вызовы только здесь; при поломке внешнего CLI — деградация
|
|
19
|
+
к ручному поиску; контур (линза, гейт, регистрация) не страдает.
|
|
20
|
+
|
|
21
|
+
## 2. Ревью-линза кандидата
|
|
22
|
+
|
|
23
|
+
Чистый воркер-ревьюер читает SKILL.md кандидата по ОДНОМУ вопросу:
|
|
24
|
+
«опасен ли/конфликтует ли этот скилл?» Проверки:
|
|
25
|
+
|
|
26
|
+
- опасные инструкции: `rm -rf`, `curl | sh`, запросы секретов, авто-коммиты;
|
|
27
|
+
- конфликты с рамкой/правилами проекта — по памяти Wolf (`wolf search`);
|
|
28
|
+
- качество промпта: расплывчатые/конфликтные предписания.
|
|
29
|
+
|
|
30
|
+
Вердикт (подключаем/отклонить + находки) — владельцу. Отклонение = конец, установки нет.
|
|
31
|
+
|
|
32
|
+
## 3. Гейт владельца
|
|
33
|
+
|
|
34
|
+
Без явного «да» владельца установка не идёт. Вопрос формулируется: скилл, источник,
|
|
35
|
+
находки линзы, вердикт. Только после явного аппрува — шаг 4.
|
|
36
|
+
|
|
37
|
+
## 4. Установка
|
|
38
|
+
|
|
39
|
+
`npx skills add <имя>` (в проекте-пользователе). Откат: `npx skills remove <имя>`.
|
|
40
|
+
|
|
41
|
+
## 5. Регистрация
|
|
42
|
+
|
|
43
|
+
Тул-объект в памяти Wolf (гасит линт скиллов-призраков doctor):
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
wolf add --type tool --title "skill: <имя>" \
|
|
47
|
+
--set name=<имя> \
|
|
48
|
+
--set script_path=.opencode/skills/<имя>/SKILL.md \
|
|
49
|
+
--set language=markdown \
|
|
50
|
+
--set owner_skill=<имя> \
|
|
51
|
+
--set version=<версия-источника> \
|
|
52
|
+
--set source_url=<URL репозитория/страницы>
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
Ребро на проект/поток — по необходимости (`wolf relation add`).
|
|
56
|
+
|
|
57
|
+
## 6. Наблюдаемость (уже существует — проверяется, не строится)
|
|
58
|
+
|
|
59
|
+
- телеметрия: `.wolf/metrics/skill-invocations.jsonl` (панель `analytics --view delivery`);
|
|
60
|
+
- жалобы на скилл: `wolf complain --about skill:<имя>` → kind behavioral;
|
|
61
|
+
- линт призраков: секция «Артефакты» в `wolf doctor`.
|
|
62
|
+
|
|
63
|
+
## 7. Откат
|
|
64
|
+
|
|
65
|
+
`npx skills remove <имя>` + `wolf supersede <tool-id> <new-id>` или
|
|
66
|
+
`wolf transition <tool-id> archived` (существующими командами, без новых).
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: wolf-testplan
|
|
3
|
+
description: 'Вход: requirements.md (approved) + design.md. Выход: test-plan.md — Given/When/Then сценарий на каждый REQ-NN + маппинг на e2e/юнит-файлы. AC переизобретаться не должны.'
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# wolf-testplan: test-plan.md по requirements.md
|
|
7
|
+
|
|
8
|
+
## Обзор
|
|
9
|
+
|
|
10
|
+
Отдельная ось специализации: один скилл — один тип артефакта (как линзы).
|
|
11
|
+
Планирование (wolf-plan) и тест-планирование (этот скилл) раздельны.
|
|
12
|
+
|
|
13
|
+
## Вход
|
|
14
|
+
|
|
15
|
+
- `requirements.md` (approved) — AC, единый источник сценариев.
|
|
16
|
+
- `design.md` (review или approved) — контракты: сценарии проверяют интерфейс, не реализацию.
|
|
17
|
+
|
|
18
|
+
## Выход: test-plan.md
|
|
19
|
+
|
|
20
|
+
1. **Сценарий на каждый REQ-NN** в формате Given/When/Then. Нетривиальные AC —
|
|
21
|
+
дословно их G/W/T из requirements.md; простые — развёртка AC без смены смысла.
|
|
22
|
+
2. **Маппинг** — каждый сценарий → целевой тестовый файл (юнит/e2e), которого ещё
|
|
23
|
+
нет: путь `tests/…` + имя теста. Сценарии test-plan.md — заготовки КРАСНОЙ фазы
|
|
24
|
+
TDD (дисциплинарный скилл test-driven-development).
|
|
25
|
+
3. **Прогоны** — точечные команды `npx vitest run <путь>`; полный гейт `npm run check`.
|
|
26
|
+
|
|
27
|
+
## Запреты
|
|
28
|
+
|
|
29
|
+
- Сценарии для поведения вне REQ/NFR (расширение объёма — дефект).
|
|
30
|
+
- Менять AC — правки только через CR в requirements.md.
|
|
31
|
+
- Реализовывать тесты: скилл пишет артефакт, не код.
|
|
32
|
+
|
|
33
|
+
## Процесс
|
|
34
|
+
|
|
35
|
+
1. Таблица трассировки REQ-NN → сценарий → целевой файл (покрытие 100% REQ;
|
|
36
|
+
NFR — по измеримым AC).
|
|
37
|
+
2. Заполнить test-plan.md; front-matter `status: review`.
|