@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.
Files changed (102) hide show
  1. package/dist/compose-claude-md.js +30 -19
  2. package/dist/compose-claude-md.js.map +1 -1
  3. package/dist/scaffold-filetree.js +116 -49
  4. package/dist/scaffold-filetree.js.map +1 -1
  5. package/dist/skills/{agent-dev → soleri-agent-dev}/SKILL.md +4 -7
  6. package/dist/skills/{agent-guide → soleri-agent-guide}/SKILL.md +7 -6
  7. package/{src/skills/agent-issues → dist/skills/soleri-agent-issues}/SKILL.md +33 -6
  8. package/{src/skills/agent-persona → dist/skills/soleri-agent-persona}/SKILL.md +4 -5
  9. package/{src/skills/brain-debrief → dist/skills/soleri-brain-debrief}/SKILL.md +5 -5
  10. package/dist/skills/{brainstorming → soleri-brainstorming}/SKILL.md +4 -5
  11. package/dist/skills/soleri-build-skill/SKILL.md +210 -0
  12. package/dist/skills/{code-patrol → soleri-code-patrol}/SKILL.md +6 -2
  13. package/{src/skills/context-resume → dist/skills/soleri-context-resume}/SKILL.md +4 -4
  14. package/{src/skills/deep-review → dist/skills/soleri-deep-review}/SKILL.md +5 -5
  15. package/dist/skills/{deliver-and-ship → soleri-deliver-and-ship}/SKILL.md +5 -5
  16. package/{src/skills/discovery-phase → dist/skills/soleri-discovery-phase}/SKILL.md +18 -17
  17. package/dist/skills/soleri-dream/SKILL.md +104 -0
  18. package/dist/skills/{env-setup → soleri-env-setup}/SKILL.md +31 -7
  19. package/dist/skills/{executing-plans → soleri-executing-plans}/SKILL.md +4 -5
  20. package/{src/skills/finishing-a-development-branch → dist/skills/soleri-finishing-a-development-branch}/SKILL.md +35 -4
  21. package/dist/skills/{fix-and-learn → soleri-fix-and-learn}/SKILL.md +4 -5
  22. package/{src/skills/health-check → dist/skills/soleri-health-check}/SKILL.md +5 -5
  23. package/{src/skills/knowledge-harvest → dist/skills/soleri-knowledge-harvest}/SKILL.md +5 -5
  24. package/dist/skills/{mcp-doctor → soleri-mcp-doctor}/SKILL.md +4 -4
  25. package/{src/skills/onboard-me → dist/skills/soleri-onboard-me}/SKILL.md +14 -4
  26. package/{src/skills/parallel-execute → dist/skills/soleri-parallel-execute}/SKILL.md +12 -7
  27. package/dist/skills/soleri-research-scout/SKILL.md +225 -0
  28. package/dist/skills/{retrospective → soleri-retrospective}/SKILL.md +5 -4
  29. package/{src/skills/second-opinion → dist/skills/soleri-second-opinion}/SKILL.md +5 -2
  30. package/dist/skills/{subagent-driven-development → soleri-subagent-driven-development}/SKILL.md +36 -15
  31. package/{src/skills/systematic-debugging → dist/skills/soleri-systematic-debugging}/SKILL.md +5 -5
  32. package/{src/skills/test-driven-development → dist/skills/soleri-test-driven-development}/SKILL.md +12 -2
  33. package/dist/skills/{using-git-worktrees → soleri-using-git-worktrees}/SKILL.md +25 -4
  34. package/dist/skills/soleri-vault-capture/SKILL.md +205 -0
  35. package/{src/skills/vault-curate → dist/skills/soleri-vault-curate}/SKILL.md +13 -6
  36. package/{src/skills/vault-navigator → dist/skills/soleri-vault-navigator}/SKILL.md +14 -5
  37. package/dist/skills/{vault-smells → soleri-vault-smells}/SKILL.md +7 -8
  38. package/{src/skills/verification-before-completion → dist/skills/soleri-verification-before-completion}/SKILL.md +15 -4
  39. package/{src/skills/writing-plans → dist/skills/soleri-writing-plans}/SKILL.md +10 -4
  40. package/dist/skills/{yolo-mode → soleri-yolo-mode}/SKILL.md +4 -4
  41. package/dist/templates/clean-worktrees.js +20 -0
  42. package/dist/templates/clean-worktrees.js.map +1 -1
  43. package/dist/templates/package-json.js +1 -1
  44. package/dist/templates/readme.js +19 -19
  45. package/dist/templates/readme.js.map +1 -1
  46. package/dist/templates/setup-script.js +24 -4
  47. package/dist/templates/setup-script.js.map +1 -1
  48. package/dist/templates/shared-rules.js +53 -5
  49. package/dist/templates/shared-rules.js.map +1 -1
  50. package/dist/templates/skills.d.ts +15 -0
  51. package/dist/templates/skills.js +63 -0
  52. package/dist/templates/skills.js.map +1 -1
  53. package/package.json +2 -2
  54. package/src/__tests__/extensions-scaffold.test.ts +1 -1
  55. package/src/__tests__/scaffold-filetree.test.ts +24 -20
  56. package/src/__tests__/scaffolder.test.ts +6 -6
  57. package/src/compose-claude-md.ts +30 -19
  58. package/src/scaffold-filetree.ts +134 -49
  59. package/src/skills/{agent-dev → soleri-agent-dev}/SKILL.md +4 -7
  60. package/src/skills/{agent-guide → soleri-agent-guide}/SKILL.md +7 -6
  61. package/{dist/skills/agent-issues → src/skills/soleri-agent-issues}/SKILL.md +33 -6
  62. package/{dist/skills/agent-persona → src/skills/soleri-agent-persona}/SKILL.md +4 -5
  63. package/{dist/skills/brain-debrief → src/skills/soleri-brain-debrief}/SKILL.md +5 -5
  64. package/src/skills/{brainstorming → soleri-brainstorming}/SKILL.md +4 -5
  65. package/src/skills/soleri-build-skill/SKILL.md +210 -0
  66. package/src/skills/{code-patrol → soleri-code-patrol}/SKILL.md +6 -2
  67. package/{dist/skills/context-resume → src/skills/soleri-context-resume}/SKILL.md +4 -4
  68. package/{dist/skills/deep-review → src/skills/soleri-deep-review}/SKILL.md +5 -5
  69. package/src/skills/{deliver-and-ship → soleri-deliver-and-ship}/SKILL.md +5 -5
  70. package/{dist/skills/discovery-phase → src/skills/soleri-discovery-phase}/SKILL.md +18 -17
  71. package/src/skills/soleri-dream/SKILL.md +104 -0
  72. package/src/skills/{env-setup → soleri-env-setup}/SKILL.md +31 -7
  73. package/src/skills/{executing-plans → soleri-executing-plans}/SKILL.md +4 -5
  74. package/{dist/skills/finishing-a-development-branch → src/skills/soleri-finishing-a-development-branch}/SKILL.md +35 -4
  75. package/src/skills/{fix-and-learn → soleri-fix-and-learn}/SKILL.md +4 -5
  76. package/{dist/skills/health-check → src/skills/soleri-health-check}/SKILL.md +5 -5
  77. package/{dist/skills/knowledge-harvest → src/skills/soleri-knowledge-harvest}/SKILL.md +5 -5
  78. package/src/skills/{mcp-doctor → soleri-mcp-doctor}/SKILL.md +4 -4
  79. package/{dist/skills/onboard-me → src/skills/soleri-onboard-me}/SKILL.md +14 -4
  80. package/{dist/skills/parallel-execute → src/skills/soleri-parallel-execute}/SKILL.md +12 -7
  81. package/src/skills/soleri-research-scout/SKILL.md +225 -0
  82. package/src/skills/{retrospective → soleri-retrospective}/SKILL.md +5 -4
  83. package/{dist/skills/second-opinion → src/skills/soleri-second-opinion}/SKILL.md +5 -2
  84. package/src/skills/{subagent-driven-development → soleri-subagent-driven-development}/SKILL.md +36 -15
  85. package/{dist/skills/systematic-debugging → src/skills/soleri-systematic-debugging}/SKILL.md +5 -5
  86. package/{dist/skills/test-driven-development → src/skills/soleri-test-driven-development}/SKILL.md +12 -2
  87. package/src/skills/{using-git-worktrees → soleri-using-git-worktrees}/SKILL.md +25 -4
  88. package/src/skills/soleri-vault-capture/SKILL.md +205 -0
  89. package/{dist/skills/vault-curate → src/skills/soleri-vault-curate}/SKILL.md +13 -6
  90. package/{dist/skills/vault-navigator → src/skills/soleri-vault-navigator}/SKILL.md +14 -5
  91. package/src/skills/{vault-smells → soleri-vault-smells}/SKILL.md +7 -8
  92. package/{dist/skills/verification-before-completion → src/skills/soleri-verification-before-completion}/SKILL.md +15 -4
  93. package/{dist/skills/writing-plans → src/skills/soleri-writing-plans}/SKILL.md +10 -4
  94. package/src/skills/{yolo-mode → soleri-yolo-mode}/SKILL.md +4 -4
  95. package/src/templates/clean-worktrees.ts +20 -0
  96. package/src/templates/package-json.ts +1 -1
  97. package/src/templates/readme.ts +19 -19
  98. package/src/templates/setup-script.ts +24 -4
  99. package/src/templates/shared-rules.ts +54 -5
  100. package/src/templates/skills.ts +82 -0
  101. package/dist/skills/vault-capture/SKILL.md +0 -86
  102. package/src/skills/vault-capture/SKILL.md +0 -86
@@ -282,6 +282,22 @@ const ENGINE_RULES_LINES = [
282
282
  '| skipped | ... | medium | ... |',
283
283
  '```',
284
284
  '',
285
+ '### Incremental Correction',
286
+ '',
287
+ 'When a single step fails or produces wrong output, use `op:orchestrate_rerun_step` to re-execute it without restarting the entire plan.',
288
+ '',
289
+ '- **Target step** is marked as `rerun` and re-executed.',
290
+ '- **Downstream steps** are marked as `stale` (their cached output may be invalid).',
291
+ '- Use `cascadeTo` to also mark a range of downstream steps as `rerun` (not just stale).',
292
+ '- `op:plan_reconcile` includes a rerun report showing which steps were re-executed and why.',
293
+ '',
294
+ '**When to use:**',
295
+ '- A step produced incorrect output but the rest of the plan is fine.',
296
+ '- External conditions changed (e.g., a dependency was updated) and one step needs re-evaluation.',
297
+ '- A gate failed on a step that can be retried after a fix.',
298
+ '',
299
+ '**Anti-pattern:** Re-running steps speculatively. Only re-run when you have a clear reason.',
300
+ '',
285
301
  // ─── Workflow Overrides ──────────────────────────────────
286
302
  '## Workflow Overrides',
287
303
  '<!-- soleri:workflow-overrides -->',
@@ -574,6 +590,7 @@ const ENGINE_RULES_LINES = [
574
590
  '| Debug a problem | "this is broken", "why is this failing" | `op:search_intelligent` — check vault for known bugs first |',
575
591
  '| Learn from patterns | "what works for", "recommendations" | `op:strengths` + `op:recommend` — brain-learned patterns from real usage |',
576
592
  '| Clean up knowledge | "duplicates", "clean vault", "consolidate" | `op:curator_consolidate` — automated dedup, grooming, contradiction resolution |',
593
+ '| Consolidate memory | "dream", "consolidate memory", "vault maintenance" | `op:dream_run` — automatic memory consolidation (runs on session start after 5+ sessions/24h, or force with `/dream`) |',
577
594
  '| Summarize session | "what did we accomplish", "wrap up" | `op:session_capture` — structured capture with knowledge extraction |',
578
595
  '| Explore capabilities | "what can you do", "help", "features" | List capabilities by category, not raw op names |',
579
596
  '',
@@ -649,6 +666,16 @@ const ENGINE_RULES_LINES = [
649
666
  'Call `op:register` when project context is needed for a task. Call `op:activate` only when checking evolved capabilities or recovering session state.',
650
667
  'After context compaction, re-discover capabilities — do not assume your tool inventory is still cached.',
651
668
  '',
669
+ '### Pre-flight Manifest',
670
+ '',
671
+ 'Every `session_start` response includes a `preflight` object. Use it for self-awareness:',
672
+ '- **tools** — full list of available facade ops (facade name, op name, description).',
673
+ '- **skills** — installed skill names.',
674
+ '- **activePlans** — plans currently in `executing` state (planId, title, status).',
675
+ '- **vaultSummary** — entry count, connection status, and domain list.',
676
+ '',
677
+ 'Read `preflight` before calling `op:admin_tool_list` — it covers the same ground with zero extra round-trips.',
678
+ '',
652
679
  '### Context Compaction',
653
680
  '',
654
681
  'A PreCompact hook calls `op:session_capture` before context compaction.',
@@ -669,6 +696,17 @@ const ENGINE_RULES_LINES = [
669
696
  '| Context compaction warning | `op:handoff_generate` (alongside `op:session_capture`) |',
670
697
  '| Switching to a different task mid-plan | `op:handoff_generate` to bookmark state |',
671
698
  '',
699
+ // ─── Skill Step Checkpoints ────────────────────────────
700
+ '### Skill Step Checkpoints',
701
+ '',
702
+ 'Skills with structured steps return a checkpoint summary at each step boundary.',
703
+ 'When executing a multi-step skill:',
704
+ '1. Start with `op:skill_step_start` to create a tracker',
705
+ '2. After each step, call `op:skill_step_advance` with evidence',
706
+ '3. On completion, call `op:skill_step_complete` to validate',
707
+ '',
708
+ 'Save intermediate outputs to files, not context. This survives context compaction.',
709
+ '',
672
710
  // ─── Getting Started & Updates ─────────────────────────
673
711
  '## Getting Started & Updates',
674
712
  '<!-- soleri:getting-started -->',
@@ -809,7 +847,7 @@ const ENGINE_RULES_LINES = [
809
847
  '',
810
848
  '### Hooks & Skills',
811
849
  '',
812
- 'Your agent ships with **essential skills** by default (agent-guide, agent-persona, vault-navigator, vault-capture, systematic-debugging, writing-plans, context-resume). Install more with `soleri skills install <name>`. List available skills with `soleri skills list`.',
850
+ 'Your agent ships with **essential skills** by default (soleri-agent-guide, soleri-agent-persona, soleri-vault-navigator, soleri-vault-capture, soleri-systematic-debugging, soleri-writing-plans, soleri-context-resume). Install more with `soleri skills install <name>`. List available skills with `soleri skills list`.',
813
851
  '',
814
852
  'To scaffold all skills instead, set `skillsFilter: all` in `agent.yaml`.',
815
853
  '',
@@ -821,6 +859,15 @@ const ENGINE_RULES_LINES = [
821
859
  '| `soleri skills list` | List installed skill packs |',
822
860
  '| `soleri skills install <pack>` | Install a skill pack |',
823
861
  '',
862
+ '### Dream (Memory Consolidation)',
863
+ '',
864
+ '| Command | What it does |',
865
+ '|---------|-------------|',
866
+ '| `soleri dream` | Run vault memory consolidation (dream pass) immediately |',
867
+ '| `soleri dream schedule [--time HH:MM]` | Schedule daily dream at specified time (default: 22:00) |',
868
+ '| `soleri dream unschedule` | Remove scheduled dream cron job |',
869
+ '| `soleri dream status` | Show dream status: last run, sessions since, cron schedule |',
870
+ '',
824
871
  '### Installation & Setup',
825
872
  '',
826
873
  '| Command | What it does |',
@@ -947,10 +994,11 @@ const ENGINE_RULES_LINES = [
947
994
  '',
948
995
  '1. **Orchestrator owns all decisions.** Subagents execute specs — they do NOT make design decisions. If a subagent encounters ambiguity, it returns to the orchestrator with a question, not a guess.',
949
996
  '2. **Subagents MUST NOT create plans.** Only the parent orchestrator creates plans. Subagents receive task prompts with exact scope, file boundaries, and acceptance criteria. They execute and return results.',
950
- '3. **Worktree cleanup is guaranteed.** Three-layer defense: (a) `finally` block in dispatcher cleans per-task worktree, (b) `cleanupAll()` runs after batch completion, (c) `SessionStart` hook prunes orphaned worktrees on every session.',
951
- '4. **Escalation protocol.** When a subagent hits ambiguity or a blocking issue, it MUST return to the orchestrator with a clear description of the blocker. The orchestrator decides ask the user or resolve then re-dispatches.',
952
- '5. **No freelancing.** Subagents stay within their assigned file boundaries and acceptance criteria. No "while I\'m here" improvements, no scope creep, no out-of-scope commits.',
953
- '6. **UX output contract.** The orchestrator communicates subagent work to the user at three verbosity levels:',
997
+ '3. **Worktree branches are local-only never push them to remote.** They exist for isolated subagent execution and get merged back locally. After merge, delete the local branch immediately with `git branch -D <branch>`.',
998
+ '4. **Worktree cleanup is guaranteed.** Four-layer defense: (a) `finally` block in dispatcher cleans per-task worktree and local branch, (b) orchestrator deletes local branch after confirmed merge, (c) `cleanupAll()` runs after batch completion, (d) `SessionStart` hook prunes orphaned worktrees and deletes merged `subagent/*` and `worktree-agent-*` local branches.',
999
+ '5. **Escalation protocol.** When a subagent hits ambiguity or a blocking issue, it MUST return to the orchestrator with a clear description of the blocker. The orchestrator decides — ask the user or resolve — then re-dispatches.',
1000
+ '6. **No freelancing.** Subagents stay within their assigned file boundaries and acceptance criteria. No "while I\'m here" improvements, no scope creep, no out-of-scope commits.',
1001
+ '7. **UX output contract.** The orchestrator communicates subagent work to the user at three verbosity levels:',
954
1002
  '',
955
1003
  '### UX Output Format',
956
1004
  '',
@@ -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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"}
@@ -1,4 +1,15 @@
1
1
  import type { AgentConfig } from '../types.js';
2
+ export type SkillStepEvidence = 'tool_called' | 'file_exists';
3
+ export interface SkillStepDef {
4
+ id: string;
5
+ description: string;
6
+ evidence: SkillStepEvidence;
7
+ }
8
+ /**
9
+ * Extract optional `steps` array from YAML frontmatter.
10
+ * Uses simple regex parsing — no YAML dependency needed.
11
+ */
12
+ export declare function extractStepsFromFrontmatter(content: string): SkillStepDef[] | null;
2
13
  /**
3
14
  * Generate skill files for the scaffolded agent.
4
15
  * Returns [relativePath, content] tuples for each skill.
@@ -7,5 +18,9 @@ import type { AgentConfig } from '../types.js';
7
18
  * - If config.skills is undefined/empty, all skills are included (backward compat).
8
19
  * - Superpowers-adapted skills (MIT): copied as-is
9
20
  * - Engine-adapted skills: YOUR_AGENT_core → {config.id}_core
21
+ *
22
+ * When a skill's frontmatter contains a `steps` array, the steps are appended
23
+ * as a hidden metadata block (`<!-- soleri:steps ... -->`) so the runtime can
24
+ * extract them for step-tracking.
10
25
  */
11
26
  export declare function generateSkills(config: AgentConfig): Array<[string, string]>;
@@ -5,6 +5,60 @@ const __dirname = dirname(fileURLToPath(import.meta.url));
5
5
  const SKILLS_DIR = join(__dirname, '..', 'skills');
6
6
  /** Placeholder token in skill templates that gets replaced with agent-specific tool name. */
7
7
  const AGENT_PLACEHOLDER = 'YOUR_AGENT_core';
8
+ /**
9
+ * Extract optional `steps` array from YAML frontmatter.
10
+ * Uses simple regex parsing — no YAML dependency needed.
11
+ */
12
+ export function extractStepsFromFrontmatter(content) {
13
+ const fmMatch = content.match(/^---\n([\s\S]*?)\n---/);
14
+ if (!fmMatch)
15
+ return null;
16
+ const fm = fmMatch[1];
17
+ const stepsIdx = fm.indexOf('\nsteps:');
18
+ if (stepsIdx === -1)
19
+ return null;
20
+ // Collect lines after "steps:" that are indented (part of the array)
21
+ const afterSteps = fm.slice(stepsIdx + '\nsteps:'.length);
22
+ const lines = afterSteps.split('\n');
23
+ const steps = [];
24
+ let current = null;
25
+ for (const line of lines) {
26
+ // Stop at next top-level YAML key or end of indented block
27
+ if (line.match(/^\S/) && line.trim() !== '')
28
+ break;
29
+ const itemMatch = line.match(/^\s+-\s+id:\s*(.+)/);
30
+ if (itemMatch) {
31
+ if (current?.id && current.description && current.evidence) {
32
+ steps.push(current);
33
+ }
34
+ current = { id: itemMatch[1].trim().replace(/^["']|["']$/g, '') };
35
+ continue;
36
+ }
37
+ if (current) {
38
+ const descMatch = line.match(/^\s+description:\s*(.+)/);
39
+ if (descMatch) {
40
+ current.description = descMatch[1].trim().replace(/^["']|["']$/g, '');
41
+ continue;
42
+ }
43
+ const evMatch = line.match(/^\s+evidence:\s*(.+)/);
44
+ if (evMatch) {
45
+ const raw = evMatch[1].trim().replace(/^["']|["']$/g, '');
46
+ if (raw === 'tool_called' || raw === 'file_exists') {
47
+ current.evidence = raw;
48
+ }
49
+ continue;
50
+ }
51
+ }
52
+ }
53
+ // Push last item
54
+ if (current?.id && current.description && current.evidence) {
55
+ steps.push(current);
56
+ }
57
+ return steps.length > 0 ? steps : null;
58
+ }
59
+ // ---------------------------------------------------------------------------
60
+ // Skill generation
61
+ // ---------------------------------------------------------------------------
8
62
  /**
9
63
  * Generate skill files for the scaffolded agent.
10
64
  * Returns [relativePath, content] tuples for each skill.
@@ -13,6 +67,10 @@ const AGENT_PLACEHOLDER = 'YOUR_AGENT_core';
13
67
  * - If config.skills is undefined/empty, all skills are included (backward compat).
14
68
  * - Superpowers-adapted skills (MIT): copied as-is
15
69
  * - Engine-adapted skills: YOUR_AGENT_core → {config.id}_core
70
+ *
71
+ * When a skill's frontmatter contains a `steps` array, the steps are appended
72
+ * as a hidden metadata block (`<!-- soleri:steps ... -->`) so the runtime can
73
+ * extract them for step-tracking.
16
74
  */
17
75
  export function generateSkills(config) {
18
76
  const files = [];
@@ -54,6 +112,11 @@ export function generateSkills(config) {
54
112
  if (content.includes(AGENT_PLACEHOLDER)) {
55
113
  content = content.replace(/YOUR_AGENT_core/g, `${config.id}_core`);
56
114
  }
115
+ // Extract structured steps from frontmatter and append as metadata block
116
+ const steps = extractStepsFromFrontmatter(content);
117
+ if (steps) {
118
+ content += `\n<!-- soleri:steps ${JSON.stringify(steps)} -->\n`;
119
+ }
57
120
  files.push([`skills/${skillName}/SKILL.md`, content]);
58
121
  }
59
122
  return files;
@@ -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,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"}
1
+ {"version":3,"file":"skills.js","sourceRoot":"","sources":["../../src/templates/skills.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@soleri/forge",
3
- "version": "9.11.0",
3
+ "version": "9.13.0",
4
4
  "description": "Scaffold AI agents that learn, remember, and grow with you.",
5
5
  "keywords": [
6
6
  "agent",
@@ -50,7 +50,7 @@
50
50
  "test:coverage": "vitest run --coverage"
51
51
  },
52
52
  "dependencies": {
53
- "@modelcontextprotocol/sdk": "^1.12.1",
53
+ "@modelcontextprotocol/sdk": "^1.28.0",
54
54
  "@soleri/core": "^9.0.0",
55
55
  "yaml": "^2.8.2",
56
56
  "zod": "^3.24.2"
@@ -13,7 +13,7 @@ describe('scaffold extensions', () => {
13
13
  rmSync(outputDir, { recursive: true, force: true });
14
14
  });
15
15
 
16
- it('should create extensions directory with index and example op', () => {
16
+ it('should create extensions directory with index and example op', { timeout: 30_000 }, () => {
17
17
  scaffold({
18
18
  id: agentId,
19
19
  name: 'Extension Test',
@@ -379,19 +379,19 @@ describe('scaffoldFileTree', () => {
379
379
  expect(skillDirs.length).toBeLessThanOrEqual(10);
380
380
 
381
381
  // Essential skills should be present
382
- expect(skillDirs).toContain('agent-guide');
383
- expect(skillDirs).toContain('vault-navigator');
384
- expect(skillDirs).toContain('vault-capture');
385
- expect(skillDirs).toContain('systematic-debugging');
386
- expect(skillDirs).toContain('writing-plans');
387
- expect(skillDirs).toContain('context-resume');
388
- expect(skillDirs).toContain('agent-persona');
382
+ expect(skillDirs).toContain('soleri-agent-guide');
383
+ expect(skillDirs).toContain('soleri-vault-navigator');
384
+ expect(skillDirs).toContain('soleri-vault-capture');
385
+ expect(skillDirs).toContain('soleri-systematic-debugging');
386
+ expect(skillDirs).toContain('soleri-writing-plans');
387
+ expect(skillDirs).toContain('soleri-context-resume');
388
+ expect(skillDirs).toContain('soleri-agent-persona');
389
389
 
390
390
  // Optional skills should NOT be present
391
- expect(skillDirs).not.toContain('brainstorming');
392
- expect(skillDirs).not.toContain('deep-review');
393
- expect(skillDirs).not.toContain('code-patrol');
394
- expect(skillDirs).not.toContain('yolo-mode');
391
+ expect(skillDirs).not.toContain('soleri-brainstorming');
392
+ expect(skillDirs).not.toContain('soleri-deep-review');
393
+ expect(skillDirs).not.toContain('soleri-code-patrol');
394
+ expect(skillDirs).not.toContain('soleri-yolo-mode');
395
395
  });
396
396
 
397
397
  it('skillsFilter: "all" creates all skills', () => {
@@ -407,14 +407,18 @@ describe('scaffoldFileTree', () => {
407
407
 
408
408
  // Should have all 30+ skills
409
409
  expect(skillDirs.length).toBeGreaterThanOrEqual(25);
410
- expect(skillDirs).toContain('brainstorming');
411
- expect(skillDirs).toContain('deep-review');
412
- expect(skillDirs).toContain('yolo-mode');
410
+ expect(skillDirs).toContain('soleri-brainstorming');
411
+ expect(skillDirs).toContain('soleri-deep-review');
412
+ expect(skillDirs).toContain('soleri-yolo-mode');
413
413
  });
414
414
 
415
415
  it('skillsFilter: explicit array creates exactly those skills', () => {
416
416
  const result = scaffoldFileTree(
417
- { ...MINIMAL_CONFIG, id: 'custom-skills', skillsFilter: ['vault-navigator', 'agent-guide'] },
417
+ {
418
+ ...MINIMAL_CONFIG,
419
+ id: 'custom-skills',
420
+ skillsFilter: ['soleri-vault-navigator', 'soleri-agent-guide'],
421
+ },
418
422
  tempDir,
419
423
  );
420
424
  expect(result.success).toBe(true);
@@ -423,7 +427,7 @@ describe('scaffoldFileTree', () => {
423
427
  .filter((d) => d.isDirectory())
424
428
  .map((d) => d.name);
425
429
 
426
- expect(skillDirs).toEqual(['agent-guide', 'vault-navigator']);
430
+ expect(skillDirs).toEqual(['soleri-agent-guide', 'soleri-vault-navigator']);
427
431
  });
428
432
 
429
433
  it('CLAUDE.md only lists on-disk skills', () => {
@@ -434,12 +438,12 @@ describe('scaffoldFileTree', () => {
434
438
  const claudeMd = readFileSync(join(result.agentDir, 'CLAUDE.md'), 'utf-8');
435
439
 
436
440
  // Essential skills should appear
437
- expect(claudeMd).toContain('vault-navigator');
438
- expect(claudeMd).toContain('agent-guide');
441
+ expect(claudeMd).toContain('soleri-vault-navigator');
442
+ expect(claudeMd).toContain('soleri-agent-guide');
439
443
 
440
444
  // Optional skills should NOT appear (not on disk)
441
- expect(claudeMd).not.toContain('brainstorming');
442
- expect(claudeMd).not.toContain('yolo-mode');
445
+ expect(claudeMd).not.toContain('soleri-brainstorming');
446
+ expect(claudeMd).not.toContain('soleri-yolo-mode');
443
447
  });
444
448
 
445
449
  it('skillsFilter default (essential) is not written to agent.yaml', () => {
@@ -281,11 +281,11 @@ describe('Scaffolder', () => {
281
281
 
282
282
  // Check essential skills exist (not an exhaustive list — skills are added over time)
283
283
  const essentialSkills = [
284
- 'brainstorming',
285
- 'context-resume',
286
- 'health-check',
287
- 'vault-capture',
288
- 'vault-navigator',
284
+ 'soleri-brainstorming',
285
+ 'soleri-context-resume',
286
+ 'soleri-health-check',
287
+ 'soleri-vault-capture',
288
+ 'soleri-vault-navigator',
289
289
  ];
290
290
  for (const skill of essentialSkills) {
291
291
  expect(skillDirs).toContain(skill);
@@ -322,7 +322,7 @@ describe('Scaffolder', () => {
322
322
  it('should have valid content in superpowers-adapted skills', () => {
323
323
  scaffold(testConfig);
324
324
  const skillsDir = join(tempDir, 'atlas', 'skills');
325
- const superpowersSkills = ['brainstorming', 'executing-plans'];
325
+ const superpowersSkills = ['soleri-brainstorming', 'soleri-executing-plans'];
326
326
 
327
327
  for (const name of superpowersSkills) {
328
328
  const skillPath = join(skillsDir, name, 'SKILL.md');
@@ -417,46 +417,57 @@ function composeWorkflowIndex(workflowsDir: string): string | null {
417
417
  const SKILL_CATEGORIES: Record<string, { label: string; skills: string[] }> = {
418
418
  getting_started: {
419
419
  label: 'Getting Started',
420
- skills: ['agent-guide', 'agent-persona', 'onboard-me', 'env-setup', 'context-resume'],
420
+ skills: [
421
+ 'soleri-agent-guide',
422
+ 'soleri-agent-persona',
423
+ 'soleri-onboard-me',
424
+ 'soleri-env-setup',
425
+ 'soleri-context-resume',
426
+ ],
421
427
  },
422
428
  planning: {
423
429
  label: 'Planning & Execution',
424
- skills: ['brainstorming', 'writing-plans', 'executing-plans', 'parallel-execute'],
430
+ skills: [
431
+ 'soleri-brainstorming',
432
+ 'soleri-writing-plans',
433
+ 'soleri-executing-plans',
434
+ 'soleri-parallel-execute',
435
+ ],
425
436
  },
426
437
  building: {
427
438
  label: 'Building & Fixing',
428
439
  skills: [
429
- 'test-driven-development',
430
- 'systematic-debugging',
431
- 'fix-and-learn',
432
- 'agent-dev',
433
- 'code-patrol',
440
+ 'soleri-test-driven-development',
441
+ 'soleri-systematic-debugging',
442
+ 'soleri-fix-and-learn',
443
+ 'soleri-agent-dev',
444
+ 'soleri-code-patrol',
434
445
  ],
435
446
  },
436
447
  knowledge: {
437
448
  label: 'Knowledge & Learning',
438
449
  skills: [
439
- 'vault-capture',
440
- 'vault-navigator',
441
- 'vault-curate',
442
- 'vault-smells',
443
- 'knowledge-harvest',
444
- 'brain-debrief',
450
+ 'soleri-vault-capture',
451
+ 'soleri-vault-navigator',
452
+ 'soleri-vault-curate',
453
+ 'soleri-vault-smells',
454
+ 'soleri-knowledge-harvest',
455
+ 'soleri-brain-debrief',
445
456
  ],
446
457
  },
447
458
  quality: {
448
459
  label: 'Quality & Delivery',
449
460
  skills: [
450
- 'verification-before-completion',
451
- 'deep-review',
452
- 'deliver-and-ship',
453
- 'health-check',
454
- 'mcp-doctor',
461
+ 'soleri-verification-before-completion',
462
+ 'soleri-deep-review',
463
+ 'soleri-deliver-and-ship',
464
+ 'soleri-health-check',
465
+ 'soleri-mcp-doctor',
455
466
  ],
456
467
  },
457
468
  reflection: {
458
469
  label: 'Reflection & Research',
459
- skills: ['retrospective', 'second-opinion'],
470
+ skills: ['soleri-retrospective', 'soleri-second-opinion'],
460
471
  },
461
472
  };
462
473