mister-wolf 2.16.0 → 2.16.2

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 (66) hide show
  1. package/dist/adapters/cli/cli-entry.d.ts.map +1 -1
  2. package/dist/adapters/cli/cli-entry.js +6 -0
  3. package/dist/adapters/cli/cli-entry.js.map +1 -1
  4. package/dist/adapters/cli/commands/memory-doctor.d.ts +3 -0
  5. package/dist/adapters/cli/commands/memory-doctor.d.ts.map +1 -1
  6. package/dist/adapters/cli/commands/memory-doctor.js +104 -3
  7. package/dist/adapters/cli/commands/memory-doctor.js.map +1 -1
  8. package/dist/adapters/cli/commands/memory-uninstall.d.ts +3 -0
  9. package/dist/adapters/cli/commands/memory-uninstall.d.ts.map +1 -0
  10. package/dist/adapters/cli/commands/memory-uninstall.js +111 -0
  11. package/dist/adapters/cli/commands/memory-uninstall.js.map +1 -0
  12. package/dist/adapters/platforms/claude-adapter.d.ts +2 -0
  13. package/dist/adapters/platforms/claude-adapter.d.ts.map +1 -1
  14. package/dist/adapters/platforms/claude-adapter.js +10 -0
  15. package/dist/adapters/platforms/claude-adapter.js.map +1 -1
  16. package/dist/adapters/platforms/opencode-adapter.d.ts +5 -0
  17. package/dist/adapters/platforms/opencode-adapter.d.ts.map +1 -1
  18. package/dist/adapters/platforms/opencode-adapter.js +38 -0
  19. package/dist/adapters/platforms/opencode-adapter.js.map +1 -1
  20. package/dist/app/use-cases/detect-unaggregated-lessons.d.ts +3 -1
  21. package/dist/app/use-cases/detect-unaggregated-lessons.d.ts.map +1 -1
  22. package/dist/app/use-cases/detect-unaggregated-lessons.js +6 -2
  23. package/dist/app/use-cases/detect-unaggregated-lessons.js.map +1 -1
  24. package/dist/app/use-cases/doctor.d.ts +2 -0
  25. package/dist/app/use-cases/doctor.d.ts.map +1 -1
  26. package/dist/app/use-cases/doctor.js +6 -2
  27. package/dist/app/use-cases/doctor.js.map +1 -1
  28. package/dist/app/use-cases/platform-mismatch.d.ts +29 -0
  29. package/dist/app/use-cases/platform-mismatch.d.ts.map +1 -0
  30. package/dist/app/use-cases/platform-mismatch.js +65 -0
  31. package/dist/app/use-cases/platform-mismatch.js.map +1 -0
  32. package/dist/app/use-cases/repair-platform.d.ts +37 -0
  33. package/dist/app/use-cases/repair-platform.d.ts.map +1 -0
  34. package/dist/app/use-cases/repair-platform.js +59 -0
  35. package/dist/app/use-cases/repair-platform.js.map +1 -0
  36. package/dist/app/use-cases/uninstall.d.ts +39 -0
  37. package/dist/app/use-cases/uninstall.d.ts.map +1 -0
  38. package/dist/app/use-cases/uninstall.js +176 -0
  39. package/dist/app/use-cases/uninstall.js.map +1 -0
  40. package/dist/ports/platform-adapter.port.d.ts +9 -2
  41. package/dist/ports/platform-adapter.port.d.ts.map +1 -1
  42. package/package.json +1 -1
  43. package/templates/.wolf/router.log +1 -1
  44. package/templates/base/AGENTS.md +3 -0
  45. package/templates/base/agents/executor-lead.md +14 -0
  46. package/templates/base/agents/mr-wolf.md +47 -4
  47. package/templates/base/skills/finishing-a-development-branch/SKILL.md +20 -1
  48. package/templates/base/skills/receiving-code-review/SKILL.md +20 -1
  49. package/templates/base/skills/requesting-code-review/SKILL.md +20 -1
  50. package/templates/base/skills/test-driven-development/SKILL.md +20 -1
  51. package/templates/base/skills/using-git-worktrees/SKILL.md +22 -3
  52. package/templates/base/skills/using-skills/SKILL.md +56 -18
  53. package/templates/base/skills/verification-before-completion/SKILL.md +20 -1
  54. package/templates/base/skills/wolf-brainstorm/SKILL.md +54 -17
  55. package/templates/base/skills/wolf-debug/SKILL.md +21 -2
  56. package/templates/base/skills/wolf-design/SKILL.md +20 -1
  57. package/templates/base/skills/wolf-execute/SKILL.md +21 -2
  58. package/templates/base/skills/wolf-explain/SKILL.md +104 -0
  59. package/templates/base/skills/wolf-handoff/SKILL.md +20 -1
  60. package/templates/base/skills/wolf-plan/SKILL.md +20 -1
  61. package/templates/base/skills/wolf-review/SKILL.md +20 -1
  62. package/templates/base/skills/wolf-sdd/SKILL.md +21 -2
  63. package/templates/base/skills/wolf-skill-intake/SKILL.md +20 -1
  64. package/templates/base/skills/wolf-testplan/SKILL.md +20 -1
  65. package/templates/base/skills/writing-skills/SKILL.md +23 -4
  66. package/templates/opencode/plugins/wolf-session-start.js +40 -13
@@ -14,6 +14,7 @@
14
14
  */
15
15
 
16
16
  import path from 'path';
17
+ import { readFileSync } from 'fs';
17
18
  import { execFile } from 'child_process';
18
19
  import { randomUUID } from 'crypto';
19
20
  import { promisify } from 'util';
@@ -33,25 +34,51 @@ const MARKER = 'Mr.Wolf session bootstrap';
33
34
  // [ \t] вместо \s: \s съедает переводы строк и вытаскивает id с чужой строки.
34
35
  const AGENT_ID_RE = /^agent-id:[ \t]*([\w-]+)[ \t]*$/m;
35
36
 
36
- const FULL_BODY = `## Протокол сессии Wolf (L0/L1)
37
+ const SESSION_BODY = `## Протокол сессии Wolf (L0/L1)
37
38
 
38
39
  - Начало сессии и после /clear: \`wolf call\` и \`wolf brief\` — активное руководство проекта; они приоритетнее статических файлов.
39
40
  - Значимое фиксируй в памяти: решения — \`wolf add --type decision\`, уроки — \`--type lesson\`, блокеры — thread со статусом blocked; устаревшее — \`wolf supersede\`.
40
- - Состояние проекта — только у Wolf (\`wolf search\` / \`wolf get\` / \`wolf brief\`), статические списки в файлах устаревают.
41
-
42
- ## using-skills: governance-набор (H2)
43
-
44
- - **Полномочия**: L0 держит цель и принимает результат; L1 декомпозирует, управляет L2 и выполняет разрешённые git-операции; L2 — одна подзадача, allowlist, без спавна агентов и коммитов.
45
- - **Процессные скиллы — по типу ситуации, а не по оценке**: новая или изменённая потребность — wolf-brainstorm; баг или неожиданное поведение — wolf-debug; заявление о завершении — verification-before-completion.
46
- - **Break-glass**: если сомневаешься, применим ли скилл, — загрузи и проверь, а неподходящий скилл использовать не обязан.
47
- - **Маршрут**: утверждённые requirements+design → wolf-plan/wolf-testplan → wolf-sdd (или wolf-execute без диспетчеризации); передача состояния — wolf-handoff; завершение git-работы — finishing-a-development-branch.
48
- - **Масштаб**: FULL/LITE/FIX; режим фиксирует L1; при вскрытии новых контрактов или второго компонента в LITE/FIX — остановка и переклассификация L1 в FULL.
49
- - **Контракты**: TASK / RESULT (DONE | DONE_WITH_CONCERNS | NEEDS_CONTEXT | BLOCKED) / EVIDENCE / ACCEPTANCE.
50
- - **Приоритет**: ограничения платформы → явные указания пользователя → политика проекта и активная память → назначенная методика → дефолт.`;
41
+ - Состояние проекта — только у Wolf (\`wolf search\` / \`wolf get\` / \`wolf brief\`), статические списки в файлах устаревают.`;
42
+
43
+ // Один источник процессной дисциплины: полный установленный SKILL.md.
44
+ // Чтение происходит только при реально нужной инъекции, не на каждый ход.
45
+ // В source-tree тестах доступен base-шаблон; в целевом проекте — только
46
+ // установленный скилл (не случайный project/base каталог).
47
+ function governanceBody() {
48
+ const candidates = [path.join(__dirname, '..', 'skills', 'using-skills', 'SKILL.md')];
49
+ if (path.basename(path.resolve(__dirname, '..', '..')) === 'templates') {
50
+ candidates.push(path.join(__dirname, '..', '..', 'base', 'skills', 'using-skills', 'SKILL.md'));
51
+ }
52
+ for (const candidate of candidates) {
53
+ try {
54
+ const raw = readFileSync(candidate, 'utf8');
55
+ const match = raw.match(/^---\r?\n[\s\S]*?\r?\n---\r?\n([\s\S]*)$/);
56
+ const body = match?.[1]?.trim();
57
+ if (body) {
58
+ return `## using-skills: полный текст уже загружен\n\nНе вызывай using-skills повторно ради загрузки. Другие методики загружай отдельно до их выполнения.\n\n${body}`;
59
+ }
60
+ } catch {
61
+ // Missing/unreadable skill is a visible degraded mode, not a fake load.
62
+ }
63
+ }
64
+ return `## using-skills: FALLBACK — полный текст недоступен
65
+
66
+ Полный using-skills НЕ загружен. Попробуй доступный механизм скиллов;
67
+ при неудаче обозначь ограничение, не имитируй загрузку.
68
+ Полномочия: L0 координирует, L1 исполняет и управляет, L2 не спавнит и не коммитит.
69
+ До вопросов и действий: новая разработка — wolf-brainstorm; баг — wolf-debug;
70
+ заявление о готовности — verification-before-completion. Названный скилл загрузи явно.
71
+ Утверждённые входы: wolf-plan/wolf-testplan → wolf-sdd либо разрешённый wolf-execute.
72
+ Смена сессии: wolf-handoff. Git-финал: finishing-a-development-branch.
73
+ Режим FULL/LITE/FIX фиксирует L1; TASK/RESULT/EVIDENCE/ACCEPTANCE сохраняют свои контракты.
74
+ Не переходи через неподтверждённый обязательный этап; разговор и сбор недостающего контекста возможны.`;
75
+ }
51
76
 
52
77
  const WORKER_BODY = `## using-skills: пассивный режим воркера (L2)
53
78
 
54
79
  - Работаешь ровно одну подзадачу: читаешь назначенные скиллы, каталог сам не перебираешь.
80
+ - Методики загружай до исполнения. Блокер и недостающие входы передай L1;
81
+ не начинай продуктовый discovery и новый тред вместо назначенной задачи.
55
82
  - Не спавнишь агентов и не коммитишь.
56
83
  - Отчёт по контракту RESULT/EVIDENCE с task_id.`;
57
84
 
@@ -70,7 +97,7 @@ function computeInjection(messages, agentId) {
70
97
  );
71
98
  if (seen) return null;
72
99
  // MAJ-4: worker-* → усечённое тело (без диспетчерского контура using-skills).
73
- return /^worker-/.test(String(agentId ?? '')) ? WORKER_BODY : FULL_BODY;
100
+ return /^worker-/.test(String(agentId ?? '')) ? WORKER_BODY : `${SESSION_BODY}\n\n${governanceBody()}`;
74
101
  } catch {
75
102
  return null;
76
103
  }