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
@@ -0,0 +1,65 @@
1
+ /** WP4 (спека 2.16 §7). Стратегия источников (фиксация планом волны 2.16):
2
+ * markdown — истина объектов; events.jsonl — истина журнала (append-only,
3
+ * недостающие memory.added дозаписываются из markdown); индекс — производный
4
+ * (rebuild). Восстановление идемпотентно; битые строки журнала пропускаются. */
5
+ export async function repairStorage(deps, opts) {
6
+ const run = async () => {
7
+ const actions = [];
8
+ const objects = await deps.store.list();
9
+ const byId = new Map(objects.map((o) => [o.id, o]));
10
+ // 1. Индекс — производный: полный rebuild (идемпотентен).
11
+ let reindexed = 0;
12
+ if (deps.index) {
13
+ actions.push(`index: rebuild from ${objects.length} markdown object(s)`);
14
+ if (!opts.dryRun)
15
+ await deps.index.rebuild(objects);
16
+ reindexed = objects.length;
17
+ }
18
+ // 2. Журнал — истина: каждой markdown-записи соответствует memory.added.
19
+ let eventsAppended = 0;
20
+ let danglingEvents = 0;
21
+ const lines = deps.readEventLines ? await deps.readEventLines() : [];
22
+ const logged = new Set();
23
+ for (const line of lines) {
24
+ try {
25
+ const e = JSON.parse(line);
26
+ const id = e.payload?.memory_id;
27
+ if (typeof id !== 'string')
28
+ continue;
29
+ if (e.type === 'memory.added')
30
+ logged.add(id);
31
+ if (!byId.has(id))
32
+ danglingEvents += 1;
33
+ }
34
+ catch {
35
+ // битая строка журнала — пропускаем; идемпотентный дозапуск завершает восстановление
36
+ }
37
+ }
38
+ if (danglingEvents > 0) {
39
+ actions.push(`events: ${danglingEvents} dangling event(s) reference missing objects — warning only (journal is append-only truth)`);
40
+ }
41
+ const missing = objects.filter((o) => !logged.has(o.id));
42
+ if (missing.length > 0) {
43
+ actions.push(`events: backfill ${missing.length} missing memory.added event(s) from markdown`);
44
+ if (!opts.dryRun) {
45
+ for (const o of missing) {
46
+ await deps.log.append({
47
+ id: deps.idGen.generateEventId(new Date(o.created_at)),
48
+ type: 'memory.added',
49
+ timestamp: o.created_at,
50
+ actor: o.created_by,
51
+ payload: { memory_id: o.id, type: o.type, ...(o.tags.length > 0 ? { tags: o.tags } : {}) },
52
+ });
53
+ }
54
+ }
55
+ eventsAppended = missing.length;
56
+ }
57
+ // rebuild-строка в actions присутствует при каждом запуске с index (идемпотентная
58
+ // рутина), поэтому критерий «нечего чинить» — отсутствие дозаписей журнала
59
+ if (eventsAppended === 0)
60
+ actions.push('storage is consistent — nothing to repair');
61
+ return { reindexed, eventsAppended, danglingEvents, actions };
62
+ };
63
+ return deps.lock ? deps.lock.withLock(run) : run();
64
+ }
65
+ //# sourceMappingURL=repair-storage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repair-storage.js","sourceRoot":"","sources":["../../../src/app/use-cases/repair-storage.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"supersede-memory-object.d.ts","sourceRoot":"","sources":["../../../src/app/use-cases/supersede-memory-object.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AACzD,OAAO,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAQ7D,wBAAsB,qBAAqB,CACzC,IAAI,EAAE;IAAE,KAAK,EAAE,WAAW,CAAC;IAAC,GAAG,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,WAAW,CAAC;IAAC,KAAK,CAAC,EAAE,WAAW,CAAC;IAAC,IAAI,CAAC,EAAE,UAAU,CAAA;CAAE,EACrH,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC,CAkCf"}
1
+ {"version":3,"file":"supersede-memory-object.d.ts","sourceRoot":"","sources":["../../../src/app/use-cases/supersede-memory-object.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AACzD,OAAO,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAQ7D,wBAAsB,qBAAqB,CACzC,IAAI,EAAE;IAAE,KAAK,EAAE,WAAW,CAAC;IAAC,GAAG,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,WAAW,CAAC;IAAC,KAAK,CAAC,EAAE,WAAW,CAAC;IAAC,IAAI,CAAC,EAAE,UAAU,CAAA;CAAE,EACrH,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC,CA+Cf"}
@@ -23,6 +23,20 @@ export async function supersedeMemoryObject(deps, oldId, newId) {
23
23
  const newObject = await deps.store.get(newId);
24
24
  if (!newObject)
25
25
  throw new UserFacingError(`Replacement memory object not found: ${newId}`);
26
+ // T6 (спека 2.16 §10): supersede не создаёт цикл в цепочке superseded_by
27
+ // (сегодня цикл ловится только при чтении — запись должна отказывать раньше)
28
+ const seen = new Set([oldId, newId]);
29
+ let cursor = newObject.superseded_by ?? null;
30
+ while (cursor !== null) {
31
+ if (cursor === oldId) {
32
+ throw new UserFacingError(`Supersede would create a cycle: ${oldId} -> ${newId} -> ${oldId}`);
33
+ }
34
+ if (seen.has(cursor))
35
+ break; // уже существующий цикл дальше не разматываем
36
+ seen.add(cursor);
37
+ const cur = await deps.store.get(cursor);
38
+ cursor = cur?.superseded_by ?? null;
39
+ }
26
40
  const updated = await deps.store.update(oldId, { status: 'superseded', superseded_by: newId });
27
41
  await deps.log.append({
28
42
  id: deps.idGen.generateEventId(now),
@@ -1 +1 @@
1
- {"version":3,"file":"supersede-memory-object.js","sourceRoot":"","sources":["../../../src/app/use-cases/supersede-memory-object.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,4EAA4E;AAC5E,qFAAqF;AACrF,MAAM,YAAY,GAAG,mCAAmC,CAAC;AAEzD,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,IAAqH,EACrH,KAAa,EACb,KAAa;IAEb,MAAM,GAAG,GAAG,KAAK,IAAmB,EAAE;QACpC,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;YACpB,MAAM,IAAI,eAAe,CAAC,mDAAmD,KAAK,EAAE,CAAC,CAAC;QACxF,CAAC;QACD,KAAK,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI;YACxB,CAAC,KAAK,EAAE,KAAK,CAAC;YACd,CAAC,aAAa,EAAE,KAAK,CAAC;SACd,EAAE,CAAC;YACX,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC3B,MAAM,IAAI,eAAe,CAAC,wBAAwB,KAAK,OAAO,EAAE,yCAAyC,CAAC,CAAC;YAC7G,CAAC;QACH,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;QAC7B,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC9C,IAAI,CAAC,SAAS;YAAE,MAAM,IAAI,eAAe,CAAC,4BAA4B,KAAK,EAAE,CAAC,CAAC;QAC/E,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC9C,IAAI,CAAC,SAAS;YAAE,MAAM,IAAI,eAAe,CAAC,wCAAwC,KAAK,EAAE,CAAC,CAAC;QAC3F,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC;QAC/F,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;YACpB,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC;YACnC,IAAI,EAAE,mBAAmB;YACzB,SAAS,EAAE,GAAG,CAAC,WAAW,EAAE;YAC5B,KAAK,EAAE,aAAa;YACpB,OAAO,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE;SAC1C,CAAC,CAAC;QACH,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACxC,CAAC;QACD,MAAM,gBAAgB,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YAC/F,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,GAAG,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IACF,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACrD,CAAC"}
1
+ {"version":3,"file":"supersede-memory-object.js","sourceRoot":"","sources":["../../../src/app/use-cases/supersede-memory-object.ts"],"names":[],"mappings":"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"}
@@ -21,5 +21,7 @@ export declare function createCliContainer(baseDir: string): {
21
21
  scanner: HeuristicProjectScanner;
22
22
  lock: FsMemoryLock;
23
23
  declarations: readonly MemoryTypeDeclaration[];
24
+ memoryRoot: string;
25
+ worktree: string | null;
24
26
  };
25
27
  //# sourceMappingURL=container.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"container.d.ts","sourceRoot":"","sources":["../../src/bootstrap/container.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,yCAAyC,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAC9E,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0CAA0C,CAAC;AAChF,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,6CAA6C,CAAC;AAEtF,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAG7D,OAAO,EAAiB,KAAK,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAkCtF,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM;;;;;;;;;;;;EAkBjD"}
1
+ {"version":3,"file":"container.d.ts","sourceRoot":"","sources":["../../src/bootstrap/container.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,yCAAyC,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAC9E,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0CAA0C,CAAC;AAChF,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,6CAA6C,CAAC;AAEtF,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAI7D,OAAO,EAAiB,KAAK,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAkCtF,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM;;;;;;;;;;;;;;EAqBjD"}
@@ -10,6 +10,7 @@ import { eventsPath, indexPath, relationsPath, memoryDir } from '../adapters/fs/
10
10
  import { JsonlRelationLog } from '../adapters/fs/jsonl-relation-log.js';
11
11
  import { FsMemoryLock } from '../adapters/fs/memory-lock.js';
12
12
  import { loadWolfConfigSync } from '../adapters/fs/config-file.js';
13
+ import { resolveMemoryRoot } from '../adapters/fs/memory-root.js';
13
14
  import { mergeTaxonomy } from '../domain/taxonomy.js';
14
15
  import { CORE_TAXONOMY } from '../domain/memory-types.js';
15
16
  import { ProjectsRegistry } from '../adapters/fs/projects-registry.js';
@@ -48,21 +49,24 @@ function selfHealRegistry(baseDir) {
48
49
  }
49
50
  export function createCliContainer(baseDir) {
50
51
  selfHealRegistry(baseDir);
52
+ const mem = resolveMemoryRoot(baseDir);
51
53
  const fs = new FsFileSystem();
52
54
  // P300/2.14 §5.2: log создаётся раньше store (точка ребейза для P331)
53
- const log = new JsonlEventLog(eventsPath(baseDir));
55
+ const log = new JsonlEventLog(eventsPath(mem.root));
54
56
  return {
55
- store: new MarkdownMemoryStore(baseDir, undefined, log),
57
+ store: new MarkdownMemoryStore(mem.root, undefined, log),
56
58
  log,
57
- index: new SQLiteSearchIndex(indexPath(baseDir)),
58
- relations: new JsonlRelationLog(relationsPath(baseDir)),
59
+ index: new SQLiteSearchIndex(indexPath(mem.root)),
60
+ relations: new JsonlRelationLog(relationsPath(mem.root)),
59
61
  clock: new SystemClock(),
60
62
  idGen: new HashIdGenerator(),
61
63
  initializer: new FsProjectInitializer(),
62
64
  fs,
63
65
  scanner: new HeuristicProjectScanner(fs),
64
- lock: new FsMemoryLock(memoryDir(baseDir)),
65
- declarations: loadDeclarations(baseDir),
66
+ lock: new FsMemoryLock(memoryDir(mem.root)),
67
+ declarations: loadDeclarations(mem.root),
68
+ memoryRoot: mem.root,
69
+ worktree: mem.worktree,
66
70
  };
67
71
  }
68
72
  //# sourceMappingURL=container.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"container.js","sourceRoot":"","sources":["../../src/bootstrap/container.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"container.js","sourceRoot":"","sources":["../../src/bootstrap/container.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"governance.d.ts","sourceRoot":"","sources":["../../src/domain/governance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,WAAW,CAAC;AAClD,MAAM,MAAM,SAAS,GAAG,oBAAoB,GAAG,oBAAoB,GAAG,iBAAiB,CAAC;AACxF,MAAM,MAAM,QAAQ,GAAG,WAAW,GAAG,YAAY,GAAG,SAAS,CAAC;AAE9D,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAE7D;AAED,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG;IACrD,YAAY,EAAE,WAAW,CAAC;IAC1B,UAAU,EAAE,SAAS,CAAC;IACtB,QAAQ,EAAE,QAAQ,CAAC;CACpB,CAMA;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE;IACtC,YAAY,EAAE,WAAW,CAAC;IAC1B,UAAU,EAAE,SAAS,CAAC;IACtB,QAAQ,EAAE,QAAQ,CAAC;CACpB,GAAG,MAAM,EAAE,CAMX;AAED,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,YAAY,EAAE,YAAY,EAAE,CAyCpE,CAAC;AAEF,wBAAgB,aAAa,CAAC,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,YAAY,GAAG,OAAO,CAE3E"}
1
+ {"version":3,"file":"governance.d.ts","sourceRoot":"","sources":["../../src/domain/governance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,WAAW,CAAC;AAClD,MAAM,MAAM,SAAS,GAAG,oBAAoB,GAAG,oBAAoB,GAAG,iBAAiB,CAAC;AACxF,MAAM,MAAM,QAAQ,GAAG,WAAW,GAAG,YAAY,GAAG,SAAS,CAAC;AAE9D,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAE7D;AAED,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG;IACrD,YAAY,EAAE,WAAW,CAAC;IAC1B,UAAU,EAAE,SAAS,CAAC;IACtB,QAAQ,EAAE,QAAQ,CAAC;CACpB,CAMA;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE;IACtC,YAAY,EAAE,WAAW,CAAC;IAC1B,UAAU,EAAE,SAAS,CAAC;IACtB,QAAQ,EAAE,QAAQ,CAAC;CACpB,GAAG,MAAM,EAAE,CAMX;AAED,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,YAAY,EAAE,YAAY,EAAE,CAyCpE,CAAC;AAEF,wBAAgB,aAAa,CAAC,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,YAAY,GAAG,OAAO,CAG3E"}
@@ -58,6 +58,7 @@ export const ALLOWED_TRANSITIONS = {
58
58
  waiting_answer: ['active', 'archived'],
59
59
  };
60
60
  export function canTransition(from, to) {
61
- return ALLOWED_TRANSITIONS[from].includes(to);
61
+ // T4 (спека 2.16 §10): unknown-статус из битых данных — false, не TypeError
62
+ return ALLOWED_TRANSITIONS[from]?.includes(to) ?? false;
62
63
  }
63
64
  //# sourceMappingURL=governance.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"governance.js","sourceRoot":"","sources":["../../src/domain/governance.ts"],"names":[],"mappings":"AAMA,MAAM,UAAU,gBAAgB,CAAC,SAAiB;IAChD,OAAO,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,oBAAoB,CAAC;AACtF,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,SAAiB;IAKlD,OAAO;QACL,YAAY,EAAE,SAAS;QACvB,UAAU,EAAE,gBAAgB,CAAC,SAAS,CAAC;QACvC,QAAQ,EAAE,WAAW;KACtB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,GAIlC;IACC,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,IAAI,GAAG,CAAC,UAAU,KAAK,iBAAiB,IAAI,GAAG,CAAC,YAAY,KAAK,WAAW,EAAE,CAAC;QAC7E,QAAQ,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;IACpE,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAyC;IACvE,kFAAkF;IAClF,uEAAuE;IACvE,0DAA0D;IAC1D,+DAA+D;IAC/D,MAAM,EAAE;QACN,OAAO;QACP,YAAY;QACZ,UAAU;QACV,aAAa;QACb,WAAW;QACX,UAAU;QACV,UAAU;QACV,UAAU;QACV,YAAY;QACZ,QAAQ;QACR,kEAAkE;QAClE,SAAS;QACT,gBAAgB;QAChB,MAAM;KACP;IACD,IAAI,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,CAAC;IAChE,QAAQ,EAAE,CAAC,UAAU,CAAC;IACtB,KAAK,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC;IAC7B,WAAW,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC;IACnC,UAAU,EAAE,EAAE;IACd,QAAQ,EAAE,EAAE;IACZ,MAAM,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC;IAC9B,SAAS,EAAE,CAAC,UAAU,CAAC;IACvB,QAAQ,EAAE,CAAC,UAAU,CAAC;IACtB,QAAQ,EAAE,CAAC,UAAU,CAAC;IACtB,QAAQ,EAAE,CAAC,UAAU,CAAC;IACtB,QAAQ,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC;IAC9C,QAAQ,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,UAAU,CAAC;IAC5C,2DAA2D;IAC3D,SAAS,EAAE,CAAC,QAAQ,EAAE,YAAY,EAAE,UAAU,CAAC;IAC/C,yDAAyD;IACzD,UAAU,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC;IAClC,+EAA+E;IAC/E,OAAO,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC;IAC/B,cAAc,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC;CACvC,CAAC;AAEF,MAAM,UAAU,aAAa,CAAC,IAAkB,EAAE,EAAgB;IAChE,OAAO,mBAAmB,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAChD,CAAC"}
1
+ {"version":3,"file":"governance.js","sourceRoot":"","sources":["../../src/domain/governance.ts"],"names":[],"mappings":"AAMA,MAAM,UAAU,gBAAgB,CAAC,SAAiB;IAChD,OAAO,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,oBAAoB,CAAC;AACtF,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,SAAiB;IAKlD,OAAO;QACL,YAAY,EAAE,SAAS;QACvB,UAAU,EAAE,gBAAgB,CAAC,SAAS,CAAC;QACvC,QAAQ,EAAE,WAAW;KACtB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,GAIlC;IACC,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,IAAI,GAAG,CAAC,UAAU,KAAK,iBAAiB,IAAI,GAAG,CAAC,YAAY,KAAK,WAAW,EAAE,CAAC;QAC7E,QAAQ,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;IACpE,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAyC;IACvE,kFAAkF;IAClF,uEAAuE;IACvE,0DAA0D;IAC1D,+DAA+D;IAC/D,MAAM,EAAE;QACN,OAAO;QACP,YAAY;QACZ,UAAU;QACV,aAAa;QACb,WAAW;QACX,UAAU;QACV,UAAU;QACV,UAAU;QACV,YAAY;QACZ,QAAQ;QACR,kEAAkE;QAClE,SAAS;QACT,gBAAgB;QAChB,MAAM;KACP;IACD,IAAI,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,CAAC;IAChE,QAAQ,EAAE,CAAC,UAAU,CAAC;IACtB,KAAK,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC;IAC7B,WAAW,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC;IACnC,UAAU,EAAE,EAAE;IACd,QAAQ,EAAE,EAAE;IACZ,MAAM,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC;IAC9B,SAAS,EAAE,CAAC,UAAU,CAAC;IACvB,QAAQ,EAAE,CAAC,UAAU,CAAC;IACtB,QAAQ,EAAE,CAAC,UAAU,CAAC;IACtB,QAAQ,EAAE,CAAC,UAAU,CAAC;IACtB,QAAQ,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC;IAC9C,QAAQ,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,UAAU,CAAC;IAC5C,2DAA2D;IAC3D,SAAS,EAAE,CAAC,QAAQ,EAAE,YAAY,EAAE,UAAU,CAAC;IAC/C,yDAAyD;IACzD,UAAU,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC;IAClC,+EAA+E;IAC/E,OAAO,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC;IAC/B,cAAc,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC;CACvC,CAAC;AAEF,MAAM,UAAU,aAAa,CAAC,IAAkB,EAAE,EAAgB;IAChE,4EAA4E;IAC5E,OAAO,mBAAmB,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC;AAC1D,CAAC"}
@@ -0,0 +1,8 @@
1
+ /** WP4 (спека 2.16 §7): doctor не печатает значения секретов.
2
+ * Известные префиксы — по паттерну; именованные присвоения (api_key=/token:/password=)
3
+ * маскируются значением целиком. Граница трактовки спеки: маскируется вывод doctor
4
+ * (issues/finding'и — единственный канал, куда попадают фрагменты чужих файлов:
5
+ * lint-artifacts.ts:103,175,196,208 печают срезы строк документов); тела объектов
6
+ * в get/list не маскируются (владелец может ветировать). */
7
+ export declare function maskSecrets(text: string): string;
8
+ //# sourceMappingURL=mask-secrets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mask-secrets.d.ts","sourceRoot":"","sources":["../../src/domain/mask-secrets.ts"],"names":[],"mappings":"AAQA;;;;;4DAK4D;AAC5D,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAIhD"}
@@ -0,0 +1,20 @@
1
+ const SECRET_PATTERNS = [
2
+ /\bsk-[A-Za-z0-9_-]{8,}\b/g,
3
+ /\bgh[po]_[A-Za-z0-9]{16,}\b/g,
4
+ /\bxox[baprs]-[A-Za-z0-9-]{10,}\b/g,
5
+ /\bAKIA[0-9A-Z]{16}\b/g,
6
+ /\beyJ[A-Za-z0-9_-]{20,}\.[A-Za-z0-9_-]{10,}/g,
7
+ ];
8
+ /** WP4 (спека 2.16 §7): doctor не печатает значения секретов.
9
+ * Известные префиксы — по паттерну; именованные присвоения (api_key=/token:/password=)
10
+ * маскируются значением целиком. Граница трактовки спеки: маскируется вывод doctor
11
+ * (issues/finding'и — единственный канал, куда попадают фрагменты чужих файлов:
12
+ * lint-artifacts.ts:103,175,196,208 печают срезы строк документов); тела объектов
13
+ * в get/list не маскируются (владелец может ветировать). */
14
+ export function maskSecrets(text) {
15
+ let out = text;
16
+ for (const re of SECRET_PATTERNS)
17
+ out = out.replace(re, '[redacted]');
18
+ return out.replace(/((?:api[-_]?key|token|secret|password)\s*[=:]\s*)(["']?)[^\s"']+\2/gi, '$1[redacted]');
19
+ }
20
+ //# sourceMappingURL=mask-secrets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mask-secrets.js","sourceRoot":"","sources":["../../src/domain/mask-secrets.ts"],"names":[],"mappings":"AAAA,MAAM,eAAe,GAAa;IAChC,2BAA2B;IAC3B,8BAA8B;IAC9B,mCAAmC;IACnC,uBAAuB;IACvB,8CAA8C;CAC/C,CAAC;AAEF;;;;;4DAK4D;AAC5D,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,IAAI,GAAG,GAAG,IAAI,CAAC;IACf,KAAK,MAAM,EAAE,IAAI,eAAe;QAAE,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC;IACtE,OAAO,GAAG,CAAC,OAAO,CAAC,sEAAsE,EAAE,cAAc,CAAC,CAAC;AAC7G,CAAC"}
@@ -56,8 +56,8 @@ declare const CORE_TAXONOMY_DECLS: readonly [{
56
56
  readonly subdirShared: "rules";
57
57
  readonly fields: {
58
58
  readonly scope: {
59
- readonly kind: "enum";
60
- readonly values: readonly ["project", "global"];
59
+ readonly kind: "string";
60
+ readonly optional: true;
61
61
  };
62
62
  readonly applies_to: {
63
63
  readonly kind: "string[]";
@@ -1 +1 @@
1
- {"version":3,"file":"memory-types.d.ts","sourceRoot":"","sources":["../../src/domain/memory-types.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,YAAY,GACpB,QAAQ,GACR,MAAM,GACN,UAAU,GACV,OAAO,GACP,aAAa,GACb,YAAY,GACZ,UAAU,GACV,QAAQ,GACR,WAAW,GACX,UAAU,GACV,UAAU,GACV,UAAU,GACV,UAAU,GACV,UAAU,GACV,WAAW,GACX,YAAY,GAEZ,SAAS,GACT,gBAAgB,CAAC;AACrB,MAAM,MAAM,WAAW,GAAG,UAAU,GAAG,UAAU,GAAG,UAAU,GAAG,iBAAiB,CAAC;AACnF,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;AACnD,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;AAEhE,mFAAmF;AACnF,MAAM,MAAM,SAAS,GACjB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,EAAE,IAAI,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GAChD;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,EAAE,IAAI,CAAA;CAAE,GAClC;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACnC;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GACvD;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,GACjD;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,EAAE,IAAI,CAAA;CAAE,GACnC;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IAAC,QAAQ,CAAC,EAAE,IAAI,CAAA;CAAE,CAAC;AAEjE,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,UAAU,CAAC;IACjB,sFAAsF;IACtF,SAAS,EAAE,SAAS,YAAY,EAAE,CAAC;IACnC,qEAAqE;IACrE,aAAa,CAAC,EAAE,YAAY,CAAC;IAC7B,oEAAoE;IACpE,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,8DAA8D;IAC9D,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,wEAAwE;IACxE,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACnC,iDAAiD;IACjD,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAqBD,eAAO,MAAM,wBAAwB,EAAE,SAAS,MAAM,EAQrD,CAAC;AAMF,QAAA,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsGf,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC;AAEtE,eAAO,MAAM,YAAY,+EAAyC,CAAC;AAEnE;;;;;;GAMG;AACH,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,UAAU,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAqB3E,CAAC;AAEF,oFAAoF;AACpF,eAAO,MAAM,aAAa,EAAE,SAAS,qBAAqB,EAAwB,CAAC;AAEnF,4FAA4F;AAC5F,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,SAAS,qBAAqB,EAAE,GAAG,qBAAqB,CAc5G;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,IAAI,CAG3F"}
1
+ {"version":3,"file":"memory-types.d.ts","sourceRoot":"","sources":["../../src/domain/memory-types.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,YAAY,GACpB,QAAQ,GACR,MAAM,GACN,UAAU,GACV,OAAO,GACP,aAAa,GACb,YAAY,GACZ,UAAU,GACV,QAAQ,GACR,WAAW,GACX,UAAU,GACV,UAAU,GACV,UAAU,GACV,UAAU,GACV,UAAU,GACV,WAAW,GACX,YAAY,GAEZ,SAAS,GACT,gBAAgB,CAAC;AACrB,MAAM,MAAM,WAAW,GAAG,UAAU,GAAG,UAAU,GAAG,UAAU,GAAG,iBAAiB,CAAC;AACnF,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;AACnD,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;AAEhE,mFAAmF;AACnF,MAAM,MAAM,SAAS,GACjB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,EAAE,IAAI,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GAChD;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,EAAE,IAAI,CAAA;CAAE,GAClC;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACnC;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GACvD;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,GACjD;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,EAAE,IAAI,CAAA;CAAE,GACnC;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IAAC,QAAQ,CAAC,EAAE,IAAI,CAAA;CAAE,CAAC;AAEjE,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,UAAU,CAAC;IACjB,sFAAsF;IACtF,SAAS,EAAE,SAAS,YAAY,EAAE,CAAC;IACnC,qEAAqE;IACrE,aAAa,CAAC,EAAE,YAAY,CAAC;IAC7B,oEAAoE;IACpE,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,8DAA8D;IAC9D,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,wEAAwE;IACxE,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACnC,iDAAiD;IACjD,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAqBD,eAAO,MAAM,wBAAwB,EAAE,SAAS,MAAM,EAQrD,CAAC;AAMF,QAAA,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwGf,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC;AAEtE,eAAO,MAAM,YAAY,+EAAyC,CAAC;AAEnE;;;;;;GAMG;AACH,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,UAAU,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAqB3E,CAAC;AAEF,oFAAoF;AACpF,eAAO,MAAM,aAAa,EAAE,SAAS,qBAAqB,EAAwB,CAAC;AAEnF,4FAA4F;AAC5F,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,SAAS,qBAAqB,EAAE,GAAG,qBAAqB,CAc5G;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,IAAI,CAG3F"}
@@ -39,7 +39,9 @@ const CORE_TAXONOMY_DECLS = [
39
39
  subdirThread: null,
40
40
  subdirShared: 'rules',
41
41
  fields: {
42
- scope: { kind: 'enum', values: ['project', 'global'] },
42
+ // WP3 §6.2 (2.16): необязательная строка (по образцу owner_skill) — enum
43
+ // project|global резал машинные значения worktree:<имя>/main
44
+ scope: { kind: 'string', optional: true },
43
45
  applies_to: { kind: 'string[]', default: [] },
44
46
  trigger: { kind: 'string', default: '' },
45
47
  trigger_keywords: { kind: 'string[]', default: [] },
@@ -1 +1 @@
1
- {"version":3,"file":"memory-types.js","sourceRoot":"","sources":["../../src/domain/memory-types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"memory-types.js","sourceRoot":"","sources":["../../src/domain/memory-types.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,7 @@ export declare const MemoryEventSchema: z.ZodObject<{
11
11
  "memory.transitioned": "memory.transitioned";
12
12
  "memory.overwritten": "memory.overwritten";
13
13
  "memory.aggregated": "memory.aggregated";
14
+ "memory.scope_promoted": "memory.scope_promoted";
14
15
  }>;
15
16
  timestamp: z.ZodString;
16
17
  actor: z.ZodString;
@@ -1 +1 @@
1
- {"version":3,"file":"memory-event-schema.d.ts","sourceRoot":"","sources":["../../../src/domain/schemas/memory-event-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;iBAgB5B,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC"}
1
+ {"version":3,"file":"memory-event-schema.d.ts","sourceRoot":"","sources":["../../../src/domain/schemas/memory-event-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;iBAiB5B,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC"}
@@ -11,6 +11,7 @@ export const MemoryEventSchema = z.object({
11
11
  'memory.transitioned',
12
12
  'memory.overwritten',
13
13
  'memory.aggregated',
14
+ 'memory.scope_promoted',
14
15
  ]),
15
16
  timestamp: z.string().datetime(),
16
17
  actor: z.string().min(1),
@@ -1 +1 @@
1
- {"version":3,"file":"memory-event-schema.js","sourceRoot":"","sources":["../../../src/domain/schemas/memory-event-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACrB,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;QACX,cAAc;QACd,eAAe;QACf,gBAAgB;QAChB,qBAAqB;QACrB,mBAAmB;QACnB,iBAAiB;QACjB,qBAAqB;QACrB,oBAAoB;QACpB,mBAAmB;KACpB,CAAC;IACF,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACxB,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CACvD,CAAC,CAAC"}
1
+ {"version":3,"file":"memory-event-schema.js","sourceRoot":"","sources":["../../../src/domain/schemas/memory-event-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACrB,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;QACX,cAAc;QACd,eAAe;QACf,gBAAgB;QAChB,qBAAqB;QACrB,mBAAmB;QACnB,iBAAiB;QACjB,qBAAqB;QACrB,oBAAoB;QACpB,mBAAmB;QACnB,uBAAuB;KACxB,CAAC;IACF,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACxB,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CACvD,CAAC,CAAC"}
@@ -15,7 +15,11 @@ export interface BakeResolver {
15
15
  }
16
16
  export interface RenderBaseSetOptions {
17
17
  bake?: BakeResolver;
18
- models?: ModelContext;
18
+ /** ModelContext — явный --model (opt-in); 'omit' — model-строки вырезаются (WP2 unpin, спека 2.16 §5). */
19
+ models?: ModelContext | 'omit';
20
+ /** WP1 (спека 2.16 §4): 'agents-md' — только AGENTS.md (минимальный init);
21
+ * 'full' (дефолт) — весь базовый набор. */
22
+ scope?: 'full' | 'agents-md';
19
23
  }
20
24
  export interface BaseSetRenderer {
21
25
  id: string;
@@ -1 +1 @@
1
- {"version":3,"file":"base-set-renderer.port.d.ts","sourceRoot":"","sources":["../../src/ports/base-set-renderer.port.ts"],"names":[],"mappings":"AACA,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,CAAC;AAEvF,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,gGAAgG;AAChG,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,yGAAyG;IACzG,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;CACnC;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,uGAAuG;IACvG,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IACtF;;;;OAIG;IACH,WAAW,CACT,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,YAAY,GAAG,MAAM,GAC7B,OAAO,CAAC;QAAE,QAAQ,EAAE,aAAa,EAAE,CAAC;QAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;CAC/D"}
1
+ {"version":3,"file":"base-set-renderer.port.d.ts","sourceRoot":"","sources":["../../src/ports/base-set-renderer.port.ts"],"names":[],"mappings":"AACA,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,CAAC;AAEvF,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,gGAAgG;AAChG,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,yGAAyG;IACzG,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;CACnC;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,0GAA0G;IAC1G,MAAM,CAAC,EAAE,YAAY,GAAG,MAAM,CAAC;IAC/B;+CAC2C;IAC3C,KAAK,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC;CAC9B;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,uGAAuG;IACvG,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IACtF;;;;OAIG;IACH,WAAW,CACT,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,YAAY,GAAG,MAAM,GAC7B,OAAO,CAAC;QAAE,QAAQ,EAAE,aAAa,EAAE,CAAC;QAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;CAC/D"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mister-wolf",
3
- "version": "2.15.1",
3
+ "version": "2.16.0",
4
4
  "description": "Local-first project memory for AI coding agents: decisions, lessons, tools and processes that outlive the session",
5
5
  "keywords": [
6
6
  "ai-agents",
@@ -1 +1 @@
1
- 2026-10-09T00:33:23.581Z agent-id=v2-router-probe-xyz playbook=hit name=fallback variant=fallback injected=yes ms=1 bytes=1208
1
+ 2026-10-10T20:36:30.479Z agent-id=v2-router-probe-xyz playbook=hit name=fallback variant=fallback injected=yes ms=1 bytes=1274
@@ -7,10 +7,11 @@
7
7
  ## Протокол холодного старта (каждая свежая сессия)
8
8
 
9
9
  1. **Начинай с состояния проекта:** запусти `wolf call` и `wolf brief`
10
- (CLI: `node dist/bootstrap/cli.js`; MCP-инструменты: `mr-wolf_*`).
10
+ (CLI: установленный `wolf`, или `node <путь-к-repo-wolf>/dist/bootstrap/cli.js` в репо Wolf; MCP-инструменты: `mr-wolf_*`).
11
11
  Возвращённые injections и brief — активное руководство проекта.
12
12
  2. **Фиксируй значимое через Wolf:** решения — `wolf add --type decision`,
13
- уроки — `--type lesson`, блокеры — `--type blocker`; устаревшее —
13
+ уроки — `--type lesson`, блокеры — thread со статусом `blocked`
14
+ (`wolf thread add`, затем `wolf transition <id> blocked`); устаревшее —
14
15
  `wolf supersede <old-id> <new-id>`.
15
16
  3. **Состояние проекта — только у Wolf** (`wolf search`, `wolf get`,
16
17
  `wolf brief`): статические списки в файлах устаревают. Память Wolf —
@@ -50,6 +50,10 @@ Used / Validation Results).
50
50
  результата, критерий проверки, блок «Инструменты» (какие тула и
51
51
  известные ловушки). Передал подходящие — снял с воркера расход витков
52
52
  на пробы. Плохой промпт = мусор в ответе — твоя ошибка, не его.
53
+ В бриф воркера включай назначенную методику (имена скиллов) и
54
+ common-контракты TASK/RESULT/EVIDENCE/ACCEPTANCE из using-skills,
55
+ если платформа не доставляет using-skills автоматически; L2 сам
56
+ каталог скиллов не перебирает.
53
57
  - Исследовательские подзадачи («как устроен X», «почему в Z так») →
54
58
  `worker-researcher`, не делай сам.
55
59
  - Лимит воркеров на сессию: 5; фикс не удался за 2 попытки → partial.
@@ -47,8 +47,9 @@ git-метаданные, веб), не для исполнения работы
47
47
  2. **Бриф и диспетч**: контекст (2–5 предложений), критерии приёмки
48
48
  (каждый проверяем по отчёту, без чтения кода), команда валидации,
49
49
  scope. Диспетчеризуй `executor-lead`.
50
- 3. **Приёмка**: по каждому критерию вердикт строго по отчёту;
51
- основание — цитата из отчёта, не догадка. Правдоподобие без ответа
50
+ 3. **Приёмка**: L0 принимает по ACCEPTANCE-критериям и актуальности
51
+ evidence, а не по цитате отчёта; сам проверки не запускает —
52
+ независимый запуск поручает L1. Правдоподобие без ответа
52
53
  «как проверяли» = критерий НЕ подтверждён.
53
54
  4. **Циклы**: rejected → возврат executor'у с перечнем несоответствий;
54
55
  максимум 2 цикла, дальше — эскалация пользователю.
@@ -25,8 +25,10 @@ agent-id: steward
25
25
  - **ЛИЦО** — матрица лиц (теги playbook'ов Стюарда), выбор по существу
26
26
  жалобы. Нет playbook'а лица — работай по рамке (безликий режим).
27
27
  - **ДОСТАВКА** — plugin-inject (основной); fallback: сам сделай
28
- `wolf search "steward:<лицо> playbook"` перед задачей и возьми
29
- наибольшую версию.
28
+ `wolf search "steward:<лицо> playbook" --hide-superseded` перед
29
+ задачей — работай по актуальному (не суперседенному) playbook'у,
30
+ проверь owner_skill (steward или skill:steward); канона нет —
31
+ работай по fallback-контуру, доставленному плагином.
30
32
 
31
33
  ## Матрица лиц
32
34
 
@@ -24,8 +24,11 @@ agent-id: worker-implementer
24
24
  - **ЛИЦО** — playbook с тегом `worker-implementer playbook` (методика и
25
25
  формат отчёта). Нет playbook'а — работай по рамке (безликий режим).
26
26
  - **ДОСТАВКА** — plugin-inject (основной, ноль расходов в рантайме);
27
- fallback: сам сделай `wolf search "worker-implementer playbook"`
28
- перед задачей и возьми наибольшую версию.
27
+ fallback: сам сделай `wolf search "worker-implementer playbook"
28
+ --hide-superseded` перед задачей — работай по актуальному
29
+ (не суперседенному) playbook'у, проверь owner_skill
30
+ (worker-implementer или skill:worker-implementer); канона нет —
31
+ работай по fallback-контуру, доставленному плагином.
29
32
 
30
33
  ## Контекст-бюджет уровня L2
31
34
 
@@ -30,8 +30,10 @@ GAPS: <чего не удалось выяснить, если есть>
30
30
  анализа, формат findings). Нет playbook'а — работай по рамке
31
31
  (безликий режим).
32
32
  - **ДОСТАВКА** — plugin-inject (основной); fallback: сам сделай
33
- `wolf search "worker-researcher playbook"` перед задачей и возьми
34
- наибольшую версию.
33
+ `wolf search "worker-researcher playbook" --hide-superseded` перед
34
+ задачей — работай по актуальному (не суперседенному) playbook'у,
35
+ проверь owner_skill (worker-researcher или skill:worker-researcher);
36
+ канона нет — работай по fallback-контуру, доставленному плагином.
35
37
 
36
38
  ## Контекст-бюджет уровня L2
37
39
 
@@ -16,7 +16,7 @@ agent-id: worker-reviewer
16
16
 
17
17
  ```
18
18
  SUMMARY: X critical / Y major / Z minor
19
- VERDICT: APPROVED | CHANGES_REQUIRED
19
+ VERDICT: APPROVED | CHANGES_REQUIRED | INCONCLUSIVE
20
20
  ```
21
21
 
22
22
  ## Обязательная тройка (рамка + лицо + доставка)
@@ -24,19 +24,21 @@ VERDICT: APPROVED | CHANGES_REQUIRED
24
24
  - **РАМКА** — этот файл: роль, границы, запреты. Статична; меняется
25
25
  только `wolf sync`.
26
26
  - **ЛИЦО** — playbook с тегом `worker-reviewer playbook` (зоны обзора,
27
- категории Critical/Important/Suggestions). Нет playbook'а — работай
27
+ категории Critical/Major/Minor). Нет playbook'а — работай
28
28
  по рамке (безликий режим).
29
- - **ДОСТАВКА** — plugin-inject (основной); fallback: сам сделай
30
- `wolf search "worker-reviewer playbook"` перед задачей и возьми
31
- наибольшую версию.
29
+ - **ДОСТАВКА** — plugin-inject (основной); fallback: работай по
30
+ актуальному (не суперседенному) playbook'у — `wolf search
31
+ "worker-reviewer playbook" --hide-superseded`, проверь owner_skill
32
+ (agent-id или skill:<agent-id>); канона нет — работай по
33
+ fallback-контуру, доставленному плагином.
32
34
 
33
35
  ## Контекст-бюджет уровня L2
34
36
 
35
37
  - Ровно одна задача ревью; без права спавна агентов.
36
38
  - Результат — вердикт по контракту + находки по пунктам (файл:строка,
37
39
  что не так, предлагаемая правка); не код.
38
- - Узкий ревьюер: работаешь в своей линзе; чужие замечания вне порученной
39
- зоны — не твои, не собирай их.
40
+ - Узкий ревьюер: работаешь в своей линзе. Чужую зону не разрабатывай;
41
+ существенную находку вне мандата отметь отдельно для маршрутизации.
40
42
 
41
43
  ## Дисциплина роли
42
44
 
@@ -6,6 +6,6 @@ agent: worker-researcher
6
6
 
7
7
  Протокол (рамочная команда — методика в памяти Wolf):
8
8
 
9
- 1. ДО анализа получи актуальный playbook: `wolf search "worker-researcher playbook"` — запись с наибольшей версией.
9
+ 1. ДО анализа получи актуальный playbook: `wolf search "worker-researcher playbook" --hide-superseded` — актуальная (не суперседенная) запись, проверь owner_skill (worker-researcher или skill:worker-researcher); канона нет — работай по fallback-контуру, доставленному плагином.
10
10
  2. Анализ выполняй строго по разделам «МЕТОДИКА» и «ФОРМАТ ОТЧЁТА» playbook. Формат отчёта (шапка с версией, структура, футер) — из playbook, не отсюда.
11
11
  3. Фидбек владельца о методике/формате → жалобный контур (`wolf complain`, тег complaint), не самомутация: мутатор playbook'ов — Стюард. Без фидбека версию не меняй.
@@ -8,6 +8,6 @@ agent: mr-wolf
8
8
 
9
9
  1. Прими жалобу дословно — без пересказа и интерпретаций.
10
10
  2. Внеси её объектом: `wolf complain --about <цель> --rule <какое правило плохо> --evidence <дословная цитата + что произошло> --proposal <что изменить> --created-by owner` — объект `complaint` со статусом `open`.
11
- 3. Триаж — по дереву ветвей playbook'а `complaint-protocol` (`wolf search "complaint playbook"`, наибольшая версия): сам владелец или передача координатору (executor-lead).
11
+ 3. Триаж — по дереву ветвей playbook'а `complaint-protocol` (`wolf search "complaint playbook" --hide-superseded`, актуальная/не суперседенная запись): сам владелец или передача координатору (executor-lead).
12
12
  4. Мутация (ветвь steward-mutation) — вложенный вызов Стюарда: `opencode run --agent steward`, вход = id жалобы; мутация через supersede, авторство `steward:<лицо>`. Это путь владельца/координатора — не воркера.
13
13
  5. Доложи владельцу: что принял, что изменилось в памяти.
@@ -6,7 +6,7 @@ agent: mr-wolf
6
6
 
7
7
  Ты — оркестратор цикла; протокол — скилл wolf-review, правила цикла (MIN-3):
8
8
 
9
- 1. Получи линзы: `wolf search "wolf-review playbook"` — наибольшая версия. Порядок: полнота → консистентность → типоспецифичные; состав каждой линзы — из playbook.
9
+ 1. Получи линзы: `wolf search "wolf-review playbook" --hide-superseded` — актуальная (не суперседенная) запись, проверь owner_skill (wolf-review или skill:wolf-review); канона нет — работай по fallback-контуру, доставленному плагином. Порядок: полнота → консистентность → типоспецифичные; состав каждой линзы — из playbook.
10
10
  2. Спавнь worker-reviewer'ов через {{tool.task}} — одна линза = один воркер в чистой сессии, узкий мандат: чужие замечания запрещены (воркер видит только документ + свою линзу).
11
11
  3. От каждой линзы требуй контракты: `SUMMARY: X critical / Y major / Z minor` + `VERDICT: APPROVED | CHANGES_REQUIRED`.
12
12
  4. Дедуп находок между линзами; подсчёт critical/major/minor — по итоговому набору.
@@ -24,9 +24,12 @@ playbook: v1 (executor-lead). Владелец: executor-lead. Меняется
24
24
 
25
25
  Полный текст подзадачи (не ссылка) + точные пути файлов + контракт
26
26
  результата + критерий проверки + блок «Инструменты» (какие тула, известные
27
- ловушки). Передал подходящее — снял с воркера расход на пробы. Плохой
28
- промпт = мусор в ответе — ошибка lead'а. Исследовательские подзадачи
29
- («как устроен X», «почему в Z так») → `worker-researcher`, не делай сам.
27
+ ловушки) + назначенная методика (имена скиллов) и common-контракты
28
+ TASK/RESULT/EVIDENCE/ACCEPTANCE, если платформа не доставляет
29
+ using-skills автоматически. Передал подходящее — снял с воркера расход
30
+ на пробы. Плохой промпт = мусор в ответе — ошибка lead'а.
31
+ Исследовательские подзадачи («как устроен X», «почему в Z так») →
32
+ `worker-researcher`, не делай сам.
30
33
 
31
34
  ## КОНТРАКТ ФИНАЛЬНОГО ОТВЕТА
32
35
 
@@ -46,8 +49,10 @@ Task Decomposition / Workers Used / Validation Results).
46
49
 
47
50
  ## КОНТУР ЛИЦА
48
51
 
49
- - ДО задачи: `wolf search "executor-lead playbook"` — работай по
50
- наибольшей версии.
52
+ - ДО задачи: работай по актуальному (не суперседенному) playbook'у:
53
+ `wolf search "executor-lead playbook" --hide-superseded`, проверь
54
+ owner_skill (agent-id или skill:<agent-id>); канона нет — работай по
55
+ fallback-контуру, доставленному плагином.
51
56
  - ТРИГГЕР ЖАЛОБЫ (обязателен, не на усмотрение): систематически плохо
52
57
  ПРАВИЛО (декомпозиция/промпт воркера/контракт ответа), не тул и не
53
58
  разовый случай: **W1** предписание противоречит брифу — следовать