@soleri/forge 9.7.2 → 9.9.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 +356 -10
- package/dist/scaffold-filetree.js.map +1 -1
- package/dist/scaffolder.js +12 -0
- package/dist/scaffolder.js.map +1 -1
- package/dist/skills/subagent-driven-development/SKILL.md +87 -20
- package/dist/templates/setup-script.js +71 -0
- package/dist/templates/setup-script.js.map +1 -1
- package/dist/templates/shared-rules.js +163 -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 +326 -1
- package/src/__tests__/scaffolder.test.ts +7 -5
- 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 +404 -10
- package/src/scaffolder.ts +17 -0
- package/src/skills/subagent-driven-development/SKILL.md +87 -20
- package/src/templates/setup-script.ts +71 -0
- package/src/templates/shared-rules.ts +166 -6
|
@@ -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',
|
|
@@ -53,7 +109,9 @@ When building a new feature, adding functionality, or creating components.
|
|
|
53
109
|
- Link new entries to related knowledge: \`op:link_entries\`
|
|
54
110
|
- Complete orchestration: \`op:orchestrate_complete\`
|
|
55
111
|
`,
|
|
56
|
-
gates:
|
|
112
|
+
gates: `# Workflow gates — engine reads these and enforces them during plan execution.
|
|
113
|
+
# Format: phase (brainstorming|pre-execution|post-task|completion), requirement, check
|
|
114
|
+
gates:
|
|
57
115
|
- phase: brainstorming
|
|
58
116
|
requirement: Requirements are clear and user has approved the approach
|
|
59
117
|
check: user-approval
|
|
@@ -70,7 +128,9 @@ When building a new feature, adding functionality, or creating components.
|
|
|
70
128
|
requirement: Knowledge captured to vault with links
|
|
71
129
|
check: knowledge-captured
|
|
72
130
|
`,
|
|
73
|
-
tools:
|
|
131
|
+
tools: `# Workflow tools — engine merges these into plan steps.
|
|
132
|
+
# Format: list of operation strings (agentId_facade op:operation_name)
|
|
133
|
+
tools:
|
|
74
134
|
- soleri_vault op:search_intelligent
|
|
75
135
|
- soleri_vault op:capture_knowledge
|
|
76
136
|
- soleri_links op:link_entries
|
|
@@ -111,7 +171,9 @@ When fixing bugs, resolving errors, or addressing regressions.
|
|
|
111
171
|
- If the bug reveals a pattern or anti-pattern, capture it: \`op:capture_knowledge\`
|
|
112
172
|
- Complete orchestration: \`op:orchestrate_complete\`
|
|
113
173
|
`,
|
|
114
|
-
gates:
|
|
174
|
+
gates: `# Workflow gates — engine reads these and enforces them during plan execution.
|
|
175
|
+
# Format: phase (brainstorming|pre-execution|post-task|completion), requirement, check
|
|
176
|
+
gates:
|
|
115
177
|
- phase: pre-execution
|
|
116
178
|
requirement: Root cause identified and fix plan approved
|
|
117
179
|
check: plan-approved
|
|
@@ -124,7 +186,9 @@ When fixing bugs, resolving errors, or addressing regressions.
|
|
|
124
186
|
requirement: Anti-pattern captured if applicable
|
|
125
187
|
check: knowledge-captured
|
|
126
188
|
`,
|
|
127
|
-
tools:
|
|
189
|
+
tools: `# Workflow tools — engine merges these into plan steps.
|
|
190
|
+
# Format: list of operation strings (agentId_facade op:operation_name)
|
|
191
|
+
tools:
|
|
128
192
|
- soleri_vault op:search_intelligent
|
|
129
193
|
- soleri_vault op:capture_knowledge
|
|
130
194
|
- soleri_plan op:create_plan
|
|
@@ -158,12 +222,16 @@ When reviewing code, auditing quality, or checking for issues.
|
|
|
158
222
|
### 4. Capture
|
|
159
223
|
- If review reveals new patterns or anti-patterns, capture them: \`op:capture_knowledge\`
|
|
160
224
|
`,
|
|
161
|
-
gates:
|
|
225
|
+
gates: `# Workflow gates — engine reads these and enforces them during plan execution.
|
|
226
|
+
# Format: phase (brainstorming|pre-execution|post-task|completion), requirement, check
|
|
227
|
+
gates:
|
|
162
228
|
- phase: completion
|
|
163
229
|
requirement: All blocking issues addressed
|
|
164
230
|
check: issues-resolved
|
|
165
231
|
`,
|
|
166
|
-
tools:
|
|
232
|
+
tools: `# Workflow tools — engine merges these into plan steps.
|
|
233
|
+
# Format: list of operation strings (agentId_facade op:operation_name)
|
|
234
|
+
tools:
|
|
167
235
|
- soleri_vault op:search_intelligent
|
|
168
236
|
- soleri_vault op:capture_knowledge
|
|
169
237
|
- soleri_brain op:recommend
|
|
@@ -195,7 +263,9 @@ Before crossing a context window boundary — \`/clear\`, context compaction, or
|
|
|
195
263
|
- Use plan IDs to look up active plans: \`op:orchestrate_status\`
|
|
196
264
|
- Continue from where the handoff left off
|
|
197
265
|
`,
|
|
198
|
-
gates:
|
|
266
|
+
gates: `# Workflow gates — engine reads these and enforces them during plan execution.
|
|
267
|
+
# Format: phase (brainstorming|pre-execution|post-task|completion), requirement, check
|
|
268
|
+
gates:
|
|
199
269
|
- phase: pre-transition
|
|
200
270
|
requirement: Handoff document generated with current state
|
|
201
271
|
check: handoff-generated
|
|
@@ -204,7 +274,9 @@ Before crossing a context window boundary — \`/clear\`, context compaction, or
|
|
|
204
274
|
requirement: New context has loaded handoff and can reference active plans
|
|
205
275
|
check: context-restored
|
|
206
276
|
`,
|
|
207
|
-
tools:
|
|
277
|
+
tools: `# Workflow tools — engine merges these into plan steps.
|
|
278
|
+
# Format: list of operation strings (agentId_facade op:operation_name)
|
|
279
|
+
tools:
|
|
208
280
|
- soleri_memory op:handoff_generate
|
|
209
281
|
- soleri_memory op:session_capture
|
|
210
282
|
- soleri_orchestrate op:orchestrate_status
|
|
@@ -212,6 +284,154 @@ Before crossing a context window boundary — \`/clear\`, context compaction, or
|
|
|
212
284
|
`,
|
|
213
285
|
},
|
|
214
286
|
];
|
|
287
|
+
// ─── Example Instruction Files ───────────────────────────────────────
|
|
288
|
+
const INSTRUCTIONS_CONVENTIONS = `# Conventions
|
|
289
|
+
|
|
290
|
+
<!-- Customize this file with your project's naming conventions, coding standards, and rules. -->
|
|
291
|
+
<!-- This file is composed into CLAUDE.md automatically — your agent will follow these rules. -->
|
|
292
|
+
|
|
293
|
+
## Naming Conventions
|
|
294
|
+
|
|
295
|
+
- Use \`kebab-case\` for file and directory names
|
|
296
|
+
- Use \`camelCase\` for variables and functions
|
|
297
|
+
- Use \`PascalCase\` for classes, types, and interfaces
|
|
298
|
+
- Prefix private helpers with \`_\` (e.g., \`_validateInput\`)
|
|
299
|
+
|
|
300
|
+
## File Organization
|
|
301
|
+
|
|
302
|
+
- Source code goes in \`src/\`
|
|
303
|
+
- Tests live next to the code they test (\`*.test.ts\`)
|
|
304
|
+
- Shared utilities go in \`src/utils/\`
|
|
305
|
+
- Types and interfaces go in \`src/types/\`
|
|
306
|
+
|
|
307
|
+
## Code Standards
|
|
308
|
+
|
|
309
|
+
- Every function must have a JSDoc comment explaining its purpose
|
|
310
|
+
- Prefer \`const\` over \`let\`; never use \`var\`
|
|
311
|
+
- Maximum file length: 300 lines — split if larger
|
|
312
|
+
- No default exports — use named exports only
|
|
313
|
+
|
|
314
|
+
## What to Avoid
|
|
315
|
+
|
|
316
|
+
- Do not add new npm dependencies without approval
|
|
317
|
+
- Do not use \`any\` type — use \`unknown\` and narrow
|
|
318
|
+
- Do not commit commented-out code
|
|
319
|
+
- Do not use hardcoded values — extract to constants or config
|
|
320
|
+
`;
|
|
321
|
+
const INSTRUCTIONS_GETTING_STARTED = `# Getting Started with Instructions
|
|
322
|
+
|
|
323
|
+
This folder contains your agent's custom behavioral rules. Every \`.md\` file here
|
|
324
|
+
is automatically composed into \`CLAUDE.md\` when you run \`soleri dev\`.
|
|
325
|
+
|
|
326
|
+
## How It Works
|
|
327
|
+
|
|
328
|
+
1. Create a new \`.md\` file in this folder (e.g., \`api-guidelines.md\`)
|
|
329
|
+
2. Write your rules, conventions, or guidelines in Markdown
|
|
330
|
+
3. Run \`soleri dev\` — it watches for changes and regenerates \`CLAUDE.md\`
|
|
331
|
+
4. Your agent now follows these rules in every conversation
|
|
332
|
+
|
|
333
|
+
## File Naming
|
|
334
|
+
|
|
335
|
+
- Files are included in **alphabetical order** (prefix with numbers to control order)
|
|
336
|
+
- \`_engine.md\` is auto-generated by Soleri — **do not edit it manually**
|
|
337
|
+
- \`domain.md\` was generated from your agent's domain config
|
|
338
|
+
|
|
339
|
+
## Tips
|
|
340
|
+
|
|
341
|
+
- Keep each file focused on one topic (conventions, workflows, constraints)
|
|
342
|
+
- Use clear headings — your agent reads these as instructions
|
|
343
|
+
- Add "What to Avoid" sections — agents benefit from explicit anti-patterns
|
|
344
|
+
- See the [Soleri docs](https://soleri.ai/docs) for more examples
|
|
345
|
+
`;
|
|
346
|
+
// ─── Workspace & Routing Seeds ───────────────────────────────────────
|
|
347
|
+
/** Default workspaces seeded based on agent domains. */
|
|
348
|
+
const DOMAIN_WORKSPACE_SEEDS = {
|
|
349
|
+
// Design-related domains
|
|
350
|
+
design: [
|
|
351
|
+
{
|
|
352
|
+
id: 'design',
|
|
353
|
+
name: 'Design',
|
|
354
|
+
description: 'Design system patterns, tokens, and components',
|
|
355
|
+
},
|
|
356
|
+
{ id: 'review', name: 'Review', description: 'Design review and accessibility audits' },
|
|
357
|
+
],
|
|
358
|
+
'ui-design': [
|
|
359
|
+
{ id: 'design', name: 'Design', description: 'UI design patterns, tokens, and components' },
|
|
360
|
+
{ id: 'review', name: 'Review', description: 'Design review and accessibility audits' },
|
|
361
|
+
],
|
|
362
|
+
accessibility: [
|
|
363
|
+
{ id: 'design', name: 'Design', description: 'Accessible design patterns and tokens' },
|
|
364
|
+
{ id: 'review', name: 'Review', description: 'Accessibility audits and compliance checks' },
|
|
365
|
+
],
|
|
366
|
+
// Dev-related domains
|
|
367
|
+
architecture: [
|
|
368
|
+
{
|
|
369
|
+
id: 'planning',
|
|
370
|
+
name: 'Planning',
|
|
371
|
+
description: 'Architecture decisions and technical planning',
|
|
372
|
+
},
|
|
373
|
+
{ id: 'src', name: 'Source', description: 'Implementation code and modules' },
|
|
374
|
+
{ id: 'docs', name: 'Documentation', description: 'Technical documentation and ADRs' },
|
|
375
|
+
],
|
|
376
|
+
backend: [
|
|
377
|
+
{ id: 'planning', name: 'Planning', description: 'Backend architecture and API design' },
|
|
378
|
+
{ id: 'src', name: 'Source', description: 'Implementation code and modules' },
|
|
379
|
+
{ id: 'docs', name: 'Documentation', description: 'API documentation and guides' },
|
|
380
|
+
],
|
|
381
|
+
frontend: [
|
|
382
|
+
{
|
|
383
|
+
id: 'planning',
|
|
384
|
+
name: 'Planning',
|
|
385
|
+
description: 'Frontend architecture and component design',
|
|
386
|
+
},
|
|
387
|
+
{ id: 'src', name: 'Source', description: 'Implementation code and components' },
|
|
388
|
+
{
|
|
389
|
+
id: 'docs',
|
|
390
|
+
name: 'Documentation',
|
|
391
|
+
description: 'Component documentation and style guides',
|
|
392
|
+
},
|
|
393
|
+
],
|
|
394
|
+
security: [
|
|
395
|
+
{
|
|
396
|
+
id: 'planning',
|
|
397
|
+
name: 'Planning',
|
|
398
|
+
description: 'Security architecture and threat modeling',
|
|
399
|
+
},
|
|
400
|
+
{ id: 'src', name: 'Source', description: 'Security implementations and policies' },
|
|
401
|
+
{ id: 'docs', name: 'Documentation', description: 'Security documentation and runbooks' },
|
|
402
|
+
],
|
|
403
|
+
};
|
|
404
|
+
/** Default routing entries seeded based on agent domains. */
|
|
405
|
+
const DOMAIN_ROUTING_SEEDS = {
|
|
406
|
+
design: [
|
|
407
|
+
{ pattern: 'design component', workspace: 'design', skills: ['vault-navigator'] },
|
|
408
|
+
{ pattern: 'review design', workspace: 'review', skills: ['deep-review'] },
|
|
409
|
+
],
|
|
410
|
+
'ui-design': [
|
|
411
|
+
{ pattern: 'design component', workspace: 'design', skills: ['vault-navigator'] },
|
|
412
|
+
{ pattern: 'review design', workspace: 'review', skills: ['deep-review'] },
|
|
413
|
+
],
|
|
414
|
+
architecture: [
|
|
415
|
+
{ pattern: 'plan architecture', workspace: 'planning', skills: ['writing-plans'] },
|
|
416
|
+
{ pattern: 'implement feature', workspace: 'src', skills: ['test-driven-development'] },
|
|
417
|
+
{ pattern: 'write documentation', workspace: 'docs', skills: ['vault-capture'] },
|
|
418
|
+
],
|
|
419
|
+
backend: [
|
|
420
|
+
{ pattern: 'plan API', workspace: 'planning', skills: ['writing-plans'] },
|
|
421
|
+
{ pattern: 'implement endpoint', workspace: 'src', skills: ['test-driven-development'] },
|
|
422
|
+
{ pattern: 'write docs', workspace: 'docs', skills: ['vault-capture'] },
|
|
423
|
+
],
|
|
424
|
+
frontend: [
|
|
425
|
+
{ pattern: 'plan component', workspace: 'planning', skills: ['writing-plans'] },
|
|
426
|
+
{ pattern: 'implement component', workspace: 'src', skills: ['test-driven-development'] },
|
|
427
|
+
{ pattern: 'write docs', workspace: 'docs', skills: ['vault-capture'] },
|
|
428
|
+
],
|
|
429
|
+
security: [
|
|
430
|
+
{ pattern: 'threat model', workspace: 'planning', skills: ['writing-plans'] },
|
|
431
|
+
{ pattern: 'implement policy', workspace: 'src', skills: ['test-driven-development'] },
|
|
432
|
+
{ pattern: 'write runbook', workspace: 'docs', skills: ['vault-capture'] },
|
|
433
|
+
],
|
|
434
|
+
};
|
|
215
435
|
// ─── Main Scaffolder ──────────────────────────────────────────────────
|
|
216
436
|
/**
|
|
217
437
|
* Scaffold a file-tree agent.
|
|
@@ -288,10 +508,34 @@ export function scaffoldFileTree(input, outputDir) {
|
|
|
288
508
|
'AGENTS.md',
|
|
289
509
|
'instructions/_engine.md',
|
|
290
510
|
'',
|
|
511
|
+
'# OS',
|
|
512
|
+
'.DS_Store',
|
|
513
|
+
'',
|
|
514
|
+
'# Editor / IDE state',
|
|
515
|
+
'.obsidian/',
|
|
516
|
+
'.opencode/',
|
|
517
|
+
'',
|
|
291
518
|
].join('\n'), filesCreated);
|
|
292
519
|
// ─── 5. Write engine rules ──────────────────────────────────
|
|
293
520
|
writeFile(agentDir, 'instructions/_engine.md', getEngineRulesContent(), filesCreated);
|
|
294
521
|
// ─── 6. Write user instruction files ────────────────────────
|
|
522
|
+
// Generate user.md — user-editable file with priority placement in CLAUDE.md
|
|
523
|
+
const userMdContent = [
|
|
524
|
+
'# Your Custom Rules',
|
|
525
|
+
'',
|
|
526
|
+
'Add your agent-specific rules, constraints, and preferences here.',
|
|
527
|
+
'This file gets priority placement in CLAUDE.md — it appears before engine rules.',
|
|
528
|
+
'',
|
|
529
|
+
'## Examples of what to put here:',
|
|
530
|
+
'- Project-specific conventions',
|
|
531
|
+
'- Communication preferences',
|
|
532
|
+
'- Domain expertise to emphasize',
|
|
533
|
+
'- Things to always/never do',
|
|
534
|
+
'',
|
|
535
|
+
'Delete these instructions and replace with your own content.',
|
|
536
|
+
'',
|
|
537
|
+
].join('\n');
|
|
538
|
+
writeFile(agentDir, 'instructions/user.md', userMdContent, filesCreated);
|
|
295
539
|
// Generate domain-specific instruction file if agent has specialized domains
|
|
296
540
|
if (config.domains.length > 0) {
|
|
297
541
|
const domainLines = [
|
|
@@ -306,6 +550,9 @@ export function scaffoldFileTree(input, outputDir) {
|
|
|
306
550
|
];
|
|
307
551
|
writeFile(agentDir, 'instructions/domain.md', domainLines.join('\n'), filesCreated);
|
|
308
552
|
}
|
|
553
|
+
// ─── 6b. Write example instruction files ─────────────────────
|
|
554
|
+
writeFile(agentDir, 'instructions/conventions.md', INSTRUCTIONS_CONVENTIONS, filesCreated);
|
|
555
|
+
writeFile(agentDir, 'instructions/getting-started.md', INSTRUCTIONS_GETTING_STARTED, filesCreated);
|
|
309
556
|
// ─── 7. Write workflows ─────────────────────────────────────
|
|
310
557
|
for (const wf of BUILTIN_WORKFLOWS) {
|
|
311
558
|
writeFile(agentDir, `workflows/${wf.name}/prompt.md`, wf.prompt, filesCreated);
|
|
@@ -313,7 +560,11 @@ export function scaffoldFileTree(input, outputDir) {
|
|
|
313
560
|
writeFile(agentDir, `workflows/${wf.name}/tools.yaml`, wf.tools, filesCreated);
|
|
314
561
|
}
|
|
315
562
|
// ─── 8. Copy bundled skills (with placeholder substitution) ─
|
|
316
|
-
const
|
|
563
|
+
const resolvedSkills = resolveSkillsFilter(config.skillsFilter);
|
|
564
|
+
const skills = generateSkills({
|
|
565
|
+
id: config.id,
|
|
566
|
+
skills: resolvedSkills ?? undefined,
|
|
567
|
+
});
|
|
317
568
|
for (const [relativePath, content] of skills) {
|
|
318
569
|
mkdirSync(join(agentDir, dirname(relativePath)), { recursive: true });
|
|
319
570
|
writeFile(agentDir, relativePath, content, filesCreated);
|
|
@@ -331,7 +582,27 @@ export function scaffoldFileTree(input, outputDir) {
|
|
|
331
582
|
writeFile(agentDir, `knowledge/${domain}.json`, JSON.stringify(bundle, null, 2) + '\n', filesCreated);
|
|
332
583
|
totalSeeded += starterEntries.length;
|
|
333
584
|
}
|
|
334
|
-
// ───
|
|
585
|
+
// ─── 9b. Create workspace directories with CONTEXT.md ──────
|
|
586
|
+
// Resolve workspaces: use explicit config or seed from domains
|
|
587
|
+
const resolvedWorkspaces = resolveWorkspaces(config);
|
|
588
|
+
if (resolvedWorkspaces.length > 0) {
|
|
589
|
+
for (const ws of resolvedWorkspaces) {
|
|
590
|
+
const wsDir = join(agentDir, 'workspaces', ws.id);
|
|
591
|
+
mkdirSync(wsDir, { recursive: true });
|
|
592
|
+
const contextContent = [
|
|
593
|
+
`# ${ws.name}`,
|
|
594
|
+
'',
|
|
595
|
+
ws.description,
|
|
596
|
+
'',
|
|
597
|
+
'## Instructions',
|
|
598
|
+
'',
|
|
599
|
+
`<!-- Add workspace-specific instructions here for the "${ws.name}" context. -->`,
|
|
600
|
+
'',
|
|
601
|
+
].join('\n');
|
|
602
|
+
writeFile(agentDir, `workspaces/${ws.id}/${ws.contextFile ?? 'CONTEXT.md'}`, contextContent, filesCreated);
|
|
603
|
+
}
|
|
604
|
+
}
|
|
605
|
+
// ─── 10. Generate CLAUDE.md ──────────────────────────────────
|
|
335
606
|
const { content: claudeMd } = composeClaudeMd(agentDir);
|
|
336
607
|
writeFile(agentDir, 'CLAUDE.md', claudeMd, filesCreated);
|
|
337
608
|
// ─── 10. Summary ────────────────────────────────────────────
|
|
@@ -411,12 +682,87 @@ function buildAgentYaml(config) {
|
|
|
411
682
|
setup.model = config.setup.model;
|
|
412
683
|
if (Object.keys(setup).length > 0)
|
|
413
684
|
yaml.setup = setup;
|
|
685
|
+
// Skills filter — only include if not the default ('essential')
|
|
686
|
+
if (config.skillsFilter && config.skillsFilter !== 'essential') {
|
|
687
|
+
yaml.skillsFilter = config.skillsFilter;
|
|
688
|
+
}
|
|
689
|
+
// Workspaces
|
|
690
|
+
const resolvedWs = resolveWorkspaces(config);
|
|
691
|
+
if (resolvedWs.length > 0) {
|
|
692
|
+
yaml.workspaces = resolvedWs.map((ws) => Object.assign({ id: ws.id, name: ws.name, description: ws.description }, ws.contextFile !== `CONTEXT.md` ? { contextFile: ws.contextFile } : {}));
|
|
693
|
+
}
|
|
694
|
+
// Routing
|
|
695
|
+
const resolvedRouting = resolveRouting(config);
|
|
696
|
+
if (resolvedRouting.length > 0) {
|
|
697
|
+
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 } : {}));
|
|
698
|
+
}
|
|
414
699
|
// Packs
|
|
415
700
|
if (config.packs && config.packs.length > 0) {
|
|
416
701
|
yaml.packs = config.packs;
|
|
417
702
|
}
|
|
418
703
|
return yaml;
|
|
419
704
|
}
|
|
705
|
+
// ─── Workspace & Routing Helpers ─────────────────────────────────────
|
|
706
|
+
/**
|
|
707
|
+
* Resolve workspaces: use explicit config or seed from domains.
|
|
708
|
+
* Deduplicates by workspace id.
|
|
709
|
+
*/
|
|
710
|
+
function resolveWorkspaces(config) {
|
|
711
|
+
// If explicitly defined, use those
|
|
712
|
+
if (config.workspaces && config.workspaces.length > 0) {
|
|
713
|
+
return config.workspaces.map((ws) => ({
|
|
714
|
+
id: ws.id,
|
|
715
|
+
name: ws.name,
|
|
716
|
+
description: ws.description,
|
|
717
|
+
contextFile: ws.contextFile ?? 'CONTEXT.md',
|
|
718
|
+
}));
|
|
719
|
+
}
|
|
720
|
+
// Otherwise, seed from domains
|
|
721
|
+
const seen = new Set();
|
|
722
|
+
const workspaces = [];
|
|
723
|
+
for (const domain of config.domains) {
|
|
724
|
+
const seeds = DOMAIN_WORKSPACE_SEEDS[domain];
|
|
725
|
+
if (!seeds)
|
|
726
|
+
continue;
|
|
727
|
+
for (const seed of seeds) {
|
|
728
|
+
if (seen.has(seed.id))
|
|
729
|
+
continue;
|
|
730
|
+
seen.add(seed.id);
|
|
731
|
+
workspaces.push({ ...seed, contextFile: 'CONTEXT.md' });
|
|
732
|
+
}
|
|
733
|
+
}
|
|
734
|
+
return workspaces;
|
|
735
|
+
}
|
|
736
|
+
/**
|
|
737
|
+
* Resolve routing entries: use explicit config or seed from domains.
|
|
738
|
+
* Deduplicates by pattern string.
|
|
739
|
+
*/
|
|
740
|
+
function resolveRouting(config) {
|
|
741
|
+
// If explicitly defined, use those
|
|
742
|
+
if (config.routing && config.routing.length > 0) {
|
|
743
|
+
return config.routing.map((r) => ({
|
|
744
|
+
pattern: r.pattern,
|
|
745
|
+
workspace: r.workspace,
|
|
746
|
+
context: r.context ?? [],
|
|
747
|
+
skills: r.skills ?? [],
|
|
748
|
+
}));
|
|
749
|
+
}
|
|
750
|
+
// Otherwise, seed from domains
|
|
751
|
+
const seen = new Set();
|
|
752
|
+
const routes = [];
|
|
753
|
+
for (const domain of config.domains) {
|
|
754
|
+
const seeds = DOMAIN_ROUTING_SEEDS[domain];
|
|
755
|
+
if (!seeds)
|
|
756
|
+
continue;
|
|
757
|
+
for (const seed of seeds) {
|
|
758
|
+
if (seen.has(seed.pattern))
|
|
759
|
+
continue;
|
|
760
|
+
seen.add(seed.pattern);
|
|
761
|
+
routes.push({ ...seed, context: [] });
|
|
762
|
+
}
|
|
763
|
+
}
|
|
764
|
+
return routes;
|
|
765
|
+
}
|
|
420
766
|
// ─── Starter Pack Helpers ────────────────────────────────────────────
|
|
421
767
|
/** Domain aliases — map agent domains to starter pack directories. */
|
|
422
768
|
const DOMAIN_TO_STARTER = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scaffold-filetree.js","sourceRoot":"","sources":["../src/scaffold-filetree.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"scaffold-filetree.js","sourceRoot":"","sources":["../src/scaffold-filetree.ts"],"names":[],"mappings":"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"}
|
package/dist/scaffolder.js
CHANGED
|
@@ -134,6 +134,12 @@ export function previewScaffold(config) {
|
|
|
134
134
|
description: `Hook pack files (${config.hookPacks.join(', ')})`,
|
|
135
135
|
});
|
|
136
136
|
}
|
|
137
|
+
if (opencodeSetup && config.hookPacks?.length) {
|
|
138
|
+
files.push({
|
|
139
|
+
path: '.opencode/plugins/',
|
|
140
|
+
description: `OpenCode enforcement plugin (${config.hookPacks.join(', ')})`,
|
|
141
|
+
});
|
|
142
|
+
}
|
|
137
143
|
if (config.telegram) {
|
|
138
144
|
files.push({
|
|
139
145
|
path: 'src/telegram-bot.ts',
|
|
@@ -289,6 +295,9 @@ export function scaffold(config) {
|
|
|
289
295
|
if (claudeSetup && config.hookPacks?.length) {
|
|
290
296
|
dirs.push('.claude');
|
|
291
297
|
}
|
|
298
|
+
if (opencodeSetup && config.hookPacks?.length) {
|
|
299
|
+
dirs.push('.opencode/plugins');
|
|
300
|
+
}
|
|
292
301
|
for (const dir of dirs) {
|
|
293
302
|
mkdirSync(join(agentDir, dir), { recursive: true });
|
|
294
303
|
}
|
|
@@ -494,6 +503,9 @@ export function scaffold(config) {
|
|
|
494
503
|
if (claudeSetup && config.hookPacks?.length) {
|
|
495
504
|
summaryLines.push(`${config.hookPacks.length} hook pack(s) bundled in .claude/`);
|
|
496
505
|
}
|
|
506
|
+
if (opencodeSetup && config.hookPacks?.length) {
|
|
507
|
+
summaryLines.push(`${config.hookPacks.length} hook pack(s) bundled as OpenCode plugin in .opencode/plugins/`);
|
|
508
|
+
}
|
|
497
509
|
for (const registration of mcpRegistrations) {
|
|
498
510
|
if (registration.result.registered) {
|
|
499
511
|
summaryLines.push(`${registration.host} MCP server registered in ${registration.result.path}`);
|