@soleri/forge 9.15.0 → 9.16.7
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 +5 -2
- package/dist/compose-claude-md.js.map +1 -1
- package/dist/scaffold-filetree.js +8 -1
- package/dist/scaffold-filetree.js.map +1 -1
- package/dist/skills/soleri-agent-dev/SKILL.md +1 -0
- package/dist/skills/soleri-agent-guide/SKILL.md +1 -0
- package/dist/skills/soleri-agent-issues/SKILL.md +1 -0
- package/dist/skills/soleri-agent-mode/SKILL.md +173 -0
- package/dist/skills/soleri-agent-persona/SKILL.md +1 -0
- package/dist/skills/soleri-brain-debrief/SKILL.md +1 -0
- package/dist/skills/soleri-brainstorming/SKILL.md +1 -0
- package/dist/skills/soleri-build-skill/SKILL.md +2 -0
- package/dist/skills/soleri-code-patrol/SKILL.md +1 -0
- package/dist/skills/soleri-context-resume/SKILL.md +1 -0
- package/dist/skills/soleri-curator/SKILL.md +66 -0
- package/dist/skills/soleri-deep-review/SKILL.md +1 -0
- package/dist/skills/soleri-deliver-and-ship/SKILL.md +1 -0
- package/dist/skills/soleri-discovery-phase/SKILL.md +1 -0
- package/dist/skills/soleri-dream/SKILL.md +31 -1
- package/dist/skills/soleri-env-setup/SKILL.md +1 -0
- package/dist/skills/soleri-executing-plans/SKILL.md +1 -0
- package/dist/skills/soleri-finishing-a-development-branch/SKILL.md +1 -0
- package/dist/skills/soleri-fix-and-learn/SKILL.md +1 -0
- package/dist/skills/soleri-health-check/SKILL.md +1 -0
- package/dist/skills/soleri-intake/SKILL.md +100 -0
- package/dist/skills/soleri-knowledge-harvest/SKILL.md +1 -0
- package/dist/skills/soleri-loop/SKILL.md +69 -0
- package/dist/skills/soleri-mcp-doctor/SKILL.md +1 -0
- package/dist/skills/soleri-onboard-me/SKILL.md +1 -0
- package/dist/skills/soleri-orchestrate/SKILL.md +70 -0
- package/dist/skills/soleri-parallel-execute/SKILL.md +1 -0
- package/dist/skills/soleri-research-scout/SKILL.md +1 -0
- package/dist/skills/soleri-retrospective/SKILL.md +1 -0
- package/dist/skills/soleri-second-opinion/SKILL.md +1 -0
- package/dist/skills/soleri-subagent-driven-development/SKILL.md +1 -0
- package/dist/skills/soleri-systematic-debugging/SKILL.md +1 -0
- package/dist/skills/soleri-test-driven-development/SKILL.md +1 -0
- package/dist/skills/soleri-using-git-worktrees/SKILL.md +1 -0
- package/dist/skills/soleri-vault-capture/SKILL.md +6 -5
- package/dist/skills/soleri-vault-curate/SKILL.md +1 -0
- package/dist/skills/soleri-vault-navigator/SKILL.md +1 -0
- package/dist/skills/soleri-vault-smells/SKILL.md +1 -0
- package/dist/skills/soleri-verification-before-completion/SKILL.md +1 -0
- package/dist/skills/soleri-writing-plans/SKILL.md +6 -3
- package/dist/skills/soleri-yolo-mode/SKILL.md +1 -0
- package/dist/templates/claude-md-template.js +2 -29
- package/dist/templates/claude-md-template.js.map +1 -1
- package/dist/templates/package-json.js +2 -0
- package/dist/templates/package-json.js.map +1 -1
- package/dist/templates/setup-script.js +6 -63
- package/dist/templates/setup-script.js.map +1 -1
- package/dist/templates/shared-rules.js +11 -4
- package/dist/templates/shared-rules.js.map +1 -1
- package/dist/templates/skills.d.ts +13 -0
- package/dist/templates/skills.js +55 -3
- package/dist/templates/skills.js.map +1 -1
- package/package.json +1 -1
- package/src/__tests__/scaffold-filetree.test.ts +1 -1
- package/src/__tests__/scaffolder.test.ts +108 -112
- package/src/compose-claude-md.ts +5 -1
- package/src/scaffold-filetree.ts +8 -1
- package/src/skills/soleri-agent-dev/SKILL.md +1 -0
- package/src/skills/soleri-agent-guide/SKILL.md +1 -0
- package/src/skills/soleri-agent-issues/SKILL.md +1 -0
- package/src/skills/soleri-agent-mode/SKILL.md +173 -0
- package/src/skills/soleri-agent-persona/SKILL.md +1 -0
- package/src/skills/soleri-brain-debrief/SKILL.md +1 -0
- package/src/skills/soleri-brainstorming/SKILL.md +1 -0
- package/src/skills/soleri-build-skill/SKILL.md +2 -0
- package/src/skills/soleri-code-patrol/SKILL.md +1 -0
- package/src/skills/soleri-context-resume/SKILL.md +1 -0
- package/src/skills/soleri-curator/SKILL.md +66 -0
- package/src/skills/soleri-deep-review/SKILL.md +1 -0
- package/src/skills/soleri-deliver-and-ship/SKILL.md +1 -0
- package/src/skills/soleri-discovery-phase/SKILL.md +1 -0
- package/src/skills/soleri-dream/SKILL.md +31 -1
- package/src/skills/soleri-env-setup/SKILL.md +1 -0
- package/src/skills/soleri-executing-plans/SKILL.md +1 -0
- package/src/skills/soleri-finishing-a-development-branch/SKILL.md +1 -0
- package/src/skills/soleri-fix-and-learn/SKILL.md +1 -0
- package/src/skills/soleri-health-check/SKILL.md +1 -0
- package/src/skills/soleri-intake/SKILL.md +100 -0
- package/src/skills/soleri-knowledge-harvest/SKILL.md +1 -0
- package/src/skills/soleri-loop/SKILL.md +69 -0
- package/src/skills/soleri-mcp-doctor/SKILL.md +1 -0
- package/src/skills/soleri-onboard-me/SKILL.md +1 -0
- package/src/skills/soleri-orchestrate/SKILL.md +70 -0
- package/src/skills/soleri-parallel-execute/SKILL.md +1 -0
- package/src/skills/soleri-research-scout/SKILL.md +1 -0
- package/src/skills/soleri-retrospective/SKILL.md +1 -0
- package/src/skills/soleri-second-opinion/SKILL.md +1 -0
- package/src/skills/soleri-subagent-driven-development/SKILL.md +1 -0
- package/src/skills/soleri-systematic-debugging/SKILL.md +1 -0
- package/src/skills/soleri-test-driven-development/SKILL.md +1 -0
- package/src/skills/soleri-using-git-worktrees/SKILL.md +1 -0
- package/src/skills/soleri-vault-capture/SKILL.md +6 -5
- package/src/skills/soleri-vault-curate/SKILL.md +1 -0
- package/src/skills/soleri-vault-navigator/SKILL.md +1 -0
- package/src/skills/soleri-vault-smells/SKILL.md +1 -0
- package/src/skills/soleri-verification-before-completion/SKILL.md +1 -0
- package/src/skills/soleri-writing-plans/SKILL.md +6 -3
- package/src/skills/soleri-yolo-mode/SKILL.md +1 -0
- package/src/templates/claude-md-template.ts +2 -50
- package/src/templates/package-json.ts +2 -0
- package/src/templates/setup-script.ts +6 -63
- package/src/templates/shared-rules.ts +11 -4
- package/src/templates/skills.ts +63 -3
- package/vitest.config.ts +2 -1
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: soleri-intake
|
|
3
|
+
tier: default
|
|
4
|
+
description: >
|
|
5
|
+
Use when the user says "ingest this", "add this URL", "import this book",
|
|
6
|
+
"read and capture", "ingest batch", or when processing external content
|
|
7
|
+
into the vault. Handles URLs, text, books, and batch imports with
|
|
8
|
+
automatic knowledge extraction.
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Intake — Ingest External Content
|
|
12
|
+
|
|
13
|
+
Import external content (URLs, books, text, batch files) into the vault with automatic knowledge extraction. The intake skill handles chunking, entity extraction, and vault persistence so you don't have to do it manually.
|
|
14
|
+
|
|
15
|
+
## When to Use
|
|
16
|
+
|
|
17
|
+
- User pastes a URL ("save this article to vault")
|
|
18
|
+
- User shares a book or long document ("ingest this book into your knowledge base")
|
|
19
|
+
- User wants to capture raw text from an external source
|
|
20
|
+
- Batch importing multiple sources at once
|
|
21
|
+
|
|
22
|
+
## Orchestration
|
|
23
|
+
|
|
24
|
+
### Step 1: Identify Content Type
|
|
25
|
+
|
|
26
|
+
Determine what the user is providing:
|
|
27
|
+
|
|
28
|
+
| Type | Use Op | When |
|
|
29
|
+
| ---------------- | -------------- | -------------------------------- |
|
|
30
|
+
| URL | `ingest_url` | User pastes a web link |
|
|
31
|
+
| Book / long doc | `ingest_book` | PDF, long markdown, or file path |
|
|
32
|
+
| Raw text | `ingest_text` | User pastes text directly |
|
|
33
|
+
| Multiple sources | `ingest_batch` | List of URLs or file paths |
|
|
34
|
+
|
|
35
|
+
### Step 2: Ingest
|
|
36
|
+
|
|
37
|
+
**URL:**
|
|
38
|
+
|
|
39
|
+
```
|
|
40
|
+
YOUR_AGENT_intake op:ingest_url
|
|
41
|
+
params: {
|
|
42
|
+
url: "<url>",
|
|
43
|
+
domain: "<inferred domain>",
|
|
44
|
+
tags: ["<tag1>", "<tag2>"]
|
|
45
|
+
}
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
**Book / Long Document:**
|
|
49
|
+
|
|
50
|
+
```
|
|
51
|
+
YOUR_AGENT_intake op:ingest_book
|
|
52
|
+
params: {
|
|
53
|
+
path: "<file path or url>",
|
|
54
|
+
title: "<document title>",
|
|
55
|
+
domain: "<domain>",
|
|
56
|
+
chunkStrategy: "chapter"
|
|
57
|
+
}
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
**Raw Text:**
|
|
61
|
+
|
|
62
|
+
```
|
|
63
|
+
YOUR_AGENT_intake op:ingest_text
|
|
64
|
+
params: {
|
|
65
|
+
text: "<content>",
|
|
66
|
+
title: "<descriptive title>",
|
|
67
|
+
domain: "<domain>",
|
|
68
|
+
tags: ["<tag>"]
|
|
69
|
+
}
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
**Batch:**
|
|
73
|
+
|
|
74
|
+
```
|
|
75
|
+
YOUR_AGENT_intake op:ingest_batch
|
|
76
|
+
params: {
|
|
77
|
+
sources: [
|
|
78
|
+
{ type: "url", value: "<url1>" },
|
|
79
|
+
{ type: "url", value: "<url2>" }
|
|
80
|
+
],
|
|
81
|
+
domain: "<domain>"
|
|
82
|
+
}
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
### Step 3: Report Results
|
|
86
|
+
|
|
87
|
+
Present a summary table:
|
|
88
|
+
|
|
89
|
+
| Field | Value |
|
|
90
|
+
| ------------------- | ----------------- |
|
|
91
|
+
| **Entries created** | {count} |
|
|
92
|
+
| **Domain** | {domain} |
|
|
93
|
+
| **Tags** | {tags.join(', ')} |
|
|
94
|
+
| **Status** | {status} |
|
|
95
|
+
|
|
96
|
+
If any sources failed, list them with reasons so the user can retry.
|
|
97
|
+
|
|
98
|
+
## Exit Criteria
|
|
99
|
+
|
|
100
|
+
All content ingested, entry IDs confirmed, results reported to user.
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: soleri-loop
|
|
3
|
+
tier: default
|
|
4
|
+
description: >
|
|
5
|
+
Use when the user says "start a loop", "run until done", "iterate until X",
|
|
6
|
+
"loop status", or "cancel loop". Manages iterative execution loops that
|
|
7
|
+
repeat a task until a condition is met or a grade threshold is reached.
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Loop — Iterative Execution
|
|
11
|
+
|
|
12
|
+
Run a task in a loop until a condition is met — grade threshold, promise fulfilled, or explicit cancellation. Useful for plan refinement, quality iteration, and autonomous improvement cycles.
|
|
13
|
+
|
|
14
|
+
## When to Use
|
|
15
|
+
|
|
16
|
+
- Improving a plan until it reaches grade A
|
|
17
|
+
- Running validation until all tests pass
|
|
18
|
+
- Any task that needs to repeat with self-correction until done
|
|
19
|
+
|
|
20
|
+
## Orchestration
|
|
21
|
+
|
|
22
|
+
### Step 1: Start Loop
|
|
23
|
+
|
|
24
|
+
```
|
|
25
|
+
YOUR_AGENT_loop op:loop_start
|
|
26
|
+
params: {
|
|
27
|
+
prompt: "<task description>",
|
|
28
|
+
mode: "<plan-iteration | custom>",
|
|
29
|
+
maxIterations: <number, default 10>
|
|
30
|
+
}
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
**Modes:**
|
|
34
|
+
|
|
35
|
+
- `plan-iteration` — repeats `create_plan` until grade >= A (target-based)
|
|
36
|
+
- `custom` — user-defined stop condition; loop continues until promise satisfied
|
|
37
|
+
|
|
38
|
+
Note the `loopId` from the response — needed for status and cancel.
|
|
39
|
+
|
|
40
|
+
### Step 2: Monitor
|
|
41
|
+
|
|
42
|
+
At each iteration, check status:
|
|
43
|
+
|
|
44
|
+
```
|
|
45
|
+
YOUR_AGENT_loop op:loop_status
|
|
46
|
+
params: { loopId: "<loopId>" }
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
Report progress to user:
|
|
50
|
+
|
|
51
|
+
| Field | Value |
|
|
52
|
+
| ------------------ | ------------------------------------ |
|
|
53
|
+
| **Iteration** | {currentIteration} / {maxIterations} |
|
|
54
|
+
| **Status** | {status} |
|
|
55
|
+
| **Last result** | {lastResult} |
|
|
56
|
+
| **Stop condition** | {stopCondition} |
|
|
57
|
+
|
|
58
|
+
### Step 3: Cancel (if needed)
|
|
59
|
+
|
|
60
|
+
If the user wants to stop early:
|
|
61
|
+
|
|
62
|
+
```
|
|
63
|
+
YOUR_AGENT_loop op:loop_cancel
|
|
64
|
+
params: { loopId: "<loopId>", reason: "<why stopping>" }
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## Exit Criteria
|
|
68
|
+
|
|
69
|
+
Loop completes when: stop condition is met, max iterations reached, or user explicitly cancels. Report final outcome and iteration count.
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: soleri-orchestrate
|
|
3
|
+
tier: default
|
|
4
|
+
description: >
|
|
5
|
+
Use when the user gives a work task: "implement X", "build Y", "fix Z",
|
|
6
|
+
"add feature", or any request that requires planning and execution.
|
|
7
|
+
Runs the full orchestration loop: plan → execute → complete with vault
|
|
8
|
+
context and brain recommendations built in.
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Orchestrate — Full Work Loop
|
|
12
|
+
|
|
13
|
+
Run the full work loop with vault intelligence: plan the task, execute it step by step, and close with knowledge capture. Use this for any non-trivial task where missing context or skipping steps would cost time.
|
|
14
|
+
|
|
15
|
+
## When to Use
|
|
16
|
+
|
|
17
|
+
- User gives a concrete work task ("implement auth", "refactor the parser", "fix the flaky test")
|
|
18
|
+
- Task spans multiple files or has cross-cutting concerns
|
|
19
|
+
- You want vault patterns and brain recommendations surfaced automatically
|
|
20
|
+
|
|
21
|
+
## Orchestration
|
|
22
|
+
|
|
23
|
+
### Step 1: Plan
|
|
24
|
+
|
|
25
|
+
```
|
|
26
|
+
YOUR_AGENT_orchestrate op:orchestrate_plan
|
|
27
|
+
params: {
|
|
28
|
+
prompt: "<user task description>",
|
|
29
|
+
context: { domain: "<inferred domain>" }
|
|
30
|
+
}
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Present the plan to the user. If grade < A-, ask for approval before proceeding.
|
|
34
|
+
|
|
35
|
+
### Step 2: Execute
|
|
36
|
+
|
|
37
|
+
Once approved, begin execution. For each task in the plan:
|
|
38
|
+
|
|
39
|
+
```
|
|
40
|
+
YOUR_AGENT_orchestrate op:orchestrate_execute
|
|
41
|
+
params: {
|
|
42
|
+
planId: "<planId from step 1>",
|
|
43
|
+
taskId: "<current task id>",
|
|
44
|
+
output: "<what you did>"
|
|
45
|
+
}
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
Log progress after each task: show completed count / total and current task title.
|
|
49
|
+
|
|
50
|
+
### Step 3: Complete
|
|
51
|
+
|
|
52
|
+
After all tasks are done:
|
|
53
|
+
|
|
54
|
+
```
|
|
55
|
+
YOUR_AGENT_orchestrate op:orchestrate_complete
|
|
56
|
+
params: {
|
|
57
|
+
planId: "<planId>",
|
|
58
|
+
summary: "<one-line outcome>",
|
|
59
|
+
operatorSignals: {
|
|
60
|
+
qualityNotes: "<any quality observations>",
|
|
61
|
+
unexpectedComplexity: <true|false>
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
Report the completion summary and any knowledge captured.
|
|
67
|
+
|
|
68
|
+
## Exit Criteria
|
|
69
|
+
|
|
70
|
+
All plan tasks executed, `orchestrate_complete` called with outcome, knowledge persisted to vault.
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: soleri-vault-capture
|
|
3
|
+
tier: default
|
|
3
4
|
description: >
|
|
4
|
-
Use when the user says "save this", "capture this", "remember this pattern",
|
|
5
|
-
"add to vault", "vault capture", or when persisting learnings from a work
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
knowledge-harvest
|
|
5
|
+
Use when the user says "save this to vault", "capture this", "remember this pattern",
|
|
6
|
+
"add to vault", "vault capture", or when persisting learnings from a work session.
|
|
7
|
+
Priority over memory_capture for durable knowledge (patterns, decisions, anti-patterns).
|
|
8
|
+
For quick session notes say "save this as a memory" to use memory_capture instead.
|
|
9
|
+
For bulk extraction from documents, code, or PRs, use knowledge-harvest.
|
|
9
10
|
---
|
|
10
11
|
|
|
11
12
|
# Vault Capture — Validated Knowledge Persistence
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: soleri-writing-plans
|
|
3
|
+
tier: default
|
|
3
4
|
description: >
|
|
4
|
-
Use when the user says "create a plan", "break this down",
|
|
5
|
-
"plan the implementation".
|
|
6
|
-
|
|
5
|
+
Use when the user says "create a plan", "write up a plan", "break this down",
|
|
6
|
+
or "plan the implementation". Produces a human-readable markdown plan file.
|
|
7
|
+
Takes priority over orchestrate_plan MCP op for explicit plan-writing requests.
|
|
8
|
+
For exploration or ideation, use brainstorming. For automated task orchestration,
|
|
9
|
+
the engine uses orchestrate_plan directly without this skill.
|
|
7
10
|
---
|
|
8
11
|
|
|
9
12
|
# Writing Plans
|
|
@@ -62,35 +62,8 @@ export function generateClaudeMdTemplate(config) {
|
|
|
62
62
|
`On every new session: ${bt}${toolPrefix}_orchestrate op:session_start params:{ projectPath: "." }${bt}`,
|
|
63
63
|
'',
|
|
64
64
|
];
|
|
65
|
-
// ───
|
|
66
|
-
mdLines.push(
|
|
67
|
-
// Domain facades — one row per domain
|
|
68
|
-
for (const d of config.domains) {
|
|
69
|
-
const toolName = `${toolPrefix}_${d.replace(/-/g, '_')}`;
|
|
70
|
-
mdLines.push(`| ${bt}${toolName}${bt} | ${bt}get_patterns${bt}, ${bt}search${bt}, ${bt}capture${bt} |`);
|
|
71
|
-
}
|
|
72
|
-
// Domain pack facades (if any)
|
|
73
|
-
if (config.domainPacks?.length) {
|
|
74
|
-
mdLines.push('', '**Domain Pack Facades:**', '');
|
|
75
|
-
for (const ref of config.domainPacks) {
|
|
76
|
-
mdLines.push(`| ${bt}${ref.name}${bt} (pack: ${bt}${ref.package}${bt}) | *custom ops — see ${bt}admin_tool_list${bt}* |`);
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
// Engine facades — use actual tool names (standalone facades, NOT _core sub-groups)
|
|
80
|
-
mdLines.push(
|
|
81
|
-
// Vault — knowledge lifecycle, capture, search, management
|
|
82
|
-
`| ${bt}${toolPrefix}_vault${bt} | ${bt}search_intelligent${bt}, ${bt}capture_knowledge${bt}, ${bt}capture_quick${bt}, ${bt}search_feedback${bt} |`, `| ${bt}${toolPrefix}_vault${bt} (keeper) | ${bt}knowledge_audit${bt}, ${bt}knowledge_health${bt}, ${bt}knowledge_merge${bt}, ${bt}knowledge_reorganize${bt} |`, `| ${bt}${toolPrefix}_vault${bt} (mgmt) | ${bt}vault_get${bt}, ${bt}vault_update${bt}, ${bt}vault_remove${bt}, ${bt}vault_tags${bt}, ${bt}vault_domains${bt}, ${bt}vault_recent${bt} |`,
|
|
83
|
-
// Curator — quality, dedup, contradictions, grooming
|
|
84
|
-
`| ${bt}${toolPrefix}_curator${bt} | ${bt}curator_status${bt}, ${bt}curator_detect_duplicates${bt}, ${bt}curator_contradictions${bt}, ${bt}curator_groom_all${bt}, ${bt}curator_consolidate${bt}, ${bt}curator_health_audit${bt} |`, `| ${bt}${toolPrefix}_curator${bt} (advanced) | ${bt}curator_enrich${bt}, ${bt}curator_hybrid_contradictions${bt}, ${bt}curator_entry_history${bt}, ${bt}curator_queue_stats${bt} |`,
|
|
85
|
-
// Planning, orchestration, brain
|
|
86
|
-
`| ${bt}${toolPrefix}_plan${bt} | ${bt}create_plan${bt}, ${bt}approve_plan${bt}, ${bt}plan_split${bt}, ${bt}plan_reconcile${bt}, ${bt}plan_complete_lifecycle${bt} |`, `| ${bt}${toolPrefix}_orchestrate${bt} | ${bt}orchestrate_plan${bt}, ${bt}orchestrate_execute${bt}, ${bt}orchestrate_complete${bt} |`, `| ${bt}${toolPrefix}_brain${bt} | ${bt}brain_stats${bt}, ${bt}brain_feedback${bt}, ${bt}rebuild_vocabulary${bt}, ${bt}brain_strengths${bt}, ${bt}brain_recommend${bt} |`,
|
|
87
|
-
// Memory, control, loop
|
|
88
|
-
`| ${bt}${toolPrefix}_memory${bt} | ${bt}memory_search${bt}, ${bt}memory_capture${bt}, ${bt}session_capture${bt} |`, `| ${bt}${toolPrefix}_control${bt} | ${bt}route_intent${bt}, ${bt}morph${bt}, ${bt}get_behavior_rules${bt}, ${bt}governance_dashboard${bt}, ${bt}governance_policy${bt} |`, `| ${bt}${toolPrefix}_loop${bt} | ${bt}loop_start${bt}, ${bt}loop_iterate${bt}, ${bt}loop_status${bt}, ${bt}loop_cancel${bt} |`,
|
|
89
|
-
// Intelligence — context, agency
|
|
90
|
-
`| ${bt}${toolPrefix}_context${bt} | ${bt}context_extract_entities${bt}, ${bt}context_retrieve_knowledge${bt}, ${bt}context_analyze${bt} |`, `| ${bt}${toolPrefix}_agency${bt} | ${bt}agency_enable${bt}, ${bt}agency_status${bt}, ${bt}agency_surface_patterns${bt}, ${bt}agency_warnings${bt}, ${bt}agency_clarify${bt} |`,
|
|
91
|
-
// Admin
|
|
92
|
-
`| ${bt}${toolPrefix}_admin${bt} | ${bt}admin_health${bt}, ${bt}admin_tool_list${bt}, ${bt}admin_diagnostic${bt} |`);
|
|
93
|
-
mdLines.push('', `> Full list: ${bt}${toolPrefix}_admin op:admin_tool_list${bt}`, '');
|
|
65
|
+
// ─── Skill pointer (replaces inline facade table) ───────
|
|
66
|
+
mdLines.push(`> Command reference: use the ${bt}${toolPrefix}-agent-mode${bt} skill or run ${bt}${toolPrefix}_admin op:admin_tool_list${bt}`, '');
|
|
94
67
|
// ─── Hook Packs (conditional) ──────────────────────────
|
|
95
68
|
appendHookPacks(mdLines, config);
|
|
96
69
|
// ─── Closing marker ────────────────────────────────────
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-md-template.js","sourceRoot":"","sources":["../../src/templates/claude-md-template.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE3E;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,wBAAwB,CAAC,MAAmB;IAC1D,MAAM,UAAU,GAAG,MAAM,CAAC,EAAE,CAAC;IAC7B,MAAM,MAAM,GAAG,GAAG,MAAM,CAAC,EAAE,OAAO,CAAC;IACnC,MAAM,EAAE,GAAG,GAAG,CAAC;IAEf,MAAM,OAAO,GAAa;QACxB,QAAQ,MAAM,MAAM;QACpB,EAAE;QACF,KAAK,MAAM,CAAC,IAAI,OAAO;QACvB,EAAE;QAEF,0DAA0D;QAC1D,MAAM,MAAM,CAAC,IAAI,EAAE;QACnB,EAAE;QACF,oBAAoB,MAAM,CAAC,IAAI,EAAE;QACjC,wBAAwB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QACnD,aAAa,MAAM,CAAC,IAAI,IAAI,WAAW,EAAE;QACzC,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,uBAAuB,MAAM,CAAC,eAAe,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACtF,EAAE;QACF,MAAM,CAAC,WAAW;QAClB,EAAE;QACF,iBAAiB;QACjB,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;QACzC,EAAE;QAEF,2DAA2D;QAC3D,sBAAsB;QACtB,EAAE;QACF,GAAG,MAAM,CAAC,IAAI,kHAAkH;QAChI,EAAE;QACF,8EAA8E;QAC9E,kDAAkD;QAClD,mDAAmD;QACnD,gEAAgE;QAChE,EAAE;QACF,iHAAiH;QACjH,uHAAuH;QACvH,EAAE;QAEF,0DAA0D;QAC1D,eAAe;QACf,EAAE;QACF,yBAAyB,MAAM,CAAC,IAAI,QAAQ,EAAE,GAAG,UAAU,gDAAgD,EAAE,EAAE;QAC/G,6BAA6B,MAAM,CAAC,IAAI,QAAQ,EAAE,GAAG,UAAU,gDAAgD,EAAE,EAAE;QACnH,EAAE;QACF,iHAAiH;QACjH,EAAE;QAEF,0DAA0D;QAC1D,kBAAkB;QAClB,EAAE;QACF,yBAAyB,EAAE,GAAG,UAAU,4DAA4D,EAAE,EAAE;QACxG,EAAE;KACH,CAAC;IAEF,2DAA2D;IAC3D,OAAO,CAAC,IAAI,CACV,
|
|
1
|
+
{"version":3,"file":"claude-md-template.js","sourceRoot":"","sources":["../../src/templates/claude-md-template.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,7 @@ export function generatePackageJson(config) {
|
|
|
7
7
|
main: 'dist/index.js',
|
|
8
8
|
bin: { [`${config.id}-mcp`]: 'dist/index.js' },
|
|
9
9
|
scripts: {
|
|
10
|
+
postinstall: 'soleri hooks sync || true',
|
|
10
11
|
dev: 'tsx src/index.ts',
|
|
11
12
|
build: 'tsc && node scripts/copy-assets.js',
|
|
12
13
|
start: 'node dist/index.js',
|
|
@@ -37,6 +38,7 @@ export function generatePackageJson(config) {
|
|
|
37
38
|
'@anthropic-ai/sdk': '^0.39.0',
|
|
38
39
|
},
|
|
39
40
|
devDependencies: {
|
|
41
|
+
'@soleri/cli': '^9.0.0',
|
|
40
42
|
'@types/node': '^22.13.4',
|
|
41
43
|
'@vitest/coverage-v8': '^3.0.5',
|
|
42
44
|
tsx: '^4.19.2',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"package-json.js","sourceRoot":"","sources":["../../src/templates/package-json.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,mBAAmB,CAAC,MAAmB;IACrD,MAAM,GAAG,GAAG;QACV,IAAI,EAAE,MAAM,CAAC,EAAE;QACf,OAAO,EAAE,OAAO;QAChB,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,eAAe;QACrB,GAAG,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC,EAAE,MAAM,CAAC,EAAE,eAAe,EAAE;QAC9C,OAAO,EAAE;YACP,GAAG,EAAE,kBAAkB;YACvB,KAAK,EAAE,oCAAoC;YAC3C,KAAK,EAAE,oBAAoB;YAC3B,SAAS,EAAE,cAAc;YACzB,IAAI,EAAE,YAAY;YAClB,YAAY,EAAE,QAAQ;YACtB,eAAe,EAAE,uBAAuB;YACxC,GAAG,CAAC,MAAM,CAAC,QAAQ;gBACjB,CAAC,CAAC;oBACE,gBAAgB,EAAE,kCAAkC;oBACpD,cAAc,EAAE,yBAAyB;iBAC1C;gBACH,CAAC,CAAC,EAAE,CAAC;SACR;QACD,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACpE,OAAO,EAAE,KAAK;QACd,OAAO,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE;QAC7B,YAAY,EAAE;YACZ,2BAA2B,EAAE,SAAS;YACtC,cAAc,EAAE,QAAQ;YACxB,GAAG,EAAE,SAAS;YACd,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACjD,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM;gBAC5B,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC;gBAC3F,CAAC,CAAC,EAAE,CAAC;SACR;QACD,oBAAoB,EAAE;YACpB,mBAAmB,EAAE,SAAS;SAC/B;QACD,eAAe,EAAE;YACf,aAAa,EAAE,UAAU;YACzB,qBAAqB,EAAE,QAAQ;YAC/B,GAAG,EAAE,SAAS;YACd,UAAU,EAAE,QAAQ;YACpB,MAAM,EAAE,QAAQ;SACjB;KACF,CAAC;IAEF,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACtC,CAAC"}
|
|
1
|
+
{"version":3,"file":"package-json.js","sourceRoot":"","sources":["../../src/templates/package-json.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,mBAAmB,CAAC,MAAmB;IACrD,MAAM,GAAG,GAAG;QACV,IAAI,EAAE,MAAM,CAAC,EAAE;QACf,OAAO,EAAE,OAAO;QAChB,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,eAAe;QACrB,GAAG,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC,EAAE,MAAM,CAAC,EAAE,eAAe,EAAE;QAC9C,OAAO,EAAE;YACP,WAAW,EAAE,2BAA2B;YACxC,GAAG,EAAE,kBAAkB;YACvB,KAAK,EAAE,oCAAoC;YAC3C,KAAK,EAAE,oBAAoB;YAC3B,SAAS,EAAE,cAAc;YACzB,IAAI,EAAE,YAAY;YAClB,YAAY,EAAE,QAAQ;YACtB,eAAe,EAAE,uBAAuB;YACxC,GAAG,CAAC,MAAM,CAAC,QAAQ;gBACjB,CAAC,CAAC;oBACE,gBAAgB,EAAE,kCAAkC;oBACpD,cAAc,EAAE,yBAAyB;iBAC1C;gBACH,CAAC,CAAC,EAAE,CAAC;SACR;QACD,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACpE,OAAO,EAAE,KAAK;QACd,OAAO,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE;QAC7B,YAAY,EAAE;YACZ,2BAA2B,EAAE,SAAS;YACtC,cAAc,EAAE,QAAQ;YACxB,GAAG,EAAE,SAAS;YACd,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACjD,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM;gBAC5B,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC;gBAC3F,CAAC,CAAC,EAAE,CAAC;SACR;QACD,oBAAoB,EAAE;YACpB,mBAAmB,EAAE,SAAS;SAC/B;QACD,eAAe,EAAE;YACf,aAAa,EAAE,QAAQ;YACvB,aAAa,EAAE,UAAU;YACzB,qBAAqB,EAAE,QAAQ;YAC/B,GAAG,EAAE,SAAS;YACd,UAAU,EAAE,QAAQ;YACpB,MAAM,EAAE,QAAQ;SACjB;KACF,CAAC;IAEF,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACtC,CAAC"}
|
|
@@ -32,72 +32,15 @@ echo "Registering ${config.name} with Claude Code..."
|
|
|
32
32
|
claude mcp add --scope user "$AGENT_NAME" -- node "$AGENT_DIR/dist/index.js"
|
|
33
33
|
echo "[ok] Registered ${config.name} as MCP server (Claude Code)"
|
|
34
34
|
|
|
35
|
-
#
|
|
36
|
-
SETTINGS_FILE="$HOME/.claude/settings.json"
|
|
35
|
+
# Sync lifecycle hooks into ~/.claude/settings.json
|
|
37
36
|
echo ""
|
|
38
|
-
echo "
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
mkdir -p "$HOME/.claude"
|
|
42
|
-
fi
|
|
43
|
-
|
|
44
|
-
if [ ! -f "$SETTINGS_FILE" ]; then
|
|
45
|
-
cat > "$SETTINGS_FILE" << SETTINGS
|
|
46
|
-
{
|
|
47
|
-
"hooks": {
|
|
48
|
-
"PreCompact": [
|
|
49
|
-
{
|
|
50
|
-
"type": "prompt",
|
|
51
|
-
"prompt": "Before context is compacted, capture a session summary by calling ${config.id}_core op:session_capture with a brief summary of what was accomplished, the topics covered, files modified, and tools used."
|
|
52
|
-
}
|
|
53
|
-
],
|
|
54
|
-
"SessionStart": [
|
|
55
|
-
{
|
|
56
|
-
"type": "command",
|
|
57
|
-
"command": "sh $AGENT_DIR/scripts/clean-worktrees.sh",
|
|
58
|
-
"timeout": 10
|
|
59
|
-
}
|
|
60
|
-
]
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
SETTINGS
|
|
64
|
-
echo "[ok] Created $SETTINGS_FILE with PreCompact + SessionStart hooks"
|
|
37
|
+
echo "Syncing lifecycle hooks..."
|
|
38
|
+
if command -v soleri &>/dev/null; then
|
|
39
|
+
soleri hooks sync
|
|
65
40
|
else
|
|
66
|
-
|
|
67
|
-
echo "[ok] PreCompact hook already configured — skipping"
|
|
68
|
-
else
|
|
69
|
-
node -e "
|
|
70
|
-
const fs = require('fs');
|
|
71
|
-
const settings = JSON.parse(fs.readFileSync('$SETTINGS_FILE', 'utf-8'));
|
|
72
|
-
if (!settings.hooks) settings.hooks = {};
|
|
73
|
-
if (!settings.hooks.PreCompact) settings.hooks.PreCompact = [];
|
|
74
|
-
settings.hooks.PreCompact.push({
|
|
75
|
-
type: 'prompt',
|
|
76
|
-
prompt: 'Before context is compacted, capture a session summary by calling ${config.id}_core op:session_capture with a brief summary of what was accomplished, the topics covered, files modified, and tools used.'
|
|
77
|
-
});
|
|
78
|
-
fs.writeFileSync('$SETTINGS_FILE', JSON.stringify(settings, null, 2) + '\\n');
|
|
79
|
-
"
|
|
80
|
-
echo "[ok] Added PreCompact hook to $SETTINGS_FILE"
|
|
81
|
-
fi
|
|
82
|
-
# Add SessionStart worktree cleanup hook
|
|
83
|
-
if grep -q "clean-worktrees" "$SETTINGS_FILE" 2>/dev/null; then
|
|
84
|
-
echo "[ok] SessionStart worktree cleanup hook already configured"
|
|
85
|
-
else
|
|
86
|
-
node -e "
|
|
87
|
-
const fs = require('fs');
|
|
88
|
-
const settings = JSON.parse(fs.readFileSync('$SETTINGS_FILE', 'utf-8'));
|
|
89
|
-
if (!settings.hooks) settings.hooks = {};
|
|
90
|
-
if (!settings.hooks.SessionStart) settings.hooks.SessionStart = [];
|
|
91
|
-
settings.hooks.SessionStart.push({
|
|
92
|
-
type: 'command',
|
|
93
|
-
command: 'sh $AGENT_DIR/scripts/clean-worktrees.sh',
|
|
94
|
-
timeout: 10
|
|
95
|
-
});
|
|
96
|
-
fs.writeFileSync('$SETTINGS_FILE', JSON.stringify(settings, null, 2) + '\\n');
|
|
97
|
-
"
|
|
98
|
-
echo "[ok] Added SessionStart worktree cleanup hook"
|
|
99
|
-
fi
|
|
41
|
+
npx --yes soleri hooks sync
|
|
100
42
|
fi
|
|
43
|
+
echo "[ok] Lifecycle hooks synced"
|
|
101
44
|
|
|
102
45
|
# Install skills to ~/.claude/skills/
|
|
103
46
|
SKILLS_DIR="$AGENT_DIR/skills"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup-script.js","sourceRoot":"","sources":["../../src/templates/setup-script.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAmB;IACrD,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,QAAQ,CAAC;IACnD,MAAM,WAAW,GAAG,WAAW,KAAK,QAAQ,IAAI,WAAW,KAAK,MAAM,IAAI,WAAW,KAAK,KAAK,CAAC;IAChG,MAAM,UAAU,GAAG,WAAW,KAAK,OAAO,IAAI,WAAW,KAAK,MAAM,IAAI,WAAW,KAAK,KAAK,CAAC;IAC9F,MAAM,aAAa,GAAG,WAAW,KAAK,UAAU,IAAI,WAAW,KAAK,KAAK,CAAC;IAC1E,MAAM,SAAS,GAAG;QAChB,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACvC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAChC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KACvC,CAAC;IACF,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAExC,MAAM,aAAa,GAAG,WAAW;QAC/B,CAAC,CAAC;;;;;;;;;;;;;;oBAcc,MAAM,CAAC,IAAI;;wBAEP,MAAM,CAAC,IAAI
|
|
1
|
+
{"version":3,"file":"setup-script.js","sourceRoot":"","sources":["../../src/templates/setup-script.ts"],"names":[],"mappings":"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"}
|
|
@@ -168,12 +168,20 @@ const ENGINE_RULES_LINES = [
|
|
|
168
168
|
'',
|
|
169
169
|
'The vault is a **Zettelkasten** — a connected knowledge graph. Every knowledge operation follows Zettelkasten principles: atomic entries, typed links, dense connections.',
|
|
170
170
|
'',
|
|
171
|
-
'
|
|
172
|
-
'
|
|
171
|
+
'**SHOULD follow this lookup order for every question, problem, or task — regardless of whether agent MCP is active:**',
|
|
172
|
+
'',
|
|
173
|
+
'1. **Vault** — `op:search_intelligent` + traverse links 2 hops (when agent MCP is active)',
|
|
174
|
+
'2. **Web** — `WebSearch` tool (always — never skip if vault returns no answer)',
|
|
175
|
+
'3. **Memory** — `op:memory_search` (when agent MCP is active)',
|
|
176
|
+
'4. **Codebase** — read relevant files',
|
|
177
|
+
'5. **Training data** — last resort; flag as potentially outdated',
|
|
178
|
+
'',
|
|
179
|
+
'- Web search is **not optional**. If vault is unavailable or returns no relevant results, search the web before answering from training data alone.',
|
|
180
|
+
'- If the vault has a pattern, follow it. If it has an anti-pattern, avoid it.',
|
|
173
181
|
"- **Search + Traverse**: Don't just search — traverse from the best result to discover connected knowledge and anti-patterns.",
|
|
174
182
|
'- Check `contradicts` links to know what to avoid. Check `sequences` links for ordering dependencies.',
|
|
175
183
|
'- Persist lessons: capture + link. An unlinked entry is incomplete.',
|
|
176
|
-
'-
|
|
184
|
+
'- Exception: runtime errors with stack traces → codebase first.',
|
|
177
185
|
'',
|
|
178
186
|
'### Vault Search Strategy',
|
|
179
187
|
'',
|
|
@@ -619,7 +627,6 @@ const ENGINE_RULES_LINES = [
|
|
|
619
627
|
'',
|
|
620
628
|
'### Character Persistence',
|
|
621
629
|
'',
|
|
622
|
-
'- **SHOULD**: Prefix every response with `{AgentName} >` when activated (e.g., `Ernesto >`, `Salvador >`). This signals to the user that the agent persona is active.',
|
|
623
630
|
"- All communication flows through your persona's voice — tone, vocabulary, opinions",
|
|
624
631
|
'- Stay in character until explicitly deactivated',
|
|
625
632
|
'- Context compaction does not change who you are — these rules persist in CLAUDE.md',
|