@soleri/forge 9.7.2 → 9.8.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/dist/agent-schema.d.ts +177 -6
- package/dist/agent-schema.js +58 -0
- package/dist/agent-schema.js.map +1 -1
- package/dist/compose-claude-md.js +56 -3
- package/dist/compose-claude-md.js.map +1 -1
- package/dist/domain-manager.d.ts +1 -0
- package/dist/domain-manager.js +57 -1
- package/dist/domain-manager.js.map +1 -1
- package/dist/knowledge-installer.d.ts +2 -0
- package/dist/knowledge-installer.js +107 -1
- package/dist/knowledge-installer.js.map +1 -1
- package/dist/lib.d.ts +1 -1
- package/dist/lib.js +1 -1
- package/dist/lib.js.map +1 -1
- package/dist/scaffold-filetree.d.ts +12 -0
- package/dist/scaffold-filetree.js +332 -2
- package/dist/scaffold-filetree.js.map +1 -1
- package/dist/scaffolder.js +12 -0
- package/dist/scaffolder.js.map +1 -1
- package/dist/templates/setup-script.js +71 -0
- package/dist/templates/setup-script.js.map +1 -1
- package/dist/templates/shared-rules.js +52 -6
- package/dist/templates/shared-rules.js.map +1 -1
- package/package.json +1 -1
- package/src/__tests__/domain-manager.test.ts +140 -0
- package/src/__tests__/scaffold-filetree.test.ts +282 -1
- package/src/__tests__/shared-rules.test.ts +48 -0
- package/src/agent-schema.ts +66 -0
- package/src/compose-claude-md.ts +63 -3
- package/src/domain-manager.ts +74 -1
- package/src/knowledge-installer.ts +124 -1
- package/src/lib.ts +6 -1
- package/src/scaffold-filetree.ts +380 -2
- package/src/scaffolder.ts +17 -0
- package/src/templates/setup-script.ts +71 -0
- package/src/templates/shared-rules.ts +53 -6
|
@@ -117,10 +117,15 @@ export function create${pascalCase(domain)}Facade(vault: Vault): FacadeConfig {
|
|
|
117
117
|
`;
|
|
118
118
|
}
|
|
119
119
|
export async function installKnowledge(params) {
|
|
120
|
-
const { agentPath, bundlePath, generateFacades = true } = params;
|
|
120
|
+
const { agentPath, bundlePath, generateFacades = true, format } = params;
|
|
121
121
|
const warnings = [];
|
|
122
122
|
const facadesGenerated = [];
|
|
123
123
|
const sourceFilesPatched = [];
|
|
124
|
+
// ── File-tree agent path ─────────────────────────────────────────
|
|
125
|
+
if (format === 'filetree') {
|
|
126
|
+
return installKnowledgeFiletree(agentPath, bundlePath);
|
|
127
|
+
}
|
|
128
|
+
// ── TypeScript agent path (existing behavior) ────────────────────
|
|
124
129
|
// ── Step 1: Validate agent path ──────────────────────────────────
|
|
125
130
|
const pkgPath = join(agentPath, 'package.json');
|
|
126
131
|
if (!existsSync(pkgPath)) {
|
|
@@ -287,6 +292,107 @@ export async function installKnowledge(params) {
|
|
|
287
292
|
summary: summaryParts.join('. ') + '.',
|
|
288
293
|
};
|
|
289
294
|
}
|
|
295
|
+
// ---------- File-tree agent installer ----------
|
|
296
|
+
/**
|
|
297
|
+
* Install knowledge bundles into a file-tree agent.
|
|
298
|
+
* Writes to {agentPath}/knowledge/ — no package.json, no src/ patching, no build step.
|
|
299
|
+
* The engine picks up knowledge bundles from this directory at runtime.
|
|
300
|
+
*/
|
|
301
|
+
async function installKnowledgeFiletree(agentPath, bundlePath) {
|
|
302
|
+
const warnings = [];
|
|
303
|
+
// Derive agentId from agent.yaml
|
|
304
|
+
let agentId = '';
|
|
305
|
+
const yamlPath = join(agentPath, 'agent.yaml');
|
|
306
|
+
if (existsSync(yamlPath)) {
|
|
307
|
+
try {
|
|
308
|
+
const raw = readFileSync(yamlPath, 'utf-8');
|
|
309
|
+
// Simple extraction — avoid importing yaml parser here
|
|
310
|
+
const idMatch = raw.match(/^id:\s*["']?([^\s"']+)/m);
|
|
311
|
+
if (idMatch)
|
|
312
|
+
agentId = idMatch[1];
|
|
313
|
+
}
|
|
314
|
+
catch {
|
|
315
|
+
// best-effort
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
if (!agentId) {
|
|
319
|
+
return fail(agentPath, '', 'No agent.yaml with valid id found — is this a file-tree agent?');
|
|
320
|
+
}
|
|
321
|
+
// Read and validate bundles
|
|
322
|
+
const bundleFiles = collectBundleFiles(bundlePath);
|
|
323
|
+
if (bundleFiles.length === 0) {
|
|
324
|
+
return fail(agentPath, agentId, `No .json bundle files found at ${bundlePath}`);
|
|
325
|
+
}
|
|
326
|
+
const bundles = [];
|
|
327
|
+
const issues = [];
|
|
328
|
+
for (const file of bundleFiles) {
|
|
329
|
+
try {
|
|
330
|
+
const raw = readFileSync(file, 'utf-8');
|
|
331
|
+
const parsed = JSON.parse(raw);
|
|
332
|
+
const fileIssues = validateBundle(parsed, file);
|
|
333
|
+
if (fileIssues.length > 0) {
|
|
334
|
+
issues.push(...fileIssues);
|
|
335
|
+
}
|
|
336
|
+
else {
|
|
337
|
+
bundles.push({ file, bundle: parsed });
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
catch (err) {
|
|
341
|
+
issues.push(`${basename(file)}: invalid JSON — ${err instanceof Error ? err.message : String(err)}`);
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
if (bundles.length === 0) {
|
|
345
|
+
return fail(agentPath, agentId, `All bundles failed validation:\n${issues.join('\n')}`);
|
|
346
|
+
}
|
|
347
|
+
if (issues.length > 0) {
|
|
348
|
+
warnings.push(...issues);
|
|
349
|
+
}
|
|
350
|
+
// Determine new vs existing domains
|
|
351
|
+
const knowledgeDir = join(agentPath, 'knowledge');
|
|
352
|
+
mkdirSync(knowledgeDir, { recursive: true });
|
|
353
|
+
const existingFiles = readdirSync(knowledgeDir).filter((f) => f.endsWith('.json'));
|
|
354
|
+
const existingDomains = new Set(existingFiles.map((f) => f.replace(/\.json$/, '')));
|
|
355
|
+
const domainsAdded = [];
|
|
356
|
+
const domainsUpdated = [];
|
|
357
|
+
for (const { bundle } of bundles) {
|
|
358
|
+
if (existingDomains.has(bundle.domain)) {
|
|
359
|
+
domainsUpdated.push(bundle.domain);
|
|
360
|
+
}
|
|
361
|
+
else {
|
|
362
|
+
domainsAdded.push(bundle.domain);
|
|
363
|
+
}
|
|
364
|
+
}
|
|
365
|
+
// Copy bundles to knowledge/
|
|
366
|
+
for (const { file, bundle } of bundles) {
|
|
367
|
+
const dest = join(knowledgeDir, `${bundle.domain}.json`);
|
|
368
|
+
copyFileSync(file, dest);
|
|
369
|
+
}
|
|
370
|
+
// No facade generation, no src/ patching, no build step for file-tree agents
|
|
371
|
+
const entriesTotal = bundles.reduce((sum, { bundle }) => sum + bundle.entries.length, 0);
|
|
372
|
+
const summaryParts = [
|
|
373
|
+
`Installed ${bundles.length} bundle(s) with ${entriesTotal} entries into ${agentId} (file-tree)`,
|
|
374
|
+
];
|
|
375
|
+
if (domainsAdded.length > 0)
|
|
376
|
+
summaryParts.push(`New domains: ${domainsAdded.join(', ')}`);
|
|
377
|
+
if (domainsUpdated.length > 0)
|
|
378
|
+
summaryParts.push(`Updated domains: ${domainsUpdated.join(', ')}`);
|
|
379
|
+
if (warnings.length > 0)
|
|
380
|
+
summaryParts.push(`${warnings.length} warning(s)`);
|
|
381
|
+
return {
|
|
382
|
+
success: true,
|
|
383
|
+
agentPath,
|
|
384
|
+
agentId,
|
|
385
|
+
bundlesInstalled: bundles.length,
|
|
386
|
+
entriesTotal,
|
|
387
|
+
domainsAdded,
|
|
388
|
+
domainsUpdated,
|
|
389
|
+
facadesGenerated: [],
|
|
390
|
+
sourceFilesPatched: [],
|
|
391
|
+
buildOutput: '',
|
|
392
|
+
warnings,
|
|
393
|
+
summary: summaryParts.join('. ') + '.',
|
|
394
|
+
};
|
|
395
|
+
}
|
|
290
396
|
// ---------- Helpers ----------
|
|
291
397
|
function fail(agentPath, agentId, message) {
|
|
292
398
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"knowledge-installer.js","sourceRoot":"","sources":["../src/knowledge-installer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"knowledge-installer.js","sourceRoot":"","sources":["../src/knowledge-installer.ts"],"names":[],"mappings":"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"}
|
package/dist/lib.d.ts
CHANGED
|
@@ -10,7 +10,7 @@ export { addDomain } from './domain-manager.js';
|
|
|
10
10
|
export { patchIndexTs, patchClaudeMdContent } from './patching.js';
|
|
11
11
|
export type { AgentConfig, AgentConfigInput, SetupTarget, ScaffoldResult, ScaffoldPreview, AgentInfo, InstallKnowledgeResult, AddDomainResult, } from './types.js';
|
|
12
12
|
export { AgentConfigSchema, SETUP_TARGETS, MODEL_PRESETS } from './types.js';
|
|
13
|
-
export { scaffoldFileTree } from './scaffold-filetree.js';
|
|
13
|
+
export { scaffoldFileTree, SKILLS_REGISTRY, ESSENTIAL_SKILLS, resolveSkillsFilter, } from './scaffold-filetree.js';
|
|
14
14
|
export type { FileTreeScaffoldResult } from './scaffold-filetree.js';
|
|
15
15
|
export { AgentYamlSchema, TONES } from './agent-schema.js';
|
|
16
16
|
export type { AgentYaml, AgentYamlInput } from './agent-schema.js';
|
package/dist/lib.js
CHANGED
|
@@ -10,7 +10,7 @@ export { addDomain } from './domain-manager.js';
|
|
|
10
10
|
export { patchIndexTs, patchClaudeMdContent } from './patching.js';
|
|
11
11
|
export { AgentConfigSchema, SETUP_TARGETS, MODEL_PRESETS } from './types.js';
|
|
12
12
|
// ─── v7 File-Tree Agent ──────────────────────────────────────────────
|
|
13
|
-
export { scaffoldFileTree } from './scaffold-filetree.js';
|
|
13
|
+
export { scaffoldFileTree, SKILLS_REGISTRY, ESSENTIAL_SKILLS, resolveSkillsFilter, } from './scaffold-filetree.js';
|
|
14
14
|
export { AgentYamlSchema, TONES } from './agent-schema.js';
|
|
15
15
|
export { composeClaudeMd } from './compose-claude-md.js';
|
|
16
16
|
export { generateExtensionsIndex, generateExampleOp } from './templates/extensions.js';
|
package/dist/lib.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lib.js","sourceRoot":"","sources":["../src/lib.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,6BAA6B,EAAE,MAAM,0BAA0B,CAAC;AAC3F,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAWnE,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE7E,wEAAwE;AACxE,OAAO,
|
|
1
|
+
{"version":3,"file":"lib.js","sourceRoot":"","sources":["../src/lib.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,6BAA6B,EAAE,MAAM,0BAA0B,CAAC;AAC3F,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAWnE,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE7E,wEAAwE;AACxE,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE3D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,OAAO,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACvF,OAAO,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAC7E,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACrF,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;AAChF,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC"}
|
|
@@ -7,6 +7,18 @@
|
|
|
7
7
|
* Replaces the old scaffold() that generated TypeScript projects.
|
|
8
8
|
*/
|
|
9
9
|
import type { AgentYamlInput } from './agent-schema.js';
|
|
10
|
+
/**
|
|
11
|
+
* Skills classified as essential (always scaffolded by default) or optional
|
|
12
|
+
* (installed on demand via `soleri skills install`).
|
|
13
|
+
*/
|
|
14
|
+
export declare const SKILLS_REGISTRY: Record<string, 'essential' | 'optional'>;
|
|
15
|
+
/** Names of essential skills (always scaffolded when skillsFilter is 'essential'). */
|
|
16
|
+
export declare const ESSENTIAL_SKILLS: string[];
|
|
17
|
+
/**
|
|
18
|
+
* Resolve the skill names to scaffold based on the skillsFilter config value.
|
|
19
|
+
* Returns null when all skills should be included (no filtering).
|
|
20
|
+
*/
|
|
21
|
+
export declare function resolveSkillsFilter(skillsFilter: 'all' | 'essential' | string[]): string[] | null;
|
|
10
22
|
export interface FileTreeScaffoldResult {
|
|
11
23
|
success: boolean;
|
|
12
24
|
agentDir: string;
|
|
@@ -14,6 +14,62 @@ import { AgentYamlSchema } from './agent-schema.js';
|
|
|
14
14
|
import { getEngineRulesContent } from './templates/shared-rules.js';
|
|
15
15
|
import { composeClaudeMd } from './compose-claude-md.js';
|
|
16
16
|
import { generateSkills } from './templates/skills.js';
|
|
17
|
+
// ─── Skills Registry ─────────────────────────────────────────────────
|
|
18
|
+
/**
|
|
19
|
+
* Skills classified as essential (always scaffolded by default) or optional
|
|
20
|
+
* (installed on demand via `soleri skills install`).
|
|
21
|
+
*/
|
|
22
|
+
export const SKILLS_REGISTRY = {
|
|
23
|
+
'agent-guide': 'essential',
|
|
24
|
+
'agent-persona': 'essential',
|
|
25
|
+
'vault-navigator': 'essential',
|
|
26
|
+
'vault-capture': 'essential',
|
|
27
|
+
'systematic-debugging': 'essential',
|
|
28
|
+
'writing-plans': 'essential',
|
|
29
|
+
'context-resume': 'essential',
|
|
30
|
+
// ─── Optional (installed on demand) ────────────
|
|
31
|
+
'agent-dev': 'optional',
|
|
32
|
+
'agent-issues': 'optional',
|
|
33
|
+
'brain-debrief': 'optional',
|
|
34
|
+
brainstorming: 'optional',
|
|
35
|
+
'code-patrol': 'optional',
|
|
36
|
+
'deep-review': 'optional',
|
|
37
|
+
'deliver-and-ship': 'optional',
|
|
38
|
+
'discovery-phase': 'optional',
|
|
39
|
+
'env-setup': 'optional',
|
|
40
|
+
'executing-plans': 'optional',
|
|
41
|
+
'finishing-a-development-branch': 'optional',
|
|
42
|
+
'fix-and-learn': 'optional',
|
|
43
|
+
'health-check': 'optional',
|
|
44
|
+
'knowledge-harvest': 'optional',
|
|
45
|
+
'mcp-doctor': 'optional',
|
|
46
|
+
'onboard-me': 'optional',
|
|
47
|
+
'parallel-execute': 'optional',
|
|
48
|
+
retrospective: 'optional',
|
|
49
|
+
'second-opinion': 'optional',
|
|
50
|
+
'subagent-driven-development': 'optional',
|
|
51
|
+
'test-driven-development': 'optional',
|
|
52
|
+
'using-git-worktrees': 'optional',
|
|
53
|
+
'vault-curate': 'optional',
|
|
54
|
+
'vault-smells': 'optional',
|
|
55
|
+
'verification-before-completion': 'optional',
|
|
56
|
+
'yolo-mode': 'optional',
|
|
57
|
+
};
|
|
58
|
+
/** Names of essential skills (always scaffolded when skillsFilter is 'essential'). */
|
|
59
|
+
export const ESSENTIAL_SKILLS = Object.entries(SKILLS_REGISTRY)
|
|
60
|
+
.filter(([, tier]) => tier === 'essential')
|
|
61
|
+
.map(([name]) => name);
|
|
62
|
+
/**
|
|
63
|
+
* Resolve the skill names to scaffold based on the skillsFilter config value.
|
|
64
|
+
* Returns null when all skills should be included (no filtering).
|
|
65
|
+
*/
|
|
66
|
+
export function resolveSkillsFilter(skillsFilter) {
|
|
67
|
+
if (skillsFilter === 'all')
|
|
68
|
+
return null; // null = include all
|
|
69
|
+
if (skillsFilter === 'essential')
|
|
70
|
+
return ESSENTIAL_SKILLS;
|
|
71
|
+
return skillsFilter; // explicit list
|
|
72
|
+
}
|
|
17
73
|
const BUILTIN_WORKFLOWS = [
|
|
18
74
|
{
|
|
19
75
|
name: 'feature-dev',
|
|
@@ -212,6 +268,154 @@ Before crossing a context window boundary — \`/clear\`, context compaction, or
|
|
|
212
268
|
`,
|
|
213
269
|
},
|
|
214
270
|
];
|
|
271
|
+
// ─── Example Instruction Files ───────────────────────────────────────
|
|
272
|
+
const INSTRUCTIONS_CONVENTIONS = `# Conventions
|
|
273
|
+
|
|
274
|
+
<!-- Customize this file with your project's naming conventions, coding standards, and rules. -->
|
|
275
|
+
<!-- This file is composed into CLAUDE.md automatically — your agent will follow these rules. -->
|
|
276
|
+
|
|
277
|
+
## Naming Conventions
|
|
278
|
+
|
|
279
|
+
- Use \`kebab-case\` for file and directory names
|
|
280
|
+
- Use \`camelCase\` for variables and functions
|
|
281
|
+
- Use \`PascalCase\` for classes, types, and interfaces
|
|
282
|
+
- Prefix private helpers with \`_\` (e.g., \`_validateInput\`)
|
|
283
|
+
|
|
284
|
+
## File Organization
|
|
285
|
+
|
|
286
|
+
- Source code goes in \`src/\`
|
|
287
|
+
- Tests live next to the code they test (\`*.test.ts\`)
|
|
288
|
+
- Shared utilities go in \`src/utils/\`
|
|
289
|
+
- Types and interfaces go in \`src/types/\`
|
|
290
|
+
|
|
291
|
+
## Code Standards
|
|
292
|
+
|
|
293
|
+
- Every function must have a JSDoc comment explaining its purpose
|
|
294
|
+
- Prefer \`const\` over \`let\`; never use \`var\`
|
|
295
|
+
- Maximum file length: 300 lines — split if larger
|
|
296
|
+
- No default exports — use named exports only
|
|
297
|
+
|
|
298
|
+
## What to Avoid
|
|
299
|
+
|
|
300
|
+
- Do not add new npm dependencies without approval
|
|
301
|
+
- Do not use \`any\` type — use \`unknown\` and narrow
|
|
302
|
+
- Do not commit commented-out code
|
|
303
|
+
- Do not use hardcoded values — extract to constants or config
|
|
304
|
+
`;
|
|
305
|
+
const INSTRUCTIONS_GETTING_STARTED = `# Getting Started with Instructions
|
|
306
|
+
|
|
307
|
+
This folder contains your agent's custom behavioral rules. Every \`.md\` file here
|
|
308
|
+
is automatically composed into \`CLAUDE.md\` when you run \`soleri dev\`.
|
|
309
|
+
|
|
310
|
+
## How It Works
|
|
311
|
+
|
|
312
|
+
1. Create a new \`.md\` file in this folder (e.g., \`api-guidelines.md\`)
|
|
313
|
+
2. Write your rules, conventions, or guidelines in Markdown
|
|
314
|
+
3. Run \`soleri dev\` — it watches for changes and regenerates \`CLAUDE.md\`
|
|
315
|
+
4. Your agent now follows these rules in every conversation
|
|
316
|
+
|
|
317
|
+
## File Naming
|
|
318
|
+
|
|
319
|
+
- Files are included in **alphabetical order** (prefix with numbers to control order)
|
|
320
|
+
- \`_engine.md\` is auto-generated by Soleri — **do not edit it manually**
|
|
321
|
+
- \`domain.md\` was generated from your agent's domain config
|
|
322
|
+
|
|
323
|
+
## Tips
|
|
324
|
+
|
|
325
|
+
- Keep each file focused on one topic (conventions, workflows, constraints)
|
|
326
|
+
- Use clear headings — your agent reads these as instructions
|
|
327
|
+
- Add "What to Avoid" sections — agents benefit from explicit anti-patterns
|
|
328
|
+
- See the [Soleri docs](https://soleri.ai/docs) for more examples
|
|
329
|
+
`;
|
|
330
|
+
// ─── Workspace & Routing Seeds ───────────────────────────────────────
|
|
331
|
+
/** Default workspaces seeded based on agent domains. */
|
|
332
|
+
const DOMAIN_WORKSPACE_SEEDS = {
|
|
333
|
+
// Design-related domains
|
|
334
|
+
design: [
|
|
335
|
+
{
|
|
336
|
+
id: 'design',
|
|
337
|
+
name: 'Design',
|
|
338
|
+
description: 'Design system patterns, tokens, and components',
|
|
339
|
+
},
|
|
340
|
+
{ id: 'review', name: 'Review', description: 'Design review and accessibility audits' },
|
|
341
|
+
],
|
|
342
|
+
'ui-design': [
|
|
343
|
+
{ id: 'design', name: 'Design', description: 'UI design patterns, tokens, and components' },
|
|
344
|
+
{ id: 'review', name: 'Review', description: 'Design review and accessibility audits' },
|
|
345
|
+
],
|
|
346
|
+
accessibility: [
|
|
347
|
+
{ id: 'design', name: 'Design', description: 'Accessible design patterns and tokens' },
|
|
348
|
+
{ id: 'review', name: 'Review', description: 'Accessibility audits and compliance checks' },
|
|
349
|
+
],
|
|
350
|
+
// Dev-related domains
|
|
351
|
+
architecture: [
|
|
352
|
+
{
|
|
353
|
+
id: 'planning',
|
|
354
|
+
name: 'Planning',
|
|
355
|
+
description: 'Architecture decisions and technical planning',
|
|
356
|
+
},
|
|
357
|
+
{ id: 'src', name: 'Source', description: 'Implementation code and modules' },
|
|
358
|
+
{ id: 'docs', name: 'Documentation', description: 'Technical documentation and ADRs' },
|
|
359
|
+
],
|
|
360
|
+
backend: [
|
|
361
|
+
{ id: 'planning', name: 'Planning', description: 'Backend architecture and API design' },
|
|
362
|
+
{ id: 'src', name: 'Source', description: 'Implementation code and modules' },
|
|
363
|
+
{ id: 'docs', name: 'Documentation', description: 'API documentation and guides' },
|
|
364
|
+
],
|
|
365
|
+
frontend: [
|
|
366
|
+
{
|
|
367
|
+
id: 'planning',
|
|
368
|
+
name: 'Planning',
|
|
369
|
+
description: 'Frontend architecture and component design',
|
|
370
|
+
},
|
|
371
|
+
{ id: 'src', name: 'Source', description: 'Implementation code and components' },
|
|
372
|
+
{
|
|
373
|
+
id: 'docs',
|
|
374
|
+
name: 'Documentation',
|
|
375
|
+
description: 'Component documentation and style guides',
|
|
376
|
+
},
|
|
377
|
+
],
|
|
378
|
+
security: [
|
|
379
|
+
{
|
|
380
|
+
id: 'planning',
|
|
381
|
+
name: 'Planning',
|
|
382
|
+
description: 'Security architecture and threat modeling',
|
|
383
|
+
},
|
|
384
|
+
{ id: 'src', name: 'Source', description: 'Security implementations and policies' },
|
|
385
|
+
{ id: 'docs', name: 'Documentation', description: 'Security documentation and runbooks' },
|
|
386
|
+
],
|
|
387
|
+
};
|
|
388
|
+
/** Default routing entries seeded based on agent domains. */
|
|
389
|
+
const DOMAIN_ROUTING_SEEDS = {
|
|
390
|
+
design: [
|
|
391
|
+
{ pattern: 'design component', workspace: 'design', skills: ['vault-navigator'] },
|
|
392
|
+
{ pattern: 'review design', workspace: 'review', skills: ['deep-review'] },
|
|
393
|
+
],
|
|
394
|
+
'ui-design': [
|
|
395
|
+
{ pattern: 'design component', workspace: 'design', skills: ['vault-navigator'] },
|
|
396
|
+
{ pattern: 'review design', workspace: 'review', skills: ['deep-review'] },
|
|
397
|
+
],
|
|
398
|
+
architecture: [
|
|
399
|
+
{ pattern: 'plan architecture', workspace: 'planning', skills: ['writing-plans'] },
|
|
400
|
+
{ pattern: 'implement feature', workspace: 'src', skills: ['test-driven-development'] },
|
|
401
|
+
{ pattern: 'write documentation', workspace: 'docs', skills: ['vault-capture'] },
|
|
402
|
+
],
|
|
403
|
+
backend: [
|
|
404
|
+
{ pattern: 'plan API', workspace: 'planning', skills: ['writing-plans'] },
|
|
405
|
+
{ pattern: 'implement endpoint', workspace: 'src', skills: ['test-driven-development'] },
|
|
406
|
+
{ pattern: 'write docs', workspace: 'docs', skills: ['vault-capture'] },
|
|
407
|
+
],
|
|
408
|
+
frontend: [
|
|
409
|
+
{ pattern: 'plan component', workspace: 'planning', skills: ['writing-plans'] },
|
|
410
|
+
{ pattern: 'implement component', workspace: 'src', skills: ['test-driven-development'] },
|
|
411
|
+
{ pattern: 'write docs', workspace: 'docs', skills: ['vault-capture'] },
|
|
412
|
+
],
|
|
413
|
+
security: [
|
|
414
|
+
{ pattern: 'threat model', workspace: 'planning', skills: ['writing-plans'] },
|
|
415
|
+
{ pattern: 'implement policy', workspace: 'src', skills: ['test-driven-development'] },
|
|
416
|
+
{ pattern: 'write runbook', workspace: 'docs', skills: ['vault-capture'] },
|
|
417
|
+
],
|
|
418
|
+
};
|
|
215
419
|
// ─── Main Scaffolder ──────────────────────────────────────────────────
|
|
216
420
|
/**
|
|
217
421
|
* Scaffold a file-tree agent.
|
|
@@ -288,10 +492,34 @@ export function scaffoldFileTree(input, outputDir) {
|
|
|
288
492
|
'AGENTS.md',
|
|
289
493
|
'instructions/_engine.md',
|
|
290
494
|
'',
|
|
495
|
+
'# OS',
|
|
496
|
+
'.DS_Store',
|
|
497
|
+
'',
|
|
498
|
+
'# Editor / IDE state',
|
|
499
|
+
'.obsidian/',
|
|
500
|
+
'.opencode/',
|
|
501
|
+
'',
|
|
291
502
|
].join('\n'), filesCreated);
|
|
292
503
|
// ─── 5. Write engine rules ──────────────────────────────────
|
|
293
504
|
writeFile(agentDir, 'instructions/_engine.md', getEngineRulesContent(), filesCreated);
|
|
294
505
|
// ─── 6. Write user instruction files ────────────────────────
|
|
506
|
+
// Generate user.md — user-editable file with priority placement in CLAUDE.md
|
|
507
|
+
const userMdContent = [
|
|
508
|
+
'# Your Custom Rules',
|
|
509
|
+
'',
|
|
510
|
+
'Add your agent-specific rules, constraints, and preferences here.',
|
|
511
|
+
'This file gets priority placement in CLAUDE.md — it appears before engine rules.',
|
|
512
|
+
'',
|
|
513
|
+
'## Examples of what to put here:',
|
|
514
|
+
'- Project-specific conventions',
|
|
515
|
+
'- Communication preferences',
|
|
516
|
+
'- Domain expertise to emphasize',
|
|
517
|
+
'- Things to always/never do',
|
|
518
|
+
'',
|
|
519
|
+
'Delete these instructions and replace with your own content.',
|
|
520
|
+
'',
|
|
521
|
+
].join('\n');
|
|
522
|
+
writeFile(agentDir, 'instructions/user.md', userMdContent, filesCreated);
|
|
295
523
|
// Generate domain-specific instruction file if agent has specialized domains
|
|
296
524
|
if (config.domains.length > 0) {
|
|
297
525
|
const domainLines = [
|
|
@@ -306,6 +534,9 @@ export function scaffoldFileTree(input, outputDir) {
|
|
|
306
534
|
];
|
|
307
535
|
writeFile(agentDir, 'instructions/domain.md', domainLines.join('\n'), filesCreated);
|
|
308
536
|
}
|
|
537
|
+
// ─── 6b. Write example instruction files ─────────────────────
|
|
538
|
+
writeFile(agentDir, 'instructions/conventions.md', INSTRUCTIONS_CONVENTIONS, filesCreated);
|
|
539
|
+
writeFile(agentDir, 'instructions/getting-started.md', INSTRUCTIONS_GETTING_STARTED, filesCreated);
|
|
309
540
|
// ─── 7. Write workflows ─────────────────────────────────────
|
|
310
541
|
for (const wf of BUILTIN_WORKFLOWS) {
|
|
311
542
|
writeFile(agentDir, `workflows/${wf.name}/prompt.md`, wf.prompt, filesCreated);
|
|
@@ -313,7 +544,11 @@ export function scaffoldFileTree(input, outputDir) {
|
|
|
313
544
|
writeFile(agentDir, `workflows/${wf.name}/tools.yaml`, wf.tools, filesCreated);
|
|
314
545
|
}
|
|
315
546
|
// ─── 8. Copy bundled skills (with placeholder substitution) ─
|
|
316
|
-
const
|
|
547
|
+
const resolvedSkills = resolveSkillsFilter(config.skillsFilter);
|
|
548
|
+
const skills = generateSkills({
|
|
549
|
+
id: config.id,
|
|
550
|
+
skills: resolvedSkills ?? undefined,
|
|
551
|
+
});
|
|
317
552
|
for (const [relativePath, content] of skills) {
|
|
318
553
|
mkdirSync(join(agentDir, dirname(relativePath)), { recursive: true });
|
|
319
554
|
writeFile(agentDir, relativePath, content, filesCreated);
|
|
@@ -331,7 +566,27 @@ export function scaffoldFileTree(input, outputDir) {
|
|
|
331
566
|
writeFile(agentDir, `knowledge/${domain}.json`, JSON.stringify(bundle, null, 2) + '\n', filesCreated);
|
|
332
567
|
totalSeeded += starterEntries.length;
|
|
333
568
|
}
|
|
334
|
-
// ───
|
|
569
|
+
// ─── 9b. Create workspace directories with CONTEXT.md ──────
|
|
570
|
+
// Resolve workspaces: use explicit config or seed from domains
|
|
571
|
+
const resolvedWorkspaces = resolveWorkspaces(config);
|
|
572
|
+
if (resolvedWorkspaces.length > 0) {
|
|
573
|
+
for (const ws of resolvedWorkspaces) {
|
|
574
|
+
const wsDir = join(agentDir, 'workspaces', ws.id);
|
|
575
|
+
mkdirSync(wsDir, { recursive: true });
|
|
576
|
+
const contextContent = [
|
|
577
|
+
`# ${ws.name}`,
|
|
578
|
+
'',
|
|
579
|
+
ws.description,
|
|
580
|
+
'',
|
|
581
|
+
'## Instructions',
|
|
582
|
+
'',
|
|
583
|
+
`<!-- Add workspace-specific instructions here for the "${ws.name}" context. -->`,
|
|
584
|
+
'',
|
|
585
|
+
].join('\n');
|
|
586
|
+
writeFile(agentDir, `workspaces/${ws.id}/${ws.contextFile ?? 'CONTEXT.md'}`, contextContent, filesCreated);
|
|
587
|
+
}
|
|
588
|
+
}
|
|
589
|
+
// ─── 10. Generate CLAUDE.md ──────────────────────────────────
|
|
335
590
|
const { content: claudeMd } = composeClaudeMd(agentDir);
|
|
336
591
|
writeFile(agentDir, 'CLAUDE.md', claudeMd, filesCreated);
|
|
337
592
|
// ─── 10. Summary ────────────────────────────────────────────
|
|
@@ -411,12 +666,87 @@ function buildAgentYaml(config) {
|
|
|
411
666
|
setup.model = config.setup.model;
|
|
412
667
|
if (Object.keys(setup).length > 0)
|
|
413
668
|
yaml.setup = setup;
|
|
669
|
+
// Skills filter — only include if not the default ('essential')
|
|
670
|
+
if (config.skillsFilter && config.skillsFilter !== 'essential') {
|
|
671
|
+
yaml.skillsFilter = config.skillsFilter;
|
|
672
|
+
}
|
|
673
|
+
// Workspaces
|
|
674
|
+
const resolvedWs = resolveWorkspaces(config);
|
|
675
|
+
if (resolvedWs.length > 0) {
|
|
676
|
+
yaml.workspaces = resolvedWs.map((ws) => Object.assign({ id: ws.id, name: ws.name, description: ws.description }, ws.contextFile !== `CONTEXT.md` ? { contextFile: ws.contextFile } : {}));
|
|
677
|
+
}
|
|
678
|
+
// Routing
|
|
679
|
+
const resolvedRouting = resolveRouting(config);
|
|
680
|
+
if (resolvedRouting.length > 0) {
|
|
681
|
+
yaml.routing = resolvedRouting.map((r) => Object.assign({ pattern: r.pattern, workspace: r.workspace }, r.context.length > 0 ? { context: r.context } : {}, r.skills.length > 0 ? { skills: r.skills } : {}));
|
|
682
|
+
}
|
|
414
683
|
// Packs
|
|
415
684
|
if (config.packs && config.packs.length > 0) {
|
|
416
685
|
yaml.packs = config.packs;
|
|
417
686
|
}
|
|
418
687
|
return yaml;
|
|
419
688
|
}
|
|
689
|
+
// ─── Workspace & Routing Helpers ─────────────────────────────────────
|
|
690
|
+
/**
|
|
691
|
+
* Resolve workspaces: use explicit config or seed from domains.
|
|
692
|
+
* Deduplicates by workspace id.
|
|
693
|
+
*/
|
|
694
|
+
function resolveWorkspaces(config) {
|
|
695
|
+
// If explicitly defined, use those
|
|
696
|
+
if (config.workspaces && config.workspaces.length > 0) {
|
|
697
|
+
return config.workspaces.map((ws) => ({
|
|
698
|
+
id: ws.id,
|
|
699
|
+
name: ws.name,
|
|
700
|
+
description: ws.description,
|
|
701
|
+
contextFile: ws.contextFile ?? 'CONTEXT.md',
|
|
702
|
+
}));
|
|
703
|
+
}
|
|
704
|
+
// Otherwise, seed from domains
|
|
705
|
+
const seen = new Set();
|
|
706
|
+
const workspaces = [];
|
|
707
|
+
for (const domain of config.domains) {
|
|
708
|
+
const seeds = DOMAIN_WORKSPACE_SEEDS[domain];
|
|
709
|
+
if (!seeds)
|
|
710
|
+
continue;
|
|
711
|
+
for (const seed of seeds) {
|
|
712
|
+
if (seen.has(seed.id))
|
|
713
|
+
continue;
|
|
714
|
+
seen.add(seed.id);
|
|
715
|
+
workspaces.push({ ...seed, contextFile: 'CONTEXT.md' });
|
|
716
|
+
}
|
|
717
|
+
}
|
|
718
|
+
return workspaces;
|
|
719
|
+
}
|
|
720
|
+
/**
|
|
721
|
+
* Resolve routing entries: use explicit config or seed from domains.
|
|
722
|
+
* Deduplicates by pattern string.
|
|
723
|
+
*/
|
|
724
|
+
function resolveRouting(config) {
|
|
725
|
+
// If explicitly defined, use those
|
|
726
|
+
if (config.routing && config.routing.length > 0) {
|
|
727
|
+
return config.routing.map((r) => ({
|
|
728
|
+
pattern: r.pattern,
|
|
729
|
+
workspace: r.workspace,
|
|
730
|
+
context: r.context ?? [],
|
|
731
|
+
skills: r.skills ?? [],
|
|
732
|
+
}));
|
|
733
|
+
}
|
|
734
|
+
// Otherwise, seed from domains
|
|
735
|
+
const seen = new Set();
|
|
736
|
+
const routes = [];
|
|
737
|
+
for (const domain of config.domains) {
|
|
738
|
+
const seeds = DOMAIN_ROUTING_SEEDS[domain];
|
|
739
|
+
if (!seeds)
|
|
740
|
+
continue;
|
|
741
|
+
for (const seed of seeds) {
|
|
742
|
+
if (seen.has(seed.pattern))
|
|
743
|
+
continue;
|
|
744
|
+
seen.add(seed.pattern);
|
|
745
|
+
routes.push({ ...seed, context: [] });
|
|
746
|
+
}
|
|
747
|
+
}
|
|
748
|
+
return routes;
|
|
749
|
+
}
|
|
420
750
|
// ─── Starter Pack Helpers ────────────────────────────────────────────
|
|
421
751
|
/** Domain aliases — map agent domains to starter pack directories. */
|
|
422
752
|
const DOMAIN_TO_STARTER = {
|