mister-wolf 2.14.1 → 2.15.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 +2 -0
- package/README.ru.md +2 -0
- package/dist/adapters/cli/commands/memory-doctor.d.ts.map +1 -1
- package/dist/adapters/cli/commands/memory-doctor.js +32 -1
- package/dist/adapters/cli/commands/memory-doctor.js.map +1 -1
- package/dist/adapters/cli/commands/memory-scaffold.d.ts.map +1 -1
- package/dist/adapters/cli/commands/memory-scaffold.js +15 -0
- package/dist/adapters/cli/commands/memory-scaffold.js.map +1 -1
- package/dist/adapters/cli/commands/memory-sync.d.ts.map +1 -1
- package/dist/adapters/cli/commands/memory-sync.js +8 -0
- package/dist/adapters/cli/commands/memory-sync.js.map +1 -1
- package/dist/adapters/fs/artifact-fs.d.ts +4 -0
- package/dist/adapters/fs/artifact-fs.d.ts.map +1 -0
- package/dist/adapters/fs/artifact-fs.js +29 -0
- package/dist/adapters/fs/artifact-fs.js.map +1 -0
- package/dist/app/use-cases/artifact-front-matter.d.ts +5 -0
- package/dist/app/use-cases/artifact-front-matter.d.ts.map +1 -0
- package/dist/app/use-cases/artifact-front-matter.js +16 -0
- package/dist/app/use-cases/artifact-front-matter.js.map +1 -0
- package/dist/app/use-cases/lint-artifacts.d.ts +18 -0
- package/dist/app/use-cases/lint-artifacts.d.ts.map +1 -0
- package/dist/app/use-cases/lint-artifacts.js +249 -0
- package/dist/app/use-cases/lint-artifacts.js.map +1 -0
- package/dist/app/use-cases/scaffold-agent.d.ts +1 -1
- package/dist/app/use-cases/scaffold-agent.d.ts.map +1 -1
- package/dist/app/use-cases/scaffold-agent.js +1 -1
- package/dist/app/use-cases/scaffold-agent.js.map +1 -1
- package/dist/app/use-cases/scaffold-artifact.d.ts +22 -0
- package/dist/app/use-cases/scaffold-artifact.d.ts.map +1 -0
- package/dist/app/use-cases/scaffold-artifact.js +153 -0
- package/dist/app/use-cases/scaffold-artifact.js.map +1 -0
- package/dist/app/use-cases/sync-artifact-index.d.ts +20 -0
- package/dist/app/use-cases/sync-artifact-index.d.ts.map +1 -0
- package/dist/app/use-cases/sync-artifact-index.js +68 -0
- package/dist/app/use-cases/sync-artifact-index.js.map +1 -0
- package/dist/domain/memory-types.d.ts +12 -0
- package/dist/domain/memory-types.d.ts.map +1 -1
- package/dist/domain/memory-types.js +4 -0
- package/dist/domain/memory-types.js.map +1 -1
- package/dist/domain/schemas/relation-schema.d.ts +1 -1
- package/package.json +1 -1
- package/templates/.wolf/router.log +1 -1
- package/templates/base/skills/finishing-a-development-branch/SKILL.md +32 -13
- package/templates/base/skills/receiving-code-review/SKILL.md +39 -0
- package/templates/base/skills/test-driven-development/SKILL.md +59 -37
- package/templates/base/skills/using-git-worktrees/SKILL.md +25 -15
- package/templates/base/skills/verification-before-completion/SKILL.md +39 -25
- package/templates/base/skills/wolf-brainstorm/SKILL.md +51 -36
- package/templates/base/skills/wolf-design/SKILL.md +45 -0
- package/templates/base/skills/wolf-execute/SKILL.md +30 -13
- package/templates/base/skills/wolf-plan/SKILL.md +38 -21
- package/templates/base/skills/wolf-review/SKILL.md +33 -14
- package/templates/base/skills/wolf-sdd/SKILL.md +38 -16
- package/templates/base/skills/wolf-skill-intake/SKILL.md +66 -0
- package/templates/base/skills/wolf-testplan/SKILL.md +37 -0
- package/templates/base/skills/writing-skills/SKILL.md +40 -0
|
@@ -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;AAC5B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAUxB,OAAO,EAAE,cAAc,EAAyB,MAAM,8BAA8B,CAAC;AACrF,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,4EAA4E;AAC5E,0EAA0E;AAC1E,MAAM,kBAAkB,GAAG,eAAe,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE;IACjE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACtC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;CAClC,CAAC,CAAC;AAGH,sFAAsF;AACtF,SAAS,cAAc,CAAC,EAAuB;IAC7C,IAAI,CAAC,EAAE;QAAE,OAAO,KAAK,CAAC;IACtB,OAAO,CACL,EAAE,CAAC,IAAI,KAAK,UAAU;QACtB,CAAC,EAAE,CAAC,IAAI,KAAK,MAAM;YACjB,CAAE,EAAyB,CAAC,KAAK,KAAK,OAAO,IAAK,EAAgC,CAAC,YAAY,KAAK,UAAU,CAAC,CAAC,CACnH,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"scaffold-agent.js","sourceRoot":"","sources":["../../../src/app/use-cases/scaffold-agent.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Clock } from '../../ports/clock.port.js';
|
|
2
|
+
import { FileSystem } from '../../ports/file-system.port.js';
|
|
3
|
+
export interface ScaffoldArtifactDeps {
|
|
4
|
+
clock: Clock;
|
|
5
|
+
fs: Pick<FileSystem, 'exists' | 'writeFile'>;
|
|
6
|
+
baseDir: string;
|
|
7
|
+
}
|
|
8
|
+
export interface ScaffoldArtifactInput {
|
|
9
|
+
slug: string;
|
|
10
|
+
fix: boolean;
|
|
11
|
+
}
|
|
12
|
+
export interface ScaffoldArtifactResult {
|
|
13
|
+
dir: string;
|
|
14
|
+
files: string[];
|
|
15
|
+
}
|
|
16
|
+
/** Анатомия §4.1 спеки — дословно (7 секций + анатомия записи REQ/NFR). */
|
|
17
|
+
export declare function requirementsTemplate(slug: string, title: string, created: string, fix: boolean): string;
|
|
18
|
+
export declare function designTemplate(slug: string, title: string, created: string): string;
|
|
19
|
+
export declare function planTemplate(slug: string, title: string, created: string): string;
|
|
20
|
+
export declare function testPlanTemplate(slug: string, title: string, created: string): string;
|
|
21
|
+
export declare function scaffoldArtifact(deps: ScaffoldArtifactDeps, input: ScaffoldArtifactInput): Promise<ScaffoldArtifactResult>;
|
|
22
|
+
//# sourceMappingURL=scaffold-artifact.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scaffold-artifact.d.ts","sourceRoot":"","sources":["../../../src/app/use-cases/scaffold-artifact.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAK7D,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,KAAK,CAAC;IACb,EAAE,EAAE,IAAI,CAAC,UAAU,EAAE,QAAQ,GAAG,WAAW,CAAC,CAAC;IAC7C,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,OAAO,CAAC;CACd;AAED,MAAM,WAAW,sBAAsB;IACrC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAMD,2EAA2E;AAC3E,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,MAAM,CA2DvG;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAqBnF;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAcjF;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAmBrF;AAED,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,oBAAoB,EAC1B,KAAK,EAAE,qBAAqB,GAC3B,OAAO,CAAC,sBAAsB,CAAC,CA2BjC"}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
import { join } from 'path';
|
|
2
|
+
import { UserFacingError } from '../../domain/errors.js';
|
|
3
|
+
const SLUG_RE = /^[a-z0-9][a-z0-9-]*$/;
|
|
4
|
+
function frontMatter(slug, title, created) {
|
|
5
|
+
return ['---', `slug: ${slug}`, `title: ${title}`, 'status: draft', `created: ${created}`, '---', ''].join('\n');
|
|
6
|
+
}
|
|
7
|
+
/** Анатомия §4.1 спеки — дословно (7 секций + анатомия записи REQ/NFR). */
|
|
8
|
+
export function requirementsTemplate(slug, title, created, fix) {
|
|
9
|
+
if (fix) {
|
|
10
|
+
return [
|
|
11
|
+
frontMatter(slug, title, created),
|
|
12
|
+
`# ${title} — требования и журнал изменений (fix-профиль)`,
|
|
13
|
+
'',
|
|
14
|
+
'## 1. Контекст и проблема',
|
|
15
|
+
'<!-- Что наблюдаем, где, с какой версии; эффект на проект. -->',
|
|
16
|
+
'',
|
|
17
|
+
'## 2. Функциональные требования',
|
|
18
|
+
'<!-- Записи REQ-NN при необходимости; в простом фиксе секция остаётся пустой. -->',
|
|
19
|
+
'',
|
|
20
|
+
'## 3. Журнал изменений (CR) — содержание фикса',
|
|
21
|
+
'<!-- Append-only. Каждая запись: дата, что/почему, кем утверждено, downstream-перегенерации. -->',
|
|
22
|
+
'',
|
|
23
|
+
`- CR-${created}-01: <что и почему> — утвердил <кто>; downstream: <артефакты или «нет»>`,
|
|
24
|
+
'',
|
|
25
|
+
].join('\n');
|
|
26
|
+
}
|
|
27
|
+
return [
|
|
28
|
+
frontMatter(slug, title, created),
|
|
29
|
+
`# ${title} — функциональные требования`,
|
|
30
|
+
'',
|
|
31
|
+
'## 1. Контекст и проблема',
|
|
32
|
+
'<!-- Зачем, прозой, бизнес-языком; метрика успеха. -->',
|
|
33
|
+
'',
|
|
34
|
+
'## 2. Область',
|
|
35
|
+
'<!-- Что входит; НЕ входит (не-цели уровня требований). -->',
|
|
36
|
+
'',
|
|
37
|
+
'## 3. Глоссарий',
|
|
38
|
+
'<!-- Бизнес-термины фичи, если появились новые. -->',
|
|
39
|
+
'',
|
|
40
|
+
'## 4. Функциональные требования',
|
|
41
|
+
'',
|
|
42
|
+
'### REQ-01 — <Название>',
|
|
43
|
+
'- История: Как <роль>, я хочу <возможность>, чтобы <выгода>.',
|
|
44
|
+
'- Требование: Когда <условие>, система должна <поведение>.',
|
|
45
|
+
'- Обоснование: <зачем это бизнесу — словами владельца>',
|
|
46
|
+
'- AC: <измеримый критерий; нетривиальные — Given/When/Then>',
|
|
47
|
+
'- Приоритет: Must',
|
|
48
|
+
'- Источник: <диалог YYYY-MM-DD / жалоба mem-… / ревью-линза>',
|
|
49
|
+
'',
|
|
50
|
+
'## 5. Нефункциональные требования (NFR)',
|
|
51
|
+
'<!-- Производительность, безопасность, совместимость; каждая с измеримым критерием. -->',
|
|
52
|
+
'',
|
|
53
|
+
'### NFR-01 — <Название>',
|
|
54
|
+
'- Требование: <shall-формулировка ограничения>',
|
|
55
|
+
'- AC: <измеримый критерий>',
|
|
56
|
+
'- Источник: <откуда требование>',
|
|
57
|
+
'',
|
|
58
|
+
'## 6. Ограничения и допущения',
|
|
59
|
+
'<!-- Что считаем данным. -->',
|
|
60
|
+
'',
|
|
61
|
+
'## 7. Журнал изменений (CR)',
|
|
62
|
+
'<!-- Append-only. Каждая запись: дата, затронутый REQ/NFR, что/почему, кем утверждено, какие downstream-артефакты перегенерированы. -->',
|
|
63
|
+
'',
|
|
64
|
+
`- CR-${created}-01: <что и почему> — утвердил <кто>; downstream: <артефакты или «нет»>`,
|
|
65
|
+
'',
|
|
66
|
+
].join('\n');
|
|
67
|
+
}
|
|
68
|
+
export function designTemplate(slug, title, created) {
|
|
69
|
+
return [
|
|
70
|
+
frontMatter(slug, `${title} — дизайн`, created),
|
|
71
|
+
`# ${title} — дизайн`,
|
|
72
|
+
'',
|
|
73
|
+
'## Глоссарий',
|
|
74
|
+
'<!-- Технические термины; термин вводится до использования. -->',
|
|
75
|
+
'',
|
|
76
|
+
'## Компоненты и ответственность',
|
|
77
|
+
'<!-- Каждый компонент: имя — ответственность — файл. -->',
|
|
78
|
+
'',
|
|
79
|
+
'## Контракты',
|
|
80
|
+
'<!-- Типы, схемы, форматы событий; блоки ≤ 10 строк; псевдокод алгоритмов разрешён. Копипаста реализации продукта запрещена. -->',
|
|
81
|
+
'',
|
|
82
|
+
'## ADR-карточки',
|
|
83
|
+
'<!-- ADR-N: Контекст → Решение → Последствия. ADR — продуктовые выборы: владелец визирует отдельно. -->',
|
|
84
|
+
'',
|
|
85
|
+
'## Ссылки на NFR',
|
|
86
|
+
'<!-- NFR-NN из requirements.md + технические бюджеты; собственных ID-записей не заводить. -->',
|
|
87
|
+
'',
|
|
88
|
+
].join('\n');
|
|
89
|
+
}
|
|
90
|
+
export function planTemplate(slug, title, created) {
|
|
91
|
+
return [
|
|
92
|
+
frontMatter(slug, `${title} — план`, created),
|
|
93
|
+
`# ${title} — план`,
|
|
94
|
+
'',
|
|
95
|
+
'<!-- Задачи: цель + ссылка на §design + file:line базлайна. Без копипасты реализации; единственный источник контрактов — design. -->',
|
|
96
|
+
'',
|
|
97
|
+
'## Задачи',
|
|
98
|
+
'',
|
|
99
|
+
'- [ ] Задача 1: <цель> — design §<раздел>, базлайн <file:line>',
|
|
100
|
+
'',
|
|
101
|
+
'<!-- Исполнитель переворачивает чекбокс в [x] в конце задачи вместе со строкой «сделано → коммит». Чекбокс — истина завершённости. -->',
|
|
102
|
+
'',
|
|
103
|
+
].join('\n');
|
|
104
|
+
}
|
|
105
|
+
export function testPlanTemplate(slug, title, created) {
|
|
106
|
+
return [
|
|
107
|
+
frontMatter(slug, `${title} — тест-план`, created),
|
|
108
|
+
`# ${title} — тест-план`,
|
|
109
|
+
'',
|
|
110
|
+
'<!-- Сценарий на каждый REQ-NN; AC переизобретаться не должны (AC — единый источник). -->',
|
|
111
|
+
'',
|
|
112
|
+
'## Сценарии',
|
|
113
|
+
'',
|
|
114
|
+
'### REQ-01',
|
|
115
|
+
'- Given <контекст>',
|
|
116
|
+
'- When <действие>',
|
|
117
|
+
'- Then <результат>',
|
|
118
|
+
'- Маппинг: <tests/… файл или e2e-сценарий>',
|
|
119
|
+
'',
|
|
120
|
+
'## Прогоны',
|
|
121
|
+
'<!-- Точечные: npx vitest run <путь>; полный гейт: npm run check. -->',
|
|
122
|
+
'',
|
|
123
|
+
].join('\n');
|
|
124
|
+
}
|
|
125
|
+
export async function scaffoldArtifact(deps, input) {
|
|
126
|
+
if (!SLUG_RE.test(input.slug)) {
|
|
127
|
+
throw new UserFacingError(`Invalid slug "${input.slug}" (expected ^[a-z0-9][a-z0-9-]*$)`);
|
|
128
|
+
}
|
|
129
|
+
const now = deps.clock.now();
|
|
130
|
+
const created = now.toISOString().slice(0, 10);
|
|
131
|
+
const dir = join(deps.baseDir, 'docs', 'dev', `${created}-${input.slug}`);
|
|
132
|
+
// Уникальность имён — машина, не дисциплина: отказ ДО любых записей (спека §4-A1).
|
|
133
|
+
if (await deps.fs.exists(dir)) {
|
|
134
|
+
throw new UserFacingError(`Artifact folder already exists: ${dir}`);
|
|
135
|
+
}
|
|
136
|
+
const templates = {
|
|
137
|
+
'requirements.md': requirementsTemplate(input.slug, input.slug, created, input.fix),
|
|
138
|
+
'design.md': designTemplate(input.slug, input.slug, created),
|
|
139
|
+
'plan.md': planTemplate(input.slug, input.slug, created),
|
|
140
|
+
'test-plan.md': testPlanTemplate(input.slug, input.slug, created),
|
|
141
|
+
};
|
|
142
|
+
const names = input.fix
|
|
143
|
+
? ['requirements.md', 'plan.md']
|
|
144
|
+
: ['requirements.md', 'design.md', 'plan.md', 'test-plan.md'];
|
|
145
|
+
const written = [];
|
|
146
|
+
for (const name of names) {
|
|
147
|
+
const p = join(dir, name);
|
|
148
|
+
await deps.fs.writeFile(p, templates[name]);
|
|
149
|
+
written.push(p);
|
|
150
|
+
}
|
|
151
|
+
return { dir, files: written };
|
|
152
|
+
}
|
|
153
|
+
//# sourceMappingURL=scaffold-artifact.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scaffold-artifact.js","sourceRoot":"","sources":["../../../src/app/use-cases/scaffold-artifact.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export interface ArtifactIndexFs {
|
|
2
|
+
exists: (p: string) => Promise<boolean>;
|
|
3
|
+
readFile: (p: string) => Promise<string | null>;
|
|
4
|
+
writeFile: (p: string, c: string) => Promise<void>;
|
|
5
|
+
/** Имена записей каталога (файлы и папки, без «.»-записей). */
|
|
6
|
+
listDir: (p: string) => Promise<string[]>;
|
|
7
|
+
/** .md-файлы каталога рекурсивно, относительные пути. */
|
|
8
|
+
listFiles: (p: string) => Promise<string[]>;
|
|
9
|
+
}
|
|
10
|
+
export interface SyncArtifactIndexDeps {
|
|
11
|
+
fs: ArtifactIndexFs;
|
|
12
|
+
baseDir: string;
|
|
13
|
+
}
|
|
14
|
+
export type SyncArtifactIndexAction = 'written' | 'unchanged' | 'skipped';
|
|
15
|
+
/** Спека §4-A2: таблица слаг/дата/title/status/профиль; §4-A4: _index.md частей.
|
|
16
|
+
* Идемпотентность — по прецеденту штампов: identical → не пишем. */
|
|
17
|
+
export declare function syncArtifactIndex(deps: SyncArtifactIndexDeps): Promise<{
|
|
18
|
+
action: SyncArtifactIndexAction;
|
|
19
|
+
}>;
|
|
20
|
+
//# sourceMappingURL=sync-artifact-index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync-artifact-index.d.ts","sourceRoot":"","sources":["../../../src/app/use-cases/sync-artifact-index.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACxC,QAAQ,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAChD,SAAS,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACnD,+DAA+D;IAC/D,OAAO,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC1C,yDAAyD;IACzD,SAAS,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;CAC7C;AAED,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,eAAe,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,uBAAuB,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,CAAC;AAM1E;oEACoE;AACpE,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC;IAAE,MAAM,EAAE,uBAAuB,CAAA;CAAE,CAAC,CAiEjH"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { join } from 'path';
|
|
2
|
+
import { parseArtifactFrontMatter } from './artifact-front-matter.js';
|
|
3
|
+
const INDEX_HEADER = '<!-- wolf:generated docs/dev/INDEX.md — regenerates on wolf sync; hand edits are overwritten -->\n\n' +
|
|
4
|
+
'# Артефакты — docs/dev\n\n';
|
|
5
|
+
/** Спека §4-A2: таблица слаг/дата/title/status/профиль; §4-A4: _index.md частей.
|
|
6
|
+
* Идемпотентность — по прецеденту штампов: identical → не пишем. */
|
|
7
|
+
export async function syncArtifactIndex(deps) {
|
|
8
|
+
const devDir = join(deps.baseDir, 'docs', 'dev');
|
|
9
|
+
if (!(await deps.fs.exists(devDir)))
|
|
10
|
+
return { action: 'skipped' };
|
|
11
|
+
const writes = new Map();
|
|
12
|
+
const rows = [];
|
|
13
|
+
const waves = [];
|
|
14
|
+
const folders = [];
|
|
15
|
+
for (const name of (await deps.fs.listDir(devDir)).sort()) {
|
|
16
|
+
if (name === 'INDEX.md')
|
|
17
|
+
continue; // сам индекс не индексируем — иначе повторный sync не идемпотентен
|
|
18
|
+
const p = join(devDir, name);
|
|
19
|
+
if (name.endsWith('.md')) {
|
|
20
|
+
const raw = await deps.fs.readFile(p);
|
|
21
|
+
if (raw) {
|
|
22
|
+
const meta = parseArtifactFrontMatter(raw);
|
|
23
|
+
waves.push(`- ${name} — ${meta.title ?? name} (${meta.status ?? 'draft'})`);
|
|
24
|
+
}
|
|
25
|
+
continue;
|
|
26
|
+
}
|
|
27
|
+
const reqRaw = await deps.fs.readFile(join(p, 'requirements.md'));
|
|
28
|
+
if (!reqRaw)
|
|
29
|
+
continue;
|
|
30
|
+
const meta = parseArtifactFrontMatter(reqRaw);
|
|
31
|
+
if (!meta.slug)
|
|
32
|
+
continue;
|
|
33
|
+
const files = await deps.fs.listFiles(p);
|
|
34
|
+
const profile = files.includes('design.md') && files.includes('test-plan.md') ? 'full' : 'fix';
|
|
35
|
+
folders.push(name);
|
|
36
|
+
rows.push(`| ${meta.slug} | ${meta.created ?? ''} | ${meta.title ?? meta.slug} | ${meta.status ?? 'draft'} | ${profile} |`);
|
|
37
|
+
}
|
|
38
|
+
let out = INDEX_HEADER;
|
|
39
|
+
out += '| Слаг | Дата | Title | Статус | Профиль |\n| ---- | ---- | ----- | ------ | ------- |\n';
|
|
40
|
+
out += rows.length > 0 ? rows.join('\n') + '\n' : '(пока нет папок фич)\n';
|
|
41
|
+
if (waves.length > 0)
|
|
42
|
+
out += '\n## Волны\n\n' + waves.join('\n') + '\n';
|
|
43
|
+
// Части (спека §4-A4): подпапки design/ и plan/ с файлами-частями получают _index.md.
|
|
44
|
+
for (const folder of folders) {
|
|
45
|
+
for (const sub of ['design', 'plan']) {
|
|
46
|
+
const subDir = join(devDir, folder, sub);
|
|
47
|
+
if (!(await deps.fs.exists(subDir)))
|
|
48
|
+
continue;
|
|
49
|
+
const parts = (await deps.fs.listFiles(subDir)).filter((f) => f.endsWith('.md') && f !== '_index.md').sort();
|
|
50
|
+
if (parts.length === 0)
|
|
51
|
+
continue;
|
|
52
|
+
writes.set(join(subDir, '_index.md'), ['<!-- wolf:generated parts index -->', '', `# ${sub} — части`, '', ...parts.map((f) => `- ${f}`), ''].join('\n'));
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
const indexPath = join(devDir, 'INDEX.md');
|
|
56
|
+
const existingIndex = await deps.fs.readFile(indexPath);
|
|
57
|
+
const allIdentical = existingIndex === out &&
|
|
58
|
+
(await Promise.all([...writes].map(async ([p, c]) => (await deps.fs.readFile(p)) === c))).every(Boolean);
|
|
59
|
+
if (allIdentical)
|
|
60
|
+
return { action: 'unchanged' };
|
|
61
|
+
await deps.fs.writeFile(indexPath, out);
|
|
62
|
+
for (const [p, c] of writes) {
|
|
63
|
+
if ((await deps.fs.readFile(p)) !== c)
|
|
64
|
+
await deps.fs.writeFile(p, c);
|
|
65
|
+
}
|
|
66
|
+
return { action: 'written' };
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=sync-artifact-index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync-artifact-index.js","sourceRoot":"","sources":["../../../src/app/use-cases/sync-artifact-index.ts"],"names":[],"mappings":"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"}
|
|
@@ -210,6 +210,18 @@ declare const CORE_TAXONOMY_DECLS: readonly [{
|
|
|
210
210
|
readonly kind: "string";
|
|
211
211
|
readonly optional: true;
|
|
212
212
|
};
|
|
213
|
+
readonly owner_skill: {
|
|
214
|
+
readonly kind: "string";
|
|
215
|
+
readonly optional: true;
|
|
216
|
+
};
|
|
217
|
+
readonly version: {
|
|
218
|
+
readonly kind: "string";
|
|
219
|
+
readonly optional: true;
|
|
220
|
+
};
|
|
221
|
+
readonly source_url: {
|
|
222
|
+
readonly kind: "string";
|
|
223
|
+
readonly optional: true;
|
|
224
|
+
};
|
|
213
225
|
};
|
|
214
226
|
}, {
|
|
215
227
|
readonly name: "note";
|
|
@@ -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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"}
|
|
@@ -115,6 +115,10 @@ const CORE_TAXONOMY_DECLS = [
|
|
|
115
115
|
usage_count: { kind: 'int', default: 0 },
|
|
116
116
|
last_used_at: { kind: 'string', optional: true },
|
|
117
117
|
deprecation_reason: { kind: 'string', optional: true },
|
|
118
|
+
// Волна 2.15 C4: регистрация подключённых внешних скиллов (wolf-skill-intake).
|
|
119
|
+
owner_skill: { kind: 'string', optional: true },
|
|
120
|
+
version: { kind: 'string', optional: true },
|
|
121
|
+
source_url: { kind: 'string', optional: true },
|
|
118
122
|
},
|
|
119
123
|
},
|
|
120
124
|
{
|
|
@@ -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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"}
|
|
@@ -4,6 +4,7 @@ export declare const RelationSchema: z.ZodObject<{
|
|
|
4
4
|
id: z.ZodString;
|
|
5
5
|
subject: z.ZodString;
|
|
6
6
|
predicate: z.ZodEnum<{
|
|
7
|
+
owner_skill: "owner_skill";
|
|
7
8
|
superseded_by: "superseded_by";
|
|
8
9
|
answers: "answers";
|
|
9
10
|
answered_by: "answered_by";
|
|
@@ -20,7 +21,6 @@ export declare const RelationSchema: z.ZodObject<{
|
|
|
20
21
|
resolved_by: "resolved_by";
|
|
21
22
|
related_to: "related_to";
|
|
22
23
|
produced_by: "produced_by";
|
|
23
|
-
owner_skill: "owner_skill";
|
|
24
24
|
skill_of: "skill_of";
|
|
25
25
|
complain: "complain";
|
|
26
26
|
complained_by: "complained_by";
|
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
2026-10-
|
|
1
|
+
2026-10-08T19:55:27.952Z agent-id=v2-router-probe-xyz playbook=hit name=fallback variant=fallback injected=yes ms=0 bytes=1208
|
|
@@ -10,13 +10,13 @@ description: Используй, когда реализация заверше
|
|
|
10
10
|
|
|
11
11
|
## Трассировка адаптации
|
|
12
12
|
|
|
13
|
-
| Пункт upstream
|
|
14
|
-
|
|
15
|
-
| Процесс 5 шагов, ровно 4 опции финала, подтверждение «discard», шпаргалка (4 опции), частые ошибки (4), red flags Never/Always (4/4), cleanup worktree только для опций 1 и 4 | **сохранено** («переносим почти без правок», research §1; red flags — дословно по смыслу, H7)
|
|
16
|
-
| Тестовая команда
|
|
17
|
-
| Базовая ветка: `main \|\| master`
|
|
18
|
-
| Опция 1 (мерж локально)
|
|
19
|
-
| Решение о финале ветки
|
|
13
|
+
| Пункт upstream | Судьба |
|
|
14
|
+
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------ |
|
|
15
|
+
| Процесс 5 шагов, ровно 4 опции финала, подтверждение «discard», шпаргалка (4 опции), частые ошибки (4), red flags Never/Always (4/4), cleanup worktree только для опций 1 и 4 | **сохранено** («переносим почти без правок», research §1; red flags — дословно по смыслу, H7) |
|
|
16
|
+
| Тестовая команда | **заменено**: `npm run check` (верификационный примитив проекта) |
|
|
17
|
+
| Базовая ветка: `main \|\| master` | **заменено**: всегда `main` — правило проекта trunk-based (main — истина, работа в worktree-ветках, релизы тегами) |
|
|
18
|
+
| Опция 1 (мерж локально) | **дополнено** правилом проекта: мерж в main — только по явному поручению владельца |
|
|
19
|
+
| Решение о финале ветки | **добавлено**: значимое решение (особенно discard) фиксируется `wolf add --type decision` |
|
|
20
20
|
|
|
21
21
|
## Обзор
|
|
22
22
|
|
|
@@ -37,6 +37,7 @@ npm run check # тестовая команда проекта
|
|
|
37
37
|
```
|
|
38
38
|
|
|
39
39
|
**Упали:**
|
|
40
|
+
|
|
40
41
|
```
|
|
41
42
|
Тесты падают (<N> падений). Надо починить до завершения:
|
|
42
43
|
|
|
@@ -122,6 +123,7 @@ EOF
|
|
|
122
123
|
#### Опция 4: выбросить
|
|
123
124
|
|
|
124
125
|
**Сначала подтверждение:**
|
|
126
|
+
|
|
125
127
|
```
|
|
126
128
|
Это навсегда удалит:
|
|
127
129
|
- Ветку <имя>
|
|
@@ -134,6 +136,7 @@ EOF
|
|
|
134
136
|
Ждать дословного подтверждения.
|
|
135
137
|
|
|
136
138
|
Если подтверждено:
|
|
139
|
+
|
|
137
140
|
```bash
|
|
138
141
|
git checkout main
|
|
139
142
|
git branch -D <feature-branch>
|
|
@@ -146,11 +149,13 @@ git branch -D <feature-branch>
|
|
|
146
149
|
**Для опций 1, 2, 4:**
|
|
147
150
|
|
|
148
151
|
Проверить, находишься ли в worktree:
|
|
152
|
+
|
|
149
153
|
```bash
|
|
150
154
|
git worktree list | grep $(git branch --show-current)
|
|
151
155
|
```
|
|
152
156
|
|
|
153
157
|
Если да:
|
|
158
|
+
|
|
154
159
|
```bash
|
|
155
160
|
git worktree remove <worktree-path>
|
|
156
161
|
```
|
|
@@ -159,40 +164,46 @@ git worktree remove <worktree-path>
|
|
|
159
164
|
|
|
160
165
|
## Быстрая шпаргалка
|
|
161
166
|
|
|
162
|
-
| Опция
|
|
163
|
-
|
|
164
|
-
| 1. Мерж локально
|
|
165
|
-
| 2. Создать PR
|
|
166
|
-
| 3. Оставить как есть | -
|
|
167
|
-
| 4. Выбросить
|
|
167
|
+
| Опция | Мерж | Пуш | Сохранить worktree | Удалить ветку |
|
|
168
|
+
| -------------------- | ---- | --- | ------------------ | ------------- |
|
|
169
|
+
| 1. Мерж локально | ✓ | - | - | ✓ |
|
|
170
|
+
| 2. Создать PR | - | ✓ | ✓ | - |
|
|
171
|
+
| 3. Оставить как есть | - | - | ✓ | - |
|
|
172
|
+
| 4. Выбросить | - | - | - | ✓ (force) |
|
|
168
173
|
|
|
169
174
|
## Частые ошибки
|
|
170
175
|
|
|
171
176
|
**Пропуск верификации тестов**
|
|
177
|
+
|
|
172
178
|
- **Проблема:** смержить сломанный код, создать падающий PR
|
|
173
179
|
- **Фикс:** всегда верифицировать тесты до предъявления опций
|
|
174
180
|
|
|
175
181
|
**Открытые вопросы**
|
|
182
|
+
|
|
176
183
|
- **Проблема:** «Что делать дальше?» → двусмысленность
|
|
177
184
|
- **Фикс:** предъявлять ровно 4 структурированные опции
|
|
178
185
|
|
|
179
186
|
**Автоматическая уборка worktree**
|
|
187
|
+
|
|
180
188
|
- **Проблема:** удалить worktree, который ещё нужен (опции 2, 3)
|
|
181
189
|
- **Фикс:** уборка только для опций 1 и 4
|
|
182
190
|
|
|
183
191
|
**Без подтверждения для discard**
|
|
192
|
+
|
|
184
193
|
- **Проблема:** случайно удалить работу
|
|
185
194
|
- **Фикс:** требовать дословный ввод «discard»
|
|
186
195
|
|
|
187
196
|
## Red flags
|
|
188
197
|
|
|
189
198
|
**Никогда:**
|
|
199
|
+
|
|
190
200
|
- Не продолжать с падающими тестами
|
|
191
201
|
- Не мержить без верификации тестов на результате
|
|
192
202
|
- Не удалять работу без подтверждения
|
|
193
203
|
- Не форс-пушить без явного запроса
|
|
194
204
|
|
|
195
205
|
**Всегда:**
|
|
206
|
+
|
|
196
207
|
- Верифицировать тесты до предъявления опций
|
|
197
208
|
- Предъявлять ровно 4 опции
|
|
198
209
|
- Получать дословное подтверждение для опции 4
|
|
@@ -201,13 +212,21 @@ git worktree remove <worktree-path>
|
|
|
201
212
|
## Интеграция
|
|
202
213
|
|
|
203
214
|
**Вызывается из:**
|
|
215
|
+
|
|
204
216
|
- **wolf-sdd** (финальный шаг) — после завершения всех задач
|
|
205
217
|
- **wolf-execute** (финальный шаг) — после завершения всех батчей
|
|
206
218
|
|
|
207
219
|
**Пара с:**
|
|
220
|
+
|
|
208
221
|
- **using-git-worktrees** — убирает worktree, созданный тем скиллом
|
|
209
222
|
|
|
210
223
|
## Интеграция с Wolf
|
|
211
224
|
|
|
212
225
|
- **Правило проекта**: trunk-based — main = истина, работа в worktree-ветках, релизы тегами; мерж в main — только по явному поручению владельца.
|
|
213
226
|
- **Решение о финале ветки** (выбрана опция, особенно discard) — значимое решение: `wolf add --type decision` с контекстом («ветка X выброшена, потому что...»).
|
|
227
|
+
|
|
228
|
+
## Конвейер (2.15)
|
|
229
|
+
|
|
230
|
+
Проект на trunk-based: main = истина; работа в worktree-ветках; влитие потока —
|
|
231
|
+
merge в main с зелёным `npm run check`; релизы — тегами `v*` (npm version).
|
|
232
|
+
«Ветвь» не живёт дольше волны.
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: receiving-code-review
|
|
3
|
+
description: 'Фидбек владельца и ревью-линз: высший приоритет лестницы, но не слепое внедрение — техническая строгость, проверка возражений, протокол несогласия.'
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# receiving-code-review: приём фидбека
|
|
7
|
+
|
|
8
|
+
## Обзор
|
|
9
|
+
|
|
10
|
+
Фидбек владельца = высший приоритет лестницы приоритетов. Но «внедри совет» — не
|
|
11
|
+
поведение по умолчанию: ревью может быть технически неверным.
|
|
12
|
+
|
|
13
|
+
## Процесс
|
|
14
|
+
|
|
15
|
+
1. Прочитать фидбек целиком; классифицировать каждый пункт: факт-исправление /
|
|
16
|
+
вопрос / возражение.
|
|
17
|
+
2. Согласен → внедрить + коммит + строка «что исправлено» в отчёт.
|
|
18
|
+
3. Сомневаешься → проверить по коду/документу ДО ответа; возражение обосновать
|
|
19
|
+
пруфом (file:line), не мнением.
|
|
20
|
+
4. Фидбек противоречит памяти Wolf/рамке → по лестнице приоритетов (память выше
|
|
21
|
+
скиллов); расхождение правил → жалоба по протоколу жалоб, не самовольная
|
|
22
|
+
правка правила.
|
|
23
|
+
5. Уроки фидбека (воспроизводимый паттерн ошибки) → `wolf add --type lesson`.
|
|
24
|
+
|
|
25
|
+
## Запреты
|
|
26
|
+
|
|
27
|
+
- Перформативное согласие без проверки.
|
|
28
|
+
- Внедрение совета вслепую при явном техническом возражении.
|
|
29
|
+
- Тихое игнорирование пункта фидбека.
|
|
30
|
+
|
|
31
|
+
## Трассировка адаптации
|
|
32
|
+
|
|
33
|
+
| Пункт источника (superpowers receiving-code-review) | Судьба | Почему |
|
|
34
|
+
| --------------------------------------------------- | ------------------------------------------------ | ----------------- |
|
|
35
|
+
| Техническая строгость, не перформативное согласие | сохранено | ядро |
|
|
36
|
+
| Проверка перед внедрением | сохранено | ядро |
|
|
37
|
+
| «Совет может быть неверным» | сохранено | ядро |
|
|
38
|
+
| — | добавлено: лестница приоритетов + протокол жалоб | Wolf-переплетение |
|
|
39
|
+
| — | добавлено: уроки фидбека → память Wolf | самообучение |
|