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.
Files changed (68) hide show
  1. package/README.md +2 -0
  2. package/README.ru.md +2 -0
  3. package/dist/adapters/cli/commands/memory-doctor.d.ts.map +1 -1
  4. package/dist/adapters/cli/commands/memory-doctor.js +32 -1
  5. package/dist/adapters/cli/commands/memory-doctor.js.map +1 -1
  6. package/dist/adapters/cli/commands/memory-scaffold.d.ts.map +1 -1
  7. package/dist/adapters/cli/commands/memory-scaffold.js +15 -0
  8. package/dist/adapters/cli/commands/memory-scaffold.js.map +1 -1
  9. package/dist/adapters/cli/commands/memory-sync.d.ts.map +1 -1
  10. package/dist/adapters/cli/commands/memory-sync.js +8 -0
  11. package/dist/adapters/cli/commands/memory-sync.js.map +1 -1
  12. package/dist/adapters/fs/artifact-fs.d.ts +4 -0
  13. package/dist/adapters/fs/artifact-fs.d.ts.map +1 -0
  14. package/dist/adapters/fs/artifact-fs.js +29 -0
  15. package/dist/adapters/fs/artifact-fs.js.map +1 -0
  16. package/dist/adapters/platforms/opencode-adapter.d.ts +8 -1
  17. package/dist/adapters/platforms/opencode-adapter.d.ts.map +1 -1
  18. package/dist/adapters/platforms/opencode-adapter.js +33 -0
  19. package/dist/adapters/platforms/opencode-adapter.js.map +1 -1
  20. package/dist/app/use-cases/artifact-front-matter.d.ts +5 -0
  21. package/dist/app/use-cases/artifact-front-matter.d.ts.map +1 -0
  22. package/dist/app/use-cases/artifact-front-matter.js +16 -0
  23. package/dist/app/use-cases/artifact-front-matter.js.map +1 -0
  24. package/dist/app/use-cases/init-project.d.ts +3 -1
  25. package/dist/app/use-cases/init-project.d.ts.map +1 -1
  26. package/dist/app/use-cases/init-project.js +36 -16
  27. package/dist/app/use-cases/init-project.js.map +1 -1
  28. package/dist/app/use-cases/lint-artifacts.d.ts +18 -0
  29. package/dist/app/use-cases/lint-artifacts.d.ts.map +1 -0
  30. package/dist/app/use-cases/lint-artifacts.js +249 -0
  31. package/dist/app/use-cases/lint-artifacts.js.map +1 -0
  32. package/dist/app/use-cases/scaffold-agent.d.ts +1 -1
  33. package/dist/app/use-cases/scaffold-agent.d.ts.map +1 -1
  34. package/dist/app/use-cases/scaffold-agent.js +1 -1
  35. package/dist/app/use-cases/scaffold-agent.js.map +1 -1
  36. package/dist/app/use-cases/scaffold-artifact.d.ts +22 -0
  37. package/dist/app/use-cases/scaffold-artifact.d.ts.map +1 -0
  38. package/dist/app/use-cases/scaffold-artifact.js +153 -0
  39. package/dist/app/use-cases/scaffold-artifact.js.map +1 -0
  40. package/dist/app/use-cases/sync-artifact-index.d.ts +20 -0
  41. package/dist/app/use-cases/sync-artifact-index.d.ts.map +1 -0
  42. package/dist/app/use-cases/sync-artifact-index.js +68 -0
  43. package/dist/app/use-cases/sync-artifact-index.js.map +1 -0
  44. package/dist/domain/memory-types.d.ts +12 -0
  45. package/dist/domain/memory-types.d.ts.map +1 -1
  46. package/dist/domain/memory-types.js +4 -0
  47. package/dist/domain/memory-types.js.map +1 -1
  48. package/dist/domain/schemas/relation-schema.d.ts +1 -1
  49. package/dist/ports/platform-adapter.port.d.ts +15 -0
  50. package/dist/ports/platform-adapter.port.d.ts.map +1 -1
  51. package/package.json +1 -1
  52. package/templates/.wolf/router.log +1 -0
  53. package/templates/base/skills/finishing-a-development-branch/SKILL.md +32 -13
  54. package/templates/base/skills/receiving-code-review/SKILL.md +39 -0
  55. package/templates/base/skills/test-driven-development/SKILL.md +59 -37
  56. package/templates/base/skills/using-git-worktrees/SKILL.md +25 -15
  57. package/templates/base/skills/verification-before-completion/SKILL.md +39 -25
  58. package/templates/base/skills/wolf-brainstorm/SKILL.md +51 -36
  59. package/templates/base/skills/wolf-design/SKILL.md +45 -0
  60. package/templates/base/skills/wolf-execute/SKILL.md +30 -13
  61. package/templates/base/skills/wolf-plan/SKILL.md +38 -21
  62. package/templates/base/skills/wolf-review/SKILL.md +33 -14
  63. package/templates/base/skills/wolf-sdd/SKILL.md +38 -16
  64. package/templates/base/skills/wolf-skill-intake/SKILL.md +66 -0
  65. package/templates/base/skills/wolf-testplan/SKILL.md +37 -0
  66. package/templates/base/skills/writing-skills/SKILL.md +40 -0
  67. package/templates/opencode/plugins/wolf-router.ts +110 -52
  68. package/templates/opencode/plugins/wolf-session-start.js +88 -40
@@ -210,6 +210,18 @@ declare const CORE_TAXONOMY_DECLS: readonly [{
210
210
  readonly kind: "string";
211
211
  readonly optional: true;
212
212
  };
213
+ readonly owner_skill: {
214
+ readonly kind: "string";
215
+ readonly optional: true;
216
+ };
217
+ readonly version: {
218
+ readonly kind: "string";
219
+ readonly optional: true;
220
+ };
221
+ readonly source_url: {
222
+ readonly kind: "string";
223
+ readonly optional: true;
224
+ };
213
225
  };
214
226
  }, {
215
227
  readonly name: "note";
@@ -1 +1 @@
1
- {"version":3,"file":"memory-types.d.ts","sourceRoot":"","sources":["../../src/domain/memory-types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"memory-types.d.ts","sourceRoot":"","sources":["../../src/domain/memory-types.ts"],"names":[],"mappings":"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"}
@@ -115,6 +115,10 @@ const CORE_TAXONOMY_DECLS = [
115
115
  usage_count: { kind: 'int', default: 0 },
116
116
  last_used_at: { kind: 'string', optional: true },
117
117
  deprecation_reason: { kind: 'string', optional: true },
118
+ // Волна 2.15 C4: регистрация подключённых внешних скиллов (wolf-skill-intake).
119
+ owner_skill: { kind: 'string', optional: true },
120
+ version: { kind: 'string', optional: true },
121
+ source_url: { kind: 'string', optional: true },
118
122
  },
119
123
  },
120
124
  {
@@ -1 +1 @@
1
- {"version":3,"file":"memory-types.js","sourceRoot":"","sources":["../../src/domain/memory-types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"memory-types.js","sourceRoot":"","sources":["../../src/domain/memory-types.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ export declare const RelationSchema: z.ZodObject<{
4
4
  id: z.ZodString;
5
5
  subject: z.ZodString;
6
6
  predicate: z.ZodEnum<{
7
+ owner_skill: "owner_skill";
7
8
  superseded_by: "superseded_by";
8
9
  answers: "answers";
9
10
  answered_by: "answered_by";
@@ -20,7 +21,6 @@ export declare const RelationSchema: z.ZodObject<{
20
21
  resolved_by: "resolved_by";
21
22
  related_to: "related_to";
22
23
  produced_by: "produced_by";
23
- owner_skill: "owner_skill";
24
24
  skill_of: "skill_of";
25
25
  complain: "complain";
26
26
  complained_by: "complained_by";
@@ -14,6 +14,19 @@ export interface PlatformWriteResult {
14
14
  /** F6 (спека 2.1.0 §2.4): фактические wolf-ключи после записи (напр. ['mcp.wolf', 'default_agent=mr-wolf']). */
15
15
  keys?: string[];
16
16
  }
17
+ /**
18
+ * Статус версии платформы относительно диапазона поддержки Wolf:
19
+ * 'v1' — поддержан ≥ порога, 'v2' — поддержан, 'unsupported' — ниже порога,
20
+ * 'absent' — бинарь не найден на PATH, 'unparseable' — вывод не распознан.
21
+ */
22
+ export type PlatformVersionStatus = 'v1' | 'v2' | 'unsupported' | 'absent' | 'unparseable';
23
+ /** Результат detectVersion: статус + опциональные version/raw/message. */
24
+ export interface PlatformVersionInfo {
25
+ status: PlatformVersionStatus;
26
+ version?: string;
27
+ raw?: string;
28
+ message?: string;
29
+ }
17
30
  /**
18
31
  * Адаптер платформы: новая платформа = один файл-адаптер, init не меняется (спека §4).
19
32
  */
@@ -32,5 +45,7 @@ export interface PlatformAdapter {
32
45
  writeConfig(projectRoot: string, cmd: McpCommand): Promise<PlatformWriteResult>;
33
46
  /** Удалить wolf-запись (для --platform replace-семантики); true если удалил. */
34
47
  removeWolf(projectRoot: string): Promise<boolean>;
48
+ /** Детект версии платформы (опционально; init не ломается, если адаптер не умеет). */
49
+ detectVersion?(projectRoot: string): Promise<PlatformVersionInfo>;
35
50
  }
36
51
  //# sourceMappingURL=platform-adapter.port.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"platform-adapter.port.d.ts","sourceRoot":"","sources":["../../src/ports/platform-adapter.port.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,8EAA8E;AAC9E,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAErD,4GAA4G;AAC5G,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,WAAW,CAAC;IAC7C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mGAAmG;IACnG,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gHAAgH;IAChH,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,2DAA2D;IAC3D,MAAM,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC;IACrC,yDAAyD;IACzD,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAChE;;;;;OAKG;IACH,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAChF,gFAAgF;IAChF,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACnD"}
1
+ {"version":3,"file":"platform-adapter.port.d.ts","sourceRoot":"","sources":["../../src/ports/platform-adapter.port.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,8EAA8E;AAC9E,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAErD,4GAA4G;AAC5G,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,WAAW,CAAC;IAC7C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mGAAmG;IACnG,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gHAAgH;IAChH,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAED;;;;GAIG;AACH,MAAM,MAAM,qBAAqB,GAAG,IAAI,GAAG,IAAI,GAAG,aAAa,GAAG,QAAQ,GAAG,aAAa,CAAC;AAE3F,0EAA0E;AAC1E,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,qBAAqB,CAAC;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,2DAA2D;IAC3D,MAAM,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC;IACrC,yDAAyD;IACzD,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAChE;;;;;OAKG;IACH,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAChF,gFAAgF;IAChF,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAClD,sFAAsF;IACtF,aAAa,CAAC,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;CACnE"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mister-wolf",
3
- "version": "2.14.0",
3
+ "version": "2.15.0",
4
4
  "description": "Local-first project memory for AI coding agents: decisions, lessons, tools and processes that outlive the session",
5
5
  "keywords": [
6
6
  "ai-agents",
@@ -0,0 +1 @@
1
+ 2026-10-08T19:55:27.952Z agent-id=v2-router-probe-xyz playbook=hit name=fallback variant=fallback injected=yes ms=0 bytes=1208
@@ -10,13 +10,13 @@ description: Используй, когда реализация заверше
10
10
 
11
11
  ## Трассировка адаптации
12
12
 
13
- | Пункт upstream | Судьба |
14
- |---|---|
15
- | Процесс 5 шагов, ровно 4 опции финала, подтверждение «discard», шпаргалка (4 опции), частые ошибки (4), red flags Never/Always (4/4), cleanup worktree только для опций 1 и 4 | **сохранено** («переносим почти без правок», research §1; red flags — дословно по смыслу, H7) |
16
- | Тестовая команда | **заменено**: `npm run check` (верификационный примитив проекта) |
17
- | Базовая ветка: `main \|\| master` | **заменено**: всегда `main` — правило проекта trunk-based (main — истина, работа в worktree-ветках, релизы тегами) |
18
- | Опция 1 (мерж локально) | **дополнено** правилом проекта: мерж в main — только по явному поручению владельца |
19
- | Решение о финале ветки | **добавлено**: значимое решение (особенно discard) фиксируется `wolf add --type decision` |
13
+ | Пункт upstream | Судьба |
14
+ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------ |
15
+ | Процесс 5 шагов, ровно 4 опции финала, подтверждение «discard», шпаргалка (4 опции), частые ошибки (4), red flags Never/Always (4/4), cleanup worktree только для опций 1 и 4 | **сохранено** («переносим почти без правок», research §1; red flags — дословно по смыслу, H7) |
16
+ | Тестовая команда | **заменено**: `npm run check` (верификационный примитив проекта) |
17
+ | Базовая ветка: `main \|\| master` | **заменено**: всегда `main` — правило проекта trunk-based (main — истина, работа в worktree-ветках, релизы тегами) |
18
+ | Опция 1 (мерж локально) | **дополнено** правилом проекта: мерж в main — только по явному поручению владельца |
19
+ | Решение о финале ветки | **добавлено**: значимое решение (особенно discard) фиксируется `wolf add --type decision` |
20
20
 
21
21
  ## Обзор
22
22
 
@@ -37,6 +37,7 @@ npm run check # тестовая команда проекта
37
37
  ```
38
38
 
39
39
  **Упали:**
40
+
40
41
  ```
41
42
  Тесты падают (<N> падений). Надо починить до завершения:
42
43
 
@@ -122,6 +123,7 @@ EOF
122
123
  #### Опция 4: выбросить
123
124
 
124
125
  **Сначала подтверждение:**
126
+
125
127
  ```
126
128
  Это навсегда удалит:
127
129
  - Ветку <имя>
@@ -134,6 +136,7 @@ EOF
134
136
  Ждать дословного подтверждения.
135
137
 
136
138
  Если подтверждено:
139
+
137
140
  ```bash
138
141
  git checkout main
139
142
  git branch -D <feature-branch>
@@ -146,11 +149,13 @@ git branch -D <feature-branch>
146
149
  **Для опций 1, 2, 4:**
147
150
 
148
151
  Проверить, находишься ли в worktree:
152
+
149
153
  ```bash
150
154
  git worktree list | grep $(git branch --show-current)
151
155
  ```
152
156
 
153
157
  Если да:
158
+
154
159
  ```bash
155
160
  git worktree remove <worktree-path>
156
161
  ```
@@ -159,40 +164,46 @@ git worktree remove <worktree-path>
159
164
 
160
165
  ## Быстрая шпаргалка
161
166
 
162
- | Опция | Мерж | Пуш | Сохранить worktree | Удалить ветку |
163
- |--------|-------|------|---------------|----------------|
164
- | 1. Мерж локально | ✓ | - | - | ✓ |
165
- | 2. Создать PR | - | ✓ | ✓ | - |
166
- | 3. Оставить как есть | - | - | ✓ | - |
167
- | 4. Выбросить | - | - | - | ✓ (force) |
167
+ | Опция | Мерж | Пуш | Сохранить worktree | Удалить ветку |
168
+ | -------------------- | ---- | --- | ------------------ | ------------- |
169
+ | 1. Мерж локально | ✓ | - | - | ✓ |
170
+ | 2. Создать PR | - | ✓ | ✓ | - |
171
+ | 3. Оставить как есть | - | - | ✓ | - |
172
+ | 4. Выбросить | - | - | - | ✓ (force) |
168
173
 
169
174
  ## Частые ошибки
170
175
 
171
176
  **Пропуск верификации тестов**
177
+
172
178
  - **Проблема:** смержить сломанный код, создать падающий PR
173
179
  - **Фикс:** всегда верифицировать тесты до предъявления опций
174
180
 
175
181
  **Открытые вопросы**
182
+
176
183
  - **Проблема:** «Что делать дальше?» → двусмысленность
177
184
  - **Фикс:** предъявлять ровно 4 структурированные опции
178
185
 
179
186
  **Автоматическая уборка worktree**
187
+
180
188
  - **Проблема:** удалить worktree, который ещё нужен (опции 2, 3)
181
189
  - **Фикс:** уборка только для опций 1 и 4
182
190
 
183
191
  **Без подтверждения для discard**
192
+
184
193
  - **Проблема:** случайно удалить работу
185
194
  - **Фикс:** требовать дословный ввод «discard»
186
195
 
187
196
  ## Red flags
188
197
 
189
198
  **Никогда:**
199
+
190
200
  - Не продолжать с падающими тестами
191
201
  - Не мержить без верификации тестов на результате
192
202
  - Не удалять работу без подтверждения
193
203
  - Не форс-пушить без явного запроса
194
204
 
195
205
  **Всегда:**
206
+
196
207
  - Верифицировать тесты до предъявления опций
197
208
  - Предъявлять ровно 4 опции
198
209
  - Получать дословное подтверждение для опции 4
@@ -201,13 +212,21 @@ git worktree remove <worktree-path>
201
212
  ## Интеграция
202
213
 
203
214
  **Вызывается из:**
215
+
204
216
  - **wolf-sdd** (финальный шаг) — после завершения всех задач
205
217
  - **wolf-execute** (финальный шаг) — после завершения всех батчей
206
218
 
207
219
  **Пара с:**
220
+
208
221
  - **using-git-worktrees** — убирает worktree, созданный тем скиллом
209
222
 
210
223
  ## Интеграция с Wolf
211
224
 
212
225
  - **Правило проекта**: trunk-based — main = истина, работа в worktree-ветках, релизы тегами; мерж в main — только по явному поручению владельца.
213
226
  - **Решение о финале ветки** (выбрана опция, особенно discard) — значимое решение: `wolf add --type decision` с контекстом («ветка X выброшена, потому что...»).
227
+
228
+ ## Конвейер (2.15)
229
+
230
+ Проект на trunk-based: main = истина; работа в worktree-ветках; влитие потока —
231
+ merge в main с зелёным `npm run check`; релизы — тегами `v*` (npm version).
232
+ «Ветвь» не живёт дольше волны.
@@ -0,0 +1,39 @@
1
+ ---
2
+ name: receiving-code-review
3
+ description: 'Фидбек владельца и ревью-линз: высший приоритет лестницы, но не слепое внедрение — техническая строгость, проверка возражений, протокол несогласия.'
4
+ ---
5
+
6
+ # receiving-code-review: приём фидбека
7
+
8
+ ## Обзор
9
+
10
+ Фидбек владельца = высший приоритет лестницы приоритетов. Но «внедри совет» — не
11
+ поведение по умолчанию: ревью может быть технически неверным.
12
+
13
+ ## Процесс
14
+
15
+ 1. Прочитать фидбек целиком; классифицировать каждый пункт: факт-исправление /
16
+ вопрос / возражение.
17
+ 2. Согласен → внедрить + коммит + строка «что исправлено» в отчёт.
18
+ 3. Сомневаешься → проверить по коду/документу ДО ответа; возражение обосновать
19
+ пруфом (file:line), не мнением.
20
+ 4. Фидбек противоречит памяти Wolf/рамке → по лестнице приоритетов (память выше
21
+ скиллов); расхождение правил → жалоба по протоколу жалоб, не самовольная
22
+ правка правила.
23
+ 5. Уроки фидбека (воспроизводимый паттерн ошибки) → `wolf add --type lesson`.
24
+
25
+ ## Запреты
26
+
27
+ - Перформативное согласие без проверки.
28
+ - Внедрение совета вслепую при явном техническом возражении.
29
+ - Тихое игнорирование пункта фидбека.
30
+
31
+ ## Трассировка адаптации
32
+
33
+ | Пункт источника (superpowers receiving-code-review) | Судьба | Почему |
34
+ | --------------------------------------------------- | ------------------------------------------------ | ----------------- |
35
+ | Техническая строгость, не перформативное согласие | сохранено | ядро |
36
+ | Проверка перед внедрением | сохранено | ядро |
37
+ | «Совет может быть неверным» | сохранено | ядро |
38
+ | — | добавлено: лестница приоритетов + протокол жалоб | Wolf-переплетение |
39
+ | — | добавлено: уроки фидбека → память Wolf | самообучение |
@@ -10,15 +10,15 @@ description: Используй при реализации любой фичи
10
10
 
11
11
  ## Трассировка адаптации
12
12
 
13
- | Пункт upstream | Судьба |
14
- |---|---|
15
- | Iron Law, цикл RED-GREEN-REFACTOR, обязательные верификации RED/GREEN, dot-диаграмма | **сохранено** дословно (перевод) |
16
- | Таблица рационализаций (11), red flags (13), «Why Order Matters» (5 аргументов), анти-паттерны тестирования (3), чеклист верификации (8), «When Stuck» (4), примеры Good/Bad, пример багфикса | **сохранено полностью** по смыслу дословно (H7) |
17
- | `npm test <путь>` | **заменено**: точечный прогон — `npx vitest run <путь>` (стек проекта — vitest); полный — `npm run check` |
18
- | «Ask your human partner» (исключения из Iron Law) | **заменено**: явное разрешение владельца; воркер эскалирует запрос через executor-lead, сам не решает |
19
- | Чеклист верификации | **дополнено**: механика {{tool.todowrite}} — один пункт на чекбокс |
20
- | Ссылка на внешний `@testing-anti-patterns.md` | **отброшено**: reference-файл вне шаблона; суть (3 пункта) встроена в раздел «Анти-паттерны тестирования» |
21
- | Контур лица | **добавлено**: до задачи — `wolf search "worker-implementer playbook"` (брать наибольшую версию) |
13
+ | Пункт upstream | Судьба |
14
+ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- |
15
+ | Iron Law, цикл RED-GREEN-REFACTOR, обязательные верификации RED/GREEN, dot-диаграмма | **сохранено** дословно (перевод) |
16
+ | Таблица рационализаций (11), red flags (13), «Why Order Matters» (5 аргументов), анти-паттерны тестирования (3), чеклист верификации (8), «When Stuck» (4), примеры Good/Bad, пример багфикса | **сохранено полностью** по смыслу дословно (H7) |
17
+ | `npm test <путь>` | **заменено**: точечный прогон — `npx vitest run <путь>` (стек проекта — vitest); полный — `npm run check` |
18
+ | «Ask your human partner» (исключения из Iron Law) | **заменено**: явное разрешение владельца; воркер эскалирует запрос через executor-lead, сам не решает |
19
+ | Чеклист верификации | **дополнено**: механика {{tool.todowrite}} — один пункт на чекбокс |
20
+ | Ссылка на внешний `@testing-anti-patterns.md` | **отброшено**: reference-файл вне шаблона; суть (3 пункта) встроена в раздел «Анти-паттерны тестирования» |
21
+ | Контур лица | **добавлено**: до задачи — `wolf search "worker-implementer playbook"` (брать наибольшую версию) |
22
22
 
23
23
  ## Обзор
24
24
 
@@ -31,12 +31,14 @@ description: Используй при реализации любой фичи
31
31
  ## Когда применять
32
32
 
33
33
  **Всегда:**
34
+
34
35
  - Новые фичи
35
36
  - Багфиксы
36
37
  - Рефакторинг
37
38
  - Изменения поведения
38
39
 
39
40
  **Исключения (только с явного разрешения владельца — эскалируй через executor-lead):**
41
+
40
42
  - Одноразовые прототипы
41
43
  - Генерированный код
42
44
  - Конфигурационные файлы
@@ -52,6 +54,7 @@ description: Используй при реализации любой фичи
52
54
  Написал код до теста? Удали. Начни заново.
53
55
 
54
56
  **Без исключений:**
57
+
55
58
  - Не оставляй «как референс»
56
59
  - Не «адаптируй» его при написании тестов
57
60
  - Не смотри на него
@@ -97,12 +100,13 @@ test('повторяет неудачную операцию 3 раза', async
97
100
  return 'success';
98
101
  };
99
102
 
100
- const result = await retryOperation(operation);
103
+ const result = await retryOperation(operation);
101
104
 
102
- expect(result).toBe('success');
103
- expect(attempts).toBe(3);
105
+ expect(result).toBe('success');
106
+ expect(attempts).toBe(3);
104
107
  });
105
- ```
108
+
109
+ ````
106
110
  Ясное имя, тестирует реальное поведение, одно
107
111
  </Good>
108
112
 
@@ -116,11 +120,13 @@ test('retry works', async () => {
116
120
  await retryOperation(mock);
117
121
  expect(mock).toHaveBeenCalledTimes(3);
118
122
  });
119
- ```
123
+ ````
124
+
120
125
  Расплывчатое имя, тестирует мок, а не код
121
126
  </Bad>
122
127
 
123
128
  **Требования:**
129
+
124
130
  - Одно поведение
125
131
  - Ясное имя
126
132
  - Реальный код (моки — только при неизбежности)
@@ -134,6 +140,7 @@ npx vitest run <путь-к-тесту>
134
140
  ```
135
141
 
136
142
  Подтверди:
143
+
137
144
  - Тест падает (а не ошибается)
138
145
  - Сообщение об ошибке ожидаемое
139
146
  - Падает из-за отсутствия фичи (не из-за опечаток)
@@ -189,6 +196,7 @@ npx vitest run <путь-к-тесту>
189
196
  ```
190
197
 
191
198
  Подтверди:
199
+
192
200
  - Тест проходит
193
201
  - Остальные тесты всё ещё проходят
194
202
  - Вывод чистый (без ошибок и предупреждений)
@@ -200,6 +208,7 @@ npx vitest run <путь-к-тесту>
200
208
  ### РЕФАКТОРИНГ — приберись
201
209
 
202
210
  Только после зелёного:
211
+
203
212
  - Убери дублирование
204
213
  - Улучши имена
205
214
  - Вынеси хелперы
@@ -212,17 +221,18 @@ npx vitest run <путь-к-тесту>
212
221
 
213
222
  ## Хорошие тесты
214
223
 
215
- | Качество | Хорошо | Плохо |
216
- |---------|------|-----|
224
+ | Качество | Хорошо | Плохо |
225
+ | ----------------- | ------------------------------------- | ------------------------------------------ |
217
226
  | **Минимальность** | Одно поведение. «И» в имени? Раздели. | `test('проверяет email, домен и пробелы')` |
218
- | **Ясность** | Имя описывает поведение | `test('test1')` |
219
- | **Намерение** | Демонстрирует желаемый API | Затуманивает, что код должен делать |
227
+ | **Ясность** | Имя описывает поведение | `test('test1')` |
228
+ | **Намерение** | Демонстрирует желаемый API | Затуманивает, что код должен делать |
220
229
 
221
230
  ## Почему важен порядок
222
231
 
223
232
  **«Я напишу тесты после, чтобы проверить, что работает»**
224
233
 
225
234
  Тесты, написанные после кода, проходят сразу. Прохождение сразу не доказывает ничего:
235
+
226
236
  - Может тестировать не то
227
237
  - Может тестировать реализацию, а не поведение
228
238
  - Может упускать пограничные случаи, которые ты забыл
@@ -233,6 +243,7 @@ npx vitest run <путь-к-тесту>
233
243
  **«Я уже вручно протестировал все пограничные случаи»**
234
244
 
235
245
  Ручное тестирование ад-хок. Ты думаешь, что проверил всё, но:
246
+
236
247
  - Нет записи о том, что проверено
237
248
  - Нельзя перезапустить при изменении кода
238
249
  - Легко забыть случаи под давлением
@@ -243,6 +254,7 @@ npx vitest run <путь-к-тесту>
243
254
  **«Удалить X часов работы расточительно»**
244
255
 
245
256
  Ошибка невозвратных издержек. Время уже потрачено. Выбор сейчас:
257
+
246
258
  - Удалить и переписать по TDD (ещё X часов, высокая уверенность)
247
259
  - Оставить и дописать тесты после (30 минут, низкая уверенность, вероятные баги)
248
260
 
@@ -251,6 +263,7 @@ npx vitest run <путь-к-тесту>
251
263
  **«TDD догматично, прагматизм означает адаптацию»**
252
264
 
253
265
  TDD — И есть прагматизм:
266
+
254
267
  - Находит баги до коммита (быстрее отладки после)
255
268
  - Предотвращает регрессии (тесты ловят поломки сразу)
256
269
  - Документирует поведение (тесты показывают, как использовать код)
@@ -270,19 +283,19 @@ TDD — И есть прагматизм:
270
283
 
271
284
  ## Распространённые рационализации
272
285
 
273
- | Оправдание | Реальность |
274
- |--------|---------|
275
- | «Слишком просто, чтобы тестировать» | Простой код ломается. Тест занимает 30 секунд. |
276
- | «Напишу тесты после» | Тесты, проходящие сразу, не доказывают ничего. |
277
- | «Тесты после достигают тех же целей» | Тесты-после = «что это делает?». Тесты-первый = «что это должно делать?» |
278
- | «Уже протестировал вручную» | Ад-хок ≠ систематично. Нет записи, нельзя перезапустить. |
279
- | «Удалить X часов работы расточительно» | Ошибка невозвратных издержек. Держать непроверенный код — техдолг. |
280
- | «Оставлю как референс, напишу тесты с нуля» | Ты его адаптируешь. Это тесты-после. Удалить = удалить. |
281
- | «Нужно сначала поисследовать» | Ок. Выброси исследование, начни с TDD. |
282
- | «Тест сложный — дизайн неясен» | Слушай тест. Сложно тестировать = сложно использовать. |
283
- | «TDD меня замедлит» | TDD быстрее отладки. Прагматизм = тест-первый. |
284
- | «Ручной тест быстрее» | Ручной не доказывает пограничные случаи. Перепроверять при каждом изменении. |
285
- | «В существующем коде нет тестов» | Ты его улучшаешь. Добавляй тесты для существующего кода. |
286
+ | Оправдание | Реальность |
287
+ | ------------------------------------------- | ---------------------------------------------------------------------------- |
288
+ | «Слишком просто, чтобы тестировать» | Простой код ломается. Тест занимает 30 секунд. |
289
+ | «Напишу тесты после» | Тесты, проходящие сразу, не доказывают ничего. |
290
+ | «Тесты после достигают тех же целей» | Тесты-после = «что это делает?». Тесты-первый = «что это должно делать?» |
291
+ | «Уже протестировал вручную» | Ад-хок ≠ систематично. Нет записи, нельзя перезапустить. |
292
+ | «Удалить X часов работы расточительно» | Ошибка невозвратных издержек. Держать непроверенный код — техдолг. |
293
+ | «Оставлю как референс, напишу тесты с нуля» | Ты его адаптируешь. Это тесты-после. Удалить = удалить. |
294
+ | «Нужно сначала поисследовать» | Ок. Выброси исследование, начни с TDD. |
295
+ | «Тест сложный — дизайн неясен» | Слушай тест. Сложно тестировать = сложно использовать. |
296
+ | «TDD меня замедлит» | TDD быстрее отладки. Прагматизм = тест-первый. |
297
+ | «Ручной тест быстрее» | Ручной не доказывает пограничные случаи. Перепроверять при каждом изменении. |
298
+ | «В существующем коде нет тестов» | Ты его улучшаешь. Добавляй тесты для существующего кода. |
286
299
 
287
300
  ## Red flags — ОСТАНОВИСЬ и начни заново
288
301
 
@@ -307,6 +320,7 @@ TDD — И есть прагматизм:
307
320
  **Баг:** принимается пустой email
308
321
 
309
322
  **КРАСНЫЙ**
323
+
310
324
  ```typescript
311
325
  test('отклоняет пустой email', async () => {
312
326
  const result = await submitForm({ email: '' });
@@ -315,12 +329,14 @@ test('отклоняет пустой email', async () => {
315
329
  ```
316
330
 
317
331
  **Верифицируй КРАСНЫЙ**
332
+
318
333
  ```bash
319
334
  $ npx vitest run <путь-к-тесту>
320
335
  FAIL: expected 'Email required', got undefined
321
336
  ```
322
337
 
323
338
  **ЗЕЛЁНЫЙ**
339
+
324
340
  ```typescript
325
341
  function submitForm(data: FormData) {
326
342
  if (!data.email?.trim()) {
@@ -331,6 +347,7 @@ function submitForm(data: FormData) {
331
347
  ```
332
348
 
333
349
  **Верифицируй ЗЕЛЁНЫЙ**
350
+
334
351
  ```bash
335
352
  $ npx vitest run <путь-к-тесту>
336
353
  PASS
@@ -356,12 +373,12 @@ PASS
356
373
 
357
374
  ## Когда застрял
358
375
 
359
- | Проблема | Решение |
360
- |---------|----------|
361
- | Не знаю, как тестировать | Напиши желаемый API. Сначала напиши assertion. Запроси подсказку владельца через executor-lead. |
362
- | Тест слишком сложный | Дизайн слишком сложный. Упрости интерфейс. |
363
- | Приходится мокать всё | Код слишком связан. Используй внедрение зависимостей. |
364
- | Подготовка теста огромная | Вынеси хелперы. Всё ещё сложно? Упрости дизайн. |
376
+ | Проблема | Решение |
377
+ | ------------------------- | ----------------------------------------------------------------------------------------------- |
378
+ | Не знаю, как тестировать | Напиши желаемый API. Сначала напиши assertion. Запроси подсказку владельца через executor-lead. |
379
+ | Тест слишком сложный | Дизайн слишком сложный. Упрости интерфейс. |
380
+ | Приходится мокать всё | Код слишком связан. Используй внедрение зависимостей. |
381
+ | Подготовка теста огромная | Вынеси хелперы. Всё ещё сложно? Упрости дизайн. |
365
382
 
366
383
  ## Интеграция с отладкой
367
384
 
@@ -389,3 +406,8 @@ PASS
389
406
  ```
390
407
 
391
408
  Без исключений — кроме явного разрешения владельца.
409
+
410
+ ## Конвейер (2.15)
411
+
412
+ Сценарии `docs/dev/<дата>-<slug>/test-plan.md` — заготовки КРАСНОЙ фазы: TDD-цикл
413
+ фичи конвейера начинается с переноса сценария в падающий тест, не с изобретения теста.