@soleri/forge 9.11.0 → 9.13.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/compose-claude-md.js +30 -19
- package/dist/compose-claude-md.js.map +1 -1
- package/dist/scaffold-filetree.js +116 -49
- package/dist/scaffold-filetree.js.map +1 -1
- package/dist/skills/{agent-dev → soleri-agent-dev}/SKILL.md +4 -7
- package/dist/skills/{agent-guide → soleri-agent-guide}/SKILL.md +7 -6
- package/{src/skills/agent-issues → dist/skills/soleri-agent-issues}/SKILL.md +33 -6
- package/{src/skills/agent-persona → dist/skills/soleri-agent-persona}/SKILL.md +4 -5
- package/{src/skills/brain-debrief → dist/skills/soleri-brain-debrief}/SKILL.md +5 -5
- package/dist/skills/{brainstorming → soleri-brainstorming}/SKILL.md +4 -5
- package/dist/skills/soleri-build-skill/SKILL.md +210 -0
- package/dist/skills/{code-patrol → soleri-code-patrol}/SKILL.md +6 -2
- package/{src/skills/context-resume → dist/skills/soleri-context-resume}/SKILL.md +4 -4
- package/{src/skills/deep-review → dist/skills/soleri-deep-review}/SKILL.md +5 -5
- package/dist/skills/{deliver-and-ship → soleri-deliver-and-ship}/SKILL.md +5 -5
- package/{src/skills/discovery-phase → dist/skills/soleri-discovery-phase}/SKILL.md +18 -17
- package/dist/skills/soleri-dream/SKILL.md +104 -0
- package/dist/skills/{env-setup → soleri-env-setup}/SKILL.md +31 -7
- package/dist/skills/{executing-plans → soleri-executing-plans}/SKILL.md +4 -5
- package/{src/skills/finishing-a-development-branch → dist/skills/soleri-finishing-a-development-branch}/SKILL.md +35 -4
- package/dist/skills/{fix-and-learn → soleri-fix-and-learn}/SKILL.md +4 -5
- package/{src/skills/health-check → dist/skills/soleri-health-check}/SKILL.md +5 -5
- package/{src/skills/knowledge-harvest → dist/skills/soleri-knowledge-harvest}/SKILL.md +5 -5
- package/dist/skills/{mcp-doctor → soleri-mcp-doctor}/SKILL.md +4 -4
- package/{src/skills/onboard-me → dist/skills/soleri-onboard-me}/SKILL.md +14 -4
- package/{src/skills/parallel-execute → dist/skills/soleri-parallel-execute}/SKILL.md +12 -7
- package/dist/skills/soleri-research-scout/SKILL.md +225 -0
- package/dist/skills/{retrospective → soleri-retrospective}/SKILL.md +5 -4
- package/{src/skills/second-opinion → dist/skills/soleri-second-opinion}/SKILL.md +5 -2
- package/dist/skills/{subagent-driven-development → soleri-subagent-driven-development}/SKILL.md +36 -15
- package/{src/skills/systematic-debugging → dist/skills/soleri-systematic-debugging}/SKILL.md +5 -5
- package/{src/skills/test-driven-development → dist/skills/soleri-test-driven-development}/SKILL.md +12 -2
- package/dist/skills/{using-git-worktrees → soleri-using-git-worktrees}/SKILL.md +25 -4
- package/dist/skills/soleri-vault-capture/SKILL.md +205 -0
- package/{src/skills/vault-curate → dist/skills/soleri-vault-curate}/SKILL.md +13 -6
- package/{src/skills/vault-navigator → dist/skills/soleri-vault-navigator}/SKILL.md +14 -5
- package/dist/skills/{vault-smells → soleri-vault-smells}/SKILL.md +7 -8
- package/{src/skills/verification-before-completion → dist/skills/soleri-verification-before-completion}/SKILL.md +15 -4
- package/{src/skills/writing-plans → dist/skills/soleri-writing-plans}/SKILL.md +10 -4
- package/dist/skills/{yolo-mode → soleri-yolo-mode}/SKILL.md +4 -4
- package/dist/templates/clean-worktrees.js +20 -0
- package/dist/templates/clean-worktrees.js.map +1 -1
- package/dist/templates/package-json.js +1 -1
- package/dist/templates/readme.js +19 -19
- package/dist/templates/readme.js.map +1 -1
- package/dist/templates/setup-script.js +24 -4
- package/dist/templates/setup-script.js.map +1 -1
- package/dist/templates/shared-rules.js +53 -5
- package/dist/templates/shared-rules.js.map +1 -1
- package/dist/templates/skills.d.ts +15 -0
- package/dist/templates/skills.js +63 -0
- package/dist/templates/skills.js.map +1 -1
- package/package.json +2 -2
- package/src/__tests__/extensions-scaffold.test.ts +1 -1
- package/src/__tests__/scaffold-filetree.test.ts +24 -20
- package/src/__tests__/scaffolder.test.ts +6 -6
- package/src/compose-claude-md.ts +30 -19
- package/src/scaffold-filetree.ts +134 -49
- package/src/skills/{agent-dev → soleri-agent-dev}/SKILL.md +4 -7
- package/src/skills/{agent-guide → soleri-agent-guide}/SKILL.md +7 -6
- package/{dist/skills/agent-issues → src/skills/soleri-agent-issues}/SKILL.md +33 -6
- package/{dist/skills/agent-persona → src/skills/soleri-agent-persona}/SKILL.md +4 -5
- package/{dist/skills/brain-debrief → src/skills/soleri-brain-debrief}/SKILL.md +5 -5
- package/src/skills/{brainstorming → soleri-brainstorming}/SKILL.md +4 -5
- package/src/skills/soleri-build-skill/SKILL.md +210 -0
- package/src/skills/{code-patrol → soleri-code-patrol}/SKILL.md +6 -2
- package/{dist/skills/context-resume → src/skills/soleri-context-resume}/SKILL.md +4 -4
- package/{dist/skills/deep-review → src/skills/soleri-deep-review}/SKILL.md +5 -5
- package/src/skills/{deliver-and-ship → soleri-deliver-and-ship}/SKILL.md +5 -5
- package/{dist/skills/discovery-phase → src/skills/soleri-discovery-phase}/SKILL.md +18 -17
- package/src/skills/soleri-dream/SKILL.md +104 -0
- package/src/skills/{env-setup → soleri-env-setup}/SKILL.md +31 -7
- package/src/skills/{executing-plans → soleri-executing-plans}/SKILL.md +4 -5
- package/{dist/skills/finishing-a-development-branch → src/skills/soleri-finishing-a-development-branch}/SKILL.md +35 -4
- package/src/skills/{fix-and-learn → soleri-fix-and-learn}/SKILL.md +4 -5
- package/{dist/skills/health-check → src/skills/soleri-health-check}/SKILL.md +5 -5
- package/{dist/skills/knowledge-harvest → src/skills/soleri-knowledge-harvest}/SKILL.md +5 -5
- package/src/skills/{mcp-doctor → soleri-mcp-doctor}/SKILL.md +4 -4
- package/{dist/skills/onboard-me → src/skills/soleri-onboard-me}/SKILL.md +14 -4
- package/{dist/skills/parallel-execute → src/skills/soleri-parallel-execute}/SKILL.md +12 -7
- package/src/skills/soleri-research-scout/SKILL.md +225 -0
- package/src/skills/{retrospective → soleri-retrospective}/SKILL.md +5 -4
- package/{dist/skills/second-opinion → src/skills/soleri-second-opinion}/SKILL.md +5 -2
- package/src/skills/{subagent-driven-development → soleri-subagent-driven-development}/SKILL.md +36 -15
- package/{dist/skills/systematic-debugging → src/skills/soleri-systematic-debugging}/SKILL.md +5 -5
- package/{dist/skills/test-driven-development → src/skills/soleri-test-driven-development}/SKILL.md +12 -2
- package/src/skills/{using-git-worktrees → soleri-using-git-worktrees}/SKILL.md +25 -4
- package/src/skills/soleri-vault-capture/SKILL.md +205 -0
- package/{dist/skills/vault-curate → src/skills/soleri-vault-curate}/SKILL.md +13 -6
- package/{dist/skills/vault-navigator → src/skills/soleri-vault-navigator}/SKILL.md +14 -5
- package/src/skills/{vault-smells → soleri-vault-smells}/SKILL.md +7 -8
- package/{dist/skills/verification-before-completion → src/skills/soleri-verification-before-completion}/SKILL.md +15 -4
- package/{dist/skills/writing-plans → src/skills/soleri-writing-plans}/SKILL.md +10 -4
- package/src/skills/{yolo-mode → soleri-yolo-mode}/SKILL.md +4 -4
- package/src/templates/clean-worktrees.ts +20 -0
- package/src/templates/package-json.ts +1 -1
- package/src/templates/readme.ts +19 -19
- package/src/templates/setup-script.ts +24 -4
- package/src/templates/shared-rules.ts +54 -5
- package/src/templates/skills.ts +82 -0
- package/dist/skills/vault-capture/SKILL.md +0 -86
- package/src/skills/vault-capture/SKILL.md +0 -86
package/src/scaffold-filetree.ts
CHANGED
|
@@ -26,40 +26,40 @@ import type { AgentConfig } from './types.js';
|
|
|
26
26
|
* (installed on demand via `soleri skills install`).
|
|
27
27
|
*/
|
|
28
28
|
export const SKILLS_REGISTRY: Record<string, 'essential' | 'optional'> = {
|
|
29
|
-
'agent-guide': 'essential',
|
|
30
|
-
'agent-persona': 'essential',
|
|
31
|
-
'vault-navigator': 'essential',
|
|
32
|
-
'vault-capture': 'essential',
|
|
33
|
-
'systematic-debugging': 'essential',
|
|
34
|
-
'writing-plans': 'essential',
|
|
35
|
-
'context-resume': 'essential',
|
|
29
|
+
'soleri-agent-guide': 'essential',
|
|
30
|
+
'soleri-agent-persona': 'essential',
|
|
31
|
+
'soleri-vault-navigator': 'essential',
|
|
32
|
+
'soleri-vault-capture': 'essential',
|
|
33
|
+
'soleri-systematic-debugging': 'essential',
|
|
34
|
+
'soleri-writing-plans': 'essential',
|
|
35
|
+
'soleri-context-resume': 'essential',
|
|
36
36
|
// ─── Optional (installed on demand) ────────────
|
|
37
|
-
'agent-dev': 'optional',
|
|
38
|
-
'agent-issues': 'optional',
|
|
39
|
-
'brain-debrief': 'optional',
|
|
40
|
-
brainstorming: 'optional',
|
|
41
|
-
'code-patrol': 'optional',
|
|
42
|
-
'deep-review': 'optional',
|
|
43
|
-
'deliver-and-ship': 'optional',
|
|
44
|
-
'discovery-phase': 'optional',
|
|
45
|
-
'env-setup': 'optional',
|
|
46
|
-
'executing-plans': 'optional',
|
|
47
|
-
'finishing-a-development-branch': 'optional',
|
|
48
|
-
'fix-and-learn': 'optional',
|
|
49
|
-
'health-check': 'optional',
|
|
50
|
-
'knowledge-harvest': 'optional',
|
|
51
|
-
'mcp-doctor': 'optional',
|
|
52
|
-
'onboard-me': 'optional',
|
|
53
|
-
'parallel-execute': 'optional',
|
|
54
|
-
retrospective: 'optional',
|
|
55
|
-
'second-opinion': 'optional',
|
|
56
|
-
'subagent-driven-development': 'optional',
|
|
57
|
-
'test-driven-development': 'optional',
|
|
58
|
-
'using-git-worktrees': 'optional',
|
|
59
|
-
'vault-curate': 'optional',
|
|
60
|
-
'vault-smells': 'optional',
|
|
61
|
-
'verification-before-completion': 'optional',
|
|
62
|
-
'yolo-mode': 'optional',
|
|
37
|
+
'soleri-agent-dev': 'optional',
|
|
38
|
+
'soleri-agent-issues': 'optional',
|
|
39
|
+
'soleri-brain-debrief': 'optional',
|
|
40
|
+
'soleri-brainstorming': 'optional',
|
|
41
|
+
'soleri-code-patrol': 'optional',
|
|
42
|
+
'soleri-deep-review': 'optional',
|
|
43
|
+
'soleri-deliver-and-ship': 'optional',
|
|
44
|
+
'soleri-discovery-phase': 'optional',
|
|
45
|
+
'soleri-env-setup': 'optional',
|
|
46
|
+
'soleri-executing-plans': 'optional',
|
|
47
|
+
'soleri-finishing-a-development-branch': 'optional',
|
|
48
|
+
'soleri-fix-and-learn': 'optional',
|
|
49
|
+
'soleri-health-check': 'optional',
|
|
50
|
+
'soleri-knowledge-harvest': 'optional',
|
|
51
|
+
'soleri-mcp-doctor': 'optional',
|
|
52
|
+
'soleri-onboard-me': 'optional',
|
|
53
|
+
'soleri-parallel-execute': 'optional',
|
|
54
|
+
'soleri-retrospective': 'optional',
|
|
55
|
+
'soleri-second-opinion': 'optional',
|
|
56
|
+
'soleri-subagent-driven-development': 'optional',
|
|
57
|
+
'soleri-test-driven-development': 'optional',
|
|
58
|
+
'soleri-using-git-worktrees': 'optional',
|
|
59
|
+
'soleri-vault-curate': 'optional',
|
|
60
|
+
'soleri-vault-smells': 'optional',
|
|
61
|
+
'soleri-verification-before-completion': 'optional',
|
|
62
|
+
'soleri-yolo-mode': 'optional',
|
|
63
63
|
};
|
|
64
64
|
|
|
65
65
|
/** Names of essential skills (always scaffolded when skillsFilter is 'essential'). */
|
|
@@ -439,32 +439,36 @@ const DOMAIN_ROUTING_SEEDS: Record<
|
|
|
439
439
|
{ pattern: string; workspace: string; skills: string[] }[]
|
|
440
440
|
> = {
|
|
441
441
|
design: [
|
|
442
|
-
{ pattern: 'design component', workspace: 'design', skills: ['vault-navigator'] },
|
|
443
|
-
{ pattern: 'review design', workspace: 'review', skills: ['deep-review'] },
|
|
442
|
+
{ pattern: 'design component', workspace: 'design', skills: ['soleri-vault-navigator'] },
|
|
443
|
+
{ pattern: 'review design', workspace: 'review', skills: ['soleri-deep-review'] },
|
|
444
444
|
],
|
|
445
445
|
'ui-design': [
|
|
446
|
-
{ pattern: 'design component', workspace: 'design', skills: ['vault-navigator'] },
|
|
447
|
-
{ pattern: 'review design', workspace: 'review', skills: ['deep-review'] },
|
|
446
|
+
{ pattern: 'design component', workspace: 'design', skills: ['soleri-vault-navigator'] },
|
|
447
|
+
{ pattern: 'review design', workspace: 'review', skills: ['soleri-deep-review'] },
|
|
448
448
|
],
|
|
449
449
|
architecture: [
|
|
450
|
-
{ pattern: 'plan architecture', workspace: 'planning', skills: ['writing-plans'] },
|
|
451
|
-
{ pattern: 'implement feature', workspace: 'src', skills: ['test-driven-development'] },
|
|
452
|
-
{ pattern: 'write documentation', workspace: 'docs', skills: ['vault-capture'] },
|
|
450
|
+
{ pattern: 'plan architecture', workspace: 'planning', skills: ['soleri-writing-plans'] },
|
|
451
|
+
{ pattern: 'implement feature', workspace: 'src', skills: ['soleri-test-driven-development'] },
|
|
452
|
+
{ pattern: 'write documentation', workspace: 'docs', skills: ['soleri-vault-capture'] },
|
|
453
453
|
],
|
|
454
454
|
backend: [
|
|
455
|
-
{ pattern: 'plan API', workspace: 'planning', skills: ['writing-plans'] },
|
|
456
|
-
{ pattern: 'implement endpoint', workspace: 'src', skills: ['test-driven-development'] },
|
|
457
|
-
{ pattern: 'write docs', workspace: 'docs', skills: ['vault-capture'] },
|
|
455
|
+
{ pattern: 'plan API', workspace: 'planning', skills: ['soleri-writing-plans'] },
|
|
456
|
+
{ pattern: 'implement endpoint', workspace: 'src', skills: ['soleri-test-driven-development'] },
|
|
457
|
+
{ pattern: 'write docs', workspace: 'docs', skills: ['soleri-vault-capture'] },
|
|
458
458
|
],
|
|
459
459
|
frontend: [
|
|
460
|
-
{ pattern: 'plan component', workspace: 'planning', skills: ['writing-plans'] },
|
|
461
|
-
{
|
|
462
|
-
|
|
460
|
+
{ pattern: 'plan component', workspace: 'planning', skills: ['soleri-writing-plans'] },
|
|
461
|
+
{
|
|
462
|
+
pattern: 'implement component',
|
|
463
|
+
workspace: 'src',
|
|
464
|
+
skills: ['soleri-test-driven-development'],
|
|
465
|
+
},
|
|
466
|
+
{ pattern: 'write docs', workspace: 'docs', skills: ['soleri-vault-capture'] },
|
|
463
467
|
],
|
|
464
468
|
security: [
|
|
465
|
-
{ pattern: 'threat model', workspace: 'planning', skills: ['writing-plans'] },
|
|
466
|
-
{ pattern: 'implement policy', workspace: 'src', skills: ['test-driven-development'] },
|
|
467
|
-
{ pattern: 'write runbook', workspace: 'docs', skills: ['vault-capture'] },
|
|
469
|
+
{ pattern: 'threat model', workspace: 'planning', skills: ['soleri-writing-plans'] },
|
|
470
|
+
{ pattern: 'implement policy', workspace: 'src', skills: ['soleri-test-driven-development'] },
|
|
471
|
+
{ pattern: 'write runbook', workspace: 'docs', skills: ['soleri-vault-capture'] },
|
|
468
472
|
],
|
|
469
473
|
};
|
|
470
474
|
|
|
@@ -514,6 +518,49 @@ export function scaffoldFileTree(input: AgentYamlInput, outputDir: string): File
|
|
|
514
518
|
mkdirSync(join(agentDir, dir), { recursive: true });
|
|
515
519
|
}
|
|
516
520
|
|
|
521
|
+
// Write README placeholders for empty directories
|
|
522
|
+
writeFile(
|
|
523
|
+
agentDir,
|
|
524
|
+
'data/README.md',
|
|
525
|
+
`# Data
|
|
526
|
+
|
|
527
|
+
Runtime data for your agent — vault database, plans, brain state.
|
|
528
|
+
|
|
529
|
+
These files are managed automatically by the Soleri engine. You don't need to edit them.
|
|
530
|
+
|
|
531
|
+
| File | Purpose |
|
|
532
|
+
|------|---------|
|
|
533
|
+
| \`vault.db\` | Knowledge vault (SQLite) |
|
|
534
|
+
| \`plans.json\` | Active and completed plans |
|
|
535
|
+
| \`brain.json\` | Pattern intelligence state |
|
|
536
|
+
`,
|
|
537
|
+
filesCreated,
|
|
538
|
+
);
|
|
539
|
+
|
|
540
|
+
writeFile(
|
|
541
|
+
agentDir,
|
|
542
|
+
'hooks/README.md',
|
|
543
|
+
`# Hooks
|
|
544
|
+
|
|
545
|
+
Quality gate hooks that run automatically during your workflow.
|
|
546
|
+
|
|
547
|
+
Install hook packs with:
|
|
548
|
+
|
|
549
|
+
\`\`\`bash
|
|
550
|
+
soleri hooks install <pack-name>
|
|
551
|
+
\`\`\`
|
|
552
|
+
|
|
553
|
+
List available packs:
|
|
554
|
+
|
|
555
|
+
\`\`\`bash
|
|
556
|
+
soleri hooks list
|
|
557
|
+
\`\`\`
|
|
558
|
+
|
|
559
|
+
See [Hook Packs documentation](https://soleri.dev/docs/guides/pack-authoring/) for details.
|
|
560
|
+
`,
|
|
561
|
+
filesCreated,
|
|
562
|
+
);
|
|
563
|
+
|
|
517
564
|
// ─── 2. Write agent.yaml ────────────────────────────────────
|
|
518
565
|
const agentYamlContent = yamlStringify(buildAgentYaml(config), {
|
|
519
566
|
lineWidth: 100,
|
|
@@ -658,6 +705,44 @@ export function scaffoldFileTree(input: AgentYamlInput, outputDir: string): File
|
|
|
658
705
|
totalSeeded += starterEntries.length;
|
|
659
706
|
}
|
|
660
707
|
|
|
708
|
+
// Always write knowledge/README.md so the directory isn't mysteriously empty
|
|
709
|
+
writeFile(
|
|
710
|
+
agentDir,
|
|
711
|
+
'knowledge/README.md',
|
|
712
|
+
`# Knowledge
|
|
713
|
+
|
|
714
|
+
Your agent's knowledge lives in the vault database (\`data/vault.db\`), not as files in this directory.
|
|
715
|
+
|
|
716
|
+
## Seeding starter knowledge
|
|
717
|
+
|
|
718
|
+
Drop JSON bundles here to seed knowledge when the agent starts:
|
|
719
|
+
|
|
720
|
+
\`\`\`json
|
|
721
|
+
{
|
|
722
|
+
"domain": "your-domain",
|
|
723
|
+
"version": "1.0.0",
|
|
724
|
+
"entries": [
|
|
725
|
+
{
|
|
726
|
+
"id": "unique-id",
|
|
727
|
+
"title": "Pattern name",
|
|
728
|
+
"content": "Description of the pattern...",
|
|
729
|
+
"type": "pattern",
|
|
730
|
+
"domain": "your-domain",
|
|
731
|
+
"tags": ["tag1", "tag2"]
|
|
732
|
+
}
|
|
733
|
+
]
|
|
734
|
+
}
|
|
735
|
+
\`\`\`
|
|
736
|
+
|
|
737
|
+
## Browsing vault contents
|
|
738
|
+
|
|
739
|
+
Ask your agent: **"Show me vault stats"** or **"List all entries"**
|
|
740
|
+
|
|
741
|
+
To export entries as files: **"Export vault entries as markdown"**
|
|
742
|
+
`,
|
|
743
|
+
filesCreated,
|
|
744
|
+
);
|
|
745
|
+
|
|
661
746
|
// ─── 9b. Create workspace directories with CONTEXT.md ──────
|
|
662
747
|
// Resolve workspaces: use explicit config or seed from domains
|
|
663
748
|
const resolvedWorkspaces = resolveWorkspaces(config);
|
|
@@ -1,12 +1,9 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: agent-dev
|
|
2
|
+
name: soleri-agent-dev
|
|
3
3
|
description: >
|
|
4
|
-
Use when
|
|
5
|
-
brain
|
|
6
|
-
|
|
7
|
-
"extend agent", or when the work target is the agent's own codebase rather than
|
|
8
|
-
a project the agent assists with. Enforces vault-first knowledge gathering before
|
|
9
|
-
any code reading or planning.
|
|
4
|
+
Use when the user says "add a facade", "new tool", "extend vault",
|
|
5
|
+
"add brain feature", "new skill", or "extend agent". For extending
|
|
6
|
+
the agent's own internals with vault-first knowledge gathering.
|
|
10
7
|
---
|
|
11
8
|
|
|
12
9
|
# Agent Dev — Vault-First Internal Development
|
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: agent-guide
|
|
2
|
+
name: soleri-agent-guide
|
|
3
3
|
description: >
|
|
4
|
-
Use when the user
|
|
5
|
-
"what features
|
|
6
|
-
|
|
7
|
-
about the agent's identity, capabilities, available tools, or how to use them.
|
|
8
|
-
Not needed for proactive tool suggestions — those are handled by engine rules.
|
|
4
|
+
Use when the user says "what can you do", "how do I use this",
|
|
5
|
+
"what features", "what tools available", "who are you", or "show capabilities".
|
|
6
|
+
Helps users discover agent capabilities and available tools.
|
|
9
7
|
---
|
|
10
8
|
|
|
11
9
|
# Agent Guide — Capability Discovery
|
|
@@ -36,6 +34,9 @@ This returns the agent's persona: name, role, description, tone, principles, and
|
|
|
36
34
|
|
|
37
35
|
```
|
|
38
36
|
YOUR_AGENT_core op:admin_health
|
|
37
|
+
YOUR_AGENT_core op:vault_stats
|
|
38
|
+
YOUR_AGENT_core op:brain_stats
|
|
39
|
+
YOUR_AGENT_core op:memory_stats
|
|
39
40
|
```
|
|
40
41
|
|
|
41
42
|
Shows what subsystems are active: vault (how many entries), brain (vocabulary size), LLM availability, cognee status. This tells the user what the agent currently has to work with.
|
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: agent-issues
|
|
2
|
+
name: soleri-agent-issues
|
|
3
3
|
description: >
|
|
4
|
-
Use when
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
"create tasks", "create tickets", "file tickets", or when generating
|
|
8
|
-
structured work items from conversation context.
|
|
4
|
+
Use when the user says "create issue", "file bug", "gh issue",
|
|
5
|
+
"create task", "report bug", or "create tickets". Creates structured
|
|
6
|
+
GitHub issues optimized for AI agent execution.
|
|
9
7
|
---
|
|
10
8
|
|
|
11
9
|
# Agent-Optimized Issue Creation
|
|
@@ -26,6 +24,18 @@ An agent cannot act on "improve avatar handling." It can act on: "Add PNG upload
|
|
|
26
24
|
- Creating milestones with sub-issues
|
|
27
25
|
- Converting vault patterns or anti-patterns into actionable fixes
|
|
28
26
|
|
|
27
|
+
## Vault Context Check
|
|
28
|
+
|
|
29
|
+
Before creating the issue, search for related patterns:
|
|
30
|
+
|
|
31
|
+
```
|
|
32
|
+
YOUR_AGENT_core op:search_intelligent
|
|
33
|
+
params: { query: "<bug description or feature summary>" }
|
|
34
|
+
|
|
35
|
+
YOUR_AGENT_core op:memory_search
|
|
36
|
+
params: { query: "<similar issues>" }
|
|
37
|
+
```
|
|
38
|
+
|
|
29
39
|
## Issue Template by Type
|
|
30
40
|
|
|
31
41
|
### Bug
|
|
@@ -177,6 +187,15 @@ An agent cannot act on "improve avatar handling." It can act on: "Add PNG upload
|
|
|
177
187
|
- [ ] <milestone-level verification>
|
|
178
188
|
````
|
|
179
189
|
|
|
190
|
+
## Record Issue
|
|
191
|
+
|
|
192
|
+
After creating the issue, capture it for future reference:
|
|
193
|
+
|
|
194
|
+
```
|
|
195
|
+
YOUR_AGENT_core op:capture_quick
|
|
196
|
+
params: { title: "GH Issue #<number>: <title>", tags: ["github", "issue"] }
|
|
197
|
+
```
|
|
198
|
+
|
|
180
199
|
## Field Guide
|
|
181
200
|
|
|
182
201
|
### Writing Good Objectives
|
|
@@ -289,3 +308,11 @@ Always apply at least:
|
|
|
289
308
|
- Priority: `P0`, `P1`, `P2`, `P3` (if using priority labels)
|
|
290
309
|
- Component: package or module name (if using component labels)
|
|
291
310
|
```
|
|
311
|
+
|
|
312
|
+
## Agent Tools Reference
|
|
313
|
+
|
|
314
|
+
| Op | When to Use |
|
|
315
|
+
| -------------------- | ----------------------------------------- |
|
|
316
|
+
| `search_intelligent` | Check vault before creating issues |
|
|
317
|
+
| `memory_search` | Find similar past issues |
|
|
318
|
+
| `capture_quick` | Record created issue for future reference |
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: agent-persona
|
|
2
|
+
name: soleri-agent-persona
|
|
3
3
|
description: >
|
|
4
|
-
Use when the user
|
|
5
|
-
"
|
|
6
|
-
|
|
7
|
-
through the session and survives context compaction.
|
|
4
|
+
Use when the user says "activate persona", "be yourself",
|
|
5
|
+
"stay in character", or "hello [agent name]". Reinforces character
|
|
6
|
+
persistence through the session and survives context compaction.
|
|
8
7
|
---
|
|
9
8
|
|
|
10
9
|
# Agent Persona — Stay in Character
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: brain-debrief
|
|
2
|
+
name: soleri-brain-debrief
|
|
3
3
|
description: >
|
|
4
|
-
Use when the user
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
reflection, use retrospective instead.
|
|
4
|
+
Use when the user says "brain stats", "pattern strengths",
|
|
5
|
+
"intelligence report", "show brain data", or "what patterns are strongest".
|
|
6
|
+
Surfaces accumulated pattern intelligence from the brain module. For
|
|
7
|
+
time-bound work reflection (sprint retro, weekly summary), use retrospective instead.
|
|
8
8
|
---
|
|
9
9
|
|
|
10
10
|
# Brain Debrief — Intelligence Report
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: brainstorming
|
|
2
|
+
name: soleri-brainstorming
|
|
3
3
|
description: >
|
|
4
|
-
Use
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
writing-plans instead.
|
|
4
|
+
Use when the user says "I want to build something", "let's think about",
|
|
5
|
+
"what if we", "creative exploration", or "ideate". For open-ended creative
|
|
6
|
+
exploration when requirements are NOT yet clear.
|
|
8
7
|
---
|
|
9
8
|
|
|
10
9
|
# Brainstorming Ideas Into Designs
|
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: soleri-build-skill
|
|
3
|
+
description: >
|
|
4
|
+
Use when creating a new skill, updating an existing skill, or scaffolding a skill
|
|
5
|
+
template for a Soleri agent. Triggers on "create a skill", "new skill", "build skill",
|
|
6
|
+
"add a skill", "write a skill", "skill template", "scaffold skill".
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Build Skill — Create Skills for Soleri Agents
|
|
10
|
+
|
|
11
|
+
Create well-structured skills that follow Soleri conventions. Skills are SKILL.md files in the forge that get synced to agents as slash commands.
|
|
12
|
+
|
|
13
|
+
## Skill Anatomy
|
|
14
|
+
|
|
15
|
+
Skills live in two places:
|
|
16
|
+
|
|
17
|
+
| Location | Purpose |
|
|
18
|
+
| -------------------------------------------------- | -------------------------- |
|
|
19
|
+
| `packages/forge/src/skills/soleri-{name}/SKILL.md` | Source — ships with Soleri |
|
|
20
|
+
| `~/.claude/skills/{agent}-soleri-{name}/SKILL.md` | Runtime — synced per agent |
|
|
21
|
+
|
|
22
|
+
### File Structure
|
|
23
|
+
|
|
24
|
+
```yaml
|
|
25
|
+
---
|
|
26
|
+
name: soleri-{skill-name}
|
|
27
|
+
description: >
|
|
28
|
+
Use when the user says "trigger1", "trigger2", "trigger3",
|
|
29
|
+
or wants to [brief purpose]. [One sentence about what the skill does].
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
# Skill Title — Short Purpose
|
|
33
|
+
|
|
34
|
+
[Core workflow instructions with numbered steps]
|
|
35
|
+
|
|
36
|
+
## Agent Tools Reference
|
|
37
|
+
|
|
38
|
+
| Op | When to Use |
|
|
39
|
+
|----|-------------|
|
|
40
|
+
| `search_intelligent` | Check vault before starting |
|
|
41
|
+
| `capture_knowledge` | Persist patterns worth remembering |
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## Creation Process
|
|
45
|
+
|
|
46
|
+
### Step 1: Search Vault for Prior Art
|
|
47
|
+
|
|
48
|
+
Before creating anything, check if a similar skill or pattern exists:
|
|
49
|
+
|
|
50
|
+
```
|
|
51
|
+
YOUR_AGENT_core op:search_intelligent
|
|
52
|
+
params: { query: "<skill topic>" }
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
List existing skills to avoid duplication:
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
ls packages/forge/src/skills/
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### Step 2: Check Trigger Keywords
|
|
62
|
+
|
|
63
|
+
Every skill needs 4-8 unique trigger phrases in the `description:` field. Before choosing triggers, check ALL existing skills to avoid overlap:
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
grep -h "description:" packages/forge/src/skills/soleri-*/SKILL.md
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
Rules:
|
|
70
|
+
|
|
71
|
+
- No trigger phrase may appear in more than one skill
|
|
72
|
+
- Use quoted phrases: `"exact trigger words"`
|
|
73
|
+
- Cover the full intent range — think about how users naturally ask for this
|
|
74
|
+
- Avoid generic words that overlap with other skills (e.g., "review" is used by deep-review)
|
|
75
|
+
|
|
76
|
+
### Step 3: Design the Workflow
|
|
77
|
+
|
|
78
|
+
Identify 3-5 concrete scenarios. Ask the user if unclear:
|
|
79
|
+
|
|
80
|
+
- "What exact phrases should trigger this skill?"
|
|
81
|
+
- "Walk me through one example end-to-end"
|
|
82
|
+
- "What should this skill NOT do?"
|
|
83
|
+
|
|
84
|
+
### Step 4: Wire In Engine Ops
|
|
85
|
+
|
|
86
|
+
Every Soleri skill should use the engine where applicable. Use the `YOUR_AGENT_core` placeholder — it gets replaced with the agent's actual facade name at sync time.
|
|
87
|
+
|
|
88
|
+
Common integration points:
|
|
89
|
+
|
|
90
|
+
| When | Op | Why |
|
|
91
|
+
| -------------------- | ----------------------------- | --------------------------------- |
|
|
92
|
+
| Before starting work | `search_intelligent` | Check vault for prior art |
|
|
93
|
+
| Before starting work | `memory_search` | Check session history |
|
|
94
|
+
| During execution | `brain_recommend` | Get brain recommendations |
|
|
95
|
+
| After completion | `capture_knowledge` | Persist patterns learned |
|
|
96
|
+
| After completion | `capture_quick` | Fast capture for simple learnings |
|
|
97
|
+
| Quality checks | `admin_health` | Verify system health |
|
|
98
|
+
| Iteration tracking | `loop_start` / `loop_iterate` | Track multi-step work |
|
|
99
|
+
|
|
100
|
+
### Available Facades
|
|
101
|
+
|
|
102
|
+
All ops use the `YOUR_AGENT_core` placeholder:
|
|
103
|
+
|
|
104
|
+
| Domain | Key Ops |
|
|
105
|
+
| ---------------------- | --------------------------------------------------------------------------------------------------- |
|
|
106
|
+
| Vault search & capture | `search_intelligent`, `search`, `capture_knowledge`, `capture_quick`, `vault_tags`, `vault_domains` |
|
|
107
|
+
| Admin & health | `admin_health`, `admin_diagnostic`, `admin_tool_list`, `admin_vault_analytics` |
|
|
108
|
+
| Curator & quality | `curator_health_audit`, `curator_detect_duplicates`, `curator_contradictions`, `curator_groom_all` |
|
|
109
|
+
| Brain & learning | `brain_stats`, `brain_strengths`, `brain_recommend`, `brain_build_intelligence` |
|
|
110
|
+
| Memory & sessions | `memory_search`, `memory_stats`, `session_capture`, `memory_cross_project_search` |
|
|
111
|
+
| Planning | `create_plan`, `approve_plan`, `plan_split`, `plan_reconcile`, `plan_complete_lifecycle` |
|
|
112
|
+
| Loops & validation | `loop_start`, `loop_iterate`, `loop_complete`, `loop_status` |
|
|
113
|
+
|
|
114
|
+
### Step 5: Write the Skill
|
|
115
|
+
|
|
116
|
+
Follow these rules:
|
|
117
|
+
|
|
118
|
+
**Naming:**
|
|
119
|
+
|
|
120
|
+
- Folder: `packages/forge/src/skills/soleri-{name}/SKILL.md`
|
|
121
|
+
- `name:` field must be `soleri-{name}` — matching the folder
|
|
122
|
+
- All Soleri skills use the `soleri-` prefix
|
|
123
|
+
|
|
124
|
+
**Frontmatter:**
|
|
125
|
+
|
|
126
|
+
- `description:` must include specific trigger phrases in quotes
|
|
127
|
+
- Use `>` for multi-line YAML folded scalar descriptions
|
|
128
|
+
|
|
129
|
+
**Body (target 1,500-2,000 words):**
|
|
130
|
+
|
|
131
|
+
- Imperative form ("Search the vault", not "You should search")
|
|
132
|
+
- Numbered steps with concrete op examples including params
|
|
133
|
+
- Agent Tools Reference table at the end
|
|
134
|
+
- Common Mistakes section if applicable
|
|
135
|
+
|
|
136
|
+
**Op References:**
|
|
137
|
+
|
|
138
|
+
- Always use `YOUR_AGENT_core op:xxx` — never hardcode agent names
|
|
139
|
+
- Include example params where helpful
|
|
140
|
+
- Only reference ops that actually exist (verify with `admin_tool_list`)
|
|
141
|
+
|
|
142
|
+
### Step 6: Validate
|
|
143
|
+
|
|
144
|
+
Checklist before committing:
|
|
145
|
+
|
|
146
|
+
- [ ] Folder is `soleri-{name}/SKILL.md` in `packages/forge/src/skills/`
|
|
147
|
+
- [ ] `name:` matches folder name
|
|
148
|
+
- [ ] `description:` has 4-8 specific trigger phrases in quotes
|
|
149
|
+
- [ ] No trigger overlap with existing skills
|
|
150
|
+
- [ ] All ops use `YOUR_AGENT_core` placeholder
|
|
151
|
+
- [ ] No hardcoded agent names (`ernesto_core`, `salvador_core`, etc.)
|
|
152
|
+
- [ ] Imperative writing style throughout
|
|
153
|
+
- [ ] Agent Tools Reference table at the end
|
|
154
|
+
- [ ] Under 3,000 words (ideally 1,500-2,000)
|
|
155
|
+
- [ ] TypeScript compiles: `npx tsc --noEmit` in packages/forge
|
|
156
|
+
|
|
157
|
+
### Step 7: Copy to Reference Agent
|
|
158
|
+
|
|
159
|
+
If the skill should appear in the reference agent:
|
|
160
|
+
|
|
161
|
+
```bash
|
|
162
|
+
cp -r packages/forge/src/skills/soleri-{name} examples/reference-agent/skills/
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
### Step 8: Register in Scaffold Pipeline
|
|
166
|
+
|
|
167
|
+
Add the skill to `SKILLS_REGISTRY` in `packages/forge/src/scaffold-filetree.ts` and `SKILL_CATEGORIES` in `packages/forge/src/compose-claude-md.ts` so it gets included in new scaffolds.
|
|
168
|
+
|
|
169
|
+
### Step 9: Capture the Decision
|
|
170
|
+
|
|
171
|
+
```
|
|
172
|
+
YOUR_AGENT_core op:capture_knowledge
|
|
173
|
+
params: {
|
|
174
|
+
title: "New skill: soleri-{name} — {purpose}",
|
|
175
|
+
description: "Created skill for {what it does}. Triggers: {triggers}.",
|
|
176
|
+
type: "workflow",
|
|
177
|
+
domain: "tooling",
|
|
178
|
+
tags: ["skill", "workflow", "{domain}"]
|
|
179
|
+
}
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
## Updating Existing Skills
|
|
183
|
+
|
|
184
|
+
1. Read the current file first
|
|
185
|
+
2. Search vault for related patterns or feedback
|
|
186
|
+
3. Make targeted changes — don't rewrite the whole skill
|
|
187
|
+
4. Verify all ops still use `YOUR_AGENT_core` placeholder
|
|
188
|
+
5. Update `description:` if triggers changed
|
|
189
|
+
6. Check for trigger overlap after changes
|
|
190
|
+
7. Update reference agent copy if it exists
|
|
191
|
+
|
|
192
|
+
## Common Mistakes
|
|
193
|
+
|
|
194
|
+
- **Vague descriptions** — "Use for project management" vs "Use when creating GitHub issues or tracking milestones"
|
|
195
|
+
- **Trigger overlap** — Using "review" when `soleri-deep-review` already owns it
|
|
196
|
+
- **Hardcoded agent names** — `ernesto_core` instead of `YOUR_AGENT_core`
|
|
197
|
+
- **Missing engine wiring** — A skill that never checks the vault is a missed opportunity
|
|
198
|
+
- **Second person** — "You should search" instead of "Search the vault"
|
|
199
|
+
- **Too long** — Over 3,000 words bloats context. Extract details into separate files if needed
|
|
200
|
+
- **No prefix** — Forgetting the `soleri-` prefix on the folder and name
|
|
201
|
+
|
|
202
|
+
## Agent Tools Reference
|
|
203
|
+
|
|
204
|
+
| Op | When to Use |
|
|
205
|
+
| -------------------- | -------------------------------------- |
|
|
206
|
+
| `search_intelligent` | Check for existing skills and patterns |
|
|
207
|
+
| `capture_knowledge` | Capture skill creation decision |
|
|
208
|
+
| `admin_tool_list` | Verify available ops |
|
|
209
|
+
| `vault_domains` | Check domain categories |
|
|
210
|
+
| `memory_search` | Find related past work |
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: code-patrol
|
|
3
|
-
description:
|
|
2
|
+
name: soleri-code-patrol
|
|
3
|
+
description: >
|
|
4
|
+
Use when the user says "check against patterns", "pattern compliance",
|
|
5
|
+
"convention check", "review against vault", or "institutional review".
|
|
6
|
+
Reviews code against the project's own captured patterns and conventions.
|
|
7
|
+
For general code quality review (smells, architecture), use deep-review instead.
|
|
4
8
|
---
|
|
5
9
|
|
|
6
10
|
# Code Patrol — Review Code Against Your Own Knowledge
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: context-resume
|
|
2
|
+
name: soleri-context-resume
|
|
3
3
|
description: >
|
|
4
|
-
Use when the user says "where did I leave off", "what was I working on",
|
|
5
|
-
"resume", "continue where we stopped"
|
|
6
|
-
working context from memory, plans, and sessions.
|
|
4
|
+
Use when the user says "where did I leave off", "what was I working on",
|
|
5
|
+
"catch me up", "resume session", or "continue where we stopped".
|
|
6
|
+
Reconstructs working context from memory, plans, and sessions.
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
# Context Resume — Pick Up Where You Left Off
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: deep-review
|
|
2
|
+
name: soleri-deep-review
|
|
3
3
|
description: >
|
|
4
|
-
Use
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
4
|
+
Use when the user says "deep review", "code smells", "architecture review",
|
|
5
|
+
"is this well architected", or "optimization review". Multi-pass code review
|
|
6
|
+
analyzing structural health, smells, and solution quality. For reviewing
|
|
7
|
+
against the project's own vault patterns and conventions, use code-patrol instead.
|
|
8
8
|
---
|
|
9
9
|
|
|
10
10
|
# Deep Review — Architecture, Smells & Solution Quality
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: deliver-and-ship
|
|
2
|
+
name: soleri-deliver-and-ship
|
|
3
3
|
description: >
|
|
4
|
-
Use when the user says "ship it", "
|
|
5
|
-
"
|
|
6
|
-
|
|
7
|
-
|
|
4
|
+
Use when the user says "ship it", "pre-PR check", "delivery checklist", "is this ready",
|
|
5
|
+
"final review", or "ready to deploy". Runs pre-delivery quality gates
|
|
6
|
+
to ensure nothing ships without passing stability and code quality checks.
|
|
7
|
+
For mid-workflow verification (not shipping), use verification-before-completion instead.
|
|
8
8
|
---
|
|
9
9
|
|
|
10
10
|
# Deliver & Ship — Quality Gate Runner
|