@soleri/forge 9.3.1 → 9.5.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.
Files changed (61) hide show
  1. package/dist/compose-claude-md.js +118 -7
  2. package/dist/compose-claude-md.js.map +1 -1
  3. package/dist/scaffold-filetree.js +42 -0
  4. package/dist/scaffold-filetree.js.map +1 -1
  5. package/dist/scaffolder.js +46 -2
  6. package/dist/scaffolder.js.map +1 -1
  7. package/dist/skills/agent-dev/SKILL.md +122 -0
  8. package/dist/skills/agent-guide/SKILL.md +116 -0
  9. package/dist/skills/agent-issues/SKILL.md +291 -0
  10. package/dist/skills/agent-persona/SKILL.md +66 -0
  11. package/dist/skills/deep-review/SKILL.md +12 -0
  12. package/dist/skills/deliver-and-ship/SKILL.md +123 -0
  13. package/dist/skills/discovery-phase/SKILL.md +69 -0
  14. package/dist/skills/env-setup/SKILL.md +151 -0
  15. package/dist/skills/executing-plans/SKILL.md +12 -0
  16. package/dist/skills/finishing-a-development-branch/SKILL.md +76 -0
  17. package/dist/skills/fix-and-learn/SKILL.md +12 -0
  18. package/dist/skills/mcp-doctor/SKILL.md +160 -0
  19. package/dist/skills/subagent-driven-development/SKILL.md +79 -0
  20. package/dist/skills/using-git-worktrees/SKILL.md +81 -0
  21. package/dist/skills/vault-curate/SKILL.md +99 -0
  22. package/dist/skills/verification-before-completion/SKILL.md +12 -0
  23. package/dist/skills/yolo-mode/SKILL.md +80 -0
  24. package/dist/templates/clean-worktrees.d.ts +5 -0
  25. package/dist/templates/clean-worktrees.js +59 -0
  26. package/dist/templates/clean-worktrees.js.map +1 -0
  27. package/dist/templates/setup-script.js +26 -1
  28. package/dist/templates/setup-script.js.map +1 -1
  29. package/dist/templates/shared-rules.js +160 -5
  30. package/dist/templates/shared-rules.js.map +1 -1
  31. package/dist/templates/skills.js +3 -29
  32. package/dist/templates/skills.js.map +1 -1
  33. package/dist/templates/vitest-config.js +1 -0
  34. package/dist/templates/vitest-config.js.map +1 -1
  35. package/package.json +1 -1
  36. package/src/compose-claude-md.ts +126 -9
  37. package/src/scaffold-filetree.ts +42 -0
  38. package/src/scaffolder.ts +49 -2
  39. package/src/skills/agent-dev/SKILL.md +122 -0
  40. package/src/skills/agent-guide/SKILL.md +116 -0
  41. package/src/skills/agent-issues/SKILL.md +291 -0
  42. package/src/skills/agent-persona/SKILL.md +66 -0
  43. package/src/skills/deep-review/SKILL.md +12 -0
  44. package/src/skills/deliver-and-ship/SKILL.md +123 -0
  45. package/src/skills/discovery-phase/SKILL.md +69 -0
  46. package/src/skills/env-setup/SKILL.md +151 -0
  47. package/src/skills/executing-plans/SKILL.md +12 -0
  48. package/src/skills/finishing-a-development-branch/SKILL.md +76 -0
  49. package/src/skills/fix-and-learn/SKILL.md +12 -0
  50. package/src/skills/mcp-doctor/SKILL.md +160 -0
  51. package/src/skills/subagent-driven-development/SKILL.md +79 -0
  52. package/src/skills/using-git-worktrees/SKILL.md +81 -0
  53. package/src/skills/vault-curate/SKILL.md +99 -0
  54. package/src/skills/verification-before-completion/SKILL.md +12 -0
  55. package/src/skills/yolo-mode/SKILL.md +80 -0
  56. package/src/templates/clean-worktrees.ts +58 -0
  57. package/src/templates/setup-script.ts +26 -1
  58. package/src/templates/shared-rules.ts +163 -5
  59. package/src/templates/skills.ts +3 -29
  60. package/src/templates/vitest-config.ts +1 -0
  61. package/vitest.config.ts +1 -0
@@ -75,6 +75,18 @@ Capture session summary: `YOUR_AGENT_core op:session_capture params: { summary:
75
75
  - Running linter but not build (linter does not check compilation)
76
76
  - Skipping the red-green cycle for regression tests
77
77
 
78
+ ## Rationalization Prevention
79
+
80
+ Do NOT rationalize away failures. If a check fails, it fails. Period.
81
+
82
+ - **HARD-GATE: All verification commands must pass (exit 0, 0 failures) before claiming task complete.**
83
+ - **HARD-GATE: Agent system checks (`admin_health`, `admin_diagnostic`) must report no problems before completion.**
84
+ - Do not say "tests probably pass" -- run them and read the output.
85
+ - Do not say "this is a minor issue" to skip a failing check.
86
+ - Do not say "it worked last time" -- stale results are not evidence.
87
+ - Do not downgrade a failure to a warning to avoid blocking completion.
88
+ - If a check fails and you cannot fix it, report the failure honestly. Never hide it.
89
+
78
90
  ## Quick Reference
79
91
 
80
92
  | Op | When to Use |
@@ -0,0 +1,80 @@
1
+ ---
2
+ name: yolo-mode
3
+ description: >
4
+ Use when the user says "yolo", "autonomous", "skip approvals", "full auto", "hands off",
5
+ or asks to execute without approval gates. Activates autonomous execution mode where the
6
+ agent skips plan approval gates but preserves all safety invariants.
7
+ ---
8
+
9
+ # YOLO Mode
10
+
11
+ Autonomous execution without approval gates. Plans execute immediately — no Gate 1, no Gate 2, no confirmation prompts.
12
+
13
+ **Announce at start:** "I'm activating YOLO mode — autonomous execution with safety invariants intact."
14
+
15
+ ## Activation Flow
16
+
17
+ ### Step 1: Verify Safety Hook Pack
18
+
19
+ ```
20
+ YOUR_AGENT_core op:admin_health
21
+ ```
22
+
23
+ Check that the YOLO Safety Hook Pack is installed. This pack intercepts destructive commands (force push, reset --hard, drop table, rm -rf).
24
+
25
+ **HARD-GATE: Refuse to activate YOLO mode if the safety hook pack is not installed.** Tell the user: "YOLO mode requires the safety hook pack. Run `soleri hooks add-pack yolo-safety` first."
26
+
27
+ ### Step 2: Morph to YOLO Mode
28
+
29
+ ```
30
+ YOUR_AGENT_core op:morph
31
+ params: { mode: "YOLO-MODE" }
32
+ ```
33
+
34
+ ### Step 3: Confirm to User
35
+
36
+ State clearly: "YOLO mode active. Approval gates are off. Safety invariants remain enforced. Say 'exit YOLO' to return to normal mode."
37
+
38
+ ## What Gets Skipped
39
+
40
+ - Plan approval Gate 1 (`op:approve_plan`)
41
+ - Plan approval Gate 2 (`op:plan_split` confirmation)
42
+ - User confirmation prompts between steps
43
+ - "Ready for feedback?" checkpoints
44
+
45
+ ## What Is NEVER Skipped
46
+
47
+ - **`op:orchestrate_complete`** — knowledge capture runs on every task, always
48
+ - **Vault search before decisions** — check vault for patterns/anti-patterns before acting
49
+ - **YOLO Safety Hook Pack** — intercepts destructive commands (force push, drop table, rm -rf, reset --hard)
50
+ - **Test execution** — tests still run; failures still block completion
51
+ - **`op:plan_reconcile`** — drift reports still generated after execution
52
+
53
+ ## Exit Conditions
54
+
55
+ YOLO mode deactivates when any of these occur:
56
+
57
+ - User says "exit YOLO", "stop YOLO", or "normal mode"
58
+ - Session ends
59
+ - Explicit deactivation: `op:morph params: { mode: "DEFAULT" }`
60
+ - Safety hook intercepts a destructive command (auto-exits, requires re-activation)
61
+
62
+ ## Anti-Patterns
63
+
64
+ - Activating YOLO on an unfamiliar codebase — you need vault context first
65
+ - Skipping tests in YOLO — tests are safety, not ceremony
66
+ - Using YOLO for architectural decisions that need human judgment
67
+ - Staying in YOLO after a safety hook triggers — re-evaluate before re-activating
68
+ - Running YOLO without reviewing what the safety hook pack actually covers
69
+
70
+ ## Quick Reference
71
+
72
+ | Op | When to Use |
73
+ | ---------------------- | ------------------------------------ |
74
+ | `admin_health` | Verify safety hook pack is installed |
75
+ | `morph` | Activate/deactivate YOLO mode |
76
+ | `orchestrate_complete` | After every task (never skip) |
77
+ | `search_intelligent` | Before every decision (never skip) |
78
+ | `plan_reconcile` | After execution (never skip) |
79
+
80
+ **Related skills:** executing-plans, writing-plans
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generate a POSIX sh script that cleans up stale Claude Code worktrees.
3
+ * Registered as a SessionStart hook in scaffolded agents.
4
+ */
5
+ export declare function generateCleanWorktreesScript(): string;
@@ -0,0 +1,59 @@
1
+ /**
2
+ * Generate a POSIX sh script that cleans up stale Claude Code worktrees.
3
+ * Registered as a SessionStart hook in scaffolded agents.
4
+ */
5
+ export function generateCleanWorktreesScript() {
6
+ return `#!/bin/sh
7
+ # Clean stale Claude Code worktrees on session start.
8
+ # Registered as a SessionStart hook by Soleri scaffolding.
9
+ # Safe: skips active worktrees, checks for unpushed commits.
10
+
11
+ WORKTREE_DIR=".claude/worktrees"
12
+
13
+ # Exit silently if no worktrees directory
14
+ [ -d "$WORKTREE_DIR" ] || exit 0
15
+
16
+ # Prune worktrees whose branches have been deleted
17
+ git worktree prune 2>/dev/null
18
+
19
+ # Get list of active worktrees (skip the main one)
20
+ active_worktrees="$(git worktree list --porcelain 2>/dev/null | grep '^worktree ' | sed 's/^worktree //')"
21
+
22
+ cleaned=0
23
+ skipped=0
24
+
25
+ for dir in "$WORKTREE_DIR"/*/; do
26
+ [ -d "$dir" ] || continue
27
+
28
+ # Resolve to absolute path for comparison
29
+ abs_dir="$(cd "$dir" 2>/dev/null && pwd)" || continue
30
+
31
+ # Skip if still in git worktree list (active)
32
+ if echo "$active_worktrees" | grep -qF "$abs_dir"; then
33
+ skipped=$((skipped + 1))
34
+ continue
35
+ fi
36
+
37
+ # Safety: check for unpushed commits before removing
38
+ branch="$(git -C "$dir" rev-parse --abbrev-ref HEAD 2>/dev/null)" || branch=""
39
+ if [ -n "$branch" ] && [ "$branch" != "HEAD" ]; then
40
+ upstream="$(git -C "$dir" rev-parse --abbrev-ref "@{upstream}" 2>/dev/null)" || upstream=""
41
+ if [ -n "$upstream" ]; then
42
+ unpushed="$(git -C "$dir" log "$upstream..$branch" --oneline 2>/dev/null)"
43
+ if [ -n "$unpushed" ]; then
44
+ skipped=$((skipped + 1))
45
+ continue
46
+ fi
47
+ fi
48
+ fi
49
+
50
+ rm -rf "$dir" 2>/dev/null && cleaned=$((cleaned + 1))
51
+ done
52
+
53
+ # Silent unless something was cleaned
54
+ if [ "$cleaned" -gt 0 ]; then
55
+ echo "Cleaned $cleaned stale worktree(s), $skipped active/protected"
56
+ fi
57
+ `;
58
+ }
59
+ //# sourceMappingURL=clean-worktrees.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clean-worktrees.js","sourceRoot":"","sources":["../../src/templates/clean-worktrees.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,UAAU,4BAA4B;IAC1C,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmDR,CAAC;AACF,CAAC"}
@@ -50,11 +50,18 @@ if [ ! -f "$SETTINGS_FILE" ]; then
50
50
  "type": "prompt",
51
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
52
  }
53
+ ],
54
+ "SessionStart": [
55
+ {
56
+ "type": "command",
57
+ "command": "sh $AGENT_DIR/scripts/clean-worktrees.sh",
58
+ "timeout": 10
59
+ }
53
60
  ]
54
61
  }
55
62
  }
56
63
  SETTINGS
57
- echo "[ok] Created $SETTINGS_FILE with PreCompact hook"
64
+ echo "[ok] Created $SETTINGS_FILE with PreCompact + SessionStart hooks"
58
65
  else
59
66
  if grep -q "PreCompact" "$SETTINGS_FILE" 2>/dev/null; then
60
67
  echo "[ok] PreCompact hook already configured — skipping"
@@ -72,6 +79,24 @@ else
72
79
  "
73
80
  echo "[ok] Added PreCompact hook to $SETTINGS_FILE"
74
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
75
100
  fi
76
101
 
77
102
  # Install skills to ~/.claude/commands/
@@ -1 +1 @@
1
- {"version":3,"file":"setup-script.js","sourceRoot":"","sources":["../../src/templates/setup-script.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"setup-script.js","sourceRoot":"","sources":["../../src/templates/setup-script.ts"],"names":[],"mappings":"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"}
@@ -105,6 +105,19 @@ const ENGINE_RULES_LINES = [
105
105
  '- Persist lessons: capture + link. An unlinked entry is incomplete.',
106
106
  '- Exceptions: runtime errors with stack traces → codebase first; user explicitly asks to search web.',
107
107
  '',
108
+ '### Vault Search Strategy',
109
+ '',
110
+ "Default to **two-pass search** — scan first, load only what's relevant. This saves tokens and keeps context lean.",
111
+ '',
112
+ '| Situation | Strategy |',
113
+ '|-----------|----------|',
114
+ '| Broad/exploratory query | `mode: "scan"` → triage by score → `op:load_entries` for top matches |',
115
+ '| Specific known entry | `mode: "full"` directly |',
116
+ '| Work task (need vault context before coding) | Scan → pick relevant → load |',
117
+ '| Existence check ("do we have X?") | `mode: "scan"` only, no load needed |',
118
+ '',
119
+ '**Never load all scan results.** Pick the top 2-4 by relevance score and skip entries below 0.30 unless the query is very specific.',
120
+ '',
108
121
  // ─── Planning ────────────────────────────────────────────
109
122
  '## Planning',
110
123
  '<!-- soleri:planning -->',
@@ -199,6 +212,37 @@ const ENGINE_RULES_LINES = [
199
212
  '| skipped | ... | medium | ... |',
200
213
  '```',
201
214
  '',
215
+ // ─── YOLO Mode ──────────────────────────────────────────
216
+ '## YOLO Mode',
217
+ '<!-- soleri:yolo-mode -->',
218
+ '',
219
+ 'YOLO mode skips plan approval gates for faster execution. The agent executes tasks directly without waiting for Gate 1 (`op:approve_plan`) or Gate 2 (`op:plan_split`) confirmation.',
220
+ '',
221
+ '### What Changes',
222
+ '',
223
+ '- Plan approval gates are **auto-approved** — no user confirmation needed.',
224
+ '- Task routing skips the two-gate ceremony — plans are created, approved, and split in one pass.',
225
+ '',
226
+ '### What Does NOT Change',
227
+ '',
228
+ '- `op:orchestrate_complete` **always runs** — knowledge capture is never skipped.',
229
+ '- Vault search **always runs** — decisions must be informed by existing patterns.',
230
+ '- Brain feedback loop remains active.',
231
+ '- Grade gate still applies — plans must grade A or higher.',
232
+ '',
233
+ '### Prerequisites',
234
+ '',
235
+ '- **YOLO Safety Hook Pack** must be installed: `soleri hooks add-pack yolo-safety`',
236
+ '- The hook pack intercepts destructive commands (force push, reset --hard, drop table) and requires explicit confirmation.',
237
+ '- Staging backups are created before destructive operations.',
238
+ '',
239
+ '### Activation & Deactivation',
240
+ '',
241
+ '| Action | Method |',
242
+ '|--------|--------|',
243
+ '| Activate | `soleri yolo` or `op:morph params:{ mode: "YOLO-MODE" }` |',
244
+ '| Deactivate | "exit YOLO", session end, or `op:activate params:{ deactivate: true }` |',
245
+ '',
202
246
  // ─── Output Formatting ───────────────────────────────────
203
247
  '## Output Formatting',
204
248
  '<!-- soleri:output-formatting -->',
@@ -285,7 +329,7 @@ const ENGINE_RULES_LINES = [
285
329
  '`op:orchestrate_complete` runs for EVERY task — simple or complex. This captures:',
286
330
  '- Knowledge to vault (patterns learned, decisions made)',
287
331
  '- Session summary (what was done, files changed)',
288
- '- Brain feedback (what worked, what didn\'t)',
332
+ "- Brain feedback (what worked, what didn't)",
289
333
  '',
290
334
  'Without completion, the knowledge trail is lost. The code is in git, but the WHY disappears.',
291
335
  '',
@@ -333,6 +377,53 @@ const ENGINE_RULES_LINES = [
333
377
  '- Brain tells you **which** patterns matter (names + strength scores). Vault tells you **what** they are (rules, examples).',
334
378
  "- Pull only what's relevant to the current task — don't load everything at session start.",
335
379
  '',
380
+ '### Second Brain Features',
381
+ '',
382
+ '| Feature | How to use |',
383
+ '|---------|-----------|',
384
+ '| **Two-pass search** | `op:search_intelligent` with `mode: "scan"` for lightweight results, then `op:load_entries` for full content. See **Vault Search Strategy**. |',
385
+ '| **Session briefing** | `op:session_briefing` on session start — surfaces last session, active plans, recent captures, brain recommendations |',
386
+ '| **Evidence reconciliation** | `op:plan_reconcile_with_evidence` — cross-references plan tasks against git diff |',
387
+ '| **Learning radar** | `op:radar_analyze` to detect patterns from corrections, search misses, workarounds. `op:radar_candidates` to review, `op:radar_approve`/`op:radar_dismiss` |',
388
+ '| **External ingestion** | `op:ingest_url` for articles, `op:ingest_text` for transcripts/notes, `op:ingest_batch` for multiple items |',
389
+ '| **Content synthesis** | `op:synthesize` — turn vault knowledge into briefs, outlines, talking points, or post drafts |',
390
+ '| **Skill chains** | `op:chain_execute` — multi-step workflows with data flow between steps and approval gates |',
391
+ '',
392
+ '### Brain Feedback Loop',
393
+ '',
394
+ 'After using a vault search result to inform a decision, action, or response, call `op:record_feedback` with:',
395
+ '- `query`: the original search query',
396
+ '- `entryId`: the vault entry ID that was used',
397
+ '- `action`: "accepted" (result was useful) or "rejected" (result was irrelevant/wrong)',
398
+ '- `confidence`: 0.0–1.0 how relevant the result was to the task',
399
+ '',
400
+ 'Do this for:',
401
+ '- `search_intelligent` results that influence your next action',
402
+ '- `orchestrate_plan` vault recommendations you follow',
403
+ '- Vault entries you cite or reference in responses',
404
+ '',
405
+ 'Do NOT record feedback for:',
406
+ '- Existence checks ("do we have X?" — just scanning, not using)',
407
+ "- Results you browse but don't act on",
408
+ '- Duplicate feedback for the same entry in the same task',
409
+ '',
410
+ // ─── Model Routing Guidance ─────────────────────────────
411
+ '## Model Routing Guidance',
412
+ '<!-- soleri:model-routing -->',
413
+ '',
414
+ 'Different workflow stages benefit from different model strengths. Use this as a default when multiple models are available.',
415
+ '',
416
+ '| Stage | Recommended Model | Why |',
417
+ '|-------|------------------|-----|',
418
+ '| Research / Exploration | Opus | Cross-file reasoning, broad context synthesis |',
419
+ '| Planning / Architecture | Opus | Complex tradeoff analysis, alternative evaluation |',
420
+ '| Implementation | Sonnet | Speed, cost-efficiency for focused coding |',
421
+ '| Code Review / Verification | Opus | Deep analysis, false-positive filtering |',
422
+ '| Validation Gates | Haiku | Fast, cheap pass/fail checks |',
423
+ '| Knowledge Capture | Sonnet | Structured extraction, good enough quality |',
424
+ '',
425
+ 'This is guidance, not enforcement. Use the best model available. When only one model is available, use it for all stages.',
426
+ '',
336
427
  // ─── Cross-Project Memory ────────────────────────────────
337
428
  '## Cross-Project Memory',
338
429
  '<!-- soleri:cross-project -->',
@@ -396,11 +487,27 @@ const ENGINE_RULES_LINES = [
396
487
  '',
397
488
  '### Character Persistence',
398
489
  '',
399
- '- All communication flows through your persona\'s voice tone, vocabulary, opinions',
490
+ '- **MANDATORY**: Prefix every response with `{AgentName} >` when activated (e.g., `Ernesto >`, `Salvador >`). This signals to the user that the agent persona is active.',
491
+ "- All communication flows through your persona's voice — tone, vocabulary, opinions",
400
492
  '- Stay in character until explicitly deactivated',
401
493
  '- Context compaction does not change who you are — these rules persist in CLAUDE.md',
402
494
  '- If you notice yourself dropping character, re-read your activation context',
403
495
  '',
496
+ '### Operator Learning (automatic, silent)',
497
+ 'When calling `op:orchestrate_complete`, fill the `operatorSignals` field with your observations from this session:',
498
+ '',
499
+ '- **Expertise**: which topics did the operator demonstrate knowledge in? Where did they need explanation? Report topic + level (learning/intermediate/expert).',
500
+ "- **Corrections**: did they tell you to change behavior? Quote their exact words. Note if it's global or project-specific.",
501
+ '- **Interests**: did they share anything personal? Hobbies, background, music, culture? Report the tag and context.',
502
+ '- **Patterns**: did you notice work habits? Batching, scoping, pacing, communication style? Report what you observed.',
503
+ '',
504
+ 'Rules:',
505
+ "- Fill what you observed. Empty arrays for what you didn't notice.",
506
+ '- Store facts, not assumptions. "User asked about React hooks" not "User doesn\'t know React."',
507
+ '- Never announce you are learning. Never ask for confirmation.',
508
+ '- Decline to store: health, medical, political, religious, sexual, financial, legal content.',
509
+ '- The engine handles compounding and persistence — just report honestly.',
510
+ '',
404
511
  '### What NOT to Route Through Tools',
405
512
  '',
406
513
  '- Pure file read/write/edit operations (use Read, Edit, Write tools directly)',
@@ -415,8 +522,8 @@ const ENGINE_RULES_LINES = [
415
522
  '',
416
523
  '### Session Start Protocol',
417
524
  '',
418
- 'On activation, discover capabilities via `op:admin_tool_list`. Call `op:register` when project context is needed for a task.',
419
- 'Call `op:activate` only when checking evolved capabilities or recovering session state.',
525
+ 'On activation, discover capabilities via `op:admin_tool_list`. Call `op:session_briefing` to surface last session context, active plans, and brain recommendations.',
526
+ 'Call `op:register` when project context is needed for a task. Call `op:activate` only when checking evolved capabilities or recovering session state.',
420
527
  'After context compaction, re-discover capabilities — do not assume your tool inventory is still cached.',
421
528
  '',
422
529
  '### Context Compaction',
@@ -424,6 +531,21 @@ const ENGINE_RULES_LINES = [
424
531
  'A PreCompact hook calls `op:session_capture` before context compaction.',
425
532
  'Manual capture: `op:session_capture params:{ summary: "..." }`',
426
533
  '',
534
+ '### Handoff Protocol',
535
+ '',
536
+ 'Before crossing a context window boundary (`/clear`, context compaction, or switching tasks), generate a handoff document:',
537
+ '',
538
+ '1. **Before transition**: `op:handoff_generate` — produces a structured markdown document with active plan state, recent decisions, and pending tasks.',
539
+ '2. **After restart**: Reference the handoff document to restore context. It contains plan IDs, task status, decisions, and next actions.',
540
+ '',
541
+ 'Handoff documents are **ephemeral** — they are returned as markdown, not persisted to vault or memory. They are a snapshot for context transfer only.',
542
+ '',
543
+ '| Trigger | Action |',
544
+ '|---------|--------|',
545
+ '| `/clear` or manual reset | `op:handoff_generate` before clearing |',
546
+ '| Context compaction warning | `op:handoff_generate` (alongside `op:session_capture`) |',
547
+ '| Switching to a different task mid-plan | `op:handoff_generate` to bookmark state |',
548
+ '',
427
549
  // ─── Soleri CLI ─────────────────────────────────────────
428
550
  '## Soleri CLI',
429
551
  '<!-- soleri:cli -->',
@@ -493,6 +615,38 @@ const ENGINE_RULES_LINES = [
493
615
  '| "Check my setup" | `soleri doctor` |',
494
616
  '| Template drift suspected | `soleri agent diff` to see what changed |',
495
617
  '',
618
+ // ─── Persona Self-Update ────────────────────────────────────
619
+ '## Persona Self-Update',
620
+ '<!-- soleri:persona-self-update -->',
621
+ '',
622
+ 'When the user asks to change your personality, voice, quirks, or character:',
623
+ '',
624
+ '1. **Edit your own `agent.yaml`** — the `persona:` block is the source of truth for your character.',
625
+ '2. **NEVER modify Soleri engine code** — `@soleri/core`, `packages/core/src/persona/defaults.ts`, or any engine package. Those define the default template for ALL agents.',
626
+ '3. After editing `agent.yaml`, tell the user to run `soleri agent refresh` to regenerate CLAUDE.md, then reactivate.',
627
+ '',
628
+ '### What You Can Change',
629
+ '',
630
+ '| Field | Purpose |',
631
+ '|-------|---------|',
632
+ '| `persona.template` | Template ID (informational, can be custom) |',
633
+ '| `persona.inspiration` | Who/what inspires the character |',
634
+ '| `persona.culture` | Cultural background |',
635
+ '| `persona.voice` | How you sound (tone, cadence, vocabulary) |',
636
+ '| `persona.traits` | Personality traits |',
637
+ '| `persona.quirks` | Memorable behaviors and expressions |',
638
+ '| `persona.opinions` | Beliefs about craft and quality |',
639
+ '| `persona.metaphors` | Domains you draw metaphors from |',
640
+ '| `persona.languageRule` | How you mix languages |',
641
+ '| `persona.greetings` | Session start messages |',
642
+ '| `persona.signoffs` | Session end messages |',
643
+ '',
644
+ '### What You Must NOT Change',
645
+ '',
646
+ '- Engine defaults in `packages/core/src/persona/defaults.ts`',
647
+ '- The `PERSONA_TEMPLATES` registry',
648
+ '- Any file inside `@soleri/core` or `@soleri/forge`',
649
+ '',
496
650
  // ─── Verification Protocol ─────────────────────────────────
497
651
  '## Verification Protocol',
498
652
  '<!-- soleri:verification-protocol -->',
@@ -505,11 +659,12 @@ const ENGINE_RULES_LINES = [
505
659
  '2. **Prove** — reproduce the issue (test case, error log, stack trace)',
506
660
  '3. **Fix** — only after the issue is proven reproducible',
507
661
  '',
508
- '### Anti-pattern',
662
+ '### Anti-patterns',
509
663
  '',
510
664
  '- Fixing code "just in case" or for aesthetics without a proven issue',
511
665
  '- Claiming a bug exists without reproduction evidence',
512
666
  '- Refactoring working code under the guise of a bug fix',
667
+ '- **Dismissing test failures as "flaky" or "pre-existing" without reading the test code and the handler it exercises.** A test that fails consistently is broken, not flaky. Investigate the root cause before classifying.',
513
668
  '',
514
669
  '### Scope',
515
670
  '',
@@ -1 +1 @@
1
- {"version":3,"file":"shared-rules.js","sourceRoot":"","sources":["../../src/templates/shared-rules.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shared-rules.js","sourceRoot":"","sources":["../../src/templates/shared-rules.ts"],"names":[],"mappings":"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"}
@@ -3,34 +3,8 @@ import { join, dirname } from 'node:path';
3
3
  import { fileURLToPath } from 'node:url';
4
4
  const __dirname = dirname(fileURLToPath(import.meta.url));
5
5
  const SKILLS_DIR = join(__dirname, '..', 'skills');
6
- /** Skills that use YOUR_AGENT_core placeholder and need agent-specific substitution. */
7
- const AGENT_SPECIFIC_SKILLS = new Set([
8
- 'agent-dev',
9
- 'agent-guide',
10
- 'agent-persona',
11
- 'brain-debrief',
12
- 'brainstorming',
13
- 'code-patrol',
14
- 'context-resume',
15
- 'deep-review',
16
- 'deliver-and-ship',
17
- 'executing-plans',
18
- 'fix-and-learn',
19
- 'health-check',
20
- 'knowledge-harvest',
21
- 'onboard-me',
22
- 'parallel-execute',
23
- 'retrospective',
24
- 'second-opinion',
25
- 'systematic-debugging',
26
- 'test-driven-development',
27
- 'vault-capture',
28
- 'vault-curate',
29
- 'vault-navigator',
30
- 'vault-smells',
31
- 'verification-before-completion',
32
- 'writing-plans',
33
- ]);
6
+ /** Placeholder token in skill templates that gets replaced with agent-specific tool name. */
7
+ const AGENT_PLACEHOLDER = 'YOUR_AGENT_core';
34
8
  /**
35
9
  * Generate skill files for the scaffolded agent.
36
10
  * Returns [relativePath, content] tuples for each skill.
@@ -77,7 +51,7 @@ export function generateSkills(config) {
77
51
  continue;
78
52
  }
79
53
  let content = readFileSync(contentPath, 'utf-8');
80
- if (AGENT_SPECIFIC_SKILLS.has(skillName)) {
54
+ if (content.includes(AGENT_PLACEHOLDER)) {
81
55
  content = content.replace(/YOUR_AGENT_core/g, `${config.id}_core`);
82
56
  }
83
57
  files.push([`skills/${skillName}/SKILL.md`, content]);
@@ -1 +1 @@
1
- {"version":3,"file":"skills.js","sourceRoot":"","sources":["../../src/templates/skills.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC1E,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAGzC,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1D,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;AAEnD,wFAAwF;AACxF,MAAM,qBAAqB,GAAG,IAAI,GAAG,CAAC;IACpC,WAAW;IACX,aAAa;IACb,eAAe;IACf,eAAe;IACf,eAAe;IACf,aAAa;IACb,gBAAgB;IAChB,aAAa;IACb,kBAAkB;IAClB,iBAAiB;IACjB,eAAe;IACf,cAAc;IACd,mBAAmB;IACnB,YAAY;IACZ,kBAAkB;IAClB,eAAe;IACf,gBAAgB;IAChB,sBAAsB;IACtB,yBAAyB;IACzB,eAAe;IACf,cAAc;IACd,iBAAiB;IACjB,cAAc;IACd,gCAAgC;IAChC,eAAe;CAChB,CAAC,CAAC;AAEH;;;;;;;;GAQG;AACH,MAAM,UAAU,cAAc,CAAC,MAAmB;IAChD,MAAM,KAAK,GAA4B,EAAE,CAAC;IAC1C,IAAI,OAAiB,CAAC;IAEtB,IAAI,CAAC;QACH,OAAO,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;IACpC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;IAED,2DAA2D;IAC3D,gEAAgE;IAChE,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,uCAAuC;IAE5G,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QAE1C,wBAAwB;QACxB,gDAAgD;QAChD,yCAAyC;QACzC,IAAI,SAAiB,CAAC;QACtB,IAAI,WAAmB,CAAC;QAExB,IAAI,QAAQ,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;YACtC,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;YAC5C,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;gBAAE,SAAS;YACnC,SAAS,GAAG,KAAK,CAAC;YAClB,WAAW,GAAG,OAAO,CAAC;QACxB,CAAC;aAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACjC,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACrC,WAAW,GAAG,SAAS,CAAC;QAC1B,CAAC;aAAM,CAAC;YACN,SAAS;QACX,CAAC;QAED,IAAI,aAAa,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YACnD,SAAS;QACX,CAAC;QAED,IAAI,OAAO,GAAG,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAEjD,IAAI,qBAAqB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YACzC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,kBAAkB,EAAE,GAAG,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC;QACrE,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,CAAC,UAAU,SAAS,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;IACxD,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"skills.js","sourceRoot":"","sources":["../../src/templates/skills.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC1E,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAGzC,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1D,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;AAEnD,6FAA6F;AAC7F,MAAM,iBAAiB,GAAG,iBAAiB,CAAC;AAE5C;;;;;;;;GAQG;AACH,MAAM,UAAU,cAAc,CAAC,MAAmB;IAChD,MAAM,KAAK,GAA4B,EAAE,CAAC;IAC1C,IAAI,OAAiB,CAAC;IAEtB,IAAI,CAAC;QACH,OAAO,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;IACpC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;IAED,2DAA2D;IAC3D,gEAAgE;IAChE,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,uCAAuC;IAE5G,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QAE1C,wBAAwB;QACxB,gDAAgD;QAChD,yCAAyC;QACzC,IAAI,SAAiB,CAAC;QACtB,IAAI,WAAmB,CAAC;QAExB,IAAI,QAAQ,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;YACtC,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;YAC5C,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;gBAAE,SAAS;YACnC,SAAS,GAAG,KAAK,CAAC;YAClB,WAAW,GAAG,OAAO,CAAC;QACxB,CAAC;aAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACjC,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACrC,WAAW,GAAG,SAAS,CAAC;QAC1B,CAAC;aAAM,CAAC;YACN,SAAS;QACX,CAAC;QAED,IAAI,aAAa,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YACnD,SAAS;QACX,CAAC;QAED,IAAI,OAAO,GAAG,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAEjD,IAAI,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC;YACxC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,kBAAkB,EAAE,GAAG,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC;QACrE,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,CAAC,UAAU,SAAS,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;IACxD,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -15,6 +15,7 @@ export default defineConfig({
15
15
  testTimeout: 30_000,
16
16
  hookTimeout: 10_000,
17
17
  teardownTimeout: 5_000,
18
+ exclude: ['**/node_modules/**', '**/.claude/worktrees/**'],
18
19
  coverage: {
19
20
  provider: 'v8',
20
21
  include: ['src/**/*.ts'],
@@ -1 +1 @@
1
- {"version":3,"file":"vitest-config.js","sourceRoot":"","sources":["../../src/templates/vitest-config.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,oBAAoB;IAClC,OAAO;;;;;;;;;;;;;;;;;;;;;;;CAuBR,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"vitest-config.js","sourceRoot":"","sources":["../../src/templates/vitest-config.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,oBAAoB;IAClC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;CAwBR,CAAC;AACF,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@soleri/forge",
3
- "version": "9.3.1",
3
+ "version": "9.5.0",
4
4
  "description": "Scaffold AI agents that learn, remember, and grow with you.",
5
5
  "keywords": [
6
6
  "agent",