@cluesmith/codev 2.0.0-rc.24 → 2.0.0-rc.25

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 (128) hide show
  1. package/dist/agent-farm/cli.d.ts.map +1 -1
  2. package/dist/agent-farm/cli.js +52 -52
  3. package/dist/agent-farm/cli.js.map +1 -1
  4. package/dist/agent-farm/commands/consult.js +1 -1
  5. package/dist/agent-farm/commands/consult.js.map +1 -1
  6. package/dist/agent-farm/commands/index.d.ts +1 -2
  7. package/dist/agent-farm/commands/index.d.ts.map +1 -1
  8. package/dist/agent-farm/commands/index.js +1 -2
  9. package/dist/agent-farm/commands/index.js.map +1 -1
  10. package/dist/agent-farm/commands/{util.d.ts → shell.d.ts} +4 -4
  11. package/dist/agent-farm/commands/shell.d.ts.map +1 -0
  12. package/dist/agent-farm/commands/{util.js → shell.js} +4 -4
  13. package/dist/agent-farm/commands/shell.js.map +1 -0
  14. package/dist/agent-farm/commands/spawn.d.ts.map +1 -1
  15. package/dist/agent-farm/commands/spawn.js +361 -66
  16. package/dist/agent-farm/commands/spawn.js.map +1 -1
  17. package/dist/agent-farm/commands/start.js +5 -4
  18. package/dist/agent-farm/commands/start.js.map +1 -1
  19. package/dist/agent-farm/commands/tower.d.ts.map +1 -1
  20. package/dist/agent-farm/commands/tower.js +2 -1
  21. package/dist/agent-farm/commands/tower.js.map +1 -1
  22. package/dist/agent-farm/hq-connector.d.ts +2 -2
  23. package/dist/agent-farm/hq-connector.js +2 -2
  24. package/dist/agent-farm/servers/dashboard-server.js +153 -6
  25. package/dist/agent-farm/servers/dashboard-server.js.map +1 -1
  26. package/dist/agent-farm/servers/tower-server.js +374 -0
  27. package/dist/agent-farm/servers/tower-server.js.map +1 -1
  28. package/dist/agent-farm/types.d.ts +38 -0
  29. package/dist/agent-farm/types.d.ts.map +1 -1
  30. package/dist/agent-farm/utils/notifications.d.ts +30 -0
  31. package/dist/agent-farm/utils/notifications.d.ts.map +1 -0
  32. package/dist/agent-farm/utils/notifications.js +121 -0
  33. package/dist/agent-farm/utils/notifications.js.map +1 -0
  34. package/dist/agent-farm/utils/server-utils.d.ts +2 -1
  35. package/dist/agent-farm/utils/server-utils.d.ts.map +1 -1
  36. package/dist/agent-farm/utils/server-utils.js +11 -1
  37. package/dist/agent-farm/utils/server-utils.js.map +1 -1
  38. package/dist/agent-farm/utils/shell.d.ts +1 -0
  39. package/dist/agent-farm/utils/shell.d.ts.map +1 -1
  40. package/dist/agent-farm/utils/shell.js +2 -0
  41. package/dist/agent-farm/utils/shell.js.map +1 -1
  42. package/dist/cli.d.ts.map +1 -1
  43. package/dist/cli.js +0 -37
  44. package/dist/cli.js.map +1 -1
  45. package/dist/commands/adopt.js +3 -3
  46. package/dist/commands/adopt.js.map +1 -1
  47. package/dist/commands/init.js +1 -1
  48. package/dist/commands/porch/run.d.ts.map +1 -1
  49. package/dist/commands/porch/run.js +5 -0
  50. package/dist/commands/porch/run.js.map +1 -1
  51. package/package.json +3 -1
  52. package/skeleton/protocol-schema.json +282 -0
  53. package/skeleton/protocols/bugfix/builder-prompt.md +49 -0
  54. package/skeleton/protocols/bugfix/protocol.json +13 -1
  55. package/skeleton/protocols/experiment/builder-prompt.md +47 -0
  56. package/skeleton/protocols/experiment/protocol.json +101 -0
  57. package/skeleton/protocols/maintain/builder-prompt.md +41 -0
  58. package/skeleton/protocols/maintain/protocol.json +114 -0
  59. package/skeleton/protocols/protocol-schema.json +53 -0
  60. package/skeleton/protocols/spider/builder-prompt.md +53 -0
  61. package/skeleton/protocols/spider/protocol.json +7 -1
  62. package/skeleton/protocols/tick/builder-prompt.md +51 -0
  63. package/skeleton/protocols/tick/protocol.json +6 -1
  64. package/skeleton/resources/commands/agent-farm.md +23 -41
  65. package/skeleton/resources/commands/overview.md +5 -5
  66. package/skeleton/resources/workflow-reference.md +2 -2
  67. package/skeleton/roles/architect.md +49 -33
  68. package/skeleton/roles/builder.md +77 -108
  69. package/skeleton/templates/cheatsheet.md +4 -2
  70. package/templates/tower.html +455 -14
  71. package/dist/agent-farm/commands/kickoff.d.ts +0 -20
  72. package/dist/agent-farm/commands/kickoff.d.ts.map +0 -1
  73. package/dist/agent-farm/commands/kickoff.js +0 -343
  74. package/dist/agent-farm/commands/kickoff.js.map +0 -1
  75. package/dist/agent-farm/commands/tutorial.d.ts +0 -10
  76. package/dist/agent-farm/commands/tutorial.d.ts.map +0 -1
  77. package/dist/agent-farm/commands/tutorial.js +0 -49
  78. package/dist/agent-farm/commands/tutorial.js.map +0 -1
  79. package/dist/agent-farm/commands/util.d.ts.map +0 -1
  80. package/dist/agent-farm/commands/util.js.map +0 -1
  81. package/dist/agent-farm/tutorial/index.d.ts +0 -8
  82. package/dist/agent-farm/tutorial/index.d.ts.map +0 -1
  83. package/dist/agent-farm/tutorial/index.js +0 -8
  84. package/dist/agent-farm/tutorial/index.js.map +0 -1
  85. package/dist/agent-farm/tutorial/prompts.d.ts +0 -57
  86. package/dist/agent-farm/tutorial/prompts.d.ts.map +0 -1
  87. package/dist/agent-farm/tutorial/prompts.js +0 -147
  88. package/dist/agent-farm/tutorial/prompts.js.map +0 -1
  89. package/dist/agent-farm/tutorial/runner.d.ts +0 -52
  90. package/dist/agent-farm/tutorial/runner.d.ts.map +0 -1
  91. package/dist/agent-farm/tutorial/runner.js +0 -204
  92. package/dist/agent-farm/tutorial/runner.js.map +0 -1
  93. package/dist/agent-farm/tutorial/state.d.ts +0 -26
  94. package/dist/agent-farm/tutorial/state.d.ts.map +0 -1
  95. package/dist/agent-farm/tutorial/state.js +0 -89
  96. package/dist/agent-farm/tutorial/state.js.map +0 -1
  97. package/dist/agent-farm/tutorial/steps/first-spec.d.ts +0 -7
  98. package/dist/agent-farm/tutorial/steps/first-spec.d.ts.map +0 -1
  99. package/dist/agent-farm/tutorial/steps/first-spec.js +0 -136
  100. package/dist/agent-farm/tutorial/steps/first-spec.js.map +0 -1
  101. package/dist/agent-farm/tutorial/steps/implementation.d.ts +0 -7
  102. package/dist/agent-farm/tutorial/steps/implementation.d.ts.map +0 -1
  103. package/dist/agent-farm/tutorial/steps/implementation.js +0 -76
  104. package/dist/agent-farm/tutorial/steps/implementation.js.map +0 -1
  105. package/dist/agent-farm/tutorial/steps/index.d.ts +0 -10
  106. package/dist/agent-farm/tutorial/steps/index.d.ts.map +0 -1
  107. package/dist/agent-farm/tutorial/steps/index.js +0 -10
  108. package/dist/agent-farm/tutorial/steps/index.js.map +0 -1
  109. package/dist/agent-farm/tutorial/steps/planning.d.ts +0 -7
  110. package/dist/agent-farm/tutorial/steps/planning.d.ts.map +0 -1
  111. package/dist/agent-farm/tutorial/steps/planning.js +0 -143
  112. package/dist/agent-farm/tutorial/steps/planning.js.map +0 -1
  113. package/dist/agent-farm/tutorial/steps/review.d.ts +0 -7
  114. package/dist/agent-farm/tutorial/steps/review.d.ts.map +0 -1
  115. package/dist/agent-farm/tutorial/steps/review.js +0 -78
  116. package/dist/agent-farm/tutorial/steps/review.js.map +0 -1
  117. package/dist/agent-farm/tutorial/steps/setup.d.ts +0 -7
  118. package/dist/agent-farm/tutorial/steps/setup.d.ts.map +0 -1
  119. package/dist/agent-farm/tutorial/steps/setup.js +0 -126
  120. package/dist/agent-farm/tutorial/steps/setup.js.map +0 -1
  121. package/dist/agent-farm/tutorial/steps/welcome.d.ts +0 -7
  122. package/dist/agent-farm/tutorial/steps/welcome.d.ts.map +0 -1
  123. package/dist/agent-farm/tutorial/steps/welcome.js +0 -50
  124. package/dist/agent-farm/tutorial/steps/welcome.js.map +0 -1
  125. package/dist/commands/tower.d.ts +0 -16
  126. package/dist/commands/tower.d.ts.map +0 -1
  127. package/dist/commands/tower.js +0 -21
  128. package/dist/commands/tower.js.map +0 -1
@@ -15,6 +15,111 @@ import { logger, fatal } from '../utils/logger.js';
15
15
  import { run, commandExists, findAvailablePort, spawnTtyd } from '../utils/shell.js';
16
16
  import { loadState, upsertBuilder } from '../state.js';
17
17
  import { loadRolePrompt } from '../utils/roles.js';
18
+ /**
19
+ * Simple Handlebars-like template renderer
20
+ * Supports: {{variable}}, {{#if condition}}...{{/if}}, {{object.property}}
21
+ */
22
+ function renderTemplate(template, context) {
23
+ let result = template;
24
+ // Process {{#if condition}}...{{/if}} blocks
25
+ // eslint-disable-next-line no-constant-condition
26
+ while (true) {
27
+ const ifMatch = result.match(/\{\{#if\s+(\w+)\}\}([\s\S]*?)\{\{\/if\}\}/);
28
+ if (!ifMatch)
29
+ break;
30
+ const [fullMatch, condition, content] = ifMatch;
31
+ const value = getNestedValue(context, condition);
32
+ result = result.replace(fullMatch, value ? content : '');
33
+ }
34
+ // Process {{variable}} and {{object.property}} substitutions
35
+ result = result.replace(/\{\{(\w+(?:\.\w+)*)\}\}/g, (_, path) => {
36
+ const value = getNestedValue(context, path);
37
+ if (value === undefined || value === null)
38
+ return '';
39
+ return String(value);
40
+ });
41
+ // Clean up any double newlines left from removed sections
42
+ result = result.replace(/\n{3,}/g, '\n\n');
43
+ return result.trim();
44
+ }
45
+ /**
46
+ * Get nested value from object using dot notation
47
+ */
48
+ function getNestedValue(obj, path) {
49
+ const parts = path.split('.');
50
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
51
+ let current = obj;
52
+ for (const part of parts) {
53
+ if (current === null || current === undefined)
54
+ return undefined;
55
+ current = current[part];
56
+ }
57
+ return current;
58
+ }
59
+ /**
60
+ * Load builder-prompt.md template for a protocol
61
+ */
62
+ function loadBuilderPromptTemplate(config, protocolName) {
63
+ const templatePath = resolve(config.codevDir, 'protocols', protocolName, 'builder-prompt.md');
64
+ if (existsSync(templatePath)) {
65
+ return readFileSync(templatePath, 'utf-8');
66
+ }
67
+ return null;
68
+ }
69
+ /**
70
+ * Build the prompt using protocol template or fallback to inline prompt
71
+ */
72
+ function buildPromptFromTemplate(config, protocolName, context) {
73
+ const template = loadBuilderPromptTemplate(config, protocolName);
74
+ if (template) {
75
+ logger.info(`Using template: protocols/${protocolName}/builder-prompt.md`);
76
+ return renderTemplate(template, context);
77
+ }
78
+ // Fallback: no template found, return a basic prompt
79
+ logger.debug(`No template found for ${protocolName}, using inline prompt`);
80
+ return buildFallbackPrompt(protocolName, context);
81
+ }
82
+ /**
83
+ * Build a fallback prompt when no template exists
84
+ */
85
+ function buildFallbackPrompt(protocolName, context) {
86
+ const modeInstructions = context.mode === 'strict'
87
+ ? `## Mode: STRICT
88
+ Porch orchestrates your work. Run: \`porch run ${context.project_id || ''}\``
89
+ : `## Mode: SOFT
90
+ You follow the protocol yourself. The architect monitors your work and verifies compliance.`;
91
+ let prompt = `# ${protocolName.toUpperCase()} Builder (${context.mode} mode)
92
+
93
+ You are implementing ${context.input_description}.
94
+
95
+ ${modeInstructions}
96
+
97
+ ## Protocol
98
+ Follow the ${protocolName.toUpperCase()} protocol: \`codev/protocols/${protocolName}/protocol.md\`
99
+ Read and internalize the protocol before starting any work.
100
+ `;
101
+ if (context.spec) {
102
+ prompt += `\n## Spec\nRead the specification at: \`${context.spec.path}\`\n`;
103
+ }
104
+ if (context.plan) {
105
+ prompt += `\n## Plan\nFollow the implementation plan at: \`${context.plan.path}\`\n`;
106
+ }
107
+ if (context.issue) {
108
+ prompt += `\n## Issue #${context.issue.number}
109
+ **Title**: ${context.issue.title}
110
+
111
+ **Description**:
112
+ ${context.issue.body || '(No description provided)'}
113
+ `;
114
+ }
115
+ if (context.task_text) {
116
+ prompt += `\n## Task\n${context.task_text}\n`;
117
+ }
118
+ return prompt;
119
+ }
120
+ // =============================================================================
121
+ // ID and Session Management
122
+ // =============================================================================
18
123
  /**
19
124
  * Generate a short 4-character base64-encoded ID
20
125
  * Uses URL-safe base64 (a-z, A-Z, 0-9, -, _) for filesystem-safe IDs
@@ -43,22 +148,27 @@ function generateShortId() {
43
148
  .substring(0, 4);
44
149
  }
45
150
  /**
46
- * Validate spawn options - ensure exactly one mode is selected
151
+ * Validate spawn options - ensure exactly one input mode is selected
152
+ * Note: --protocol serves dual purpose:
153
+ * 1. As an input mode when used alone (e.g., `af spawn --protocol experiment`)
154
+ * 2. As a protocol override when combined with other input modes (e.g., `af spawn -p 0001 --protocol tick`)
47
155
  */
48
156
  function validateSpawnOptions(options) {
49
- const modes = [
157
+ // Count input modes (excluding --protocol which can be used as override)
158
+ const inputModes = [
50
159
  options.project,
51
160
  options.task,
52
- options.protocol,
53
161
  options.shell,
54
162
  options.worktree,
55
163
  options.issue,
56
164
  ].filter(Boolean);
57
- if (modes.length === 0) {
165
+ // --protocol alone is a valid input mode
166
+ const protocolAlone = options.protocol && inputModes.length === 0;
167
+ if (inputModes.length === 0 && !protocolAlone) {
58
168
  fatal('Must specify one of: --project (-p), --issue (-i), --task, --protocol, --shell, --worktree\n\nRun "af spawn --help" for examples.');
59
169
  }
60
- if (modes.length > 1) {
61
- fatal('Flags --project, --issue, --task, --protocol, --shell, --worktree are mutually exclusive');
170
+ if (inputModes.length > 1) {
171
+ fatal('Flags --project, --issue, --task, --shell, --worktree are mutually exclusive');
62
172
  }
63
173
  if (options.files && !options.task) {
64
174
  fatal('--files requires --task');
@@ -66,23 +176,35 @@ function validateSpawnOptions(options) {
66
176
  if ((options.noComment || options.force) && !options.issue) {
67
177
  fatal('--no-comment and --force require --issue');
68
178
  }
179
+ // --protocol as override cannot be used with --shell or --worktree
180
+ if (options.protocol && inputModes.length > 0 && (options.shell || options.worktree)) {
181
+ fatal('--protocol cannot be used with --shell or --worktree (no protocol applies)');
182
+ }
183
+ // --use-protocol is now deprecated in favor of --protocol as universal override
184
+ // Keep for backwards compatibility but prefer --protocol
185
+ if (options.useProtocol && (options.shell || options.worktree)) {
186
+ fatal('--use-protocol cannot be used with --shell or --worktree (no protocol applies)');
187
+ }
69
188
  }
70
189
  /**
71
190
  * Determine the spawn mode from options
191
+ * Note: --protocol can be used as both an input mode (alone) or an override (with other modes)
72
192
  */
73
193
  function getSpawnMode(options) {
194
+ // Primary input modes take precedence over --protocol as override
74
195
  if (options.project)
75
196
  return 'spec';
76
197
  if (options.issue)
77
198
  return 'bugfix';
78
199
  if (options.task)
79
200
  return 'task';
80
- if (options.protocol)
81
- return 'protocol';
82
201
  if (options.shell)
83
202
  return 'shell';
84
203
  if (options.worktree)
85
204
  return 'worktree';
205
+ // --protocol alone is the protocol input mode
206
+ if (options.protocol)
207
+ return 'protocol';
86
208
  throw new Error('No mode specified');
87
209
  }
88
210
  // loadRolePrompt imported from ../utils/roles.js
@@ -144,6 +266,136 @@ function validateProtocol(config, protocolName) {
144
266
  fatal(`Protocol ${protocolName} exists but has no protocol.md file`);
145
267
  }
146
268
  }
269
+ /**
270
+ * Load and parse a protocol.json file
271
+ */
272
+ function loadProtocol(config, protocolName) {
273
+ const protocolJsonPath = resolve(config.codevDir, 'protocols', protocolName, 'protocol.json');
274
+ if (!existsSync(protocolJsonPath)) {
275
+ return null;
276
+ }
277
+ try {
278
+ const content = readFileSync(protocolJsonPath, 'utf-8');
279
+ return JSON.parse(content);
280
+ }
281
+ catch {
282
+ logger.warn(`Warning: Failed to parse ${protocolJsonPath}`);
283
+ return null;
284
+ }
285
+ }
286
+ /**
287
+ * Resolve which protocol to use based on precedence:
288
+ * 1. Explicit --protocol flag when used as override (with other input modes)
289
+ * 2. Explicit --use-protocol flag (backwards compatibility)
290
+ * 3. Spec file **Protocol**: header (for --project mode)
291
+ * 4. Hardcoded defaults (spider for specs, bugfix for issues)
292
+ */
293
+ async function resolveProtocol(options, config) {
294
+ // Count input modes to determine if --protocol is being used as override
295
+ const inputModes = [
296
+ options.project,
297
+ options.task,
298
+ options.shell,
299
+ options.worktree,
300
+ options.issue,
301
+ ].filter(Boolean);
302
+ const protocolAsOverride = options.protocol && inputModes.length > 0;
303
+ // 1. --protocol as override always wins when combined with other input modes
304
+ if (protocolAsOverride) {
305
+ validateProtocol(config, options.protocol);
306
+ return options.protocol.toLowerCase();
307
+ }
308
+ // 2. Explicit --use-protocol override (backwards compatibility)
309
+ if (options.useProtocol) {
310
+ validateProtocol(config, options.useProtocol);
311
+ return options.useProtocol.toLowerCase();
312
+ }
313
+ // 3. For spec mode, check spec file header (preserves existing behavior)
314
+ if (options.project) {
315
+ const specFile = await findSpecFile(config.codevDir, options.project);
316
+ if (specFile) {
317
+ const specContent = readFileSync(specFile, 'utf-8');
318
+ const match = specContent.match(/\*\*Protocol\*\*:\s*(\w+)/i);
319
+ if (match) {
320
+ const protocolFromSpec = match[1].toLowerCase();
321
+ // Validate the protocol exists
322
+ try {
323
+ validateProtocol(config, protocolFromSpec);
324
+ return protocolFromSpec;
325
+ }
326
+ catch {
327
+ // If protocol from spec doesn't exist, fall through to defaults
328
+ logger.warn(`Warning: Protocol "${match[1]}" from spec not found, using default`);
329
+ }
330
+ }
331
+ }
332
+ }
333
+ // 4. Hardcoded defaults based on input type
334
+ if (options.project)
335
+ return 'spider';
336
+ if (options.issue)
337
+ return 'bugfix';
338
+ // --protocol alone (not as override) uses the protocol name itself
339
+ if (options.protocol)
340
+ return options.protocol.toLowerCase();
341
+ if (options.task)
342
+ return 'spider';
343
+ return 'spider'; // Final fallback
344
+ }
345
+ // Note: GitHubIssue interface is defined later in the file
346
+ /**
347
+ * Resolve the builder mode (strict vs soft)
348
+ * Precedence:
349
+ * 1. Explicit --strict or --soft flags (always win)
350
+ * 2. Protocol defaults from protocol.json
351
+ * 3. Input type defaults (spec = strict, all others = soft)
352
+ */
353
+ function resolveMode(options, protocol) {
354
+ // 1. Explicit flags always win
355
+ if (options.strict && options.soft) {
356
+ fatal('--strict and --soft are mutually exclusive');
357
+ }
358
+ if (options.strict) {
359
+ return 'strict';
360
+ }
361
+ if (options.soft) {
362
+ return 'soft';
363
+ }
364
+ // 2. Protocol defaults from protocol.json
365
+ if (protocol?.defaults?.mode) {
366
+ return protocol.defaults.mode;
367
+ }
368
+ // 3. Input type defaults: only spec mode defaults to strict
369
+ if (options.project) {
370
+ return 'strict';
371
+ }
372
+ // All other modes default to soft
373
+ return 'soft';
374
+ }
375
+ /**
376
+ * Execute pre-spawn hooks defined in protocol.json
377
+ * Hooks are data-driven but reuse existing implementation logic
378
+ */
379
+ async function executePreSpawnHooks(protocol, context) {
380
+ if (!protocol?.hooks?.['pre-spawn'])
381
+ return;
382
+ const hooks = protocol.hooks['pre-spawn'];
383
+ // collision-check: reuses existing checkBugfixCollisions() logic
384
+ if (hooks['collision-check'] && context.issueNumber && context.issue && context.worktreePath) {
385
+ await checkBugfixCollisions(context.issueNumber, context.worktreePath, context.issue, !!context.force);
386
+ }
387
+ // comment-on-issue: posts comment to GitHub issue
388
+ if (hooks['comment-on-issue'] && context.issueNumber && !context.noComment) {
389
+ const message = hooks['comment-on-issue'];
390
+ logger.info('Commenting on issue...');
391
+ try {
392
+ await run(`gh issue comment ${context.issueNumber} --body "${message}"`);
393
+ }
394
+ catch {
395
+ logger.warn('Warning: Failed to comment on issue (continuing anyway)');
396
+ }
397
+ }
398
+ }
147
399
  /**
148
400
  * Check for required dependencies
149
401
  */
@@ -333,26 +585,31 @@ async function spawnSpec(options, config) {
333
585
  await ensureDirectories(config);
334
586
  await checkDependencies();
335
587
  await createWorktree(config, branchName, worktreePath);
336
- // Parse protocol from spec file metadata
337
- const specContent = readFileSync(specFile, 'utf-8');
338
- const protocolMatch = specContent.match(/\*\*Protocol\*\*:\s*(\w+)/i);
339
- const protocol = protocolMatch ? protocolMatch[1].toUpperCase() : 'SPIDER';
340
- const protocolPath = `codev/protocols/${protocol.toLowerCase()}/protocol.md`;
341
- // Build the prompt
588
+ // Resolve protocol using precedence: --use-protocol > spec header > default
589
+ const protocol = await resolveProtocol(options, config);
590
+ const protocolPath = `codev/protocols/${protocol}/protocol.md`;
591
+ // Load protocol definition for potential hooks/config
592
+ const protocolDef = loadProtocol(config, protocol);
593
+ // Resolve mode: --soft flag > protocol defaults > input type defaults
594
+ const mode = resolveMode(options, protocolDef);
595
+ logger.kv('Protocol', protocol.toUpperCase());
596
+ logger.kv('Mode', mode.toUpperCase());
597
+ // Build the prompt using template
342
598
  const specRelPath = `codev/specs/${specName}.md`;
343
599
  const planRelPath = `codev/plans/${specName}.md`;
344
- let initialPrompt = `## Protocol
345
- Follow the ${protocol} protocol STRICTLY: ${protocolPath}
346
- Read and internalize the protocol before starting any work.
347
-
348
- ## Task
349
- Implement the feature specified in ${specRelPath}.`;
600
+ const templateContext = {
601
+ protocol_name: protocol.toUpperCase(),
602
+ mode,
603
+ mode_soft: mode === 'soft',
604
+ mode_strict: mode === 'strict',
605
+ project_id: projectId,
606
+ input_description: `the feature specified in ${specRelPath}`,
607
+ spec: { path: specRelPath, name: specName },
608
+ };
350
609
  if (hasPlan) {
351
- initialPrompt += ` Follow the implementation plan in ${planRelPath}.`;
610
+ templateContext.plan = { path: planRelPath, name: specName };
352
611
  }
353
- initialPrompt += `
354
-
355
- Start by reading the protocol, spec${hasPlan ? ', and plan' : ''}, then begin implementation.`;
612
+ const initialPrompt = buildPromptFromTemplate(config, protocol, templateContext);
356
613
  const builderPrompt = `You are a Builder. Read codev/roles/builder.md for your full role definition.
357
614
 
358
615
  ${initialPrompt}`;
@@ -375,6 +632,7 @@ ${initialPrompt}`;
375
632
  upsertBuilder(builder);
376
633
  logger.blank();
377
634
  logger.success(`Builder ${builderId} spawned!`);
635
+ logger.kv('Mode', mode === 'strict' ? 'Strict (porch-driven)' : 'Soft (protocol-guided)');
378
636
  logger.kv('Terminal', `http://localhost:${port}`);
379
637
  }
380
638
  /**
@@ -396,12 +654,26 @@ async function spawnTask(options, config) {
396
654
  await ensureDirectories(config);
397
655
  await checkDependencies();
398
656
  await createWorktree(config, branchName, worktreePath);
399
- // Build the prompt
400
- let prompt = taskText;
657
+ // Resolve protocol (tasks can specify --protocol override, default is 'spider')
658
+ const protocol = await resolveProtocol(options, config);
659
+ const protocolDef = loadProtocol(config, protocol);
660
+ const mode = resolveMode(options, protocolDef);
661
+ // Build the prompt using template
662
+ let taskDescription = taskText;
401
663
  if (options.files && options.files.length > 0) {
402
- prompt += `\n\nRelevant files to consider:\n${options.files.map(f => `- ${f}`).join('\n')}`;
664
+ taskDescription += `\n\nRelevant files to consider:\n${options.files.map(f => `- ${f}`).join('\n')}`;
403
665
  }
404
- const builderPrompt = `You are a Builder. Read codev/roles/builder.md for your full role definition. ${prompt}`;
666
+ const templateContext = {
667
+ protocol_name: protocol.toUpperCase(),
668
+ mode,
669
+ mode_soft: mode === 'soft',
670
+ mode_strict: mode === 'strict',
671
+ project_id: builderId,
672
+ input_description: 'an ad-hoc task',
673
+ task_text: taskDescription,
674
+ };
675
+ const prompt = buildPromptFromTemplate(config, protocol, templateContext);
676
+ const builderPrompt = `You are a Builder. Read codev/roles/builder.md for your full role definition.\n\n${prompt}`;
405
677
  // Load role
406
678
  const role = options.noRole ? null : loadRolePrompt(config, 'builder');
407
679
  const commands = getResolvedCommands();
@@ -441,8 +713,20 @@ async function spawnProtocol(options, config) {
441
713
  await ensureDirectories(config);
442
714
  await checkDependencies();
443
715
  await createWorktree(config, branchName, worktreePath);
444
- // Build the prompt
445
- const prompt = `You are running the ${protocolName} protocol. Start by reading codev/protocols/${protocolName}/protocol.md and follow its instructions.`;
716
+ // Load protocol definition and resolve mode
717
+ const protocolDef = loadProtocol(config, protocolName);
718
+ const mode = resolveMode(options, protocolDef);
719
+ logger.kv('Mode', mode.toUpperCase());
720
+ // Build the prompt using template
721
+ const templateContext = {
722
+ protocol_name: protocolName.toUpperCase(),
723
+ mode,
724
+ mode_soft: mode === 'soft',
725
+ mode_strict: mode === 'strict',
726
+ project_id: builderId,
727
+ input_description: `running the ${protocolName.toUpperCase()} protocol`,
728
+ };
729
+ const prompt = buildPromptFromTemplate(config, protocolName, templateContext);
446
730
  // Load protocol-specific role or fall back to builder role
447
731
  const role = options.noRole ? null : loadProtocolRole(config, protocolName);
448
732
  const commands = getResolvedCommands();
@@ -672,48 +956,58 @@ async function spawnBugfix(options, config) {
672
956
  const builderId = `bugfix-${issueNumber}`;
673
957
  const branchName = `builder/bugfix-${issueNumber}-${slug}`;
674
958
  const worktreePath = resolve(config.buildersDir, builderId);
959
+ // Resolve protocol (allows --use-protocol override)
960
+ const protocol = await resolveProtocol(options, config);
961
+ const protocolDef = loadProtocol(config, protocol);
962
+ // Resolve mode: --soft flag > protocol defaults > input type defaults (bugfix defaults to soft)
963
+ const mode = resolveMode(options, protocolDef);
675
964
  logger.kv('Title', issue.title);
676
965
  logger.kv('Branch', branchName);
677
966
  logger.kv('Worktree', worktreePath);
678
- // Check for collisions
679
- await checkBugfixCollisions(issueNumber, worktreePath, issue, !!options.force);
967
+ logger.kv('Protocol', protocol.toUpperCase());
968
+ logger.kv('Mode', mode.toUpperCase());
969
+ // Execute pre-spawn hooks from protocol.json (collision check, issue comment)
970
+ // If protocol has hooks defined, use them; otherwise fall back to hardcoded behavior
971
+ if (protocolDef?.hooks?.['pre-spawn']) {
972
+ await executePreSpawnHooks(protocolDef, {
973
+ issueNumber,
974
+ issue,
975
+ worktreePath,
976
+ force: options.force,
977
+ noComment: options.noComment,
978
+ });
979
+ }
980
+ else {
981
+ // Fallback: hardcoded behavior for backwards compatibility
982
+ await checkBugfixCollisions(issueNumber, worktreePath, issue, !!options.force);
983
+ if (!options.noComment) {
984
+ logger.info('Commenting on issue...');
985
+ try {
986
+ await run(`gh issue comment ${issueNumber} --body "On it! Working on a fix now."`);
987
+ }
988
+ catch {
989
+ logger.warn('Warning: Failed to comment on issue (continuing anyway)');
990
+ }
991
+ }
992
+ }
680
993
  await ensureDirectories(config);
681
994
  await checkDependencies();
682
995
  await createWorktree(config, branchName, worktreePath);
683
- // Comment on the issue (unless --no-comment)
684
- if (!options.noComment) {
685
- logger.info('Commenting on issue...');
686
- try {
687
- await run(`gh issue comment ${issueNumber} --body "On it! Working on a fix now."`);
688
- }
689
- catch {
690
- logger.warn('Warning: Failed to comment on issue (continuing anyway)');
691
- }
692
- }
693
- // Build the prompt with issue context
694
- const prompt = `You are a Builder working on a BUGFIX task.
695
-
696
- ## Protocol
697
- Follow the BUGFIX protocol: codev/protocols/bugfix/protocol.md
698
-
699
- ## Issue #${issueNumber}
700
- **Title**: ${issue.title}
701
-
702
- **Description**:
703
- ${issue.body || '(No description provided)'}
704
-
705
- ## Your Mission
706
- 1. Reproduce the bug
707
- 2. Identify root cause
708
- 3. Implement fix (< 300 LOC)
709
- 4. Add regression test
710
- 5. Run CMAP review (3-way parallel: Gemini, Codex, Claude)
711
- 6. Create PR with "Fixes #${issueNumber}" in body
712
-
713
- If the fix is too complex (> 300 LOC or architectural changes), notify the Architect via:
714
- af send architect "Issue #${issueNumber} is more complex than expected. [Reason]. Recommend escalating to SPIDER/TICK."
715
-
716
- Start by reading the issue and reproducing the bug.`;
996
+ // Build the prompt using template
997
+ const templateContext = {
998
+ protocol_name: protocol.toUpperCase(),
999
+ mode,
1000
+ mode_soft: mode === 'soft',
1001
+ mode_strict: mode === 'strict',
1002
+ project_id: builderId,
1003
+ input_description: `a fix for GitHub Issue #${issueNumber}`,
1004
+ issue: {
1005
+ number: issueNumber,
1006
+ title: issue.title,
1007
+ body: issue.body || '(No description provided)',
1008
+ },
1009
+ };
1010
+ const prompt = buildPromptFromTemplate(config, protocol, templateContext);
717
1011
  const builderPrompt = `You are a Builder. Read codev/roles/builder.md for your full role definition.\n\n${prompt}`;
718
1012
  // Load role
719
1013
  const role = options.noRole ? null : loadRolePrompt(config, 'builder');
@@ -735,6 +1029,7 @@ Start by reading the issue and reproducing the bug.`;
735
1029
  upsertBuilder(builder);
736
1030
  logger.blank();
737
1031
  logger.success(`Bugfix builder for issue #${issueNumber} spawned!`);
1032
+ logger.kv('Mode', mode === 'strict' ? 'Strict (porch-driven)' : 'Soft (protocol-guided)');
738
1033
  logger.kv('Terminal', `http://localhost:${port}`);
739
1034
  }
740
1035
  // =============================================================================
@@ -1 +1 @@
1
- {"version":3,"file":"spawn.js","sourceRoot":"","sources":["../../../src/agent-farm/commands/spawn.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"spawn.js","sourceRoot":"","sources":["../../../src/agent-farm/commands/spawn.ts"],"names":[],"mappings":"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"}