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.
- package/README.md +2 -2
- package/dist/adapters/cli/cli-entry.d.ts.map +1 -1
- package/dist/adapters/cli/cli-entry.js +6 -0
- package/dist/adapters/cli/cli-entry.js.map +1 -1
- package/dist/adapters/cli/commands/usage.d.ts +3 -0
- package/dist/adapters/cli/commands/usage.d.ts.map +1 -0
- package/dist/adapters/cli/commands/usage.js +103 -0
- package/dist/adapters/cli/commands/usage.js.map +1 -0
- package/dist/adapters/fs/opencode-usage-db.d.ts +12 -0
- package/dist/adapters/fs/opencode-usage-db.d.ts.map +1 -0
- package/dist/adapters/fs/opencode-usage-db.js +116 -0
- package/dist/adapters/fs/opencode-usage-db.js.map +1 -0
- package/dist/app/use-cases/import-usage.d.ts +17 -0
- package/dist/app/use-cases/import-usage.d.ts.map +1 -0
- package/dist/app/use-cases/import-usage.js +69 -0
- package/dist/app/use-cases/import-usage.js.map +1 -0
- package/dist/app/use-cases/usage-signal.d.ts +91 -0
- package/dist/app/use-cases/usage-signal.d.ts.map +1 -0
- package/dist/app/use-cases/usage-signal.js +169 -0
- package/dist/app/use-cases/usage-signal.js.map +1 -0
- package/package.json +1 -1
- package/templates/base/agents/mr-wolf.md +20 -7
- package/templates/base/skills/finishing-a-development-branch/SKILL.md +2 -0
- package/templates/base/skills/using-git-worktrees/SKILL.md +2 -0
- package/templates/base/skills/using-skills/SKILL.md +10 -5
- package/templates/base/skills/wolf-brainstorm/SKILL.md +129 -16
- package/templates/base/skills/wolf-explain/SKILL.md +138 -99
- package/templates/base/skills/wolf-git/SKILL.md +54 -0
- package/templates/base/skills/wolf-git/reference/git-collaboration-policy-v1.1.md +553 -0
- package/templates/base/skills/wolf-handoff/SKILL.md +2 -0
- 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
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
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
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
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
|
-
|
|
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). |
|