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.
- package/README.md +4 -16
- package/README.ru.md +19 -26
- package/dist/adapters/cli/cli-entry.d.ts.map +1 -1
- package/dist/adapters/cli/cli-entry.js +6 -0
- package/dist/adapters/cli/cli-entry.js.map +1 -1
- package/dist/adapters/cli/commands/memory-add.d.ts.map +1 -1
- package/dist/adapters/cli/commands/memory-add.js +26 -3
- package/dist/adapters/cli/commands/memory-add.js.map +1 -1
- package/dist/adapters/cli/commands/memory-call.d.ts.map +1 -1
- package/dist/adapters/cli/commands/memory-call.js +22 -2
- package/dist/adapters/cli/commands/memory-call.js.map +1 -1
- package/dist/adapters/cli/commands/memory-doctor.d.ts.map +1 -1
- package/dist/adapters/cli/commands/memory-doctor.js +57 -4
- package/dist/adapters/cli/commands/memory-doctor.js.map +1 -1
- package/dist/adapters/cli/commands/memory-init.d.ts +2 -11
- package/dist/adapters/cli/commands/memory-init.d.ts.map +1 -1
- package/dist/adapters/cli/commands/memory-init.js +59 -112
- package/dist/adapters/cli/commands/memory-init.js.map +1 -1
- package/dist/adapters/cli/commands/memory-promote.d.ts +3 -0
- package/dist/adapters/cli/commands/memory-promote.d.ts.map +1 -0
- package/dist/adapters/cli/commands/memory-promote.js +15 -0
- package/dist/adapters/cli/commands/memory-promote.js.map +1 -0
- package/dist/adapters/cli/type-command-generator.d.ts.map +1 -1
- package/dist/adapters/cli/type-command-generator.js +5 -0
- package/dist/adapters/cli/type-command-generator.js.map +1 -1
- package/dist/adapters/fs/fs-project-initializer.d.ts.map +1 -1
- package/dist/adapters/fs/fs-project-initializer.js +9 -6
- package/dist/adapters/fs/fs-project-initializer.js.map +1 -1
- package/dist/adapters/fs/memory-root.d.ts +13 -0
- package/dist/adapters/fs/memory-root.d.ts.map +1 -0
- package/dist/adapters/fs/memory-root.js +34 -0
- package/dist/adapters/fs/memory-root.js.map +1 -0
- package/dist/adapters/render/opencode/opencode-renderer.d.ts.map +1 -1
- package/dist/adapters/render/opencode/opencode-renderer.js +16 -0
- package/dist/adapters/render/opencode/opencode-renderer.js.map +1 -1
- package/dist/app/use-cases/add-memory-object.d.ts +8 -0
- package/dist/app/use-cases/add-memory-object.d.ts.map +1 -1
- package/dist/app/use-cases/add-memory-object.js +21 -1
- package/dist/app/use-cases/add-memory-object.js.map +1 -1
- package/dist/app/use-cases/get-call-injections.d.ts +9 -0
- package/dist/app/use-cases/get-call-injections.d.ts.map +1 -1
- package/dist/app/use-cases/get-call-injections.js +24 -3
- package/dist/app/use-cases/get-call-injections.js.map +1 -1
- package/dist/app/use-cases/gitignore-block.d.ts +11 -0
- package/dist/app/use-cases/gitignore-block.d.ts.map +1 -0
- package/dist/app/use-cases/gitignore-block.js +29 -0
- package/dist/app/use-cases/gitignore-block.js.map +1 -0
- package/dist/app/use-cases/init-project.d.ts +30 -4
- package/dist/app/use-cases/init-project.d.ts.map +1 -1
- package/dist/app/use-cases/init-project.js +77 -11
- package/dist/app/use-cases/init-project.js.map +1 -1
- package/dist/app/use-cases/promote-memory.d.ts +22 -0
- package/dist/app/use-cases/promote-memory.d.ts.map +1 -0
- package/dist/app/use-cases/promote-memory.js +31 -0
- package/dist/app/use-cases/promote-memory.js.map +1 -0
- package/dist/app/use-cases/repair-storage.d.ts +31 -0
- package/dist/app/use-cases/repair-storage.d.ts.map +1 -0
- package/dist/app/use-cases/repair-storage.js +65 -0
- package/dist/app/use-cases/repair-storage.js.map +1 -0
- package/dist/app/use-cases/supersede-memory-object.d.ts.map +1 -1
- package/dist/app/use-cases/supersede-memory-object.js +14 -0
- package/dist/app/use-cases/supersede-memory-object.js.map +1 -1
- package/dist/bootstrap/container.d.ts +2 -0
- package/dist/bootstrap/container.d.ts.map +1 -1
- package/dist/bootstrap/container.js +10 -6
- package/dist/bootstrap/container.js.map +1 -1
- package/dist/domain/governance.d.ts.map +1 -1
- package/dist/domain/governance.js +2 -1
- package/dist/domain/governance.js.map +1 -1
- package/dist/domain/mask-secrets.d.ts +8 -0
- package/dist/domain/mask-secrets.d.ts.map +1 -0
- package/dist/domain/mask-secrets.js +20 -0
- package/dist/domain/mask-secrets.js.map +1 -0
- package/dist/domain/memory-types.d.ts +2 -2
- package/dist/domain/memory-types.d.ts.map +1 -1
- package/dist/domain/memory-types.js +3 -1
- package/dist/domain/memory-types.js.map +1 -1
- package/dist/domain/schemas/memory-event-schema.d.ts +1 -0
- package/dist/domain/schemas/memory-event-schema.d.ts.map +1 -1
- package/dist/domain/schemas/memory-event-schema.js +1 -0
- package/dist/domain/schemas/memory-event-schema.js.map +1 -1
- package/dist/ports/base-set-renderer.port.d.ts +5 -1
- package/dist/ports/base-set-renderer.port.d.ts.map +1 -1
- package/package.json +1 -1
- package/templates/.wolf/router.log +1 -1
- package/templates/base/AGENTS.md +3 -2
- package/templates/base/agents/executor-lead.md +4 -0
- package/templates/base/agents/mr-wolf.md +3 -2
- package/templates/base/agents/steward.md +4 -2
- package/templates/base/agents/worker-implementer.md +5 -2
- package/templates/base/agents/worker-researcher.md +4 -2
- package/templates/base/agents/worker-reviewer.md +9 -7
- package/templates/base/commands/analyze-doc.md +1 -1
- package/templates/base/commands/complain.md +1 -1
- package/templates/base/commands/doc-review.md +1 -1
- package/templates/base/playbooks/executor-lead-playbook.md +10 -5
- package/templates/base/playbooks/steward-nastavnik.md +5 -4
- package/templates/base/playbooks/worker-implementer-playbook.md +17 -7
- package/templates/base/playbooks/worker-researcher-playbook.md +5 -2
- package/templates/base/playbooks/worker-reviewer-playbook.md +21 -8
- package/templates/base/skills/finishing-a-development-branch/SKILL.md +19 -211
- package/templates/base/skills/receiving-code-review/SKILL.md +12 -28
- package/templates/base/skills/requesting-code-review/SKILL.md +11 -110
- package/templates/base/skills/test-driven-development/SKILL.md +18 -396
- package/templates/base/skills/using-git-worktrees/SKILL.md +15 -177
- package/templates/base/skills/using-skills/SKILL.md +38 -123
- package/templates/base/skills/verification-before-completion/SKILL.md +16 -157
- package/templates/base/skills/wolf-brainstorm/SKILL.md +17 -168
- package/templates/base/skills/wolf-debug/SKILL.md +15 -281
- package/templates/base/skills/wolf-design/SKILL.md +16 -35
- package/templates/base/skills/wolf-execute/SKILL.md +13 -101
- package/templates/base/skills/wolf-handoff/SKILL.md +22 -88
- package/templates/base/skills/wolf-plan/SKILL.md +18 -181
- package/templates/base/skills/wolf-review/SKILL.md +25 -64
- package/templates/base/skills/wolf-sdd/SKILL.md +17 -248
- package/templates/base/skills/wolf-skill-intake/SKILL.md +14 -57
- package/templates/base/skills/wolf-testplan/SKILL.md +15 -27
- package/templates/base/skills/writing-skills/SKILL.md +16 -30
- package/templates/opencode/plugins/wolf-router.ts +2 -1
- 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,
|
|
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;
|
|
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(
|
|
55
|
+
const log = new JsonlEventLog(eventsPath(mem.root));
|
|
54
56
|
return {
|
|
55
|
-
store: new MarkdownMemoryStore(
|
|
57
|
+
store: new MarkdownMemoryStore(mem.root, undefined, log),
|
|
56
58
|
log,
|
|
57
|
-
index: new SQLiteSearchIndex(indexPath(
|
|
58
|
-
relations: new JsonlRelationLog(relationsPath(
|
|
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(
|
|
65
|
-
declarations: loadDeclarations(
|
|
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":"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;AACtF,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAClG,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,aAAa,EAA8B,MAAM,2BAA2B,CAAC;AACtF,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AACvE,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,yFAAyF;AACzF,SAAS,gBAAgB,CAAC,OAAe;IACvC,IAAI,CAAC;QACH,OAAO,CAAC,GAAG,aAAa,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IACxE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,aAAa,CAAC;IACvB,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,SAAS,gBAAgB,CAAC,OAAe;IACvC,IAAI,CAAC;QACH,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;YAAE,OAAO;QAC1D,MAAM,OAAO,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;QAC/C,IAAI,OAAO,KAAK,IAAI;YAAE,OAAO,CAAC,mEAAmE;QACjG,IAAI,gBAAgB,CAAC,iBAAiB,EAAE,CAAC,CAAC,oBAAoB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACnF,CAAC;IAAC,MAAM,CAAC;QACP,cAAc;IAChB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,OAAe;IAChD,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC1B,MAAM,EAAE,GAAG,IAAI,YAAY,EAAE,CAAC;IAC9B,sEAAsE;IACtE,MAAM,GAAG,GAAG,IAAI,aAAa,CAAC,UAAU,CAAC,
|
|
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,
|
|
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
|
-
|
|
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,
|
|
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: "
|
|
60
|
-
readonly
|
|
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"memory-types.d.ts","sourceRoot":"","sources":["../../src/domain/memory-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -39,7 +39,9 @@ const CORE_TAXONOMY_DECLS = [
|
|
|
39
39
|
subdirThread: null,
|
|
40
40
|
subdirShared: 'rules',
|
|
41
41
|
fields: {
|
|
42
|
-
|
|
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":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAuD9C,MAAM,IAAI,GAA4B;IACpC,QAAQ;IACR,MAAM;IACN,UAAU;IACV,OAAO;IACP,aAAa;IACb,YAAY;IACZ,UAAU;IACV,QAAQ;IACR,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;CACX,CAAC;AAEF,6EAA6E;AAC7E,4FAA4F;AAC5F,MAAM,CAAC,MAAM,wBAAwB,GAAsB;IACzD,OAAO;IACP,SAAS;IACT,SAAS;IACT,QAAQ;IACR,SAAS;IACT,QAAQ;IACR,YAAY;CACb,CAAC;AAEF,0EAA0E;AAC1E,4DAA4D;AAC5D,uEAAuE;AACvE,8EAA8E;AAC9E,MAAM,mBAAmB,GAAG;IAC1B;QACE,IAAI,EAAE,MAAM;QACZ,oEAAoE;QACpE,qFAAqF;QACrF,SAAS,EAAE,CAAC,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC;QAC/F,YAAY,EAAE,IAAI;QAClB,YAAY,EAAE,OAAO;QACrB,MAAM,EAAE;YACN,KAAK,EAAE,EAAE,IAAI,EAAE,
|
|
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
|
|
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"}
|
|
@@ -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;
|
|
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
|
-
|
|
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;
|
|
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 +1 @@
|
|
|
1
|
-
2026-10-
|
|
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
|
package/templates/base/AGENTS.md
CHANGED
|
@@ -7,10 +7,11 @@
|
|
|
7
7
|
## Протокол холодного старта (каждая свежая сессия)
|
|
8
8
|
|
|
9
9
|
1. **Начинай с состояния проекта:** запусти `wolf call` и `wolf brief`
|
|
10
|
-
(CLI: `node dist/bootstrap/cli.js
|
|
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`, блокеры —
|
|
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/
|
|
27
|
+
категории Critical/Major/Minor). Нет playbook'а — работай
|
|
28
28
|
по рамке (безликий режим).
|
|
29
|
-
- **ДОСТАВКА** — plugin-inject (основной); fallback:
|
|
30
|
-
|
|
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"`,
|
|
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"` —
|
|
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
|
-
|
|
29
|
-
|
|
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
|
-
- ДО задачи:
|
|
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** предписание противоречит брифу — следовать
|