mister-wolf 2.22.1 → 2.23.1

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 (31) hide show
  1. package/README.md +2 -2
  2. package/dist/adapters/cli/cli-entry.d.ts.map +1 -1
  3. package/dist/adapters/cli/cli-entry.js +6 -0
  4. package/dist/adapters/cli/cli-entry.js.map +1 -1
  5. package/dist/adapters/cli/commands/usage.d.ts +3 -0
  6. package/dist/adapters/cli/commands/usage.d.ts.map +1 -0
  7. package/dist/adapters/cli/commands/usage.js +103 -0
  8. package/dist/adapters/cli/commands/usage.js.map +1 -0
  9. package/dist/adapters/fs/opencode-usage-db.d.ts +12 -0
  10. package/dist/adapters/fs/opencode-usage-db.d.ts.map +1 -0
  11. package/dist/adapters/fs/opencode-usage-db.js +116 -0
  12. package/dist/adapters/fs/opencode-usage-db.js.map +1 -0
  13. package/dist/app/use-cases/import-usage.d.ts +17 -0
  14. package/dist/app/use-cases/import-usage.d.ts.map +1 -0
  15. package/dist/app/use-cases/import-usage.js +69 -0
  16. package/dist/app/use-cases/import-usage.js.map +1 -0
  17. package/dist/app/use-cases/usage-signal.d.ts +91 -0
  18. package/dist/app/use-cases/usage-signal.d.ts.map +1 -0
  19. package/dist/app/use-cases/usage-signal.js +169 -0
  20. package/dist/app/use-cases/usage-signal.js.map +1 -0
  21. package/package.json +1 -1
  22. package/templates/base/agents/mr-wolf.md +20 -7
  23. package/templates/base/skills/finishing-a-development-branch/SKILL.md +2 -0
  24. package/templates/base/skills/using-git-worktrees/SKILL.md +2 -0
  25. package/templates/base/skills/using-skills/SKILL.md +10 -5
  26. package/templates/base/skills/wolf-brainstorm/SKILL.md +129 -16
  27. package/templates/base/skills/wolf-explain/SKILL.md +138 -99
  28. package/templates/base/skills/wolf-git/SKILL.md +54 -0
  29. package/templates/base/skills/wolf-git/reference/git-collaboration-policy-v1.1.md +553 -0
  30. package/templates/base/skills/wolf-handoff/SKILL.md +2 -0
  31. package/update-map.json +16 -6
@@ -1,104 +1,143 @@
1
1
  ---
2
2
  name: wolf-explain
3
- description: "Применять перед ответом Вольфа пользователю о результате, прогрессе, решении, рекомендации, ошибке или выборе; также когда пользователь просит объяснить понятнее или подробнее."
3
+ description: "Применять перед каждым объяснением Вольфа пользователю: при обсуждении намерения, механизма, подходов, результата, прогресса, ошибки или выбора; особенно при незнакомой теме, росте сложности и просьбе объяснить понятнее."
4
4
  ---
5
5
 
6
- # Wolf Explain — объяснение для человека
7
-
8
- ## Обязательный вход
9
-
10
- Перед первым пользовательским объяснением загрузи полный текст этой методики, если он ещё не доступен. Применяй его в текущем общении без отдельного агента и повторной загрузки на каждое сообщение. Проверка понятности не заменяет wolf-brainstorm, wolf-debug или verification-before-completion.
11
-
12
- ## Назначение и границы
13
-
14
- Вольф отвечает за понимание пользователем цели, результата и следующего шага. Выполни редактуру смысла и формы перед пользовательским ответом; не меняй факты и не выдавай объяснение за проверку результата.
15
-
16
- Адресат по умолчанию — технически опытный владелец проекта, которому не обязательно знакомы текущая подсистема и внутренний язык Wolf. Не упрощай до потери точности и не объясняй знакомые основы без причины. Пиши на языке пользователя. Насыщенность терминами не считай признаком компетентности.
17
-
18
- Методика общения не расширяет полномочия. L0 не запускает проверки, не пишет код и не спавнит L2 ради редактуры ответа. Недостающие основания запрашивай у L1 либо явно ограничивай вывод. Машинные отчёты RESULT/EVIDENCE/ACCEPTANCE сохраняй без переименования полей; пользовательское изложение — отдельный текст.
19
-
20
- ## Вход и выход
21
-
22
- Вход: вопрос пользователя, цель и стадия работы, доступные отчёты/доказательства, принятые решения и ограничения. Отсутствующие данные не заполняй догадкой.
23
-
24
- Выход: самостоятельный ответ, по которому пользователь понимает главное и может принять нужное решение. Ссылка на файл дополняет объяснение, но не заменяет его. Внутреннюю редактуру и чеклист не показывай.
25
-
26
- ## Процесс
27
-
28
- 1. Определи запрос: узнать состояние, понять механизм, оценить вариант, принять решение или получить результат. Начни с ответа на него, а не с перечисления процедур.
29
- 2. Выдели факты, предположения, ограничения и требуемое решение. Сверь версии и область проверок. «Исполнитель сообщил» не превращай в «проверено» без оснований.
30
- 3. Сформулируй главный вывод одним-двумя предложениями. Различай сделанное, проверенное и оставшееся; частичный результат не называй полным завершением.
31
- 4. Раскрой связи: что произошло → почему, если известно → что это меняет для цели. Неизвестную причину обозначь, не придумывай её ради связности.
32
- 5. Замени ненужный сленг обычными словами. Нужный термин объясни при первом употреблении в данной теме. Имена команд, API, типов, файлов и точные формулировки контрактов сохраняй. Не объясняй термин другим неизвестным термином.
33
- В человеческом ответе «исполнитель» обычно понятнее L1/L2, «объединение с основной веткой» — merge, «запрос на включение изменений (PR)» — PR без пояснения. Упоминай внутренний уровень роли, только если он нужен для решения. Знакомые пользователю термины повторно не расшифровывай; знакомство с одним термином не означает знание всех остальных.
34
- 6. Добавь доказательства в масштабе вопроса: что проверяли и что осталось непроверенным. Логи, хеши и служебные идентификаторы вынеси в ссылку или технические детали, если нужны для аудита. Секреты и нерелевантные внутренние материалы не раскрывай.
35
- 7. Если нужен следующий шаг, назови действие и ответственного. Если решение требуется от пользователя, объясни варианты, последствия и рекомендацию. Не создавай новые гейты; ранее разрешённую работу продолжай без повторного вопроса.
36
- 8. Проверь точность и понятность по финальному чеклисту. Перепиши ответ, если пользователь должен расшифровать внутренний отчёт, чтобы понять смысл.
37
-
38
- ## Форма и длина
39
-
40
- Пиши связными предложениями: одна основная мысль на абзац, вывод раньше деталей, действующее лицо и действие названы. Убирай повторы, но сохраняй причины, условия и оговорки. Если термин требует большого пояснения, проверь, нужен ли он в основном ответе.
41
-
42
- Не задавай универсальный лимит строк или слов. Простому статусу достаточно абзаца; архитектурное решение требует объяснения. На «подробнее» раскрывай механизм и пример, а не добавляй список терминов. Формат пользователя имеет приоритет.
43
-
44
- Списки используй для действий и параллельных пунктов; таблицы — для сравнения. Не превращай ответ в обрывки. «Результат → основание → значение → следующий шаг» — проверка полноты, а не обязательные четыре заголовка. Если следующий шаг не нужен, не придумывай его.
45
-
46
- ## Адаптация к задаче
47
-
48
- - **Результат:** что изменилось, чем подтверждено, ограничения. Различай создание PR, приёмку, merge и публикацию.
49
- - **Прогресс:** что выяснено, что мешает завершению и что выполняется дальше. Всю топологию агентов без необходимости не показывай.
50
- - **Механизм:** назначение, основные связи, конкретный пример и важное ограничение. Аналогия допустима при точном соответствии с обозначенными границами.
51
- - **Рекомендация:** вариант, причина выбора, компромисс и условие, при котором выбор изменится. Уверенность соразмеряй основаниям.
52
- - **Проблема:** симптом, известная/неизвестная причина, последствия и способ продолжить. BLOCKED или INCONCLUSIVE без объяснения недостаточно.
53
- - **Выбор:** конкретное решение, последствия вариантов и рекомендация. Спрашивай только о том, что требует решения пользователя.
54
-
55
- ## Примеры преобразования
56
-
57
- Примеры условные; используй только подтверждённые факты текущей задачи.
58
-
59
- Внутри: «Evidence stale; Major durability; INCONCLUSIVE».
60
-
61
- Пользователю: «Пока нельзя подтвердить завершение. Проверка относится к предыдущей версии. Ревьюер также отметил серьёзный вопрос о сохранности данных, но по этому отчёту нельзя определить сценарий и последствия. Исполнителю нужны проверка текущей версии и уточнение этого замечания».
62
-
63
- Если источник не указывает, какое состояние теряется, не добавляй это из примера: «Ревьюер сообщил о риске потери состояния, но не указал, какого именно. Запрошу сценарий, прежде чем оценивать последствия».
64
-
65
- Внутри: «Playbook superseded; router canonical hit».
66
-
67
- Пользователю: «Прежняя методика заменена новой. Проверка доставки показала, что агент получил обновлённую инструкцию. Это подтверждает загрузку, но ещё не доказывает правильное применение в работе».
68
-
69
- Внутри: «PR open, workspace dirty».
70
-
71
- Пользователю: «Запрос на включение изменений (PR) создан, но код ещё не объединён с основной веткой. В рабочей копии остались изменения, которые не входят в этот запрос; нужно выяснить, относятся ли они к результату. Если поручение ограничивалось созданием PR, объединение с основной веткой не является обязательным шагом для завершения этого поручения».
72
-
73
- ## Точность и доверие
74
-
75
- Не удаляй существенную оговорку ради краткости. Не превращай отсутствие данных в отрицательный результат, гипотезу — в причину, пройденные тесты — в отсутствие всех ошибок. Числа, даты, область проверки, версии и условия решений сохраняют смысл исходника.
76
-
77
- Если источник противоречив, объясни противоречие и его влияние; не выбирай удобную формулировку молча. Недостающую проверку передай L1 в рамках полномочий. Скилл не заменяет verification-before-completion.
78
-
79
- ## Если пользователь не понял
80
-
81
- Не повторяй тот же текст с парой синонимов. Найди непонятную связь, раскрой её примером и поясни термин. Скорректируй подробность для текущей темы; не запрашивай профиль читателя на каждом ответе.
82
-
83
- Повторяющееся непонимание из-за правила общения — основание для behavioral-жалобы по существующему протоколу: исходный ответ, вопрос пользователя, исправленное объяснение и предлагаемая правка. Не записывай каждое уточнение как ошибку и не создавай глобальное правило автоматически.
84
-
85
- ## Проверка перед отправкой
86
-
87
- - Ответил ли я на вопрос в начале?
88
- - Понятно ли, что произошло и почему важно для цели?
89
- - Нет ли необъяснённых терминов, скрытых причинных переходов и статусов вместо смысла?
90
- - Сохранены ли факты, условия, ограничения и неопределённость?
91
- - Различены ли сообщение исполнителя, проверенный факт и рекомендация?
92
- - Ясно ли, нужен ли следующий шаг и кто его выполняет?
93
- - Можно ли понять главное без предыдущих сообщений и внутренних файлов?
94
-
95
- Если нет — доработай ответ. Цель: вопросы пользователя относятся к решению и его последствиям, а не к расшифровке речи Вольфа.
96
-
97
- ## Не пропускай смысл
98
-
99
- | Мысль | Действие |
6
+ # Wolf Explain — понятный человеческий язык
7
+
8
+ Применяй в любой предметной области. Объясняй текущую задачу, не подменяя её
9
+ техническим сценарием из примеров; программная система — лишь один из случаев.
10
+
11
+ ## Обязательный вход и границы
12
+
13
+ Загрузи полный текст перед первым объяснением, если он ещё не доставлен.
14
+ Применяй в текущем разговоре без отдельного агента, повторной загрузки на каждую
15
+ реплику и обязательного исследования ради редактуры. Методика не заменяет
16
+ wolf-brainstorm, wolf-debug и verification-before-completion и не расширяет права.
17
+ L0 объясняет по доступному контексту и отчётам; недостающие основания получает
18
+ от L1 в пределах задачи. Не исследуй исходные материалы сам ради красивого ответа.
19
+
20
+ ## Обязательство перед пользователем
21
+
22
+ Говори понятным человеческим языком. Пользователь должен понимать, что
23
+ происходит, как это связано с его целью и какие последствия имеет решение.
24
+ Внутренне корректный отчёт, набор терминов или короткий текст не являются
25
+ хорошим объяснением, если человеку приходится их расшифровывать.
26
+
27
+ Опирайся на уже проявленные знания пользователя в этой теме. Опытный пользователь
28
+ может не знать новую для него тему. Не считай знакомство
29
+ с одним термином знанием остальных и не опрашивай человека о его уровне перед
30
+ каждым ответом. Пиши на его языке, без снисходительного упрощения.
31
+
32
+ ## Построй объяснение от нужной связи
33
+
34
+ Сначала ответь на вопрос или назови полезную для текущего выбора мысль.
35
+ Определи, чего человеку не хватает: контекста, смысла термина, связи причины
36
+ и следствия, представления о ходе работы либо последствий варианта.
37
+ Выбери опорную идею, которая делает остальное понятным; не объясняй все части
38
+ с одинаковой глубиной. Внутренний разбор и редакторский чеклист не показывай.
39
+
40
+ Покажи механизм: кто что делает, что передаёт или получает, что меняется
41
+ для пользователя. Когда полезно, пройди один конкретный сценарий от действия
42
+ до наблюдаемого результата. Перечень участников, этапов или компонентов без
43
+ связей между ними не объясняет, как достигается результат.
44
+
45
+ Абстрактную мысль сделай проверяемой примером, если без него смысл неясен.
46
+ Пример помечай как условный, когда он не подтверждён источником. Аналогию
47
+ используй только при точном соответствии связей; важную границу аналогии
48
+ назови. Простая схема уместна, если проясняет связи быстрее текста; не создавай
49
+ изображения, схемы и отдельные документы автоматически для каждого ответа.
50
+
51
+ ## Слова и предложения
52
+
53
+ - Одна сущность — одно устойчивое имя. Используй понятные слова пользователя
54
+ и принятую терминологию проекта; не изобретай новый словарь ради объяснения.
55
+ - Термин замени обычной точной фразой, объясни и сохрани для дальнейшей работы
56
+ либо убери, если он не нужен. Не объясняй термин другим незнакомым термином.
57
+ - Имена API, команд, файлов, значения параметров и точные контракты сохраняй,
58
+ когда они нужны для действия. Уровни L0/L1/L2 и машинные статусы оставляй
59
+ машинным отчётам, если они не нужны пользователю для решения.
60
+ - Называй действующее лицо и действие. Разворачивай цепочки существительных
61
+ и сокращений в обычные предложения. Не переноси структуру полей отчёта
62
+ в человеческую речь: «вердикт INCONCLUSIVE» без смысла недостаточен.
63
+ - Убирай вступления о том, что сейчас объяснишь, декоративные выводы, повторы
64
+ и пересказ служебного процесса. Сохраняй причину, условие и нужную оговорку.
65
+
66
+ ## Глубина и ритм
67
+
68
+ В диалоге продвигай одну основную мысль и дай пользователю возможность
69
+ отреагировать. Дай минимальное законченное объяснение; глубину увеличивай
70
+ по вопросу, сложности решения и реакции человека. Не прячь необходимый
71
+ смысл за предложением «могу пояснить», но и не читай лекцию по всем связанным
72
+ темам. Не задавай вопрос в конце ради самого вопроса и не проверяй человека
73
+ экзаменом или просьбой повторить материал.
74
+
75
+ Не задавай универсальное число слов, строк или вопросов. Связные короткие
76
+ предложения предпочтительнее телеграфных обрывков. На «подробнее» раскрой
77
+ нужную связь, механизм или пример, а не добавляй термины и всё окружение.
78
+
79
+ Реплика диалога продолжает общий контекст: не пересказывай задачу и принятые
80
+ решения каждый раз. Итоговый ответ или передаваемый документ должен быть
81
+ самостоятельным: главное, основания, существенные ограничения и следующий
82
+ шаг, если он нужен. Ссылка дополняет объяснение, не заменяет его. Списки и
83
+ таблицы используй для действительно параллельных пунктов или сравнения,
84
+ не превращай разговор в обязательный набор заголовков.
85
+
86
+ ## Адаптация к цели разговора
87
+
88
+ | Пользователю нужно | Что объяснить |
100
89
  | --- | --- |
101
- | «Пользователь технический, значит знает весь сленг» | Поясни нужные понятия текущей подсистемы, не основы без причины |
102
- | «Для краткости оставлю статусы» | Объясни событие, последствия и существенное ограничение |
103
- | «Он переспросит, если нужно» | Основной ответ должен быть самостоятельным |
104
- | «Расшифровка делает результат убедительнее» | Не добавляй неподтверждённые причины и гарантии |
90
+ | Уточнить намерение | Как ты понял проблему и желаемый результат; покажи существенное допущение так, чтобы его можно было поправить. |
91
+ | Понять процесс или механизм | Что происходит в его задаче и как действие приводит к результату. |
92
+ | Выбрать подход | Реальные варианты, рекомендация, причина и существенный компромисс. Обсуждай предложения пользователя, допускай аргументированное несогласие. |
93
+ | Узнать прогресс | Что выяснено, что осталось и как это влияет на ожидаемый результат; не перечисляй всю топологию агентов. |
94
+ | Получить результат | Что изменилось, чем подтверждено и что не проверено. Различай создание, проверку, приёмку и публикацию. |
95
+ | Разобраться с проблемой | Наблюдаемый сбой, известная или неизвестная причина, последствия и способ продолжить. |
96
+
97
+ Если нужен выбор пользователя, объясни его последствия и рекомендацию.
98
+ Ранее разрешённую работу продолжай без нового запроса разрешения; пояснение
99
+ не создаёт дополнительных гейтов и не превращает частную рекомендацию в
100
+ согласованный scope.
101
+
102
+ ## Точность при упрощении
103
+
104
+ Различай факт, предположение, рекомендацию и неизвестное. «Исполнитель
105
+ сообщил» не превращай в «проверено». Пройденная проверка схемы не доказывает
106
+ успех живого сценария. Отсутствие проверки не означает обнаруженную ошибку.
107
+ Не обещай выполненные действия, найденные причины и гарантии без оснований.
108
+
109
+ Сохраняй числа, единицы, версии, условия и ограничения, меняющие решение.
110
+ Различай «не может», «не реализовано» и «не проверено». Противоречие источников
111
+ объясни вместе с его влиянием, не выбирай удобную версию молча. Не убирай
112
+ существенную оговорку ради краткости. Логи и служебные идентификаторы давай
113
+ по необходимости для аудита; секреты и нерелевантные материалы не раскрывай.
114
+ Машинные RESULT/EVIDENCE/ACCEPTANCE сохраняй без переименования полей;
115
+ человеческое объяснение — отдельное изложение того же смысла.
116
+
117
+ ## Если пользователь потерял нить
118
+
119
+ Останови наращивание деталей. По его вопросу найди место непонимания и
120
+ объясни заново с недостающего контекста, другой последовательностью или
121
+ конкретным примером. Если причина неясна, задай один адресный вопрос.
122
+ Простое сокращение и замена слов синонимами не восстанавливают пропущенную
123
+ связь. Не обвиняй пользователя и не защищай прежнюю формулировку.
124
+
125
+ Пример по условному сообщению «Заявка зарегистрирована, решение ещё не принято»
126
+ и вопросу «Значит, всё одобрено?»:
127
+ «Пока известно, что заявку получили. Одобрение ещё нужно дождаться: подтверждение
128
+ получения само по себе его не означает. Когда будет решение, в сообщении не указано».
129
+ Не придумывай срок, причину задержки или результат, которых нет в источнике.
130
+ Пример показывает способ объяснения; подбирай содержание к текущей задаче.
131
+
132
+ Повторяющееся непонимание из-за правила общения — основание для behavioral-жалобы
133
+ по существующему протоколу: исходный ответ, вопрос, исправленное объяснение и
134
+ предложение правки. Не считай каждое уточнение ошибкой и не создавай глобальное
135
+ правило автоматически.
136
+
137
+ ## Короткая проверка перед отправкой
138
+
139
+ Может ли пользователь понять главную мысль и её связь со своей задачей без
140
+ расшифровки сленга? Названы ли нужные действия, причины и последствия?
141
+ Сохранены ли точность и существенное неизвестное? Ясно ли, требуется ли от
142
+ него решение? Если нет — исправь конкретный пробел, без циклов редактуры
143
+ ради формы. Цель — обсуждать решение, а не расшифровывать речь Вольфа.
@@ -0,0 +1,54 @@
1
+ ---
2
+ name: wolf-git
3
+ description: "Применять на Git-этапах задачи: вход/возобновление, ветка или worktree, checkpoint, передача, завершение и уборка; также при отказе git, требующем force, и при неподтверждённой актуальности."
4
+ ---
5
+
6
+ # Git-этапы задачи
7
+
8
+ Регламент: `reference/git-collaboration-policy-v1.1.md` рядом с этим файлом (в проекте `.opencode/skills/wolf-git/reference/git-collaboration-policy-v1.1.md`). Читать только нужный § регламента по этапу; весь файл в контекст не тянуть.
9
+
10
+ ## Обязательный вход
11
+
12
+ Полномочия берутся из брифа задачи; скилл прав не выдаёт. Нет полномочия на коммит/публикацию — сохраняет назначенный L1 (§3). Спутники: `using-git-worktrees`, `wolf-handoff`, `finishing-a-development-branch`.
13
+
14
+ ## Вход / возобновление (G0)
15
+
16
+ §6: `git rev-parse --show-toplevel`, `git remote -v`, `git worktree list --porcelain`, `git status --porcelain`, `git rev-parse HEAD`, `git ls-remote` с временем наблюдения; незавершённые merge/rebase/cherry-pick; владелец, baseline, сравнение с опубликованной ветвью и целью MR. Нет remote/сети — «не удалось проверить», не успех (§6.5). Локальный `main` впереди или разошёлся — не push и не reset (§6.2).
17
+
18
+ ## Создание ветки и worktree (G1)
19
+
20
+ §7, §4.1: задача, владелец, цель MR, явный baseline SHA (не текущий HEAD). Независимая задача — от проверенного SHA `main`, подзадача — от идентифицированного SHA родителя (для передачи на другой хост он должен быть опубликован). Уникальное имя, безопасный путь; чужой непустой каталог не перезаписывается; сначала ищется существующая ветка/worktree продолжения (§15.3).
21
+
22
+ ## Сохранение (checkpoint)
23
+
24
+ §8: обязателен на логической границе, перед остановкой или передачей, перед операцией, затрагивающей незакоммиченное, и перед предъявлением. Перед коммитом — просмотр diff и известный набор файлов; `git add -A` из неизвестного состояния запрещён. Секреты не публикуются. Коммит ≠ публикация.
25
+
26
+ ## Передача (G2)
27
+
28
+ §9: остановить прежнюю запись, сохранить и опубликовать при доступном remote; передать задачу/владельца, repo/branch/target, baseline и опубликованный SHA, рабочую копию, состояние, проверки, следующий шаг. Получатель подтверждает вход; без подтверждения передача не завершена, таймаут не доказывает остановку записи.
29
+
30
+ ## Завершение и уборка (G9)
31
+
32
+ §15: остановить писателей; подтвердить судьбу результата — ancestry исходного SHA (`git merge-base --is-ancestor`) либо запись MR при разрешённом squash; проверить незавершённые операции, dirty, коммиты после принятого SHA, ценные ignored-файлы, нужность потомкам. Чистый `git status` не доказывает безопасность удаления. Запрещены по умолчанию `--force`, `reset --hard`, `clean` с удалением неизвестного, `branch -D`; при неподтверждённой сохранности каталог остаётся.
33
+
34
+ ## Приёмка, интеграция и выпуск
35
+
36
+ §10, §16, §22: стандарт — merge `--no-ff`; squash — только явное исключение. В Wolf это не автоматизировано.
37
+
38
+ ## Что не поставлено
39
+
40
+ Нет MR-статусов и адаптера хостинга, CI-проверок, очереди интеграции (§11), тегов/registry/выпуска, структурного read-only `git inspect` и JSON-вердикта (B0.5/B1), scheduler и постоянного контролёра. Гейты G3–G8 не автоматизированы и не являются поставленным гейтом: при необходимости их выполняют люди вручную. Отсутствующее не называть доступной командой.
41
+
42
+ ## Гейт перехода
43
+
44
+ Подтверждено лишь то, что проверено командой с временем и результатом. «Не удалось проверить» ≠ пройдено; неизвестное состояние не считается чистым.
45
+
46
+ ## Не пропускай процесс
47
+
48
+ | Мысль | Действие |
49
+ | --- | --- |
50
+ | «Создам от текущего HEAD» | Выбери baseline SHA явно. |
51
+ | «PR готов — уберу worktree» | Сохранность не доказана (§15.1). |
52
+ | «Git отказал — добавлю --force» | Разбери причину, не усиливай. |
53
+ | «Заметка Wolf доказывает Git-состояние» | Память не факт Git; проверь команды. |
54
+ | «Передача вроде сделана» | Нужно подтверждение получателя (§9). |