mister-wolf 2.15.1 → 2.16.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 (120) hide show
  1. package/README.md +4 -16
  2. package/README.ru.md +19 -26
  3. package/dist/adapters/cli/cli-entry.d.ts.map +1 -1
  4. package/dist/adapters/cli/cli-entry.js +6 -0
  5. package/dist/adapters/cli/cli-entry.js.map +1 -1
  6. package/dist/adapters/cli/commands/memory-add.d.ts.map +1 -1
  7. package/dist/adapters/cli/commands/memory-add.js +26 -3
  8. package/dist/adapters/cli/commands/memory-add.js.map +1 -1
  9. package/dist/adapters/cli/commands/memory-call.d.ts.map +1 -1
  10. package/dist/adapters/cli/commands/memory-call.js +22 -2
  11. package/dist/adapters/cli/commands/memory-call.js.map +1 -1
  12. package/dist/adapters/cli/commands/memory-doctor.d.ts.map +1 -1
  13. package/dist/adapters/cli/commands/memory-doctor.js +57 -4
  14. package/dist/adapters/cli/commands/memory-doctor.js.map +1 -1
  15. package/dist/adapters/cli/commands/memory-init.d.ts +2 -11
  16. package/dist/adapters/cli/commands/memory-init.d.ts.map +1 -1
  17. package/dist/adapters/cli/commands/memory-init.js +59 -112
  18. package/dist/adapters/cli/commands/memory-init.js.map +1 -1
  19. package/dist/adapters/cli/commands/memory-promote.d.ts +3 -0
  20. package/dist/adapters/cli/commands/memory-promote.d.ts.map +1 -0
  21. package/dist/adapters/cli/commands/memory-promote.js +15 -0
  22. package/dist/adapters/cli/commands/memory-promote.js.map +1 -0
  23. package/dist/adapters/cli/type-command-generator.d.ts.map +1 -1
  24. package/dist/adapters/cli/type-command-generator.js +5 -0
  25. package/dist/adapters/cli/type-command-generator.js.map +1 -1
  26. package/dist/adapters/fs/fs-project-initializer.d.ts.map +1 -1
  27. package/dist/adapters/fs/fs-project-initializer.js +9 -6
  28. package/dist/adapters/fs/fs-project-initializer.js.map +1 -1
  29. package/dist/adapters/fs/memory-root.d.ts +13 -0
  30. package/dist/adapters/fs/memory-root.d.ts.map +1 -0
  31. package/dist/adapters/fs/memory-root.js +34 -0
  32. package/dist/adapters/fs/memory-root.js.map +1 -0
  33. package/dist/adapters/render/opencode/opencode-renderer.d.ts.map +1 -1
  34. package/dist/adapters/render/opencode/opencode-renderer.js +16 -0
  35. package/dist/adapters/render/opencode/opencode-renderer.js.map +1 -1
  36. package/dist/app/use-cases/add-memory-object.d.ts +8 -0
  37. package/dist/app/use-cases/add-memory-object.d.ts.map +1 -1
  38. package/dist/app/use-cases/add-memory-object.js +21 -1
  39. package/dist/app/use-cases/add-memory-object.js.map +1 -1
  40. package/dist/app/use-cases/get-call-injections.d.ts +9 -0
  41. package/dist/app/use-cases/get-call-injections.d.ts.map +1 -1
  42. package/dist/app/use-cases/get-call-injections.js +24 -3
  43. package/dist/app/use-cases/get-call-injections.js.map +1 -1
  44. package/dist/app/use-cases/gitignore-block.d.ts +11 -0
  45. package/dist/app/use-cases/gitignore-block.d.ts.map +1 -0
  46. package/dist/app/use-cases/gitignore-block.js +29 -0
  47. package/dist/app/use-cases/gitignore-block.js.map +1 -0
  48. package/dist/app/use-cases/init-project.d.ts +30 -4
  49. package/dist/app/use-cases/init-project.d.ts.map +1 -1
  50. package/dist/app/use-cases/init-project.js +77 -11
  51. package/dist/app/use-cases/init-project.js.map +1 -1
  52. package/dist/app/use-cases/promote-memory.d.ts +22 -0
  53. package/dist/app/use-cases/promote-memory.d.ts.map +1 -0
  54. package/dist/app/use-cases/promote-memory.js +31 -0
  55. package/dist/app/use-cases/promote-memory.js.map +1 -0
  56. package/dist/app/use-cases/repair-storage.d.ts +31 -0
  57. package/dist/app/use-cases/repair-storage.d.ts.map +1 -0
  58. package/dist/app/use-cases/repair-storage.js +65 -0
  59. package/dist/app/use-cases/repair-storage.js.map +1 -0
  60. package/dist/app/use-cases/supersede-memory-object.d.ts.map +1 -1
  61. package/dist/app/use-cases/supersede-memory-object.js +14 -0
  62. package/dist/app/use-cases/supersede-memory-object.js.map +1 -1
  63. package/dist/bootstrap/container.d.ts +2 -0
  64. package/dist/bootstrap/container.d.ts.map +1 -1
  65. package/dist/bootstrap/container.js +10 -6
  66. package/dist/bootstrap/container.js.map +1 -1
  67. package/dist/domain/governance.d.ts.map +1 -1
  68. package/dist/domain/governance.js +2 -1
  69. package/dist/domain/governance.js.map +1 -1
  70. package/dist/domain/mask-secrets.d.ts +8 -0
  71. package/dist/domain/mask-secrets.d.ts.map +1 -0
  72. package/dist/domain/mask-secrets.js +20 -0
  73. package/dist/domain/mask-secrets.js.map +1 -0
  74. package/dist/domain/memory-types.d.ts +2 -2
  75. package/dist/domain/memory-types.d.ts.map +1 -1
  76. package/dist/domain/memory-types.js +3 -1
  77. package/dist/domain/memory-types.js.map +1 -1
  78. package/dist/domain/schemas/memory-event-schema.d.ts +1 -0
  79. package/dist/domain/schemas/memory-event-schema.d.ts.map +1 -1
  80. package/dist/domain/schemas/memory-event-schema.js +1 -0
  81. package/dist/domain/schemas/memory-event-schema.js.map +1 -1
  82. package/dist/ports/base-set-renderer.port.d.ts +5 -1
  83. package/dist/ports/base-set-renderer.port.d.ts.map +1 -1
  84. package/package.json +1 -1
  85. package/templates/.wolf/router.log +1 -1
  86. package/templates/base/AGENTS.md +3 -2
  87. package/templates/base/agents/executor-lead.md +4 -0
  88. package/templates/base/agents/mr-wolf.md +3 -2
  89. package/templates/base/agents/steward.md +4 -2
  90. package/templates/base/agents/worker-implementer.md +5 -2
  91. package/templates/base/agents/worker-researcher.md +4 -2
  92. package/templates/base/agents/worker-reviewer.md +9 -7
  93. package/templates/base/commands/analyze-doc.md +1 -1
  94. package/templates/base/commands/complain.md +1 -1
  95. package/templates/base/commands/doc-review.md +1 -1
  96. package/templates/base/playbooks/executor-lead-playbook.md +10 -5
  97. package/templates/base/playbooks/steward-nastavnik.md +5 -4
  98. package/templates/base/playbooks/worker-implementer-playbook.md +17 -7
  99. package/templates/base/playbooks/worker-researcher-playbook.md +5 -2
  100. package/templates/base/playbooks/worker-reviewer-playbook.md +21 -8
  101. package/templates/base/skills/finishing-a-development-branch/SKILL.md +19 -211
  102. package/templates/base/skills/receiving-code-review/SKILL.md +12 -28
  103. package/templates/base/skills/requesting-code-review/SKILL.md +11 -110
  104. package/templates/base/skills/test-driven-development/SKILL.md +18 -396
  105. package/templates/base/skills/using-git-worktrees/SKILL.md +15 -177
  106. package/templates/base/skills/using-skills/SKILL.md +38 -123
  107. package/templates/base/skills/verification-before-completion/SKILL.md +16 -157
  108. package/templates/base/skills/wolf-brainstorm/SKILL.md +17 -168
  109. package/templates/base/skills/wolf-debug/SKILL.md +15 -281
  110. package/templates/base/skills/wolf-design/SKILL.md +16 -35
  111. package/templates/base/skills/wolf-execute/SKILL.md +13 -101
  112. package/templates/base/skills/wolf-handoff/SKILL.md +22 -88
  113. package/templates/base/skills/wolf-plan/SKILL.md +18 -181
  114. package/templates/base/skills/wolf-review/SKILL.md +25 -64
  115. package/templates/base/skills/wolf-sdd/SKILL.md +17 -248
  116. package/templates/base/skills/wolf-skill-intake/SKILL.md +14 -57
  117. package/templates/base/skills/wolf-testplan/SKILL.md +15 -27
  118. package/templates/base/skills/writing-skills/SKILL.md +16 -30
  119. package/templates/opencode/plugins/wolf-router.ts +2 -1
  120. package/templates/opencode/plugins/wolf-session-start.js +11 -9
@@ -2,7 +2,7 @@
2
2
  title: Наставник v1 — протокол мутации playbook'ов
3
3
  owner_skill: steward
4
4
  version: 1
5
- steps: Прочитай текущий playbook агента (wolf search "<тег> playbook", наибольшая версия) | Осмысли жалобу — какое измерение поведения меняется | Зафиксируй новую версию полным содержимым (не диффом), причина в конце | Supersede старой версии | Отчитайся: что изменено, версия, причина
5
+ steps: Прочитай текущий playbook агента (wolf search "<тег> playbook" --hide-superseded, актуальная/не суперседенная версия) | Осмысли жалобу — какое измерение поведения меняется | Зафиксируй новую версию полным содержимым (не диффом), причина в конце | Supersede старой версии | Отчитайся: что изменено, версия, причина
6
6
  tags: steward:наставник,playbook
7
7
  ---
8
8
 
@@ -14,9 +14,10 @@ tags: steward:наставник,playbook
14
14
 
15
15
  ## Протокол мутации (обязателен)
16
16
 
17
- 1. **Прочитай текущий контекст агента**: `wolf search "<тег> playbook"` —
18
- возьми запись с наибольшей версией. Playbook'а нет → создаёшь первую
19
- версию, supersede не нужен.
17
+ 1. **Прочитай текущий контекст агента**: `wolf search "<тег> playbook"
18
+ --hide-superseded` — возьми актуальную (не суперседенную) запись,
19
+ проверь owner_skill (тег-агент или skill:<агент>). Актуального
20
+ playbook'а нет → создаёшь первую версию, supersede не нужен.
20
21
  2. **Осмысли жалобу**: какое измерение поведения меняется — методика,
21
22
  формат отчёта, границы, инструмент. Жалоба без конкретики → верни
22
23
  вопрос передавшему жалобу (в жалобном контуре v2 жалобу передаёт
@@ -18,15 +18,22 @@ playbook: v1 (worker-implementer). Владелец: worker-implementer.
18
18
  паттерны, кто ещё вызывает изменяемый код.
19
19
  3. Внеси правку только в файлы из allowlist. Минимальный работающий
20
20
  дифф; не выдумывай решение за границами подзадачи.
21
- 4. Самопроверка: запусти проверки, указанные брифом (точно та команда,
21
+ 4. Воркер не коммитит; git-операции — зона L1.
22
+ 5. Самопроверка: запусти проверки, указанные брифом (точно та команда,
22
23
  не соседняя). Красный тест по твоей вине — исправь до ответа.
23
- 5. Верни отчёт по формату ниже.
24
+ 6. Верни отчёт по формату ниже.
24
25
 
25
- ## ФОРМАТ ОТЧЁТА
26
+ ## ФОРМАТ ОТЧЁТА (RESULT)
26
27
 
27
- - Что сделано: глагол + пути файлов (одной строкой на суть).
28
- - Результаты проверок: команда + вывод (pass/fail, числа).
28
+ - `task_id: <id>` — идентификатор подзадачи из брифа.
29
+ - Статус: `DONE | DONE_WITH_CONCERNS | NEEDS_CONTEXT | BLOCKED`
30
+ (DONE — готовность к ревью, не приёмка).
31
+ - Изменения: глагол + пути файлов (одной строкой на суть).
32
+ - EVIDENCE — по каждому claim/AC: command/procedure, cwd, revision,
33
+ dirty-state digest (при наличии), существенное окружение, время,
34
+ exit/status, результат, путь к логу.
29
35
  - Отклонения от подзадачи: что не сделано и почему (если есть).
36
+ - Оставшиеся риски: что осталось за границами проверки (если есть).
30
37
  - `FRICTION: <n>× <тул> — причина; обошёл через <что сработало>` —
31
38
  только если тул-вызовы падали; без трения строка не нужна.
32
39
  - `COMPLAINT: <id> — <about>: <суть одной строкой>` — только если
@@ -34,8 +41,11 @@ playbook: v1 (worker-implementer). Владелец: worker-implementer.
34
41
 
35
42
  ## КОНТУР ЛИЦА
36
43
 
37
- - ДО задачи: `wolf search "worker-implementer playbook"` — работай по
38
- наибольшей версии (МЕТОДИКА и ФОРМАТ ОТЧЁТА из неё, не из рамки).
44
+ - ДО задачи: работай по актуальному (не суперседенному) playbook'у:
45
+ `wolf search "worker-implementer playbook" --hide-superseded`, проверь
46
+ owner_skill (agent-id или skill:<agent-id>); канона нет — работай по
47
+ fallback-контуру, доставленному плагином (МЕТОДИКА и ФОРМАТ ОТЧЁТА
48
+ из него, не из рамки).
39
49
  - ТРИГГЕР ЖАЛОБЫ (обязателен, не на усмотрение): систематически плохо
40
50
  ПРАВИЛО (МЕТОДИКА/ФОРМАТ ОТЧЁТА), не тул и не разовый случай:
41
51
  **W1** предписание методики противоречит брифу — следовать обоим
@@ -35,8 +35,11 @@ COMPLAINT: <опционально: "<id> — <about>: <суть одной ст
35
35
 
36
36
  ## КОНТУР ЛИЦА
37
37
 
38
- - ДО задачи: `wolf search "worker-researcher playbook"` — работай по
39
- наибольшей версии (МЕТОДИКА и ФОРМАТ ОТЧЁТА из неё).
38
+ - ДО задачи: `wolf search "worker-researcher playbook" --hide-superseded`
39
+ — работай по актуальному (не суперседенному) playbook'у, проверь
40
+ owner_skill (worker-researcher или skill:worker-researcher); канона
41
+ нет — работай по fallback-контуру, доставленному плагином
42
+ (МЕТОДИКА и ФОРМАТ ОТЧЁТА из неё).
40
43
  - ТРИГГЕР ЖАЛОБЫ (обязателен, не на усмотрение): систематически плохо
41
44
  ПРАВИЛО (методика/формат findings), не тул и не разовый случай:
42
45
  **W1** предписание методики противоречит брифу — следовать обоим
@@ -2,7 +2,7 @@
2
2
  title: Worker Reviewer playbook v1 — зоны обзора и VERDICT-контракт
3
3
  owner_skill: worker-reviewer
4
4
  version: 1
5
- steps: Прочитай файлы и требования брифа | Пройди 6 зон обзора по порядку | Классифицируй проблемы Critical, Important, Suggestions | Верни SUMMARY и VERDICT | FRICTION-строка только при тул-сбоях
5
+ steps: Прочитай файлы и требования брифа | Пройди зоны в границах мандата, назначенного L1 | Классифицируй проблемы Critical/Major/Minor | Верни SUMMARY и VERDICT | FRICTION-строка только при тул-сбоях
6
6
  tags: worker-reviewer playbook,playbook
7
7
  ---
8
8
 
@@ -13,10 +13,17 @@ playbook: v1 (worker-reviewer). Владелец: worker-reviewer. Меняет
13
13
 
14
14
  ```
15
15
  SUMMARY: X critical / Y major / Z minor
16
- VERDICT: APPROVED | CHANGES_REQUIRED
16
+ VERDICT: APPROVED | CHANGES_REQUIRED | INCONCLUSIVE
17
17
  ```
18
18
 
19
- ## ЗОНЫ ОБЗОРА (проходи все 6)
19
+ - `INCONCLUSIVE` — нехватка входов или невозможность проверки.
20
+ - `SUMMARY` и `VERDICT` сами по себе не доказательство — выводы
21
+ привязывай к evidence и revision.
22
+
23
+ ## ЗОНЫ ОБЗОРА (узкий мандат)
24
+
25
+ Узкий мандат: L1 назначает линзе область; обязательный проход
26
+ несвязанных зон исключён.
20
27
 
21
28
  1. **Соответствие плану**: реализация против требований брифа; отклонения
22
29
  от плана — оцени, проблемные они или оправданные; всё ли запланированное
@@ -28,17 +35,23 @@ VERDICT: APPROVED | CHANGES_REQUIRED
28
35
  кодом, расширяемость.
29
36
  4. **Документация и стандарты**: комментарии и докстринги на месте и
30
37
  точны, стандарты проекта соблюдены.
31
- 5. **Классификация проблем**: Critical (исправить обязательно) /
32
- Important (следует исправить) / Suggestions (желательно); по каждой —
33
- конкретное место (файл:строка) и действенное предложение.
38
+ 5. **Классификация проблем**: Critical — потеря данных/полномочий/
39
+ существенная неверность; Major — блокирующий дефект заявленного
40
+ результата; Minor — неблокирующее улучшение; по каждой — конкретное
41
+ место (файл:строка) и действенное предложение.
34
42
  6. **Коммуникация**: сначала подтверди, что сделано хорошо; существенные
35
43
  отклонения от плана — запрос на подтверждение; ошибки самого плана —
36
44
  рекомендация правки плана, а не кода.
37
45
 
46
+ «Отметь, а не молчи»: существенную находку вне мандата отметь отдельно
47
+ для маршрутизации; чужую зону не разрабатывай.
48
+
38
49
  ## КОНТУР ЛИЦА
39
50
 
40
- - ДО задачи: `wolf search "worker-reviewer playbook"` — работай по
41
- наибольшей версии.
51
+ - ДО задачи: работай по актуальному (не суперседенному) playbook'у:
52
+ `wolf search "worker-reviewer playbook" --hide-superseded`, проверь
53
+ owner_skill (agent-id или skill:<agent-id>); канона нет — работай по
54
+ fallback-контуру, доставленному плагином.
42
55
  - ТРИГГЕР ЖАЛОБЫ (обязателен, не на усмотрение): систематически плохо
43
56
  ПРАВИЛО (мандат/зоны обзора/формат вердикта), не тул и не разовый
44
57
  случай: **W1** предписание противоречит брифу — следовать обоим
@@ -1,232 +1,40 @@
1
1
  ---
2
2
  name: finishing-a-development-branch
3
- description: Используй, когда реализация завершена, все тесты зелёные и нужно решить, как интегрировать работу — ведёт финал через структурированные опции мержа, PR или уборки
3
+ description: "Заверши проверенную git-поставку: выполни уже согласованный merge/PR/сохранение либо запроси недостающий выбор. Безопасно сохрани или убери worktree, учитывая незакоммиченную и неотправленную работу."
4
4
  ---
5
5
 
6
- # Finishing a Development Branch
6
+ # Завершение git-поставки
7
7
 
8
- > Источник: ~/.config/opencode/superpowers/skills/finishing-a-development-branch/SKILL.md, upstream 6efe32c (2026-04-23).
9
- > Владелец шага: executor-lead; финальное решение (особенно мерж в main) — за владельцем.
8
+ ## Предусловия
10
9
 
11
- ## Трассировка адаптации
10
+ Ответственный — L1 с действующими правами. Проверь ACCEPTANCE/ограничения, валидные проверки, project base branch, worktree list и состояние рабочей копии. Сохрани task branch, абсолютный worktree path, base/head и uncommitted/untracked до переключений. Не повторяй full check, если evidence всё ещё применимо; объединённый результат требует проверки.
12
11
 
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` |
12
+ ## Выбор
20
13
 
21
- ## Обзор
14
+ Если пользователь уже поручил конкретный финал и условия выполнены, исполни его без повторного вопроса. Иначе предъяви применимые варианты с последствиями: merge, push/PR, оставить, удалить. Не предлагай недоступное действие как исполнимое.
22
15
 
23
- Проведи финал работы через ясные опции и исполнение выбранного сценария.
16
+ ### Merge
24
17
 
25
- **Принцип:** верифицируй тесты → предъяви опции → исполни выбор → приберись.
18
+ Требуется действующее поручение на merge. Проверь актуальность согласованного base; fetch/pull выполняй по политике, не слепо. Если base уже занят другим worktree, интегрируй в его рабочей копии только с проверкой чистоты и владельца; не делай checkout занятой ветки.
26
19
 
27
- **Анонс в начале:** «Использую скилл finishing-a-development-branch для завершения этой работы».
20
+ Конфликты разрешай по требованиям, проверяй итоговые изменения и integration/full gate на merged revision. Не удаляй branch/worktree до подтверждения успешной интеграции и сохранности нужных evidence.
28
21
 
29
- ## Процесс
22
+ ### Push и PR
30
23
 
31
- ### Шаг 1: верифицируй тесты
24
+ Используй разрешённый remote/branch. PR описывает проблему, итоговое поведение, проверки и ограничения; тело передавай структурированно или файлом. Draft допустим для незавершённого ревью/известных падений, если это явно соответствует поручению; ready PR не должен скрывать провал обязательных проверок.
32
25
 
33
- **До предъявления опций — прогнать тесты:**
26
+ После PR сохраняй ветку и worktree для исправлений, если пользователь не поручил безопасную уборку отдельно. Сообщи ссылку и статус; создание PR не означает merge.
34
27
 
35
- ```bash
36
- npm run check # тестовая команда проекта
37
- ```
28
+ ### Оставить
38
29
 
39
- **Упали:**
30
+ Сохрани ветку/worktree, сообщи head, путь, dirty-state и следующий шаг. Не запускай cleanup.
40
31
 
41
- ```
42
- Тесты падают (<N> падений). Надо починить до завершения:
32
+ ### Удалить
43
33
 
44
- [показать падения]
34
+ Покажи точный путь, ветку, неслитые/неотправленные коммиты, uncommitted/untracked и последствия. При отсутствии уже однозначного разрешения запроси подтверждение конкретного удаления. Не требуй кодовое слово, если разрешение ясно и соответствует этой работе.
45
35
 
46
- Нельзя продолжать merge/PR, пока тесты не зелёные.
47
- ```
36
+ Для сохранения предложи patch/backup при необходимости. Удали собственный worktree обычной git worktree remove; затем свою ветку. Если git отказывается из-за dirty-state, не добавляй force автоматически. Force допустим только в явно разрешённом объёме. Не удаляй общую base branch.
48
37
 
49
- Стоп. Не переходить к шагу 2.
38
+ ## Итог
50
39
 
51
- **Зелёные:** → шаг 2.
52
-
53
- ### Шаг 2: определи базовую ветку
54
-
55
- Правило проекта — trunk-based: базовая ветка всегда `main` (main — истина).
56
-
57
- ```bash
58
- git merge-base HEAD main
59
- ```
60
-
61
- При сомнении спроси: «Ветка отделилась от main — верно?»
62
-
63
- ### Шаг 3: предъяви опции
64
-
65
- Ровно эти 4 опции:
66
-
67
- ```
68
- Реализация завершена. Что делаем?
69
-
70
- 1. Смержить обратно в <base-branch> локально
71
- 2. Запушить и создать Pull Request
72
- 3. Оставить ветку как есть (разберусь позже)
73
- 4. Выбросить эту работу
74
-
75
- Какая опция?
76
- ```
77
-
78
- **Без пояснений** — опции краткие.
79
-
80
- ### Шаг 4: исполни выбор
81
-
82
- #### Опция 1: мерж локально
83
-
84
- Только по явному поручению владельца (правило проекта: main — истина, мерж — осознанное решение владельца).
85
-
86
- ```bash
87
- git checkout main
88
- git pull
89
- git merge <feature-branch>
90
-
91
- # Верифицировать тесты на смерженном результате
92
- npm run check
93
-
94
- # Если зелёные
95
- git branch -d <feature-branch>
96
- ```
97
-
98
- Затем: уборка worktree (шаг 5).
99
-
100
- #### Опция 2: пуш и PR
101
-
102
- ```bash
103
- git push -u origin <feature-branch>
104
-
105
- gh pr create --title "<заголовок>" --body "$(cat <<'EOF'
106
- ## Summary
107
- <2-3 буллета что изменилось>
108
-
109
- ## Test Plan
110
- - [ ] <шаги верификации>
111
- EOF
112
- )"
113
- ```
114
-
115
- Затем: уборка worktree (шаг 5).
116
-
117
- #### Опция 3: оставить как есть
118
-
119
- Доложить: «Оставляю ветку <имя>. Worktree сохранён: <путь>».
120
-
121
- **Worktree не убирать.**
122
-
123
- #### Опция 4: выбросить
124
-
125
- **Сначала подтверждение:**
126
-
127
- ```
128
- Это навсегда удалит:
129
- - Ветку <имя>
130
- - Все коммиты: <список-коммитов>
131
- - Worktree <путь>
132
-
133
- Введи 'discard' для подтверждения.
134
- ```
135
-
136
- Ждать дословного подтверждения.
137
-
138
- Если подтверждено:
139
-
140
- ```bash
141
- git checkout main
142
- git branch -D <feature-branch>
143
- ```
144
-
145
- Затем: уборка worktree (шаг 5).
146
-
147
- ### Шаг 5: уборка worktree
148
-
149
- **Для опций 1, 2, 4:**
150
-
151
- Проверить, находишься ли в worktree:
152
-
153
- ```bash
154
- git worktree list | grep $(git branch --show-current)
155
- ```
156
-
157
- Если да:
158
-
159
- ```bash
160
- git worktree remove <worktree-path>
161
- ```
162
-
163
- **Для опции 3:** worktree сохранить.
164
-
165
- ## Быстрая шпаргалка
166
-
167
- | Опция | Мерж | Пуш | Сохранить worktree | Удалить ветку |
168
- | -------------------- | ---- | --- | ------------------ | ------------- |
169
- | 1. Мерж локально | ✓ | - | - | ✓ |
170
- | 2. Создать PR | - | ✓ | ✓ | - |
171
- | 3. Оставить как есть | - | - | ✓ | - |
172
- | 4. Выбросить | - | - | - | ✓ (force) |
173
-
174
- ## Частые ошибки
175
-
176
- **Пропуск верификации тестов**
177
-
178
- - **Проблема:** смержить сломанный код, создать падающий PR
179
- - **Фикс:** всегда верифицировать тесты до предъявления опций
180
-
181
- **Открытые вопросы**
182
-
183
- - **Проблема:** «Что делать дальше?» → двусмысленность
184
- - **Фикс:** предъявлять ровно 4 структурированные опции
185
-
186
- **Автоматическая уборка worktree**
187
-
188
- - **Проблема:** удалить worktree, который ещё нужен (опции 2, 3)
189
- - **Фикс:** уборка только для опций 1 и 4
190
-
191
- **Без подтверждения для discard**
192
-
193
- - **Проблема:** случайно удалить работу
194
- - **Фикс:** требовать дословный ввод «discard»
195
-
196
- ## Red flags
197
-
198
- **Никогда:**
199
-
200
- - Не продолжать с падающими тестами
201
- - Не мержить без верификации тестов на результате
202
- - Не удалять работу без подтверждения
203
- - Не форс-пушить без явного запроса
204
-
205
- **Всегда:**
206
-
207
- - Верифицировать тесты до предъявления опций
208
- - Предъявлять ровно 4 опции
209
- - Получать дословное подтверждение для опции 4
210
- - Убирать worktree только для опций 1 и 4
211
-
212
- ## Интеграция
213
-
214
- **Вызывается из:**
215
-
216
- - **wolf-sdd** (финальный шаг) — после завершения всех задач
217
- - **wolf-execute** (финальный шаг) — после завершения всех батчей
218
-
219
- **Пара с:**
220
-
221
- - **using-git-worktrees** — убирает worktree, созданный тем скиллом
222
-
223
- ## Интеграция с Wolf
224
-
225
- - **Правило проекта**: trunk-based — main = истина, работа в worktree-ветках, релизы тегами; мерж в main — только по явному поручению владельца.
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
- «Ветвь» не живёт дольше волны.
40
+ Запиши выполненное действие, revision, проверки, PR/merge outcome и сохранённое/удалённое. Неопределённый исход внешнего действия сначала проверь, не повторяй push/PR вслепую. Значимое решение сохраняй разрешённым каналом памяти. Автоматическая публикация релиза не входит в этот скилл.
@@ -1,39 +1,23 @@
1
1
  ---
2
2
  name: receiving-code-review
3
- description: 'Фидбек владельца и ревью-линз: высший приоритет лестницы, но не слепое внедрение — техническая строгость, проверка возражений, протокол несогласия.'
3
+ description: "Разбирай замечания пользователя или ревьюера: проверь основание, ответь на каждый пункт, исправь подтверждённый дефект и повтори затронутые проверки. Не принимай и не отвергай фидбек без evidence."
4
4
  ---
5
5
 
6
- # receiving-code-review: приём фидбека
7
-
8
- ## Обзор
9
-
10
- Фидбек владельца = высший приоритет лестницы приоритетов. Но «внедри совет» — не
11
- поведение по умолчанию: ревью может быть технически неверным.
6
+ # Обработка ревью
12
7
 
13
8
  ## Процесс
14
9
 
15
- 1. Прочитать фидбек целиком; классифицировать каждый пункт: факт-исправление /
16
- вопрос / возражение.
17
- 2. Согласен → внедрить + коммит + строка «что исправлено» в отчёт.
18
- 3. Сомневаешься → проверить по коду/документу ДО ответа; возражение обосновать
19
- пруфом (file:line), не мнением.
20
- 4. Фидбек противоречит памяти Wolf/рамке → по лестнице приоритетов (память выше
21
- скиллов); расхождение правил → жалоба по протоколу жалоб, не самовольная
22
- правка правила.
23
- 5. Уроки фидбека (воспроизводимый паттерн ошибки) → `wolf add --type lesson`.
10
+ 1. Прочитай весь набор; различи исправление факта, вопрос, дефект, предпочтение и изменение требований. Свяжи с finding_id; если его нет, создай локальный идентификатор ответа.
11
+ 2. Проверь воспроизводимость по исходным требованиям, коду и evidence. Ответ на каждый пункт: ACCEPTED, REFUTED, DEFERRED или NEEDS_CLARIFICATION; добавь основание и действие. Эти метки — отчёт, не типы памяти.
12
+ 3. Подтверждённый Critical/Major исправь до приёмки; Minor назначь или отложи с причиной. Пользовательское указание о цели имеет приоритет; техническую неверность рекомендации объясни и предложи способ достичь цели.
13
+ 4. Изменение AC/scope проведи через CR и L0; не переписывай контракт, чтобы обойти находку. Конфликт действующих методик передай жалобным контуром, но не останавливай независимую полезную работу без необходимости.
14
+ 5. Правь минимально; проверки выбери по влиянию. Коммиты делает роль с действующим разрешением. Зафиксируй revision исправления, evidence и незакрытые риски.
15
+ 6. Запроси повторное ревью affected mandates. Отсутствие ответа ревьюера не означает одобрения; лимит циклов заканчивается явной эскалацией.
24
16
 
25
- ## Запреты
17
+ ## Память
26
18
 
27
- - Перформативное согласие без проверки.
28
- - Внедрение совета вслепую при явном техническом возражении.
29
- - Тихое игнорирование пункта фидбека.
19
+ Наблюдение о конкретной незавершённой работе фиксируй задачей/заметкой; обобщаемый повторяемый паттерн — lesson с областью применимости и evidence. Не создавай правило из каждого комментария. Недоступную запись передай L1; не обходи permissions.
30
20
 
31
- ## Трассировка адаптации
21
+ ## Запреты
32
22
 
33
- | Пункт источника (superpowers receiving-code-review) | Судьба | Почему |
34
- | --------------------------------------------------- | ------------------------------------------------ | ----------------- |
35
- | Техническая строгость, не перформативное согласие | сохранено | ядро |
36
- | Проверка перед внедрением | сохранено | ядро |
37
- | «Совет может быть неверным» | сохранено | ядро |
38
- | — | добавлено: лестница приоритетов + протокол жалоб | Wolf-переплетение |
39
- | — | добавлено: уроки фидбека → память Wolf | самообучение |
23
+ Не изображай согласие без проверки, не игнорируй пункт молча, не превращай ревью в бесконечный косметический цикл. Техническое возражение подкрепи проверяемым основанием, а не уверенностью.
@@ -1,123 +1,24 @@
1
1
  ---
2
2
  name: requesting-code-review
3
- description: Используй при завершении задач, реализации крупных фич или перед мержем — проверить соответствие работы требованиям
3
+ description: "Запрашивай независимое ревью изменений перед интеграцией или при существенном риске. Передай точный диапазон изменений, требования, проверки и мандат; диспетчер L1, ревьюер L2."
4
4
  ---
5
5
 
6
- # Requesting Code Review
6
+ # Запрос ревью кода
7
7
 
8
- > Источник: ~/.config/opencode/superpowers/skills/requesting-code-review/SKILL.md, upstream 6efe32c (2026-04-23).
9
- > Ревью-контур executor'а: диспетчер — executor-lead, ревьюер — worker-reviewer.
8
+ ## Подготовка
10
9
 
11
- ## Трассировка адаптации
10
+ L1 фиксирует base_sha ДО исполнения задачи, current/head revision и dirty-state. Не используй HEAD~1 как универсальную границу: задача может включать несколько коммитов. Для незакоммиченного результата передай проверяемый diff и состояние файлов; не требуй коммита ради ревью.
12
11
 
13
- | Пункт upstream | Судьба |
14
- |---|---|
15
- | Когда запрашивать (2 списка), контекстный шаблон ревьюера (5 полей), таблица act-on-feedback, пример, red flags Never (4) + «если ревьюер неправ» (3), интеграционные привязки | **сохранено полностью** (H6/H7: act-on-feedback и red flags переносятся дословно по смыслу) |
16
- | Task tool с типом `superpowers:code-reviewer` | **заменено**: спавн worker-reviewer через {{tool.task}}; методика ревьюера — в памяти (контур лица worker-reviewer) |
17
- | Внешний шаблон `agents/code-reviewer.md` | **заменено**: поля шаблона встроены в этот скилл (BASE_SHA/HEAD_SHA и др.) |
18
- | Minor → «note for later» | **дополнено**: фиксация через `wolf add --type lesson` (техдолг виден следующим сессиям) |
19
- | Префикс `superpowers:`, имя code-reviewer | **отброшено**: имена harness'а upstream |
12
+ ## Пакет ревьюера
20
13
 
21
- ## Обзор
14
+ Передай task_id, цель, AC/REQ и утверждённый design, base/head, cwd/worktree, изменённые и релевантные файлы, contract dependencies, проверки/evidence, известные ограничения. Не передавай самооценку автора как ожидаемый вывод. Независимый reviewer проверяет код и основания, а не только пересказ.
22
15
 
23
- Диспетчеризуй воркера-ревьюера, чтобы поймать проблемы до того, как они каскадируют. Ревьюер получает точно сконструированный контекст для оценки — никогда не историю твоей сессии. Это держит ревьюера сфокусированным на продукте работы, а не на твоём мыслительном процессе, и сохраняет твой контекст для продолжения работы.
16
+ Назначь мандат: соответствие, качество/интеграция или специализированный риск. Для значимых изменений проверь security, миграции и failures; для небольших — пропорциональный объём. L0 вызывает executor, L1 — worker-reviewer. Недоступное независимое ревью явно отметь, не имитируй второй голос.
24
17
 
25
- **Принцип:** ревьюруй рано, ревьюруй часто.
18
+ ## Результат
26
19
 
27
- ## Когда запрашивать ревью
20
+ Используй контракт wolf-review: finding_id, severity, location/revision, evidence, impact; verdict APPROVED | CHANGES_REQUIRED | INCONCLUSIVE. Critical/Major блокируют приёмку; Minor — нет, кроме явно обоснованного риска. Технический долг — отдельная задача/заметка, lesson только для повторяемого знания.
28
21
 
29
- **Обязательно:**
30
- - После каждой задачи в wolf-sdd
31
- - После завершения крупной фичи
32
- - Перед мержем в main
22
+ ## Обработка
33
23
 
34
- **Опционально, но ценно:**
35
- - Когда застрял (свежий взгляд)
36
- - Перед рефакторингом (базовая проверка)
37
- - После фиксации сложного бага
38
-
39
- ## Как запросить
40
-
41
- **1. Получить git SHA:**
42
- ```bash
43
- BASE_SHA=$(git rev-parse HEAD~1) # или origin/main
44
- HEAD_SHA=$(git rev-parse HEAD)
45
- ```
46
-
47
- **2. Диспетчеризовать воркера-ревьюера через {{tool.task}}:**
48
-
49
- Спавн worker-reviewer; контекст ревьюера заполняет диспетчер (executor-lead). Ревьюер сам подтягивает методику перед задачей: `wolf search "worker-reviewer playbook"` (контур лица, наибольшая версия).
50
-
51
- **Поля контекста:**
52
- - `{WHAT_WAS_IMPLEMENTED}` — что только что построено
53
- - `{PLAN_OR_REQUIREMENTS}` — что оно должно делать (задача из плана / бриф)
54
- - `{BASE_SHA}` — стартовый коммит
55
- - `{HEAD_SHA}` — конечный коммит
56
- - `{DESCRIPTION}` — краткое описание
57
-
58
- **3. Действовать по фидбеку (act-on-feedback):**
59
-
60
- | Категория | Действие |
61
- |---|---|
62
- | Critical | Исправить немедленно |
63
- | Important | Исправить до продолжения работы |
64
- | Minor | Зафиксировать и учесть позже (`wolf add --type lesson`) |
65
-
66
- Возражай, если ревьюер неправ (с обоснованием).
67
-
68
- ## Пример
69
-
70
- ```
71
- [Завершена задача 2: функция верификации]
72
-
73
- Ты: Запрошу ревью перед продолжением.
74
-
75
- BASE_SHA=$(git log --oneline | grep "Task 1" | head -1 | awk '{print $1}')
76
- HEAD_SHA=$(git rev-parse HEAD)
77
-
78
- [Диспетчеризую worker-reviewer через {{tool.task}}]
79
- WHAT_WAS_IMPLEMENTED: Функции verifyIndex() и repairIndex() для индекса диалогов
80
- PLAN_OR_REQUIREMENTS: Задача 2 из docs/plans/deployment-plan.md
81
- BASE_SHA: a7981ec
82
- HEAD_SHA: 3df7661
83
- DESCRIPTION: Добавлены verifyIndex() и repairIndex() с 4 типами проблем
84
-
85
- [Воркер вернул]:
86
- Strengths: чистая архитектура, настоящие тесты
87
- Issues:
88
- Important: нет индикаторов прогресса
89
- Minor: магическое число (100) для интервала отчётности
90
- Assessment: готов к продолжению
91
-
92
- Ты: [фиксируешь индикаторы прогресса]
93
- [Minor фиксируешь: wolf add --type lesson "техдолг: магическое число 100 ..."]
94
- [Продолжаешь задачу 3]
95
- ```
96
-
97
- ## Интеграция с процессами
98
-
99
- **wolf-sdd (субагентная разработка):**
100
- - Ревью после КАЖДОЙ задачи
101
- - Ловить проблемы до того, как они накопятся
102
- - Исправить до перехода к следующей задаче
103
-
104
- **wolf-execute (исполнение плана):**
105
- - Ревью после каждого батча (3 задачи)
106
- - Получить фидбек, применить, продолжить
107
-
108
- **Ad-hoc разработка:**
109
- - Ревью перед мержем
110
- - Ревью при застревании
111
-
112
- ## Red flags
113
-
114
- **Никогда:**
115
- - Не пропускать ревью со словами «это же просто»
116
- - Не игнорировать Critical-находки
117
- - Не продолжать с неисправленными Important-находками
118
- - Не спорить с валидным техническим фидбеком
119
-
120
- **Если ревьюер неправ:**
121
- - Возразить с техническим обоснованием
122
- - Показать код/тесты, доказывающие работу
123
- - Попросить уточнение
24
+ Прими фидбек через receiving-code-review. Перед повторным ревью обозначь изменённые версии и закрываемые finding IDs. Сохрани действительные результаты неизменённых проверок; повтори затронутые. Открытие PR и его приёмка — разные состояния, отчёт должен это различать.