mister-wolf 2.27.1 → 2.29.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mister-wolf",
3
- "version": "2.27.1",
3
+ "version": "2.29.0",
4
4
  "description": "A local-first project organization for AI assistants: goal-directed processes, project memory and governed learning",
5
5
  "keywords": [
6
6
  "ai-agents",
@@ -40,8 +40,12 @@ GAPS: <чего не удалось выяснить, если есть>
40
40
  ## Короткий мандат и возврат L1
41
41
 
42
42
  Один TASK — конечный результат/вопрос с входами, scope, проверкой и стоп-условием,
43
- не весь компонент или свободный поиск. Поручение требует выбрать архитектуру,
44
- состав работ или цепочку исследований → вопрос L1 до исполнения. Локальные
43
+ не весь компонент или свободный поиск. Выбор архитектуры без явного архитектурного вопроса в TASK,
44
+ смена состава работ или новая цепочка исследований → вопрос L1 до исполнения.
45
+ При явно назначенном архитектурном вопросе можно сравнить варианты и дать
46
+ рекомендацию по wolf-software-design в границах TASK; это не утверждение
47
+ архитектуры и не разрешение реализации. Результат — FINDINGS/CONFIDENCE/GAPS
48
+ сообщением, запись файлов и остальные ограничения роли сохраняются. Локальные
45
49
  детали, нужное чтение и одна очевидная коррекция назначенного способа допустимы.
46
50
  Методику/доставленное лицо используй один раз; общий процесс L0/L1 не разворачивай.
47
51
  Нет обязательного входа → запрос L1; fallback не заменяет обязательный канон.
@@ -11,7 +11,6 @@ description: "Применять перед интеграцией измене
11
11
 
12
12
  Загрузи полный текст назначенной методики до её выполнения. Обязательные пункты отслеживай в доступном трекере или рабочем брифе; не добавляй новые статусы памяти. Недоступное действие передай ответственному уровню.
13
13
 
14
-
15
14
  ## Подготовка
16
15
 
17
16
  L1 фиксирует base_sha ДО исполнения задачи, current/head revision и dirty-state. Не используй HEAD~1 как универсальную границу: задача может включать несколько коммитов. Для незакоммиченного результата передай проверяемый diff и состояние файлов; не требуй коммита ради ревью.
@@ -22,6 +21,12 @@ L1 фиксирует base_sha ДО исполнения задачи, current/h
22
21
 
23
22
  Назначь мандат: соответствие, качество/интеграция или специализированный риск. Для значимых изменений проверь security, миграции и failures; для небольших — пропорциональный объём. L0 вызывает executor, L1 — worker-reviewer. Недоступное независимое ревью явно отметь, не имитируй второй голос.
24
23
 
24
+ Для инженерной оценки реализации доставь reviewer wolf-code-craft как критерии
25
+ без права правки; для назначенного разбора упрощения — wolf-code-simplify.
26
+ Предпочтение другого стиля или паттерна не блокирует приёмку без доказанного
27
+ нарушения требования/нормы либо конкретного блокирующего последствия.
28
+ Не добавляй отдельного ревьюера или раунда только ради нового скилла.
29
+
25
30
  ## Конечный мандат
26
31
 
27
32
  L1 применяет цикл wolf-review; L2 получает полную рамку/лицо reviewer и
@@ -0,0 +1,97 @@
1
+ # Спецификация внутреннего языка агентов Wolf
2
+
3
+ **Статус:** действующая спецификация; этап наблюдения (утверждено владельцем
4
+ 2026-11-04, решение mem_20261104_vnutrenniy_yazyk_wolf_etap_nablyudeniya_19ed1f;
5
+ рамка и обоснования — docs/dev/2026-11-04-agent-language/pre-requirements.md).
6
+
7
+ **Назначение:** уточняет термины и правила употребления внутреннего языка
8
+ агентов (агенты — ИИ-помощники, выполняющие задачи проекта через фиксированные
9
+ формы сообщений). Формы сообщений — обязательные поля (слоты) каждого типа
10
+ высказывания — нормативно определены в contracts.md (соседний файл) и здесь НЕ
11
+ дублируются: спецификация ссылается на него. Новых обязательных полей документ
12
+ не вводит — только существующие конструкции.
13
+
14
+ ## Границы покрытия
15
+
16
+ Язык покрывает только высказывания, меняющие состояние работы: поручения,
17
+ отчёты, вердикты, передачи, жалобы, предложения, переходы статусов.
18
+ Описательная зона свободна: обсуждения, объяснения и рассуждения остаются
19
+ обычным текстом (двухслойность рамки). Ситуации, которые формы не выражают,
20
+ покрывает escape-высказывание (R6).
21
+
22
+ ## Термины
23
+
24
+ Определения следуют действующим контрактам (contracts.md, complaints.md) и рамке
25
+ решения владельца; при первом употреблении термин сопровождается расшифровкой.
26
+
27
+ - **TASK** — поручение исполнителю: ядро (обязательные элементы поручения)
28
+ плюс поля применимого профиля (implement | review | research). Полный состав
29
+ слотов — contracts.md.
30
+ - **RESULT** — отчёт исполнителя по форме своей роли. Статусы implement-профиля:
31
+ DONE | DONE_WITH_CONCERNS | NEEDS_CONTEXT | BLOCKED. DONE — готовность к
32
+ ревью, не приёмка.
33
+ - **DONE ≠ ACCEPTED** — разные высказывания разных уровней: DONE сообщает
34
+ готовность к ревью; ACCEPTED — решение назначенного принимающего по
35
+ результатам приёмки (L1 принимает результат L2 в пределах полномочий;
36
+ владелец — там, где предусмотрено его решение).
37
+ - **EVIDENCE** — подтверждение утверждения/критерия: команда или процедура,
38
+ cwd, revision, exit/статус, результат. Состав — contracts.md.
39
+ - **ACCEPTANCE** — сверка каждого критерия приёмки с evidence и итоговый
40
+ вердикт принимающего: ACCEPTED | PARTIAL | REJECTED | INCONCLUSIVE.
41
+ Вердикт независимого ревью: APPROVED | CHANGES_REQUIRED | INCONCLUSIVE.
42
+ - **SCOPE** — граница допустимого: что входит в задачу и что запрещено;
43
+ для ревью SCOPE — покрытие проверки.
44
+ - **LIMITS/GAPS** — что не проверено, где нет данных или остался риск;
45
+ отсутствие данных не равно нулю или успеху.
46
+ - **BLOCKED** — статус: работа не может продолжаться без внешнего
47
+ входа/решения.
48
+ - **NEEDS_CONTEXT** — статус: недостаёт обязательного входа поручения;
49
+ запрашивается, не додумывается.
50
+ - **HANDOFF** — фиксация передачи работы (результата, ответственности,
51
+ открытых вопросов) между исполнителями/сессиями.
52
+ - **VERDICT** — итоговое решение проверки/приёмки одним из перечисленных
53
+ статусов, с evidence.
54
+ - **COMPLAINT** — жалоба на правило (методика/рамка/правило памяти), не на
55
+ разовый случай; подавается объектом памяти через wolf-feedback (поля
56
+ rule/evidence/proposal, класс дефекта — kind: technical|behavioral).
57
+ Предмет LANGUAGE — см. раздел жалоб wolf-feedback.
58
+ - **PROPOSAL** — предложение улучшения/изменения с основанием.
59
+ - **TRANSITION** — переход объекта работы в новый статус по допустимым
60
+ переходам.
61
+
62
+ ## Правила употребления R1–R6
63
+
64
+ - **R1** — одно понятие — одно имя.
65
+ - **R2** — запрет анафоры (анафора — отсылки вроде «то же, что выше», «эта
66
+ задача»); ссылки — по идентификатору с версией, например T-42@v2.
67
+ - **R3** — полная поставка: документ языка приезжает со скиллами целиком;
68
+ частичная доставка не предусмотрена.
69
+ - **R4** — человек получает обычный язык; термины — с расшифровкой при первом
70
+ употреблении.
71
+ - **R5** — DONE ≠ ACCEPTED: исполнитель сообщает готовность к ревью; признание
72
+ результата — решение назначенного принимающего (см. определение
73
+ DONE ≠ ACCEPTED выше).
74
+ - **R6** — escape (выход): свободный текст с пометкой «вне контракта» для
75
+ ситуаций, которые форма не покрывает.
76
+
77
+ ## Правило при недопонимании
78
+
79
+ Смысл понятен — продолжать. Недостающая информация влияет на действие —
80
+ уточнить, не угадывать. Несоблюдение языка оставляет текущий уровень — не хуже
81
+ сегодняшнего (соблюдение даёт лаконичность и точность, не штраф).
82
+
83
+ ## Примеры (условные, для иллюстрации — не шаблоны)
84
+
85
+ 1. Обмен TASK→RESULT:
86
+ TASK: «T-7@v1: обнови справочник команд в guides/cli.md — добавь раздел
87
+ про sync. Проверка: раздел виден в оглавлении. Лимит: 6 обращений».
88
+ RESULT: «T-7 DONE: раздел добавлен; проверка пройдена (оглавление содержит
89
+ sync); без отклонений».
90
+ 2. Вердикт и приёмка:
91
+ VERDICT: «T-7 APPROVED: замечаний нет». ACCEPTANCE: «T-7 ACCEPTED: оба
92
+ критерия подтверждены evidence».
93
+ 3. LANGUAGE-жалоба:
94
+ COMPLAINT (предмет LANGUAGE): rule: «LANGUAGE/ambiguous-definition —
95
+ определение DONE допускает чтение как окончательной приёмки»; evidence:
96
+ «в задаче X RESULT со статусом DONE принят без ревью, ревью не
97
+ состоялось»; proposal: «уточнить определение DONE примером».
@@ -100,3 +100,5 @@ EVIDENCE: claim/AC, command или процедура, cwd, revision, dirty-stat
100
100
  ACCEPTANCE: по каждому AC подтверждение/не подтверждено, актуальные evidence, независимое ревью, ограничения; финальный verdict L0: ACCEPTED | PARTIAL | REJECTED | INCONCLUSIVE.
101
101
 
102
102
  Контракты веди сообщениями и адресными note Wolf; файловый fallback — по правилам рабочей памяти выше. Не добавляй команды или типы Wolf без отдельной реализации. Следы жалоб и вердиктов сохраняй разрешённым каналом; при недоступной записи передай L1.
103
+
104
+ Термины и правила употребления внутреннего языка агентов — см. agent-language.md; формы сообщений (слоты) остаются нормативными здесь.
@@ -8,6 +8,7 @@ L1 до назначения читает [канон TASK](contracts.md). Не
8
8
  | Нужно определить проверки | wolf-testplan: связать критерии с независимым oracle | Сценарии и команды |
9
9
  | Начинается поставка | wolf-sdd: L1 выбирает лица/скиллы и назначает ready-задачи L2 | Проверенные и интегрированные результаты |
10
10
  | L2 выполняет назначенный мандат | wolf-execute: линейно выполнить только свою часть | RESULT/evidence либо конкретный вопрос L1 |
11
+ | Пишется или изменяется программный код | wolf-code-craft: полная реализация понятными средствами в принятой архитектуре | Код без ненужной сложности; проверки по действующей методике |
11
12
  | Реализуется поведение или исправление | test-driven-development: наблюдаемые RED/GREEN по применимости | Чувствительная проверка и реализация |
12
13
  | Готовится заявление о завершении | verification-before-completion: сверить claim с актуальным evidence | Обоснованное заявление, не автоматический ACCEPTED |
13
14
 
@@ -6,6 +6,7 @@
6
6
  | Ясное поручение с достаточными входами | wolf-brainstorm: показать понимание и продолжить без ритуального вопроса | Исполнение в согласованном scope |
7
7
  | Нужен ответ исследованием | L1 назначает вопрос worker-researcher с лицом/скиллом, источниками и остановкой | FINDINGS/CONFIDENCE/GAPS |
8
8
  | Утверждены требования, нужен дизайн | wolf-design: контракты и решения по FULL/новым интерфейсам | Проверяемое решение без реализации |
9
+ | Нужен выбор программных границ, контрактов или зависимостей | wolf-software-design внутри wolf-design; назначенный researcher сравнивает варианты и рекомендует | Обоснованная конструкция для решения ответственным уровнем |
9
10
 
10
11
  Продолжение неизменившейся цели не возвращай в discovery. Понимание цели не
11
12
  утверждает ещё не показанные requirements/design. Пользователь может выбирать
@@ -5,9 +5,15 @@
5
5
  | Назначен баг/неожиданное поведение | wolf-debug: локализовать причину адресными экспериментами | Evidence причины либо предел вывода |
6
6
  | Ревью документа | wolf-review: назначенная линза и критерии на revision | SUMMARY/VERDICT/FINDINGS/SCOPE/LIMITS/EVIDENCE |
7
7
  | Ревью реализации | requesting-code-review: независимому L2 передать материалы, нормы, evidence | Соответствие, затем качество |
8
+ | Найдена конкретная лишняя сложность или назначено упрощение | wolf-code-simplify: сохранить контракт и проверить выгоду; reviewer только оценивает | Адресное упрощение либо обоснованный отказ от преобразования |
8
9
  | Получены замечания | receiving-code-review: проверить основания и исправить относящееся | Решение по finding IDs и адресная перепроверка |
9
10
  | Вопрос, FRICTION, отклонение или W1–W4 | wolf-feedback: выбрать адресата, не расследовать всё | Вопрос, коррекция, жалоба либо назначенная диагностика |
10
11
 
12
+ Для инженерной оценки кода используй wolf-code-craft как критерии, а не право
13
+ правки. Предпочтение другой формы кода не блокирует приёмку без доказанного
14
+ нарушения. Упрощение не обязательная стадия после каждой правки; все три
15
+ инженерных скилла одновременно по умолчанию не загружай.
16
+
11
17
  Первый reviewer не получает ожидаемый verdict и чужие findings. Повторный проход
12
18
  проверяет исправления и затронутые изменения; расширение требует основания.
13
19
  Не запускай аудит соседнего дефекта. Очевидный W1–W4 не требует повторов или
@@ -0,0 +1,99 @@
1
+ ---
2
+ name: wolf-code-craft
3
+ description: 'Применять при написании и изменении кода: полностью реализовать назначенное поведение понятными средствами без ненужной сложности. При ревью использовать как критерии оценки в пределах мандата.'
4
+ ---
5
+
6
+ # Качество реализации
7
+
8
+ Сначала выполни требования и сохрани необходимые гарантии.
9
+ Среди подходящих решений выбирай наиболее понятное и согласованное с проектом.
10
+ Сокращай код и зависимости, когда это не ухудшает первые условия.
11
+
12
+ Работай по TASK, принятому дизайну и действующей методике проверки.
13
+ Скилл не расширяет полномочия роли.
14
+
15
+ ## Перед правкой
16
+
17
+ Прочитай затронутый код и необходимые контракты потребителей.
18
+ Найди существующие средства и соглашения проекта.
19
+
20
+ Определи, куда должно дойти изменение: вызовы, типы, конфигурация,
21
+ экспорты, тесты и документация — по фактической связи с задачей.
22
+ Необходимую правку вне разрешённого scope передай L1.
23
+
24
+ Существенную неоднозначность требований уточни.
25
+ Не сокращай функциональность молча до удобной реализации.
26
+
27
+ ## Выбирай прямой путь
28
+
29
+ Используй первый достаточный способ:
30
+
31
+ 1. Существующее решение проекта или исправление общего источника ошибки.
32
+ 2. Возможность стандартной библиотеки или платформы с учётом правил проекта.
33
+ 3. Подходящую установленную зависимость.
34
+ 4. Прямую реализацию недостающего поведения.
35
+
36
+ Новую зависимость оцени по выгоде и стоимости сопровождения;
37
+ соблюдай проектный порядок её добавления.
38
+ Не пиши сложный аналог библиотеки ради отсутствия пакета.
39
+
40
+ Поиск готового средства ограничивай разумной областью задачи.
41
+
42
+ ## Строй понятную реализацию
43
+
44
+ - Используй предметные имена, привычные средства языка и явный поток управления.
45
+ - Держи связанные действия рядом; не дроби код ради размера функций или файлов.
46
+ - Выделяй функцию, когда она называет значимую операцию,
47
+ скрывает сложность или концентрирует общее правило.
48
+ - Не создавай прослойку, которая только переименовывает вызов
49
+ без полезного контракта или границы.
50
+ - Убирай ненужные преобразования данных, промежуточное состояние и вложенность.
51
+ - Не добавляй режимы, настройки и точки расширения без текущего основания.
52
+ - Комментируй неочевидную причину, ограничение или инвариант;
53
+ соблюдай требования проекта к документации.
54
+
55
+ Несколько явных строк лучше выражения, которое приходится расшифровывать.
56
+ Количество строк и минимальный diff сами по себе не являются целью.
57
+
58
+ ## Структура и полнота
59
+
60
+ В пределах scope можно улучшить локальную структуру,
61
+ если её сохранение требует дублирования, обходов или нарушает гарантии.
62
+ Пересмотр общих контрактов и архитектуры передай ответственному уровню.
63
+
64
+ При исправлении бага устраняй подтверждённую причину
65
+ и учитывай другие затронутые вызовы. Не размножай обход по потребителям.
66
+
67
+ Сохраняй необходимые валидацию, права доступа, обработку ошибок,
68
+ управление ресурсами, совместимость и гарантии состояния.
69
+ Не превращай сбой в успешный ответ или пустой результат без основания в контракте.
70
+
71
+ Не добавляй защитные ветки для состояний, исключённых надёжным контрактом.
72
+ Недоверенные входы и внешние данные проверяй на соответствующих границах.
73
+
74
+ Не объединяй похожий код, если он выражает независимо меняющиеся правила.
75
+
76
+ ## Проверка и завершение
77
+
78
+ Применяй действующую методику тестирования и обязательные проверки проекта.
79
+ Проверяй поведение, существенные границы и регрессию,
80
+ а не воспроизводи реализацию в тестах.
81
+
82
+ Если назначенные проверки не покрывают существенное изменённое поведение,
83
+ добавь адресную проверку в пределах полномочий либо обозначь пробел L1.
84
+
85
+ Просмотри diff: требования доведены до потребителей,
86
+ случайных изменений нет, новые конструкции имеют понятную причину.
87
+ Обнаруженную лишнюю сложность устрани в текущем мандате;
88
+ отдельный проход wolf-code-simplify не обязателен.
89
+
90
+ Верни результат и evidence в штатном формате роли.
91
+
92
+ ## Применение при ревью
93
+
94
+ Предпочтение другой формы кода само по себе не является дефектом.
95
+ Для замечания укажи нарушенное требование, принятую норму
96
+ либо конкретное последствие.
97
+
98
+ Рекомендация без доказанного блокирующего нарушения не блокирует приёмку.
99
+ Следуй действующей шкале severity; не вводи собственную.
@@ -0,0 +1,79 @@
1
+ ---
2
+ name: wolf-code-simplify
3
+ description: 'Применять по назначенной задаче упрощения или при конкретной лишней сложности, требующей отдельного разбора. Сохраняет поведение и контракты; не является обязательной стадией после каждой правки.'
4
+ ---
5
+
6
+ # Упрощение существующего кода
7
+
8
+ Устрани конкретную сложность, сохранив необходимое поведение.
9
+ Результат должен быть проще понимать, использовать или изменять.
10
+
11
+ Работай в назначенном scope. Reviewer оценивает и предлагает;
12
+ правки выполняет уполномоченный исполнитель.
13
+
14
+ ## 1. Назови проблему
15
+
16
+ Определи, что именно мешает:
17
+ повторение правила, ненужная косвенность, запутанный поток,
18
+ избыточное состояние или сложный протокол для потребителей.
19
+
20
+ Одной возможности сократить строки недостаточно.
21
+ Если проблема неясна, не начинай переписывание.
22
+
23
+ ## 2. Установи сохраняемый контракт
24
+
25
+ Используй требования, тесты и потребителей. Учти относящиеся свойства:
26
+
27
+ - результаты и ошибки;
28
+ - значимые побочные эффекты и их порядок;
29
+ - состояние и управление ресурсами;
30
+ - совместимость, конкурентные и транзакционные гарантии;
31
+ - необходимые характеристики производительности.
32
+
33
+ Отсутствие теста не означает отсутствия обязательства.
34
+ При существенной неопределённости нужна адресная проверка
35
+ или уточнение до преобразования.
36
+
37
+ Обнаруженный баг отдели от рефакторинга:
38
+ исправление поведения требует соответствующего scope и проверки.
39
+
40
+ ## 3. Выбери преобразование
41
+
42
+ Примени прямое средство против установленной проблемы:
43
+
44
+ - повторяемое правило → одно место его определения;
45
+ - лишнее состояние → вычисление из надёжного источника;
46
+ - запутанная вложенность → явные ветви или ранний выход;
47
+ - повторяемый протокол → операция, владеющая его гарантиями;
48
+ - бесполезная прослойка → удаление без переноса сложности потребителям;
49
+ - самодельный механизм → подходящее существующее средство;
50
+ - мёртвый код → удаление после достаточной проверки потребителей.
51
+
52
+ Сохраняй полезные границы безопасности, совместимости и тестируемости.
53
+ Внешние, динамические и конфигурационные вызовы учитывай по устройству проекта;
54
+ отсутствия текстового совпадения может быть недостаточно для удаления.
55
+
56
+ Не смешивай преобразование с несвязанными перемещениями,
57
+ переименованиями и форматированием.
58
+
59
+ ## 4. Проверь сохранение и выгоду
60
+
61
+ Выполни относящиеся проверки и обязательные гейты проекта.
62
+ При изменении I/O или состояния проверь соответствующие гарантии,
63
+ а не только возвращаемое значение.
64
+
65
+ Сопоставь результат с исходной проблемой:
66
+
67
+ - сложность действительно уменьшилась;
68
+ - потребителям не добавлена новая обязанность;
69
+ - поведение и гарантии сохранены;
70
+ - код не стал плотнее ценой ясности.
71
+
72
+ Если выгода сомнительна, не включай преобразование в результат.
73
+ Если сохранение контракта не подтверждено, не объявляй работу завершённой.
74
+
75
+ Остановись после устранения назначенной сложности.
76
+ Верни суть преобразования и evidence в штатном формате TASK.
77
+
78
+ При ревью отличай доказанный дефект от необязательной рекомендации;
79
+ применяй действующие нормы и severity проекта.
@@ -11,11 +11,18 @@ L0 назначает процесс и согласует продуктовы
11
11
 
12
12
  Используй полный актуальный текст назначенной методики. По wolf-work-strategy различай обязательные требования, условные действия и доступные техники; отслеживай применимые обязательства в существующем TASK/трекере. Не создавай новые статусы памяти; недоступное обязательное действие передай ответственному уровню.
13
13
 
14
-
15
14
  ## Вход и выход
16
15
 
17
16
  Вход: approved requirements или утверждённый бриф, baseline SHA, существующая архитектура и профиль проекта. Выход: design.md с состоянием review, картой покрытия REQ/NFR и решениями для согласования. Автор — назначенный L1/L2; утверждение — по политике проекта через L0.
18
17
 
18
+ ## Инженерная методика
19
+
20
+ Для программного решения с выбором границ, контрактов, зависимостей или состояния
21
+ подключи wolf-software-design. Встроенная методика не создаёт отдельного гейта.
22
+ L1 может поручить researcher один архитектурный вопрос с вариантами и рекомендацией;
23
+ утверждение остаётся у ответственного уровня. Researcher отвечает сообщением,
24
+ его лицо не разрешает запись design.md или реализацию.
25
+
19
26
  ## Процесс
20
27
 
21
28
  1. Проверь актуальность требований и прочитай код затронутых компонентов и потребителей. Ссылки задавай как revision:path:symbol; номера строк — дополнительный ориентир.
@@ -11,6 +11,11 @@ TASK/RESULT/EVIDENCE — по using-skills/references/contracts.md. L0 не вы
11
11
  не разрешает ему заменять воркеров универсальным исполнением. Если диспетчеризация
12
12
  недоступна, L1 возвращает конкретное ограничение, не имитирует вызов.
13
13
 
14
+ При написании/изменении кода применяй доставленный wolf-code-craft;
15
+ при отдельном поручении на упрощение — wolf-code-simplify. Недостающую назначенную
16
+ методику запроси L1. Это не отменяет test-driven-development и проектные проверки
17
+ и не запускает второй проход после каждой правки.
18
+
14
19
  ## Исполнение
15
20
 
16
21
  1. Сверь назначенные входы с фактической revision, allowlist и правами.
@@ -45,6 +45,34 @@
45
45
  несогласие с триажем — эскалация (about=executor-lead), не новая
46
46
  жалоба той же сути.
47
47
 
48
+ ### Языковые жалобы (предмет LANGUAGE)
49
+
50
+ Языковая жалоба — предмет «что не так в терминах или формах внутреннего
51
+ языка» (термины и правила — using-skills/references/agent-language.md).
52
+ Класс дефекта остаётся в kind (technical|behavioral): LANGUAGE — предмет
53
+ жалобы, не новый kind и не новый маршрут.
54
+
55
+ Маркер в поле rule — `LANGUAGE/<причина>`, причины:
56
+ - `LANGUAGE/ambiguous-definition` — термин допускает разные толкования
57
+ (пример: «DONE поняли как окончательную приёмку»);
58
+ - `LANGUAGE/insufficient-form` — нужное сообщение нельзя выразить
59
+ существующими слотами (пример: «в RESULT нельзя понятно выразить
60
+ частично завершённый результат»);
61
+ - `LANGUAGE/excessive-requirement` — форма требует лишнего для простой
62
+ ситуации (пример: «для простой задачи пришлось повторить уже доступные
63
+ ограничения»).
64
+
65
+ Критерий подачи: конкретная помеха работе (переспрос, неверное действие,
66
+ лишний шаг), а не каждое формальное отклонение от формы.
67
+
68
+ Подача, триаж и мутация — как для обычных жалоб W1–W4 (разделы А и Б);
69
+ отдельного маршрута нет.
70
+
71
+ Примечание (открытый вопрос владельцу): на момент правки поле proposal
72
+ обязательно при записи жалобы (схема: `proposal: { required: true }` в
73
+ src/domain/memory-types.ts); до решения владельца, если решения не видно,
74
+ пиши в proposal: «решения не вижу; основание: …».
75
+
48
76
  ## Б. ТРИАЖ (диспетчер)
49
77
 
50
78
  1. **Стоящее обязательство**: при приёмке КАЖДОГО отчёта до вердикта —
@@ -13,11 +13,19 @@ description: "Применять при исполнении утверждён
13
13
 
14
14
  Используй полный актуальный текст назначенной методики. По wolf-work-strategy различай обязательные требования, условные действия и доступные техники; отслеживай применимые обязательства в существующем TASK/трекере. Не создавай новые статусы памяти; недоступное обязательное действие передай ответственному уровню.
15
15
 
16
-
17
16
  ## Предусловия
18
17
 
19
18
  Оркестратор исполнения — executor-lead. L0 поручает ему поставку. Проверь утверждённые входы, plan/test-plan, профиль проекта, разрешённые git-операции, baseline и workspace. Создай worktree по using-git-worktrees, если этого требует политика. До начала зафиксируй budget/retry limit и dependencies; default — 2 цикла исправления на задачу, затем пересмотр.
20
19
 
20
+ ## Инженерные навыки по задаче
21
+
22
+ При назначении написания/изменения кода доставь worker-implementer полный
23
+ wolf-code-craft вместе с действующей тестовой методикой. Для отдельного поручения
24
+ на упрощение доставь wolf-code-simplify; обычная реализация не требует ещё одной
25
+ стадии. Архитектурный вопрос направь по wolf-design/wolf-software-design,
26
+ не поручай implementer самовольный пересмотр решения. Документы, исследования
27
+ и операции без программной реализации не получают инженерный набор автоматически.
28
+
21
29
  ## Цикл задачи
22
30
 
23
31
  1. Разрежь работу до конечных мандатов L2; архитектуру, стратегию поиска и зависимости определяет L1. Назначь владельца проверки общих связей. Выбери независимые ready-задачи, запусти параллельно в бюджете и с изоляцией; собери каждому TASK из using-skills по канону ядра. Выбор сеанса L2 — по канону executor-lead. Передай ссылки и минимальный достаточный контекст, проверенные контракты и expected RESULT. L2 разрешено читать нужные файлы и потребителей; история родительской сессии не наследуется.
@@ -0,0 +1,96 @@
1
+ ---
2
+ name: wolf-software-design
3
+ description: 'Применять внутри wolf-design или по назначенному архитектурному вопросу: выбрать границы программных модулей, контракты, зависимости и владение состоянием. Не запускает перепроектирование при обычной реализации.'
4
+ ---
5
+
6
+ # Проектирование программного решения
7
+
8
+ Выбирай конструкцию, которая выполняет требования с наименьшей совокупной
9
+ сложностью для реализации, потребителей, проверки и эксплуатации.
10
+
11
+ Используй действующие требования, ADR, профиль проекта и рамку TASK.
12
+ Скилл не расширяет полномочия роли и не заменяет маршрут wolf-design.
13
+ Назначенный researcher возвращает варианты и рекомендацию, а не утверждение
14
+ архитектуры; решение принимает ответственный по действующим правилам проекта.
15
+
16
+ ## От задачи к конструкции
17
+
18
+ Начни с существующего решения и затронутых потребителей. Определи,
19
+ какое поведение требуется, какие гарантии существенны и что должно измениться.
20
+
21
+ Проверь, достаточно ли текущего модуля, готовой возможности проекта
22
+ или платформы. Для существенной развилки сравни простейший достаточный
23
+ вариант с разумной альтернативой. Очевидная правка не требует конкурса решений.
24
+
25
+ Неизвестное, меняющее выбор, разреши адресным вопросом, источником
26
+ или разрешённой ограниченной проверкой. Не проектируй цепочку на существенном
27
+ допущении; read-only роль не создаёт код эксперимента.
28
+
29
+ ## Границы и ответственность
30
+
31
+ Держи вместе поведение, которое использует общие знания и меняется
32
+ по одной причине. Разделяй независимые причины изменения и разные гарантии.
33
+
34
+ Для изменяемого состояния определи владельца, допустимые переходы
35
+ и место обеспечения инвариантов. Не распределяй одно правило
36
+ по нескольким потребителям.
37
+
38
+ Выбирай модуль с понятным интерфейсом, скрывающим полезную сложность.
39
+ Интерфейс — всё необходимое потребителю: данные, ошибки, порядок действий,
40
+ эффекты и ограничения, а не только сигнатуры.
41
+
42
+ Проверка удаления: если убрать модуль, сложность исчезнет
43
+ или разойдётся по потребителям? Во втором случае он выполняет полезную работу.
44
+
45
+ ## Конкретные приёмы
46
+
47
+ - Отделяй вычисление решения от I/O, когда это упрощает проверку
48
+ и не разрывает цельное действие.
49
+ - Передавай время, случайность и внешние зависимости там, где поведение
50
+ должно быть управляемым. Часто достаточно параметра функции.
51
+ - Проверяй значимое поведение через устойчивый публичный контракт.
52
+ Не раскрывай внутренние детали только ради теста; адресные внутренние
53
+ тесты сложного алгоритма допустимы.
54
+ - Скрывай повторяемый протокол за одной операцией, если потребители
55
+ иначе обязаны одинаково соблюдать сложный порядок действий.
56
+ - Выражай внешние зависимости потребностями потребителя,
57
+ а не копией интерфейса поставщика.
58
+
59
+ Примеры:
60
+
61
+ - Расчёту срока нужен текущий момент: передай now; ClockFactory не обязателен.
62
+ - Несколько потребителей повторяют блокировку, изменение и освобождение:
63
+ рассмотри одну операцию, владеющую этим протоколом.
64
+ - Две проверки сейчас похожи, но выражают независимые бизнес-правила:
65
+ совпадение строк не требует общего валидатора.
66
+
67
+ ## Цена абстракции
68
+
69
+ Создавай границу, когда она концентрирует правило, изолирует внешнюю
70
+ систему, скрывает протокол, обеспечивает нужную проверяемость
71
+ или подтверждённую вариативность.
72
+
73
+ Одна реализация допустима при наличии такой причины.
74
+ Гипотетического расширения самого по себе недостаточно.
75
+
76
+ KISS и YAGNI помогают выбирать достаточное решение.
77
+ DRY относится к повторяемому знанию.
78
+ SOLID помогает оценивать ответственность, контракты и зависимости.
79
+ Ни один принцип не требует класса, интерфейса или слоя сам по себе.
80
+
81
+ Следуй принятому архитектурному стилю. Hexagonal, DDD, CQRS и другие
82
+ подходы применяй по их назначению. Локальный тестовый шов
83
+ не означает переход проекта на новую архитектуру.
84
+
85
+ ## Результат
86
+
87
+ Передай выбранную конструкцию, существенные контракты, последствия
88
+ и нерешённые вопросы в существующем design/ADR или формате TASK.
89
+ Researcher возвращает FINDINGS/CONFIDENCE/GAPS сообщением; разрешённый автор
90
+ документа пишет только назначенный файл/раздел.
91
+
92
+ Для нетривиального решения объясни, почему более простой вариант недостаточен.
93
+ Не создавай реализацию вместо дизайна и дополнительные документы ради скилла.
94
+
95
+ Заверши, когда исполнитель может реализовать решение без угадывания
96
+ существенных границ и гарантий либо точный пробел возвращён постановщику.
package/update-map.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
- "version": "2.27.1",
3
- "prev": "2.27.0",
2
+ "version": "2.29.0",
3
+ "prev": "2.28.0",
4
4
  "files": [
5
5
  {
6
6
  "path": "base/agents/executor-lead.md",
@@ -77,6 +77,11 @@
77
77
  "kind": "skill",
78
78
  "category": "unchanged"
79
79
  },
80
+ {
81
+ "path": "base/skills/using-skills/references/agent-language.md",
82
+ "kind": "skill",
83
+ "category": "new"
84
+ },
80
85
  {
81
86
  "path": "base/skills/using-skills/references/context-and-memory.md",
82
87
  "kind": "skill",
@@ -85,7 +90,7 @@
85
90
  {
86
91
  "path": "base/skills/using-skills/references/contracts.md",
87
92
  "kind": "skill",
88
- "category": "unchanged"
93
+ "category": "changed"
89
94
  },
90
95
  {
91
96
  "path": "base/skills/using-skills/references/project-rules.md",
@@ -142,6 +147,16 @@
142
147
  "kind": "skill",
143
148
  "category": "unchanged"
144
149
  },
150
+ {
151
+ "path": "base/skills/wolf-code-craft/SKILL.md",
152
+ "kind": "skill",
153
+ "category": "unchanged"
154
+ },
155
+ {
156
+ "path": "base/skills/wolf-code-simplify/SKILL.md",
157
+ "kind": "skill",
158
+ "category": "unchanged"
159
+ },
145
160
  {
146
161
  "path": "base/skills/wolf-debug/references/techniques.md",
147
162
  "kind": "skill",
@@ -180,7 +195,7 @@
180
195
  {
181
196
  "path": "base/skills/wolf-feedback/references/complaints.md",
182
197
  "kind": "skill",
183
- "category": "unchanged"
198
+ "category": "changed"
184
199
  },
185
200
  {
186
201
  "path": "base/skills/wolf-feedback/references/session-diagnosis.md",
@@ -237,6 +252,11 @@
237
252
  "kind": "skill",
238
253
  "category": "unchanged"
239
254
  },
255
+ {
256
+ "path": "base/skills/wolf-software-design/SKILL.md",
257
+ "kind": "skill",
258
+ "category": "unchanged"
259
+ },
240
260
  {
241
261
  "path": "base/skills/wolf-testplan/SKILL.md",
242
262
  "kind": "skill",