vralphy 0.0.3 → 0.0.4

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/README.md CHANGED
@@ -40,9 +40,7 @@ npx vralphy init
40
40
  This creates:
41
41
  - `specs/` - Feature specifications directory
42
42
  - `AGENTS.md` - Operational guide (build/test commands)
43
- - `PROMPT_plan.md` - Planning mode prompt
44
- - `PROMPT_build.md` - Build mode prompt
45
- - `PROMPT_spec.md` - Spec creation prompt
43
+ - `.vralphy/prompts/` - Prompt templates (plan.md, build.md, spec.md)
46
44
  - `IMPLEMENTATION_PLAN.md` - Task tracking
47
45
 
48
46
  2. **Create specifications:**
@@ -104,15 +102,23 @@ vralphy agents # List available agents
104
102
 
105
103
  ```
106
104
  your-project/
105
+ ├── .vralphy/
106
+ │ └── prompts/ # vralphy prompt templates
107
+ │ ├── plan.md
108
+ │ ├── build.md
109
+ │ └── spec.md
110
+ ├── .claude/ # Claude engine's native location (if using Claude)
111
+ │ ├── skills/ # Skills loaded on-demand
112
+ │ └── agents/ # Agents spawned on-demand
107
113
  ├── specs/ # Feature specifications
108
114
  │ ├── authentication.md
109
115
  │ └── api-endpoints.md
110
116
  ├── AGENTS.md # Operational guide (~60 lines max)
111
- ├── IMPLEMENTATION_PLAN.md # Current task list
112
- ├── PROMPT_plan.md # Planning prompt template
113
- └── PROMPT_build.md # Build prompt template
117
+ └── IMPLEMENTATION_PLAN.md # Current task list
114
118
  ```
115
119
 
120
+ **Key principle**: vralphy stores only its prompts in `.vralphy/`. Skills and agents come from the engine's native location (`.claude/`, `.opencode/`, etc.).
121
+
116
122
  ### 2. The Loop
117
123
 
118
124
  **Planning Phase** (`vralphy plan`):
@@ -169,12 +175,27 @@ Model aliases:
169
175
  vralphy --model opus --executor sonnet build
170
176
  ```
171
177
 
172
- ### 5. Skills & Agents
178
+ ### 5. Skills & Agents (Lazy Loading)
179
+
180
+ **Context is precious.** vralphy does NOT preload all skills/agents into prompts. Instead, the agent discovers and loads them on-demand from the engine's native locations:
181
+
182
+ | Engine | Skills Location | Agents Location |
183
+ |----------|---------------------|---------------------|
184
+ | Claude | `.claude/skills/` | `.claude/agents/` |
185
+ | OpenCode | `.opencode/skills/` | `.opencode/agents/` |
173
186
 
174
- **Skills** are domain-specific knowledge loaded into prompts:
187
+ **When the agent loads a skill:**
188
+ - Current task requires domain-specific knowledge
189
+ - A spec explicitly references a framework with a matching skill
190
+ - After failing twice at something - checks if a skill could help
175
191
 
192
+ **When the agent spawns an agent:**
193
+ - Task requires deep focused expertise (security audit, architecture review)
194
+ - Needs a second opinion on a complex decision
195
+ - Parallel work that benefits from isolation
196
+
197
+ **Skill format** (`.claude/skills/react-patterns.md`):
176
198
  ```markdown
177
- <!-- .claude/skills/react-patterns.md -->
178
199
  ---
179
200
  name: react-patterns
180
201
  description: React best practices
@@ -187,10 +208,8 @@ triggers:
187
208
  [knowledge content]
188
209
  ```
189
210
 
190
- **Agents** are specialized subagents that can be spawned:
191
-
211
+ **Agent format** (`.claude/agents/code-reviewer.md`):
192
212
  ```markdown
193
- <!-- agents/code-reviewer.md -->
194
213
  ---
195
214
  name: code-reviewer
196
215
  description: Reviews code for bugs
@@ -200,10 +219,10 @@ model: sonnet
200
219
  You are a code review specialist...
201
220
  ```
202
221
 
203
- List available skills/agents:
222
+ List what's available:
204
223
  ```bash
205
- vralphy skills
206
- vralphy agents
224
+ vralphy skills # Shows skills in engine-native location
225
+ vralphy agents # Shows agents in engine-native location
207
226
  ```
208
227
 
209
228
  ## Configuration
@@ -1 +1 @@
1
- {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAOjD,MAAM,WAAW,YAAY;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAsF9F"}
1
+ {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAIjD,MAAM,WAAW,YAAY;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAiF9F"}
@@ -1,9 +1,6 @@
1
1
  import { existsSync } from 'fs';
2
2
  import { getEngine } from '../lib/engines/index.js';
3
3
  import { loadPrompt, interpolatePrompt, DEFAULT_BUILD_PROMPT } from '../lib/prompts.js';
4
- import { loadSkills, filterSkillsByTriggers, formatSkillsForPrompt } from '../lib/skills.js';
5
- import { loadAgents, formatAgentsForPrompt } from '../lib/agents.js';
6
- import { getSkillsDir, getAgentsDir } from '../lib/config.js';
7
4
  /**
8
5
  * Execute build mode
9
6
  */
@@ -18,10 +15,11 @@ export async function buildCommand(config, options) {
18
15
  console.log(`Starting build mode with ${config.engine} engine`);
19
16
  console.log(`Model: ${config.model}, Executor: ${config.executor}`);
20
17
  console.log(`Max iterations: ${maxIterations || 'unlimited'}`);
21
- const skillsDir = getSkillsDir(config.engine, config.skillsDir);
22
- const agentsDir = getAgentsDir(config.engine, config.agentsDir);
23
- const skills = await loadSkills(skillsDir);
24
- const agents = await loadAgents(agentsDir);
18
+ // Prompt locations in order of preference
19
+ const promptPaths = [
20
+ '.vralphy/prompts/build.md', // New location
21
+ 'PROMPT_build.md', // Legacy location (backwards compat)
22
+ ];
25
23
  while (true) {
26
24
  if (maxIterations > 0 && iteration >= maxIterations) {
27
25
  console.log(`Reached max iterations (${maxIterations})`);
@@ -29,24 +27,19 @@ export async function buildCommand(config, options) {
29
27
  }
30
28
  console.log(`\n=== Iteration ${iteration + 1} ===\n`);
31
29
  let prompt;
32
- if (existsSync('PROMPT_build.md')) {
33
- prompt = await loadPrompt('PROMPT_build.md', {
34
- model: config.model,
35
- executor: config.executor,
36
- });
30
+ const promptContext = {
31
+ model: config.model,
32
+ executor: config.executor,
33
+ engine: config.engine,
34
+ };
35
+ // Find first existing prompt file
36
+ const existingPromptPath = promptPaths.find(p => existsSync(p));
37
+ if (existingPromptPath) {
38
+ prompt = await loadPrompt(existingPromptPath, promptContext);
37
39
  }
38
40
  else {
39
- prompt = interpolatePrompt(DEFAULT_BUILD_PROMPT, {
40
- model: config.model,
41
- executor: config.executor,
42
- });
43
- }
44
- const relevantSkills = filterSkillsByTriggers(skills, prompt);
45
- if (relevantSkills.length > 0) {
46
- prompt += '\n\n' + formatSkillsForPrompt(relevantSkills);
47
- }
48
- if (agents.length > 0) {
49
- prompt += '\n\n' + formatAgentsForPrompt(agents, config.executor);
41
+ // Use default prompt with lazy loading section already included
42
+ prompt = interpolatePrompt(DEFAULT_BUILD_PROMPT, promptContext);
50
43
  }
51
44
  if (config.dryRun) {
52
45
  console.log('--- DRY RUN: Would execute prompt ---');
@@ -1 +1 @@
1
- {"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../../src/commands/plan.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAOjD,MAAM,WAAW,WAAW;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAsF5F"}
1
+ {"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../../src/commands/plan.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAIjD,MAAM,WAAW,WAAW;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAiF5F"}
@@ -1,9 +1,6 @@
1
1
  import { existsSync } from 'fs';
2
2
  import { getEngine } from '../lib/engines/index.js';
3
3
  import { loadPrompt, interpolatePrompt, DEFAULT_PLAN_PROMPT } from '../lib/prompts.js';
4
- import { loadSkills, filterSkillsByTriggers, formatSkillsForPrompt } from '../lib/skills.js';
5
- import { loadAgents, formatAgentsForPrompt } from '../lib/agents.js';
6
- import { getSkillsDir, getAgentsDir } from '../lib/config.js';
7
4
  /**
8
5
  * Execute plan mode
9
6
  */
@@ -18,10 +15,11 @@ export async function planCommand(config, options) {
18
15
  console.log(`Starting plan mode with ${config.engine} engine`);
19
16
  console.log(`Model: ${config.model}, Executor: ${config.executor}`);
20
17
  console.log(`Max iterations: ${maxIterations || 'unlimited'}`);
21
- const skillsDir = getSkillsDir(config.engine, config.skillsDir);
22
- const agentsDir = getAgentsDir(config.engine, config.agentsDir);
23
- const skills = await loadSkills(skillsDir);
24
- const agents = await loadAgents(agentsDir);
18
+ // Prompt locations in order of preference
19
+ const promptPaths = [
20
+ '.vralphy/prompts/plan.md', // New location
21
+ 'PROMPT_plan.md', // Legacy location (backwards compat)
22
+ ];
25
23
  while (true) {
26
24
  if (maxIterations > 0 && iteration >= maxIterations) {
27
25
  console.log(`Reached max iterations (${maxIterations})`);
@@ -29,24 +27,19 @@ export async function planCommand(config, options) {
29
27
  }
30
28
  console.log(`\n=== Plan Iteration ${iteration + 1} ===\n`);
31
29
  let prompt;
32
- if (existsSync('PROMPT_plan.md')) {
33
- prompt = await loadPrompt('PROMPT_plan.md', {
34
- model: config.model,
35
- executor: config.executor,
36
- });
30
+ const promptContext = {
31
+ model: config.model,
32
+ executor: config.executor,
33
+ engine: config.engine,
34
+ };
35
+ // Find first existing prompt file
36
+ const existingPromptPath = promptPaths.find(p => existsSync(p));
37
+ if (existingPromptPath) {
38
+ prompt = await loadPrompt(existingPromptPath, promptContext);
37
39
  }
38
40
  else {
39
- prompt = interpolatePrompt(DEFAULT_PLAN_PROMPT, {
40
- model: config.model,
41
- executor: config.executor,
42
- });
43
- }
44
- const relevantSkills = filterSkillsByTriggers(skills, prompt);
45
- if (relevantSkills.length > 0) {
46
- prompt += '\n\n' + formatSkillsForPrompt(relevantSkills);
47
- }
48
- if (agents.length > 0) {
49
- prompt += '\n\n' + formatAgentsForPrompt(agents, config.executor);
41
+ // Use default prompt with lazy loading section already included
42
+ prompt = interpolatePrompt(DEFAULT_PLAN_PROMPT, promptContext);
50
43
  }
51
44
  if (config.dryRun) {
52
45
  console.log('--- DRY RUN: Would execute prompt ---');
@@ -1 +1 @@
1
- {"version":3,"file":"plan.js","sourceRoot":"","sources":["../../src/commands/plan.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plan.js","sourceRoot":"","sources":["../../src/commands/plan.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"spec.d.ts","sourceRoot":"","sources":["../../src/commands/spec.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAKjD,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAaD;;GAEG;AACH,wBAAsB,WAAW,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAgG5F"}
1
+ {"version":3,"file":"spec.d.ts","sourceRoot":"","sources":["../../src/commands/spec.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAKjD,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAaD;;GAEG;AACH,wBAAsB,WAAW,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAsG5F"}
@@ -47,24 +47,27 @@ export async function specCommand(config, options) {
47
47
  }
48
48
  const projectRoot = findProjectRoot();
49
49
  const projectName = projectRoot.split('/').pop() ?? 'project';
50
+ // Prompt locations in order of preference
51
+ const promptPaths = [
52
+ '.vralphy/prompts/spec.md', // New location
53
+ 'PROMPT_spec.md', // Legacy location (backwards compat)
54
+ ];
55
+ const promptContext = {
56
+ model: config.model,
57
+ executor: config.executor,
58
+ engine: config.engine,
59
+ topic,
60
+ projectName,
61
+ existingSpecs,
62
+ };
63
+ // Find first existing prompt file
64
+ const existingPromptPath = promptPaths.find(p => existsSync(p));
50
65
  let prompt;
51
- if (existsSync('PROMPT_spec.md')) {
52
- prompt = await loadPrompt('PROMPT_spec.md', {
53
- model: config.model,
54
- executor: config.executor,
55
- topic,
56
- projectName,
57
- existingSpecs,
58
- });
66
+ if (existingPromptPath) {
67
+ prompt = await loadPrompt(existingPromptPath, promptContext);
59
68
  }
60
69
  else {
61
- prompt = interpolatePrompt(DEFAULT_SPEC_PROMPT, {
62
- model: config.model,
63
- executor: config.executor,
64
- topic,
65
- projectName,
66
- existingSpecs,
67
- });
70
+ prompt = interpolatePrompt(DEFAULT_SPEC_PROMPT, promptContext);
68
71
  }
69
72
  if (config.dryRun) {
70
73
  console.log('--- DRY RUN: Would execute prompt ---');
@@ -1 +1 @@
1
- {"version":3,"file":"spec.js","sourceRoot":"","sources":["../../src/commands/spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"spec.js","sourceRoot":"","sources":["../../src/commands/spec.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/lib/init.ts"],"names":[],"mappings":"AAyJA;;GAEG;AACH,wBAAsB,WAAW,CAAC,GAAG,GAAE,MAAsB,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAmEhH"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/lib/init.ts"],"names":[],"mappings":"AAyJA;;GAEG;AACH,wBAAsB,WAAW,CAAC,GAAG,GAAE,MAAsB,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAiFhH"}
package/dist/lib/init.js CHANGED
@@ -141,6 +141,7 @@ export async function initProject(dir = process.cwd()) {
141
141
  ]);
142
142
  Object.assign(info, pkgInfo, cargoInfo, goInfo);
143
143
  info.patterns = await extractFromDocs(dir);
144
+ // Create specs/ directory
144
145
  const specsDir = join(dir, 'specs');
145
146
  if (!existsSync(specsDir)) {
146
147
  await mkdir(specsDir, { recursive: true });
@@ -149,6 +150,7 @@ export async function initProject(dir = process.cwd()) {
149
150
  else {
150
151
  skipped.push('specs/');
151
152
  }
153
+ // Create AGENTS.md in project root (it's project documentation)
152
154
  const agentsMd = join(dir, 'AGENTS.md');
153
155
  if (!existsSync(agentsMd)) {
154
156
  await writeFile(agentsMd, generateAgentsMd(info));
@@ -157,30 +159,42 @@ export async function initProject(dir = process.cwd()) {
157
159
  else {
158
160
  skipped.push('AGENTS.md');
159
161
  }
160
- const planPrompt = join(dir, 'PROMPT_plan.md');
162
+ // Create .vralphy/prompts/ directory
163
+ const vralphyDir = join(dir, '.vralphy');
164
+ const promptsDir = join(vralphyDir, 'prompts');
165
+ if (!existsSync(promptsDir)) {
166
+ await mkdir(promptsDir, { recursive: true });
167
+ created.push('.vralphy/prompts/');
168
+ }
169
+ else {
170
+ skipped.push('.vralphy/prompts/');
171
+ }
172
+ // Create prompts in .vralphy/prompts/
173
+ const planPrompt = join(promptsDir, 'plan.md');
161
174
  if (!existsSync(planPrompt)) {
162
175
  await writeFile(planPrompt, DEFAULT_PLAN_PROMPT);
163
- created.push('PROMPT_plan.md');
176
+ created.push('.vralphy/prompts/plan.md');
164
177
  }
165
178
  else {
166
- skipped.push('PROMPT_plan.md');
179
+ skipped.push('.vralphy/prompts/plan.md');
167
180
  }
168
- const buildPrompt = join(dir, 'PROMPT_build.md');
181
+ const buildPrompt = join(promptsDir, 'build.md');
169
182
  if (!existsSync(buildPrompt)) {
170
183
  await writeFile(buildPrompt, DEFAULT_BUILD_PROMPT);
171
- created.push('PROMPT_build.md');
184
+ created.push('.vralphy/prompts/build.md');
172
185
  }
173
186
  else {
174
- skipped.push('PROMPT_build.md');
187
+ skipped.push('.vralphy/prompts/build.md');
175
188
  }
176
- const specPrompt = join(dir, 'PROMPT_spec.md');
189
+ const specPrompt = join(promptsDir, 'spec.md');
177
190
  if (!existsSync(specPrompt)) {
178
191
  await writeFile(specPrompt, DEFAULT_SPEC_PROMPT);
179
- created.push('PROMPT_spec.md');
192
+ created.push('.vralphy/prompts/spec.md');
180
193
  }
181
194
  else {
182
- skipped.push('PROMPT_spec.md');
195
+ skipped.push('.vralphy/prompts/spec.md');
183
196
  }
197
+ // Create IMPLEMENTATION_PLAN.md in project root
184
198
  const implPlan = join(dir, 'IMPLEMENTATION_PLAN.md');
185
199
  if (!existsSync(implPlan)) {
186
200
  await writeFile(implPlan, '# Implementation Plan\n\n- [ ] Initial setup\n');
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/lib/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/lib/init.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,19 @@
1
+ import { EngineName } from './engines/index.js';
1
2
  export interface PromptContext {
2
3
  model: string;
3
4
  executor: string;
5
+ engine: EngineName;
4
6
  projectName?: string;
5
7
  existingSpecs?: string[];
6
- skills?: string;
7
- agents?: string;
8
8
  topic?: string;
9
9
  }
10
+ /**
11
+ * Get skill/agent locations for an engine
12
+ */
13
+ export declare function getEngineLocations(engine: EngineName): {
14
+ skills: string;
15
+ agents: string;
16
+ };
10
17
  /**
11
18
  * Load a prompt template from file
12
19
  */
@@ -22,13 +29,13 @@ export declare function loadPrompt(path: string, context: PromptContext): Promis
22
29
  /**
23
30
  * Default plan mode prompt
24
31
  */
25
- export declare const DEFAULT_PLAN_PROMPT = "0a. Study `specs/*` with up to 250 parallel ${executor} subagents to learn the project specifications.\n0b. Study @IMPLEMENTATION_PLAN.md (if present) to understand the plan so far.\n0c. Study `src/lib/*` with up to 250 parallel ${executor} subagents to understand shared utilities & components.\n0d. For reference, the application source code is in `src/*`.\n\n1. Study @IMPLEMENTATION_PLAN.md (if present; it may be incorrect) and use up to 500 ${executor} subagents to study existing source code in `src/*` and compare it against `specs/*`. Use an ${model} subagent to analyze findings, prioritize tasks, and create/update @IMPLEMENTATION_PLAN.md as a bullet point list sorted in priority of items yet to be implemented. Ultrathink. Consider searching for TODO, minimal implementations, placeholders, skipped/flaky tests, and inconsistent patterns. Study @IMPLEMENTATION_PLAN.md to determine starting point for research and keep it up to date with items considered complete/incomplete using subagents.\n\nIMPORTANT: Plan only. Do NOT implement anything. Do NOT assume functionality is missing; confirm with code search first. Treat `src/lib` as the project's standard library for shared utilities and components. Prefer consolidated, idiomatic implementations there over ad-hoc copies.\n";
32
+ export declare const DEFAULT_PLAN_PROMPT = "0a. Study `specs/*` with up to 250 parallel ${executor} subagents to learn the project specifications.\n0b. Study @IMPLEMENTATION_PLAN.md (if present) to understand the plan so far.\n0c. Study `src/lib/*` with up to 250 parallel ${executor} subagents to understand shared utilities & components.\n0d. For reference, the application source code is in `src/*`.\n\n1. Study @IMPLEMENTATION_PLAN.md (if present; it may be incorrect) and use up to 500 ${executor} subagents to study existing source code in `src/*` and compare it against `specs/*`. Use an ${model} subagent to analyze findings, prioritize tasks, and create/update @IMPLEMENTATION_PLAN.md as a bullet point list sorted in priority of items yet to be implemented. Ultrathink. Consider searching for TODO, minimal implementations, placeholders, skipped/flaky tests, and inconsistent patterns. Study @IMPLEMENTATION_PLAN.md to determine starting point for research and keep it up to date with items considered complete/incomplete using subagents.\n\nIMPORTANT: Plan only. Do NOT implement anything. Do NOT assume functionality is missing; confirm with code search first. Treat `src/lib` as the project's standard library for shared utilities and components. Prefer consolidated, idiomatic implementations there over ad-hoc copies.\n\n## Skills & Agents (On-Demand Loading)\n\nSkills location: ${skillsDir}\nAgents location: ${agentsDir}\n\nIMPORTANT - Context is precious. DO NOT preload all skills/agents.\n\n### When to load a skill:\n- Current task requires domain-specific knowledge you lack\n- A spec explicitly references a framework/library that has a matching skill\n- You've attempted something twice and failed - check if a skill could help\n\n### When to spawn a specialized agent:\n- Task requires deep focused expertise (security audit, architecture review)\n- You need a second opinion on a complex decision\n- Parallel work that benefits from isolation\n\n### How to load:\n1. Use a ${executor} subagent to read the skill/agent file\n2. Extract only the relevant section for your current task\n3. Do NOT inject entire skill contents into main context\n\n### Available skills (check if directory exists):\nList files in ${skillsDir} only when you need domain knowledge.\n\n### Available agents (check if directory exists):\nList files in ${agentsDir} only when you need to spawn specialized help.\n";
26
33
  /**
27
34
  * Default build mode prompt
28
35
  */
29
- export declare const DEFAULT_BUILD_PROMPT = "0a. Study `specs/*` with up to 500 parallel ${executor} subagents to learn the project specifications.\n0b. Study @IMPLEMENTATION_PLAN.md.\n0c. For reference, the application source code is in `src/*`.\n\n1. Your task is to implement functionality per the specifications using parallel subagents. Follow @IMPLEMENTATION_PLAN.md and choose the most important item to address. Before making changes, search the codebase (don't assume not implemented) using ${executor} subagents. You may use up to 500 parallel ${executor} subagents for searches/reads and only 1 ${executor} subagent for build/tests. Use ${model} subagents when complex reasoning is needed (debugging, architectural decisions).\n\n2. After implementing functionality or resolving problems, run the tests for that unit of code that was improved. If functionality is missing then it's your job to add it as per the application specifications. Ultrathink.\n\n3. When you discover issues, immediately update @IMPLEMENTATION_PLAN.md with your findings using a subagent. When resolved, update and remove the item.\n\n4. When the tests pass, update @IMPLEMENTATION_PLAN.md, then `git add -A` then `git commit` with a message describing the changes. After the commit, `git push`.\n\n99999. When authoring documentation, capture the why \u2014 tests and implementation importance.\n999999. Single sources of truth, no migrations/adapters. If tests unrelated to your work fail, resolve them as part of the increment.\n9999999. As soon as there are no build or test errors create a git tag. If there are no git tags start at 0.0.0 and increment patch by 1.\n99999999. You may add extra logging if required to debug issues.\n999999999. Keep @IMPLEMENTATION_PLAN.md current with learnings using a subagent \u2014 future work depends on this.\n9999999999. When you learn something new about how to run the application, update @AGENTS.md using a subagent but keep it brief.\n99999999999. For any bugs you notice, resolve them or document them in @IMPLEMENTATION_PLAN.md even if unrelated to current work.\n999999999999. Implement functionality completely. Placeholders and stubs waste efforts and time redoing the same work.\n9999999999999. When @IMPLEMENTATION_PLAN.md becomes large periodically clean out the items that are completed using a subagent.\n99999999999999. IMPORTANT: Keep @AGENTS.md operational only \u2014 status updates belong in `IMPLEMENTATION_PLAN.md`. A bloated AGENTS.md pollutes every future loop's context.\n";
36
+ export declare const DEFAULT_BUILD_PROMPT = "0a. Study `specs/*` with up to 500 parallel ${executor} subagents to learn the project specifications.\n0b. Study @IMPLEMENTATION_PLAN.md.\n0c. For reference, the application source code is in `src/*`.\n\n1. Your task is to implement functionality per the specifications using parallel subagents. Follow @IMPLEMENTATION_PLAN.md and choose the most important item to address. Before making changes, search the codebase (don't assume not implemented) using ${executor} subagents. You may use up to 500 parallel ${executor} subagents for searches/reads and only 1 ${executor} subagent for build/tests. Use ${model} subagents when complex reasoning is needed (debugging, architectural decisions).\n\n2. After implementing functionality or resolving problems, run the tests for that unit of code that was improved. If functionality is missing then it's your job to add it as per the application specifications. Ultrathink.\n\n3. When you discover issues, immediately update @IMPLEMENTATION_PLAN.md with your findings using a subagent. When resolved, update and remove the item.\n\n4. When the tests pass, update @IMPLEMENTATION_PLAN.md, then `git add -A` then `git commit` with a message describing the changes. After the commit, `git push`.\n\n99999. When authoring documentation, capture the why \u2014 tests and implementation importance.\n999999. Single sources of truth, no migrations/adapters. If tests unrelated to your work fail, resolve them as part of the increment.\n9999999. As soon as there are no build or test errors create a git tag. If there are no git tags start at 0.0.0 and increment patch by 1.\n99999999. You may add extra logging if required to debug issues.\n999999999. Keep @IMPLEMENTATION_PLAN.md current with learnings using a subagent \u2014 future work depends on this.\n9999999999. When you learn something new about how to run the application, update @AGENTS.md using a subagent but keep it brief.\n99999999999. For any bugs you notice, resolve them or document them in @IMPLEMENTATION_PLAN.md even if unrelated to current work.\n999999999999. Implement functionality completely. Placeholders and stubs waste efforts and time redoing the same work.\n9999999999999. When @IMPLEMENTATION_PLAN.md becomes large periodically clean out the items that are completed using a subagent.\n99999999999999. IMPORTANT: Keep @AGENTS.md operational only \u2014 status updates belong in `IMPLEMENTATION_PLAN.md`. A bloated AGENTS.md pollutes every future loop's context.\n\n## Skills & Agents (On-Demand Loading)\n\nSkills location: ${skillsDir}\nAgents location: ${agentsDir}\n\nIMPORTANT - Context is precious. DO NOT preload all skills/agents.\n\n### When to load a skill:\n- Current task requires domain-specific knowledge you lack\n- A spec explicitly references a framework/library that has a matching skill\n- You've attempted something twice and failed - check if a skill could help\n\n### When to spawn a specialized agent:\n- Task requires deep focused expertise (security audit, architecture review)\n- You need a second opinion on a complex decision\n- Parallel work that benefits from isolation\n\n### How to load:\n1. Use a ${executor} subagent to read the skill/agent file\n2. Extract only the relevant section for your current task\n3. Do NOT inject entire skill contents into main context\n\n### Available skills (check if directory exists):\nList files in ${skillsDir} only when you need domain knowledge.\n\n### Available agents (check if directory exists):\nList files in ${agentsDir} only when you need to spawn specialized help.\n";
30
37
  /**
31
38
  * Default spec mode prompt
32
39
  */
33
- export declare const DEFAULT_SPEC_PROMPT = "You are helping define requirements for: ${topic}\n\n## Context\n- Project: ${projectName}\n- Existing specs: ${existingSpecs}\n\n## Your Task\n\n1. Ask clarifying questions to understand the requirement fully\n2. Consider edge cases and constraints\n3. Draft a complete specification\n4. Present for user approval\n\n## Question Guidelines\n\nAsk about:\n- User personas and use cases\n- Happy path and error cases\n- Integration points\n- Performance requirements\n- Security considerations\n\n## Output Format\n\nWhen ready, output the spec in this format:\n\n# ${topic}\n\n## Overview\n[Brief description]\n\n## Requirements\n- [ ] Requirement 1\n- [ ] Requirement 2\n\n## Acceptance Criteria\n- [ ] Criterion 1\n- [ ] Criterion 2\n\n## Edge Cases\n[List edge cases]\n\n## Dependencies\n[List dependencies]\n";
40
+ export declare const DEFAULT_SPEC_PROMPT = "You are helping define requirements for: ${topic}\n\n## Context\n- Project: ${projectName}\n- Existing specs: ${existingSpecs}\n\n## Your Task\n\n1. Ask clarifying questions to understand the requirement fully\n2. Consider edge cases and constraints\n3. Draft a complete specification\n4. Present for user approval\n\n## Question Guidelines\n\nAsk about:\n- User personas and use cases\n- Happy path and error cases\n- Integration points\n- Performance requirements\n- Security considerations\n\n## Output Format\n\nWhen ready, output the spec in this format:\n\n# ${topic}\n\n## Overview\n[Brief description]\n\n## Requirements\n- [ ] Requirement 1\n- [ ] Requirement 2\n\n## Acceptance Criteria\n- [ ] Criterion 1\n- [ ] Criterion 2\n\n## Edge Cases\n[List edge cases]\n\n## Dependencies\n[List dependencies]\n\n## Skills & Agents (On-Demand Loading)\n\nSkills location: ${skillsDir}\nAgents location: ${agentsDir}\n\nIMPORTANT - Context is precious. DO NOT preload all skills/agents.\n\n### When to load a skill:\n- Current task requires domain-specific knowledge you lack\n- A spec explicitly references a framework/library that has a matching skill\n- You've attempted something twice and failed - check if a skill could help\n\n### When to spawn a specialized agent:\n- Task requires deep focused expertise (security audit, architecture review)\n- You need a second opinion on a complex decision\n- Parallel work that benefits from isolation\n\n### How to load:\n1. Use a ${executor} subagent to read the skill/agent file\n2. Extract only the relevant section for your current task\n3. Do NOT inject entire skill contents into main context\n\n### Available skills (check if directory exists):\nList files in ${skillsDir} only when you need domain knowledge.\n\n### Available agents (check if directory exists):\nList files in ${agentsDir} only when you need to spawn specialized help.\n";
34
41
  //# sourceMappingURL=prompts.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../src/lib/prompts.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAMtE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,MAAM,CA4BlF;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAGtF;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB,+wCAQ/B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,oBAAoB,u7EAsBhC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mBAAmB,izBA4C/B,CAAC"}
1
+ {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../src/lib/prompts.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,UAAU,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,UAAU,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAazF;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAMtE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,MAAM,CAyBlF;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAGtF;AAmCD;;GAEG;AACH,eAAO,MAAM,mBAAmB,u0EAQR,CAAC;AAEzB;;GAEG;AACH,eAAO,MAAM,oBAAoB,++GAsBT,CAAC;AAEzB;;GAEG;AACH,eAAO,MAAM,mBAAmB,y2DA4CR,CAAC"}
@@ -1,5 +1,21 @@
1
1
  import { readFile } from 'fs/promises';
2
2
  import { existsSync } from 'fs';
3
+ /**
4
+ * Get skill/agent locations for an engine
5
+ */
6
+ export function getEngineLocations(engine) {
7
+ const locations = {
8
+ claude: {
9
+ skills: '.claude/skills/',
10
+ agents: '.claude/agents/',
11
+ },
12
+ opencode: {
13
+ skills: '.opencode/skills/',
14
+ agents: '.opencode/agents/',
15
+ },
16
+ };
17
+ return locations[engine];
18
+ }
3
19
  /**
4
20
  * Load a prompt template from file
5
21
  */
@@ -17,18 +33,16 @@ export function interpolatePrompt(template, context) {
17
33
  result = result.replace(/\$\{model\}/g, context.model);
18
34
  result = result.replace(/\$\{executor\}/g, context.executor);
19
35
  result = result.replace(/\$\{primary\}/g, context.model);
36
+ result = result.replace(/\$\{engine\}/g, context.engine);
37
+ const locations = getEngineLocations(context.engine);
38
+ result = result.replace(/\$\{skillsDir\}/g, locations.skills);
39
+ result = result.replace(/\$\{agentsDir\}/g, locations.agents);
20
40
  if (context.projectName) {
21
41
  result = result.replace(/\$\{projectName\}/g, context.projectName);
22
42
  }
23
43
  if (context.existingSpecs) {
24
44
  result = result.replace(/\$\{existingSpecs\}/g, context.existingSpecs.join(', ') || 'none');
25
45
  }
26
- if (context.skills) {
27
- result = result.replace(/\$\{skills\}/g, context.skills);
28
- }
29
- if (context.agents) {
30
- result = result.replace(/\$\{agents\}/g, context.agents);
31
- }
32
46
  if (context.topic) {
33
47
  result = result.replace(/\$\{topic\}/g, context.topic);
34
48
  }
@@ -41,6 +55,38 @@ export async function loadPrompt(path, context) {
41
55
  const template = await loadPromptTemplate(path);
42
56
  return interpolatePrompt(template, context);
43
57
  }
58
+ /**
59
+ * Skills and agents lazy loading section (appended to prompts)
60
+ */
61
+ const LAZY_LOADING_SECTION = `
62
+ ## Skills & Agents (On-Demand Loading)
63
+
64
+ Skills location: \${skillsDir}
65
+ Agents location: \${agentsDir}
66
+
67
+ IMPORTANT - Context is precious. DO NOT preload all skills/agents.
68
+
69
+ ### When to load a skill:
70
+ - Current task requires domain-specific knowledge you lack
71
+ - A spec explicitly references a framework/library that has a matching skill
72
+ - You've attempted something twice and failed - check if a skill could help
73
+
74
+ ### When to spawn a specialized agent:
75
+ - Task requires deep focused expertise (security audit, architecture review)
76
+ - You need a second opinion on a complex decision
77
+ - Parallel work that benefits from isolation
78
+
79
+ ### How to load:
80
+ 1. Use a \${executor} subagent to read the skill/agent file
81
+ 2. Extract only the relevant section for your current task
82
+ 3. Do NOT inject entire skill contents into main context
83
+
84
+ ### Available skills (check if directory exists):
85
+ List files in \${skillsDir} only when you need domain knowledge.
86
+
87
+ ### Available agents (check if directory exists):
88
+ List files in \${agentsDir} only when you need to spawn specialized help.
89
+ `;
44
90
  /**
45
91
  * Default plan mode prompt
46
92
  */
@@ -52,7 +98,7 @@ export const DEFAULT_PLAN_PROMPT = `0a. Study \`specs/*\` with up to 250 paralle
52
98
  1. Study @IMPLEMENTATION_PLAN.md (if present; it may be incorrect) and use up to 500 \${executor} subagents to study existing source code in \`src/*\` and compare it against \`specs/*\`. Use an \${model} subagent to analyze findings, prioritize tasks, and create/update @IMPLEMENTATION_PLAN.md as a bullet point list sorted in priority of items yet to be implemented. Ultrathink. Consider searching for TODO, minimal implementations, placeholders, skipped/flaky tests, and inconsistent patterns. Study @IMPLEMENTATION_PLAN.md to determine starting point for research and keep it up to date with items considered complete/incomplete using subagents.
53
99
 
54
100
  IMPORTANT: Plan only. Do NOT implement anything. Do NOT assume functionality is missing; confirm with code search first. Treat \`src/lib\` as the project's standard library for shared utilities and components. Prefer consolidated, idiomatic implementations there over ad-hoc copies.
55
- `;
101
+ ${LAZY_LOADING_SECTION}`;
56
102
  /**
57
103
  * Default build mode prompt
58
104
  */
@@ -78,7 +124,7 @@ export const DEFAULT_BUILD_PROMPT = `0a. Study \`specs/*\` with up to 500 parall
78
124
  999999999999. Implement functionality completely. Placeholders and stubs waste efforts and time redoing the same work.
79
125
  9999999999999. When @IMPLEMENTATION_PLAN.md becomes large periodically clean out the items that are completed using a subagent.
80
126
  99999999999999. IMPORTANT: Keep @AGENTS.md operational only — status updates belong in \`IMPLEMENTATION_PLAN.md\`. A bloated AGENTS.md pollutes every future loop's context.
81
- `;
127
+ ${LAZY_LOADING_SECTION}`;
82
128
  /**
83
129
  * Default spec mode prompt
84
130
  */
@@ -126,5 +172,5 @@ When ready, output the spec in this format:
126
172
 
127
173
  ## Dependencies
128
174
  [List dependencies]
129
- `;
175
+ ${LAZY_LOADING_SECTION}`;
130
176
  //# sourceMappingURL=prompts.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/lib/prompts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAYhC;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,IAAY;IACnD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,8BAA8B,IAAI,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,OAAO,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACjC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAAgB,EAAE,OAAsB;IACxE,IAAI,MAAM,GAAG,QAAQ,CAAC;IAEtB,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IACvD,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC7D,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,gBAAgB,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IAEzD,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;QACxB,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,oBAAoB,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IACrE,CAAC;IAED,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;QAC1B,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,sBAAsB,EAAE,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,CAAC;IAC9F,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,eAAe,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAC3D,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,eAAe,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAC3D,CAAC;IAED,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IACzD,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAAY,EAAE,OAAsB;IACnE,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAChD,OAAO,iBAAiB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AAC9C,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;;;;;;;;CAQlC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;;;;;;;;;;;;;;;;;;;;;;CAsBnC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4ClC,CAAC"}
1
+ {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/lib/prompts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAYhC;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAkB;IACnD,MAAM,SAAS,GAA2D;QACxE,MAAM,EAAE;YACN,MAAM,EAAE,iBAAiB;YACzB,MAAM,EAAE,iBAAiB;SAC1B;QACD,QAAQ,EAAE;YACR,MAAM,EAAE,mBAAmB;YAC3B,MAAM,EAAE,mBAAmB;SAC5B;KACF,CAAC;IAEF,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC;AAC3B,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,IAAY;IACnD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,8BAA8B,IAAI,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,OAAO,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACjC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAAgB,EAAE,OAAsB;IACxE,IAAI,MAAM,GAAG,QAAQ,CAAC;IAEtB,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IACvD,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC7D,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,gBAAgB,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IACzD,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,eAAe,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAEzD,MAAM,SAAS,GAAG,kBAAkB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACrD,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,kBAAkB,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IAC9D,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,kBAAkB,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IAE9D,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;QACxB,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,oBAAoB,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IACrE,CAAC;IAED,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;QAC1B,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,sBAAsB,EAAE,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,CAAC;IAC9F,CAAC;IAED,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IACzD,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAAY,EAAE,OAAsB;IACnE,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAChD,OAAO,iBAAiB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AAC9C,CAAC;AAED;;GAEG;AACH,MAAM,oBAAoB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4B5B,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;;;;;;;;EAQjC,oBAAoB,EAAE,CAAC;AAEzB;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;;;;;;;;;;;;;;;;;;;;;;EAsBlC,oBAAoB,EAAE,CAAC;AAEzB;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4CjC,oBAAoB,EAAE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vralphy",
3
- "version": "0.0.3",
3
+ "version": "0.0.4",
4
4
  "description": "CLI tool implementing the Ralph Playbook methodology with engine flexibility",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",