mister-wolf 2.33.0 → 3.0.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 +11 -9
- package/README.ru.md +11 -9
- package/dist/adapters/cli/commands/complaint-target.d.ts +32 -0
- package/dist/adapters/cli/commands/complaint-target.d.ts.map +1 -0
- package/dist/adapters/cli/commands/complaint-target.js +131 -0
- package/dist/adapters/cli/commands/complaint-target.js.map +1 -0
- package/dist/adapters/cli/commands/memory-call.d.ts.map +1 -1
- package/dist/adapters/cli/commands/memory-call.js +3 -1
- package/dist/adapters/cli/commands/memory-call.js.map +1 -1
- package/dist/adapters/cli/commands/memory-complain.d.ts +2 -7
- package/dist/adapters/cli/commands/memory-complain.d.ts.map +1 -1
- package/dist/adapters/cli/commands/memory-complain.js +17 -36
- package/dist/adapters/cli/commands/memory-complain.js.map +1 -1
- package/dist/adapters/cli/commands/memory-init.d.ts.map +1 -1
- package/dist/adapters/cli/commands/memory-init.js +4 -49
- package/dist/adapters/cli/commands/memory-init.js.map +1 -1
- package/dist/adapters/cli/commands/memory-scaffold.d.ts.map +1 -1
- package/dist/adapters/cli/commands/memory-scaffold.js +4 -1
- package/dist/adapters/cli/commands/memory-scaffold.js.map +1 -1
- package/dist/adapters/cli/commands/memory-upgrade.d.ts.map +1 -1
- package/dist/adapters/cli/commands/memory-upgrade.js +14 -1
- package/dist/adapters/cli/commands/memory-upgrade.js.map +1 -1
- package/dist/adapters/platforms/opencode-config-keys.d.ts +1 -1
- package/dist/adapters/platforms/opencode-config-keys.d.ts.map +1 -1
- package/dist/adapters/platforms/opencode-config-keys.js +1 -1
- package/dist/adapters/platforms/opencode-config-keys.js.map +1 -1
- package/dist/app/use-cases/decisions.d.ts +2 -0
- package/dist/app/use-cases/decisions.d.ts.map +1 -1
- package/dist/app/use-cases/decisions.js +31 -2
- package/dist/app/use-cases/decisions.js.map +1 -1
- package/dist/app/use-cases/generate-recap.js +1 -1
- package/dist/app/use-cases/generate-recap.js.map +1 -1
- package/dist/app/use-cases/get-call-injections.d.ts +3 -2
- package/dist/app/use-cases/get-call-injections.d.ts.map +1 -1
- package/dist/app/use-cases/get-call-injections.js +1 -1
- package/dist/app/use-cases/get-call-injections.js.map +1 -1
- package/dist/app/use-cases/init-project.d.ts +4 -8
- package/dist/app/use-cases/init-project.d.ts.map +1 -1
- package/dist/app/use-cases/init-project.js +3 -36
- package/dist/app/use-cases/init-project.js.map +1 -1
- package/dist/app/use-cases/scaffold-agent.d.ts +3 -2
- package/dist/app/use-cases/scaffold-agent.d.ts.map +1 -1
- package/dist/app/use-cases/scaffold-agent.js +23 -43
- package/dist/app/use-cases/scaffold-agent.js.map +1 -1
- package/package.json +1 -1
- package/templates/base/AGENTS.md +42 -69
- package/templates/base/README.md +1 -1
- package/templates/base/agents/mr-wolf.md +150 -212
- package/templates/base/agents/wolf-architect.md +38 -0
- package/templates/base/agents/wolf-developer.md +42 -0
- package/templates/base/agents/wolf-editor.md +38 -0
- package/templates/base/agents/wolf-expert.md +57 -0
- package/templates/base/agents/wolf-release-engineer.md +38 -0
- package/templates/base/agents/wolf-researcher.md +42 -0
- package/templates/base/agents/wolf-reviewer.md +42 -0
- package/templates/base/agents/wolf-tester.md +38 -0
- package/templates/base/commands/analyze-doc.md +7 -7
- package/templates/base/commands/complain.md +16 -4
- package/templates/base/commands/doc-review.md +4 -4
- package/templates/base/skills/finishing-a-development-branch/SKILL.md +5 -55
- package/templates/base/skills/receiving-code-review/SKILL.md +5 -44
- package/templates/base/skills/requesting-code-review/SKILL.md +5 -52
- package/templates/base/skills/test-driven-development/SKILL.md +7 -7
- package/templates/base/skills/using-git-worktrees/SKILL.md +5 -41
- package/templates/base/skills/using-skills/SKILL.md +17 -18
- package/templates/base/skills/using-skills/references/agent-language.md +2 -2
- package/templates/base/skills/using-skills/references/context-and-memory.md +23 -21
- package/templates/base/skills/using-skills/references/contracts.md +13 -13
- package/templates/base/skills/using-skills/references/division-of-labor.md +25 -17
- package/templates/base/skills/using-skills/references/project-rules.md +9 -9
- package/templates/base/skills/using-skills/references/project-tools.md +5 -5
- package/templates/base/skills/using-skills/references/routes-capabilities.md +3 -3
- package/templates/base/skills/using-skills/references/routes-communication.md +5 -5
- package/templates/base/skills/using-skills/references/routes-execution.md +13 -12
- package/templates/base/skills/using-skills/references/routes-intent.md +3 -3
- package/templates/base/skills/using-skills/references/routes-quality.md +2 -2
- package/templates/base/skills/verification-before-completion/SKILL.md +9 -7
- package/templates/base/skills/wolf-agent-language/SKILL.md +47 -0
- package/templates/base/skills/wolf-brainstorm/SKILL.md +15 -13
- package/templates/base/skills/wolf-code-craft/SKILL.md +4 -2
- package/templates/base/skills/wolf-council/SKILL.md +11 -11
- package/templates/base/skills/wolf-debug/SKILL.md +17 -17
- package/templates/base/skills/wolf-debug/references/techniques.md +2 -2
- package/templates/base/skills/wolf-design/SKILL.md +8 -6
- package/templates/base/skills/wolf-document-readability/SKILL.md +5 -5
- package/templates/base/skills/wolf-execute/SKILL.md +20 -17
- package/templates/base/skills/wolf-execute/references/technical-helpers.md +5 -5
- package/templates/base/skills/wolf-execute/scripts/workflow-helper.py +1 -1
- package/templates/base/skills/wolf-explain/SKILL.md +3 -3
- package/templates/base/skills/wolf-feedback/SKILL.md +9 -9
- package/templates/base/skills/wolf-feedback/references/complaints.md +24 -25
- package/templates/base/skills/wolf-feedback/references/session-diagnosis.md +2 -2
- package/templates/base/skills/wolf-git/SKILL.md +5 -1
- package/templates/base/skills/wolf-handoff/SKILL.md +14 -14
- package/templates/base/skills/wolf-memory/SKILL.md +39 -0
- package/templates/base/skills/wolf-plan/SKILL.md +19 -13
- package/templates/base/skills/wolf-release/SKILL.md +16 -0
- package/templates/base/skills/wolf-release-docs/SKILL.md +5 -5
- package/templates/base/skills/wolf-requirements/SKILL.md +16 -0
- package/templates/base/skills/wolf-review/SKILL.md +26 -24
- package/templates/base/skills/wolf-sdd/SKILL.md +5 -85
- package/templates/base/skills/wolf-skill-intake/SKILL.md +6 -35
- package/templates/base/skills/wolf-software-design/SKILL.md +4 -2
- package/templates/base/skills/wolf-test/SKILL.md +17 -0
- package/templates/base/skills/wolf-testplan/SKILL.md +2 -2
- package/templates/base/skills/wolf-user-report/SKILL.md +6 -6
- package/templates/base/skills/wolf-visual-dialogue/SKILL.md +5 -41
- package/templates/base/skills/wolf-work-strategy/SKILL.md +6 -69
- package/templates/base/skills/writing-skills/SKILL.md +6 -6
- package/templates/opencode/plugins-reserved/README.md +4 -0
- package/update-map.json +135 -70
- package/templates/base/agents/executor-lead.md +0 -335
- package/templates/base/agents/steward.md +0 -149
- package/templates/base/agents/worker-expert.md +0 -135
- package/templates/base/agents/worker-implementer.md +0 -103
- package/templates/base/agents/worker-researcher.md +0 -110
- package/templates/base/agents/worker-reviewer.md +0 -115
- package/templates/base/playbooks/complaint-protocol.md +0 -19
- package/templates/base/playbooks/executor-lead-playbook.md +0 -103
- package/templates/base/playbooks/steward-nastavnik.md +0 -90
- package/templates/base/playbooks/worker-expert-playbook.md +0 -35
- package/templates/base/playbooks/worker-implementer-playbook.md +0 -80
- package/templates/base/playbooks/worker-researcher-playbook.md +0 -71
- package/templates/base/playbooks/worker-reviewer-playbook.md +0 -37
- /package/templates/opencode/{plugins → plugins-reserved}/wolf-router.ts +0 -0
- /package/templates/opencode/{plugins → plugins-reserved}/wolf-session-start.js +0 -0
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { join } from 'path';
|
|
2
2
|
import { UserFacingError } from '../../domain/errors.js';
|
|
3
|
-
import { createFaceVersion } from './create-face-version.js';
|
|
4
3
|
import { recordRelation } from './record-relation.js';
|
|
5
|
-
/** Playbook-источник рамки (
|
|
4
|
+
/** Playbook-источник рамки (--from-playbook): лицо — type 'face'; legacy — note+facet howto
|
|
6
5
|
* (старые файлы читаются как note — alias) и старый тип playbook. */
|
|
7
6
|
function isPlaybookNote(pb) {
|
|
8
7
|
if (!pb)
|
|
@@ -13,7 +12,6 @@ function isPlaybookNote(pb) {
|
|
|
13
12
|
(pb.facet === 'howto' || pb.alias_origin === 'playbook')));
|
|
14
13
|
}
|
|
15
14
|
export const SCAFFOLD_KINDS = ['agent', 'skill', 'command', 'artifact'];
|
|
16
|
-
export const DEFAULT_SCAFFOLD_MODEL = 'zai-coding-plan/glm-5.3';
|
|
17
15
|
/** Каталог command — единственного числа (.opencode/command/), agents и skills — как в opencode. */
|
|
18
16
|
export function frameRelativePath(kind, name) {
|
|
19
17
|
if (kind === 'agent')
|
|
@@ -23,28 +21,32 @@ export function frameRelativePath(kind, name) {
|
|
|
23
21
|
return join('.opencode', 'command', `${name}.md`);
|
|
24
22
|
}
|
|
25
23
|
function defaultPersona(name) {
|
|
26
|
-
return `You are ${name}.
|
|
24
|
+
return `You are ${name}. Follow the methodology in this file.`;
|
|
27
25
|
}
|
|
28
|
-
function frameContent(input
|
|
29
|
-
const
|
|
26
|
+
function frameContent(input) {
|
|
27
|
+
const playbookId = input.fromPlaybook;
|
|
28
|
+
const description = playbookId
|
|
29
|
+
? `${input.name} frame: methodology content is in Wolf memory (playbook ${playbookId})`
|
|
30
|
+
: `${input.name} frame: fill in the methodology in this file`;
|
|
30
31
|
if (input.kind === 'agent') {
|
|
31
32
|
const persona = input.persona?.trim() !== '' && input.persona !== undefined ? input.persona.trim() : defaultPersona(input.name);
|
|
32
|
-
const model = input.model?.trim() !== '' && input.model !== undefined ? input.model.trim() :
|
|
33
|
-
// agent-id обязан быть в ТЕЛЕ (frontmatter не попадает в system-промпт) — грабля opencode.
|
|
33
|
+
const model = input.model?.trim() !== '' && input.model !== undefined ? input.model.trim() : undefined;
|
|
34
34
|
return [
|
|
35
35
|
'---',
|
|
36
36
|
`description: ${description}`,
|
|
37
37
|
'mode: all',
|
|
38
|
-
`model: ${model}
|
|
38
|
+
...(model ? [`model: ${model}`] : []),
|
|
39
39
|
'temperature: 0.2',
|
|
40
40
|
'---',
|
|
41
|
-
`agent-id: ${ownerSkill}`,
|
|
42
41
|
'',
|
|
43
42
|
persona,
|
|
44
43
|
'',
|
|
45
44
|
].join('\n');
|
|
46
45
|
}
|
|
47
46
|
if (input.kind === 'skill') {
|
|
47
|
+
const body = playbookId
|
|
48
|
+
? `The methodology content is in Wolf memory (playbook ${playbookId}); this file is only a frame.`
|
|
49
|
+
: 'This file is only a frame: fill in the methodology here.';
|
|
48
50
|
return [
|
|
49
51
|
'---',
|
|
50
52
|
`name: ${input.name}`,
|
|
@@ -53,11 +55,13 @@ function frameContent(input, ownerSkill, playbookId) {
|
|
|
53
55
|
'',
|
|
54
56
|
`# ${input.name} — frame skill`,
|
|
55
57
|
'',
|
|
56
|
-
|
|
57
|
-
'Work strictly by the playbook delivered by the plugin into the system prompt.',
|
|
58
|
+
body,
|
|
58
59
|
'',
|
|
59
60
|
].join('\n');
|
|
60
61
|
}
|
|
62
|
+
const body = playbookId
|
|
63
|
+
? `The methodology content is in Wolf memory (playbook ${playbookId}).`
|
|
64
|
+
: 'Fill in the methodology in this file.';
|
|
61
65
|
return [
|
|
62
66
|
'---',
|
|
63
67
|
`description: ${description}. Usage: /${input.name} <task>`,
|
|
@@ -65,14 +69,14 @@ function frameContent(input, ownerSkill, playbookId) {
|
|
|
65
69
|
'---',
|
|
66
70
|
'Execute: $ARGUMENTS',
|
|
67
71
|
'',
|
|
68
|
-
|
|
72
|
+
body,
|
|
69
73
|
'',
|
|
70
74
|
].join('\n');
|
|
71
75
|
}
|
|
72
76
|
export async function scaffoldFrame(deps, input) {
|
|
73
77
|
const run = async () => {
|
|
74
78
|
const framePath = frameRelativePath(input.kind, input.name);
|
|
75
|
-
// Идемпотентность
|
|
79
|
+
// Идемпотентность до любых записей.
|
|
76
80
|
if (await deps.fs.exists(join(deps.baseDir, framePath))) {
|
|
77
81
|
throw new UserFacingError(`${framePath} already exists`);
|
|
78
82
|
}
|
|
@@ -92,37 +96,13 @@ export async function scaffoldFrame(deps, input) {
|
|
|
92
96
|
: input.name;
|
|
93
97
|
}
|
|
94
98
|
else {
|
|
95
|
-
//
|
|
96
|
-
//
|
|
97
|
-
// Стюард, wolf face new). Проверка ДО любых записей.
|
|
98
|
-
const existingFace = (await deps.store.list({ type: 'face' })).find((o) => o.owner_skill === input.name && o.status === 'active');
|
|
99
|
-
if (existingFace) {
|
|
100
|
-
throw new UserFacingError(`Живое лицо "${input.name}" уже существует (${existingFace.id}, v${existingFace.version}): ` +
|
|
101
|
-
'scaffold его не перезаписывает. Выбери другое имя либо обнови лицо штатным контуром Стюарда ' +
|
|
102
|
-
'(wolf face new).');
|
|
103
|
-
}
|
|
104
|
-
// T-05 (design §scaffoldAgent): лицо нового агента — через face-контракт
|
|
105
|
-
// createFaceVersion с initiator='seed' (внутренний путь, ADR-6). lock не
|
|
106
|
-
// передаём: мы уже внутри deps.lock.withLock (FsMemoryLock не реентерабелен).
|
|
107
|
-
const { face } = await createFaceVersion({
|
|
108
|
-
store: deps.store,
|
|
109
|
-
log: deps.log,
|
|
110
|
-
clock: deps.clock,
|
|
111
|
-
idGen: deps.idGen,
|
|
112
|
-
index: deps.index,
|
|
113
|
-
declarations: deps.declarations,
|
|
114
|
-
}, {
|
|
115
|
-
command: 'seed',
|
|
116
|
-
ownerSkill: input.name,
|
|
117
|
-
reason: `scaffold stub for ${input.kind}:${input.name} frame`,
|
|
118
|
-
title: `Playbook: ${input.name}`,
|
|
119
|
-
body: `Scaffold stub for the ${input.kind}:${input.name} frame. Fill in steps and methodology.`,
|
|
120
|
-
});
|
|
121
|
-
playbookId = face.id;
|
|
99
|
+
// R-13b: без --from-playbook объект памяти не создаётся — каркас самодостаточен;
|
|
100
|
+
// живое лицо того же owner_skill не блокирует (штатный контур лица — Стюард, wolf face new).
|
|
122
101
|
ownerSkill = input.name;
|
|
123
102
|
}
|
|
124
|
-
await deps.fs.writeFile(join(deps.baseDir, framePath), frameContent(input
|
|
125
|
-
|
|
103
|
+
await deps.fs.writeFile(join(deps.baseDir, framePath), frameContent(input));
|
|
104
|
+
// Связывать нечего без playbook-источника.
|
|
105
|
+
if (deps.relations && playbookId !== undefined) {
|
|
126
106
|
await recordRelation({ relations: deps.relations, idGen: deps.idGen }, deps.clock.now(), playbookId, 'owner_skill', `${input.kind}:${input.name}`);
|
|
127
107
|
}
|
|
128
108
|
return { playbookId, ownerSkill, framePath };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scaffold-agent.js","sourceRoot":"","sources":["../../../src/app/use-cases/scaffold-agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAW5B,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"scaffold-agent.js","sourceRoot":"","sources":["../../../src/app/use-cases/scaffold-agent.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/templates/base/AGENTS.md
CHANGED
|
@@ -1,71 +1,44 @@
|
|
|
1
|
-
<!-- wolf:onboarding
|
|
2
|
-
|
|
3
|
-
# Mr. Wolf —
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
(
|
|
15
|
-
`
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
как адресные рабочие note/context/history Wolf, не lesson/complaint. Запись документа — лишь в точный файл/раздел
|
|
43
|
-
TASK. Полезные выводы интегрирует L1; он задаёт рабочее место вне документации
|
|
44
|
-
и обеспечивает сохранность нужных evidence до очистки/передачи.
|
|
45
|
-
|
|
46
|
-
## Лестница приоритетов
|
|
47
|
-
|
|
48
|
-
1. Явные указания пользователя.
|
|
49
|
-
2. Память Wolf (решения, правила, уроки — `wolf brief`/`wolf search`).
|
|
50
|
-
3. Свои догадки — только если пусты 1 и 2, и уточни у пользователя.
|
|
51
|
-
|
|
52
|
-
## Указатели
|
|
53
|
-
|
|
54
|
-
- Документация: `docs/README.md`
|
|
55
|
-
- Защита файла от обновления: `protect: true` (или `protect: X.Y.Z`) в YAML-frontmatter
|
|
56
|
-
agent/skill/command-файла; конфликты разбираются `wolf upgrade --review`,
|
|
57
|
-
снятие защиты — `wolf upgrade --resolve <файл>=take|keep`.
|
|
1
|
+
<!-- wolf:onboarding v4 -->
|
|
2
|
+
|
|
3
|
+
# Mr. Wolf — процесс проекта
|
|
4
|
+
|
|
5
|
+
Проект ведёт агент mr-wolf: общение с пользователем и собственное выполнение;
|
|
6
|
+
для специализации и объёма он нанимает исполнителей wolf-* напрямую:
|
|
7
|
+
wolf-researcher, wolf-architect, wolf-developer, wolf-reviewer, wolf-tester,
|
|
8
|
+
wolf-editor, wolf-release-engineer, wolf-expert. Исполнители не делегируют
|
|
9
|
+
дальше; промежуточного уровня нет.
|
|
10
|
+
|
|
11
|
+
## Протокол сессии
|
|
12
|
+
|
|
13
|
+
1. Начинай с состояния проекта: запусти `wolf call` и `wolf brief`
|
|
14
|
+
(CLI: установленный `wolf`, или `node <путь-к-repo-wolf>/dist/bootstrap/cli.js`;
|
|
15
|
+
MCP-инструменты: `mr-wolf_*`). Возвращённое — активное руководство проекта.
|
|
16
|
+
2. Значимое фиксируй в памяти Wolf: решения — `wolf add --type decision`,
|
|
17
|
+
уроки — `--type lesson`, блокеры — thread (`wolf thread add`, затем
|
|
18
|
+
`wolf transition <id> blocked`), устаревшее — `wolf supersede <old-id> <new-id>`.
|
|
19
|
+
3. Состояние проекта спрашивай у Wolf (`wolf search`, `wolf get`, `wolf brief`):
|
|
20
|
+
статические списки в файлах устаревают. Память Wolf — единственный источник
|
|
21
|
+
состояния проекта.
|
|
22
|
+
|
|
23
|
+
## Адресные входы
|
|
24
|
+
|
|
25
|
+
- Ведущий без доставленного состояния восстанавливает thread, решения и относящиеся
|
|
26
|
+
правила адресно через память Wolf, не читает всё подряд.
|
|
27
|
+
- Исполнитель с TASK не запускает общий onboarding: читает назначенные входы
|
|
28
|
+
и проектные ограничения, недостающее запрашивает у ведущего.
|
|
29
|
+
- Новая самостоятельная часть — свежий исполнитель; reuse прежнего — только
|
|
30
|
+
по условиям продолжения; после одного корректирующего возврата — новый экземпляр.
|
|
31
|
+
- Собственную работу ведущий проверяет независимо по тем же критериям.
|
|
32
|
+
|
|
33
|
+
## Документация этапа и правила
|
|
34
|
+
|
|
35
|
+
- FULL сохраняет docs/dev/<date>-<feat>/ — пакет цели полным списком в объявленном
|
|
36
|
+
порядке (требования, дизайн, тест-план, план и другие по потоку проекта).
|
|
37
|
+
Рабочие отчёты, черновики, checkpoint и логи в docs/dev не кладутся; исполнитель
|
|
38
|
+
возвращает результат сообщением, нужное между сессиями сохраняет ведущий.
|
|
39
|
+
- Лестница приоритетов: явные указания пользователя → память Wolf
|
|
40
|
+
(`wolf brief`/`wolf search`) → свои догадки; при пустых первых двух — уточнить
|
|
41
|
+
у пользователя.
|
|
58
42
|
- Номер версии всегда полный X.Y.Z — в планах, тредах, волнах, тегах и разговоре.
|
|
59
|
-
Голый минор («2.16») запрещён как имя релиза/волны/треда/плана: релизов «2.16» не
|
|
60
|
-
существует, есть «2.16.0», «2.16.1» (пример корректного полного номера: 2.16.2).
|
|
61
|
-
<!-- /wolf:onboarding -->
|
|
62
43
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
Сохраняемый вспомогательный инструмент живёт в принятом каталоге проекта,
|
|
66
|
-
карточка Wolf ссылается на него. Если места нет, L1 обеспечивает выбор/создание;
|
|
67
|
-
при неоднозначности L0 уточняет у пользователя, решение фиксируется в памяти.
|
|
68
|
-
Нужный для воспроизведения или продолжения скрипт не остаётся только в tmp:
|
|
69
|
-
L2 сообщает назначение/путь/проверку/нужность, L1 сохраняет и регистрирует.
|
|
70
|
-
Подробности — using-skills/references/project-tools.md. Это часть завершения
|
|
71
|
-
уже разрешённой работы, без обязательной универсализации разовых проб.
|
|
44
|
+
<!-- /wolf:onboarding -->
|
package/templates/base/README.md
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Neutral base-set templates (agents/skills/commands
|
|
1
|
+
Neutral base-set templates (agents/skills/commands). Content ships in phase B.
|