hool-cli 0.9.0 → 0.9.2

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.
@@ -11,3 +11,8 @@ export declare function writeAgentManifest(projectDir: string): Promise<void>;
11
11
  * Source files come from hool-mini templates (bundled with CLI).
12
12
  */
13
13
  export declare function copyPlatformFiles(projectDir: string, templateRootDir: string, platform: AgentPlatform, preset?: ProjectPreset): Promise<void>;
14
+ /**
15
+ * Copy phase/operations/memory templates from the team preset template directory.
16
+ * These provide richer starter content than the inline stubs.
17
+ */
18
+ export declare function copyTeamTemplates(projectDir: string, templateRootDir: string): Promise<void>;
@@ -74,12 +74,23 @@ const SKIP_PHASES = {
74
74
  'desktop': [],
75
75
  'other': [],
76
76
  };
77
+ const TEAM_SKIP_PHASES = {
78
+ 'web-app': [],
79
+ 'browser-game': ['.hool/phases/07-implementation'], // BE phases handled by skip in agent prompts
80
+ 'mobile-android': [],
81
+ 'animation': ['.hool/phases/07-implementation'], // BE phases handled by skip in agent prompts
82
+ 'cli-tool': ['.hool/phases/03-design'],
83
+ 'api-only': ['.hool/phases/03-design'],
84
+ 'desktop': [],
85
+ 'other': [],
86
+ };
77
87
  export async function scaffoldProject(projectDir, projectType, mode = 'interactive', preset = 'solo') {
78
88
  const skip = SKIP_PHASES[projectType] || [];
79
89
  if (preset === 'team') {
80
90
  // Team preset: different phase structure, 11 memory files, skills, browser profiles, logs
91
+ const teamSkip = TEAM_SKIP_PHASES[projectType] || [];
81
92
  for (const dir of TEAM_PHASE_DIRS) {
82
- if (skip.some(s => dir.startsWith(s)))
93
+ if (teamSkip.some(s => dir.startsWith(s)))
83
94
  continue;
84
95
  await fs.mkdir(path.join(projectDir, dir), { recursive: true });
85
96
  }
@@ -105,12 +116,10 @@ export async function scaffoldProject(projectDir, projectType, mode = 'interacti
105
116
  await fs.mkdir(path.join(projectDir, '.hool/settings'), { recursive: true });
106
117
  await fs.mkdir(path.join(projectDir, '.hool/skills'), { recursive: true });
107
118
  await fs.mkdir(path.join(projectDir, '.hool/logs'), { recursive: true });
108
- // Browser profiles for Playwright (QA, FE Dev, Forensic)
119
+ // Browser profile shared between headless and headful Playwright
109
120
  const needsFE = !['cli-tool', 'api-only'].includes(projectType);
110
121
  if (needsFE) {
111
- for (const profile of ['qa', 'fe-dev', 'forensic']) {
112
- await fs.mkdir(path.join(projectDir, '.hool/browser-profiles', profile), { recursive: true });
113
- }
122
+ await fs.mkdir(path.join(projectDir, '.hool/browser-profiles/shared'), { recursive: true });
114
123
  }
115
124
  }
116
125
  else {
@@ -152,27 +161,26 @@ export async function scaffoldProject(projectDir, projectType, mode = 'interacti
152
161
  // and scaffolded by Tech Leads during Phases 5-6 (LLD).
153
162
  }
154
163
  export async function scaffoldOnboard(projectDir, projectType, mode = 'interactive', preset = 'solo') {
155
- const skip = SKIP_PHASES[projectType] || [];
156
- // Create phase directories (same as init — agents populate during onboarding)
157
- for (const dir of PHASE_DIRS) {
158
- if (skip.some(s => dir.startsWith(s)))
159
- continue;
160
- await fs.mkdir(path.join(projectDir, dir), { recursive: true });
161
- }
162
- // Project profile marks this as an onboarded project
163
- await fs.writeFile(path.join(projectDir, '.hool/phases/00-init/project-profile.md'), `# Project Profile\n\n- **Type**: ${projectType}\n- **Mode**: ${mode}\n- **Origin**: onboarded (existing codebase)\n- **Created**: ${new Date().toISOString().split('T')[0]}\n`, 'utf-8');
164
- // Create operations directory with onboard-specific templates
165
- await fs.mkdir(path.join(projectDir, '.hool/operations'), { recursive: true });
166
- await fs.mkdir(path.join(projectDir, '.hool/operations/context'), { recursive: true });
167
- await fs.mkdir(path.join(projectDir, '.hool/operations/dispatch'), { recursive: true });
168
- await fs.mkdir(path.join(projectDir, '.hool/operations/logs'), { recursive: true });
169
- await fs.writeFile(path.join(projectDir, '.hool/operations/logs/.gitignore'), '*.jsonl\n', 'utf-8');
170
- const opTemplates = getOnboardOperationTemplates(mode);
171
- for (const [filename, content] of Object.entries(opTemplates)) {
172
- await fs.writeFile(path.join(projectDir, '.hool/operations', filename), content, 'utf-8');
173
- }
174
- // Create memory directories for each agent (preset-aware)
175
164
  if (preset === 'team') {
165
+ const teamSkip = TEAM_SKIP_PHASES[projectType] || [];
166
+ // Create team phase directories
167
+ for (const dir of TEAM_PHASE_DIRS) {
168
+ if (teamSkip.some(s => dir.startsWith(s)))
169
+ continue;
170
+ await fs.mkdir(path.join(projectDir, dir), { recursive: true });
171
+ }
172
+ // Project profile marks this as an onboarded project
173
+ await fs.writeFile(path.join(projectDir, '.hool/phases/00-init/project-profile.md'), `# Project Profile\n\n- **Type**: ${projectType}\n- **Mode**: ${mode}\n- **Preset**: team\n- **Origin**: onboarded (existing codebase)\n- **Created**: ${new Date().toISOString().split('T')[0]}\n`, 'utf-8');
174
+ // Operations with team-specific templates
175
+ await fs.mkdir(path.join(projectDir, '.hool/operations'), { recursive: true });
176
+ await fs.mkdir(path.join(projectDir, '.hool/operations/context'), { recursive: true });
177
+ const opTemplates = getTeamOperationTemplates(mode);
178
+ for (const [filename, content] of Object.entries(opTemplates)) {
179
+ await fs.writeFile(path.join(projectDir, '.hool/operations', filename), content, 'utf-8');
180
+ }
181
+ // Override current-phase to onboarding
182
+ await fs.writeFile(path.join(projectDir, '.hool/operations/current-phase.md'), getOnboardCurrentPhase(mode), 'utf-8');
183
+ // Memory: 11 files per agent
176
184
  const memoryHeaders = getTeamMemoryHeaders();
177
185
  for (const agent of TEAM_AGENTS) {
178
186
  const agentDir = path.join(projectDir, '.hool/memory', agent);
@@ -181,18 +189,38 @@ export async function scaffoldOnboard(projectDir, projectType, mode = 'interacti
181
189
  await fs.writeFile(path.join(agentDir, filename), content, 'utf-8');
182
190
  }
183
191
  }
192
+ // Team-specific directories
184
193
  await fs.mkdir(path.join(projectDir, '.hool/hooks'), { recursive: true });
185
194
  await fs.mkdir(path.join(projectDir, '.hool/settings'), { recursive: true });
186
195
  await fs.mkdir(path.join(projectDir, '.hool/skills'), { recursive: true });
187
196
  await fs.mkdir(path.join(projectDir, '.hool/logs'), { recursive: true });
197
+ // Browser profiles (shared between headless and headful)
188
198
  const needsFE = !['cli-tool', 'api-only'].includes(projectType);
189
199
  if (needsFE) {
190
- for (const profile of ['qa', 'fe-dev', 'forensic']) {
191
- await fs.mkdir(path.join(projectDir, '.hool/browser-profiles', profile), { recursive: true });
192
- }
200
+ await fs.mkdir(path.join(projectDir, '.hool/browser-profiles/shared'), { recursive: true });
193
201
  }
194
202
  }
195
203
  else {
204
+ const skip = SKIP_PHASES[projectType] || [];
205
+ // Create solo phase directories
206
+ for (const dir of PHASE_DIRS) {
207
+ if (skip.some(s => dir.startsWith(s)))
208
+ continue;
209
+ await fs.mkdir(path.join(projectDir, dir), { recursive: true });
210
+ }
211
+ // Project profile marks this as an onboarded project
212
+ await fs.writeFile(path.join(projectDir, '.hool/phases/00-init/project-profile.md'), `# Project Profile\n\n- **Type**: ${projectType}\n- **Mode**: ${mode}\n- **Origin**: onboarded (existing codebase)\n- **Created**: ${new Date().toISOString().split('T')[0]}\n`, 'utf-8');
213
+ // Create operations directory with onboard-specific templates
214
+ await fs.mkdir(path.join(projectDir, '.hool/operations'), { recursive: true });
215
+ await fs.mkdir(path.join(projectDir, '.hool/operations/context'), { recursive: true });
216
+ await fs.mkdir(path.join(projectDir, '.hool/operations/dispatch'), { recursive: true });
217
+ await fs.mkdir(path.join(projectDir, '.hool/operations/logs'), { recursive: true });
218
+ await fs.writeFile(path.join(projectDir, '.hool/operations/logs/.gitignore'), '*.jsonl\n', 'utf-8');
219
+ const opTemplates = getOnboardOperationTemplates(mode);
220
+ for (const [filename, content] of Object.entries(opTemplates)) {
221
+ await fs.writeFile(path.join(projectDir, '.hool/operations', filename), content, 'utf-8');
222
+ }
223
+ // Memory: 5 files per agent
196
224
  const memoryHeaders = getMemoryHeaders();
197
225
  for (const agent of AGENTS) {
198
226
  const agentDir = path.join(projectDir, '.hool/memory', agent);
@@ -497,4 +525,96 @@ async function copyDirContents(src, dest) {
497
525
  // Source directory doesn't exist — skip silently
498
526
  }
499
527
  }
528
+ /**
529
+ * Copy phase/operations/memory templates from the team preset template directory.
530
+ * These provide richer starter content than the inline stubs.
531
+ */
532
+ export async function copyTeamTemplates(projectDir, templateRootDir) {
533
+ const templatesDir = path.join(templateRootDir, 'templates');
534
+ // Copy phase templates
535
+ const phasesDir = path.join(templatesDir, 'phases');
536
+ try {
537
+ const phaseDirs = await fs.readdir(phasesDir, { withFileTypes: true });
538
+ for (const entry of phaseDirs) {
539
+ if (!entry.isDirectory())
540
+ continue;
541
+ const srcPhaseDir = path.join(phasesDir, entry.name);
542
+ const destPhaseDir = path.join(projectDir, '.hool/phases', entry.name);
543
+ await fs.mkdir(destPhaseDir, { recursive: true });
544
+ await copyDirRecursive(srcPhaseDir, destPhaseDir, true);
545
+ }
546
+ }
547
+ catch { /* templates/phases doesn't exist */ }
548
+ // Copy memory templates (overwrite the inline stubs with richer content)
549
+ const memoryTemplatesDir = path.join(templatesDir, 'memory');
550
+ try {
551
+ const memFiles = await fs.readdir(memoryTemplatesDir);
552
+ const agents = ['product-lead', 'fe-tech-lead', 'be-tech-lead', 'fe-dev', 'be-dev', 'qa', 'forensic', 'governor'];
553
+ for (const agent of agents) {
554
+ const agentMemDir = path.join(projectDir, '.hool/memory', agent);
555
+ for (const f of memFiles) {
556
+ if (!f.endsWith('.md'))
557
+ continue;
558
+ const src = path.join(memoryTemplatesDir, f);
559
+ const dest = path.join(agentMemDir, f);
560
+ // Only copy if the file exists in templates and isn't already richer
561
+ try {
562
+ // Only copy if dest doesn't exist (don't overwrite scaffolded content)
563
+ await fs.access(dest);
564
+ }
565
+ catch {
566
+ // File doesn't exist — copy the template
567
+ try {
568
+ await fs.copyFile(src, dest);
569
+ }
570
+ catch { /* skip */ }
571
+ }
572
+ }
573
+ }
574
+ }
575
+ catch { /* templates/memory doesn't exist */ }
576
+ // Copy operations templates — only if not already written by scaffoldProject
577
+ const opsTemplatesDir = path.join(templatesDir, 'operations');
578
+ try {
579
+ const opsFiles = await fs.readdir(opsTemplatesDir);
580
+ for (const f of opsFiles) {
581
+ if (!f.endsWith('.md'))
582
+ continue;
583
+ const src = path.join(opsTemplatesDir, f);
584
+ const dest = path.join(projectDir, '.hool/operations', f);
585
+ try {
586
+ // Only copy if dest doesn't exist
587
+ await fs.access(dest);
588
+ }
589
+ catch {
590
+ try {
591
+ await fs.copyFile(src, dest);
592
+ }
593
+ catch { /* skip */ }
594
+ }
595
+ }
596
+ }
597
+ catch { /* templates/operations doesn't exist */ }
598
+ }
599
+ async function copyDirRecursive(src, dest, skipExisting = false) {
600
+ const entries = await fs.readdir(src, { withFileTypes: true });
601
+ for (const entry of entries) {
602
+ const srcPath = path.join(src, entry.name);
603
+ const destPath = path.join(dest, entry.name);
604
+ if (entry.isDirectory()) {
605
+ await fs.mkdir(destPath, { recursive: true });
606
+ await copyDirRecursive(srcPath, destPath, skipExisting);
607
+ }
608
+ else {
609
+ if (skipExisting) {
610
+ try {
611
+ await fs.access(destPath);
612
+ continue;
613
+ }
614
+ catch { /* doesn't exist — copy it */ }
615
+ }
616
+ await fs.copyFile(srcPath, destPath);
617
+ }
618
+ }
619
+ }
500
620
  //# sourceMappingURL=scaffold.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"scaffold.js","sourceRoot":"","sources":["../../src/core/scaffold.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scaffold.js","sourceRoot":"","sources":["../../src/core/scaffold.ts"],"names":[],"mappings":"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"}
package/dist/e2e.test.js CHANGED
@@ -206,16 +206,23 @@ describe('hool init --team (e2e)', () => {
206
206
  // Team has retrospective phase dir
207
207
  await expect(fs.stat(path.join(tmpDir, '.hool/phases/12-retrospective'))).resolves.toBeTruthy();
208
208
  }, 30000);
209
- it('creates browser profile directories for FE projects', async () => {
209
+ it('copies team phase templates with starter content', async () => {
210
210
  await runHool(['init', '-d', tmpDir, '-p', 'claude-code', '-t', 'web-app', '-m', 'interactive', '--team']);
211
- // Browser profiles for QA, FE Dev, Forensic
212
- await expect(fs.stat(path.join(tmpDir, '.hool/browser-profiles/qa'))).resolves.toBeTruthy();
213
- await expect(fs.stat(path.join(tmpDir, '.hool/browser-profiles/fe-dev'))).resolves.toBeTruthy();
214
- await expect(fs.stat(path.join(tmpDir, '.hool/browser-profiles/forensic'))).resolves.toBeTruthy();
211
+ // Phase templates should have been copied from presets/team/templates/phases/
212
+ const specTemplate = await fs.readFile(path.join(tmpDir, '.hool/phases/02-spec/spec.md'), 'utf-8');
213
+ expect(specTemplate.length).toBeGreaterThan(10);
214
+ expect(specTemplate).toContain('Spec');
215
+ const archTemplate = await fs.readFile(path.join(tmpDir, '.hool/phases/04-architecture/architecture.md'), 'utf-8');
216
+ expect(archTemplate.length).toBeGreaterThan(10);
217
+ }, 30000);
218
+ it('creates shared browser profile directory for FE projects', async () => {
219
+ await runHool(['init', '-d', tmpDir, '-p', 'claude-code', '-t', 'web-app', '-m', 'interactive', '--team']);
220
+ // Shared browser profile for headless + headful Playwright
221
+ await expect(fs.stat(path.join(tmpDir, '.hool/browser-profiles/shared'))).resolves.toBeTruthy();
215
222
  }, 30000);
216
223
  it('skips browser profiles for CLI tool projects', async () => {
217
224
  await runHool(['init', '-d', tmpDir, '-p', 'claude-code', '-t', 'cli-tool', '-m', 'interactive', '--team']);
218
- await expect(fs.access(path.join(tmpDir, '.hool/browser-profiles'))).rejects.toThrow();
225
+ await expect(fs.access(path.join(tmpDir, '.hool/browser-profiles/shared'))).rejects.toThrow();
219
226
  }, 30000);
220
227
  it('creates skills directory and copies skill files', async () => {
221
228
  await runHool(['init', '-d', tmpDir, '-p', 'claude-code', '-t', 'web-app', '-m', 'interactive', '--team']);
@@ -265,17 +272,21 @@ describe('hool init --team (e2e)', () => {
265
272
  expect(settings).toHaveProperty('env');
266
273
  expect(settings.env).toHaveProperty('CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS', '1');
267
274
  }, 30000);
268
- it('configures Playwright MCP in both headless and headful modes', async () => {
275
+ it('configures Playwright MCP in both headless and headful modes with shared profile', async () => {
269
276
  await runHool(['init', '-d', tmpDir, '-p', 'claude-code', '-t', 'web-app', '-m', 'interactive', '--team']);
270
277
  const settings = JSON.parse(await fs.readFile(path.join(tmpDir, '.claude/settings.json'), 'utf-8'));
271
278
  // Should have both playwright entries
272
279
  expect(settings).toHaveProperty('mcpServers');
273
280
  expect(settings.mcpServers).toHaveProperty('playwright');
274
281
  expect(settings.mcpServers).toHaveProperty('playwright-headful');
275
- // Headless should have --headless arg
282
+ // Headless should have --headless arg and shared user-data-dir
276
283
  expect(settings.mcpServers.playwright.args).toContain('--headless');
277
- // Headful should NOT have --headless arg
284
+ expect(settings.mcpServers.playwright.args).toContain('--user-data-dir');
285
+ expect(settings.mcpServers.playwright.args).toContain('.hool/browser-profiles/shared');
286
+ // Headful should NOT have --headless arg but SHOULD share user-data-dir
278
287
  expect(settings.mcpServers['playwright-headful'].args).not.toContain('--headless');
288
+ expect(settings.mcpServers['playwright-headful'].args).toContain('--user-data-dir');
289
+ expect(settings.mcpServers['playwright-headful'].args).toContain('.hool/browser-profiles/shared');
279
290
  }, 30000);
280
291
  it('includes Playwright permissions for both modes', async () => {
281
292
  await runHool(['init', '-d', tmpDir, '-p', 'claude-code', '-t', 'web-app', '-m', 'interactive', '--team']);
@@ -398,4 +409,137 @@ describe('hool init --team (e2e)', () => {
398
409
  expect(claudeMd).not.toContain('Agent Teams');
399
410
  }, 30000);
400
411
  });
412
+ describe('hook logic tests', () => {
413
+ it('metrics.sh increments tool-calls counter', async () => {
414
+ await runHool(['init', '-d', tmpDir, '-p', 'claude-code', '-t', 'web-app', '-m', 'interactive', '--team']);
415
+ // Write initial metrics file
416
+ const metricsPath = path.join(tmpDir, '.hool/operations/metrics.md');
417
+ await fs.writeFile(metricsPath, '# Metrics\n\n- tool-calls: 0\n- task-completions: 0\n');
418
+ // Run the hook
419
+ const hookPath = path.join(tmpDir, '.hool/hooks/metrics.sh');
420
+ await exec('bash', [hookPath], { cwd: tmpDir });
421
+ // Check counter incremented
422
+ const content = await fs.readFile(metricsPath, 'utf-8');
423
+ expect(content).toContain('tool-calls: 1');
424
+ // Run again — should be 2
425
+ await exec('bash', [hookPath], { cwd: tmpDir });
426
+ const content2 = await fs.readFile(metricsPath, 'utf-8');
427
+ expect(content2).toContain('tool-calls: 2');
428
+ }, 30000);
429
+ it('metrics.sh creates metrics file if missing', async () => {
430
+ await runHool(['init', '-d', tmpDir, '-p', 'claude-code', '-t', 'web-app', '-m', 'interactive', '--team']);
431
+ // Delete the metrics file
432
+ const metricsPath = path.join(tmpDir, '.hool/operations/metrics.md');
433
+ try {
434
+ await fs.unlink(metricsPath);
435
+ }
436
+ catch { /* may not exist */ }
437
+ // Run the hook — should create the file
438
+ const hookPath = path.join(tmpDir, '.hool/hooks/metrics.sh');
439
+ await exec('bash', [hookPath], { cwd: tmpDir });
440
+ const content = await fs.readFile(metricsPath, 'utf-8');
441
+ expect(content).toContain('tool-calls: 1');
442
+ expect(content).toContain('task-completions: 0');
443
+ }, 30000);
444
+ it('governor-trigger.sh increments task-completions counter', async () => {
445
+ await runHool(['init', '-d', tmpDir, '-p', 'claude-code', '-t', 'web-app', '-m', 'interactive', '--team']);
446
+ const metricsPath = path.join(tmpDir, '.hool/operations/metrics.md');
447
+ await fs.writeFile(metricsPath, '# Metrics\n\n- tool-calls: 0\n- task-completions: 0\n');
448
+ const hookPath = path.join(tmpDir, '.hool/hooks/governor-trigger.sh');
449
+ await exec('bash', [hookPath], { cwd: tmpDir });
450
+ const content = await fs.readFile(metricsPath, 'utf-8');
451
+ expect(content).toContain('task-completions: 1');
452
+ }, 30000);
453
+ it('governor-trigger.sh outputs nudge at threshold (every 5)', async () => {
454
+ await runHool(['init', '-d', tmpDir, '-p', 'claude-code', '-t', 'web-app', '-m', 'interactive', '--team']);
455
+ const metricsPath = path.join(tmpDir, '.hool/operations/metrics.md');
456
+ await fs.writeFile(metricsPath, '# Metrics\n\n- tool-calls: 0\n- task-completions: 4\n');
457
+ const hookPath = path.join(tmpDir, '.hool/hooks/governor-trigger.sh');
458
+ const { stdout } = await exec('bash', [hookPath], { cwd: tmpDir });
459
+ // At 5 completions, should output governor nudge
460
+ expect(stdout).toContain('GOVERNOR AUDIT DUE');
461
+ expect(stdout).toContain('5 tasks completed');
462
+ // Verify counter updated
463
+ const content = await fs.readFile(metricsPath, 'utf-8');
464
+ expect(content).toContain('task-completions: 5');
465
+ }, 30000);
466
+ it('governor-trigger.sh is silent when not at threshold', async () => {
467
+ await runHool(['init', '-d', tmpDir, '-p', 'claude-code', '-t', 'web-app', '-m', 'interactive', '--team']);
468
+ const metricsPath = path.join(tmpDir, '.hool/operations/metrics.md');
469
+ await fs.writeFile(metricsPath, '# Metrics\n\n- tool-calls: 0\n- task-completions: 2\n');
470
+ const hookPath = path.join(tmpDir, '.hool/hooks/governor-trigger.sh');
471
+ const { stdout } = await exec('bash', [hookPath], { cwd: tmpDir });
472
+ // At 3, should NOT output nudge
473
+ expect(stdout).not.toContain('GOVERNOR AUDIT DUE');
474
+ }, 30000);
475
+ it('identity-reminder.sh outputs phase and task context', async () => {
476
+ await runHool(['init', '-d', tmpDir, '-p', 'claude-code', '-t', 'web-app', '-m', 'interactive', '--team']);
477
+ const hookPath = path.join(tmpDir, '.hool/hooks/identity-reminder.sh');
478
+ const { stdout } = await exec('bash', [hookPath], { cwd: tmpDir });
479
+ expect(stdout).toContain('hookSpecificOutput');
480
+ expect(stdout).toContain('UserPromptSubmit');
481
+ expect(stdout).toContain('HOOL CONTEXT');
482
+ expect(stdout).toContain('REMEMBER');
483
+ }, 30000);
484
+ it('completion-checklist.sh exits 0 when no uncommitted changes', async () => {
485
+ await runHool(['init', '-d', tmpDir, '-p', 'claude-code', '-t', 'web-app', '-m', 'interactive', '--team']);
486
+ // No src/frontend/.git or src/backend/.git — should pass cleanly
487
+ const hookPath = path.join(tmpDir, '.hool/hooks/completion-checklist.sh');
488
+ const { stdout } = await exec('bash', [hookPath], { cwd: tmpDir });
489
+ // No output expected — clean exit
490
+ expect(stdout.trim()).toBe('');
491
+ }, 30000);
492
+ it('completion-checklist.sh exits 2 when uncommitted changes exist', async () => {
493
+ await runHool(['init', '-d', tmpDir, '-p', 'claude-code', '-t', 'web-app', '-m', 'interactive', '--team']);
494
+ // Create a git repo in src/frontend/ with uncommitted changes
495
+ const feDir = path.join(tmpDir, 'src/frontend');
496
+ await fs.mkdir(feDir, { recursive: true });
497
+ await exec('git', ['init'], { cwd: feDir });
498
+ await exec('git', ['config', 'user.email', 'test@test.com'], { cwd: feDir });
499
+ await exec('git', ['config', 'user.name', 'Test'], { cwd: feDir });
500
+ await fs.writeFile(path.join(feDir, 'test.txt'), 'hello');
501
+ await exec('git', ['add', '.'], { cwd: feDir });
502
+ await exec('git', ['commit', '-m', 'init'], { cwd: feDir });
503
+ // Now create an uncommitted change
504
+ await fs.writeFile(path.join(feDir, 'test.txt'), 'changed');
505
+ const hookPath = path.join(tmpDir, '.hool/hooks/completion-checklist.sh');
506
+ try {
507
+ await exec('bash', [hookPath], { cwd: tmpDir });
508
+ // Should not reach here
509
+ expect(true).toBe(false);
510
+ }
511
+ catch (err) {
512
+ const error = err;
513
+ expect(error.code).toBe(2);
514
+ expect(error.stderr).toContain('uncommitted');
515
+ }
516
+ }, 30000);
517
+ it('login-nudge.sh references shared profile', async () => {
518
+ await runHool(['init', '-d', tmpDir, '-p', 'claude-code', '-t', 'web-app', '-m', 'interactive', '--team']);
519
+ const hookPath = path.join(tmpDir, '.hool/hooks/login-nudge.sh');
520
+ const { stdout } = await exec('bash', [hookPath], { cwd: tmpDir });
521
+ expect(stdout).toContain('browser-profiles/shared');
522
+ expect(stdout).toContain('--user-data-dir');
523
+ expect(stdout).not.toContain('browser-profiles/qa');
524
+ expect(stdout).not.toContain('browser-profiles/fe-dev');
525
+ }, 30000);
526
+ });
527
+ describe('hool start (e2e)', () => {
528
+ it('rejects start on non-HOOL project', async () => {
529
+ const { stdout } = await runHool(['start', '-d', tmpDir]);
530
+ expect(stdout).toContain('Not a HOOL project');
531
+ }, 30000);
532
+ it('rejects start on solo preset project', async () => {
533
+ await runHool(['init', '-d', tmpDir, '-p', 'claude-code', '-t', 'web-app', '-m', 'interactive']);
534
+ const { stdout } = await runHool(['start', '-d', tmpDir]);
535
+ expect(stdout).toContain('Not a team preset');
536
+ }, 30000);
537
+ });
538
+ describe('claude-settings.json (team)', () => {
539
+ it('includes teammateMode for tmux split-pane view', async () => {
540
+ await runHool(['init', '-d', tmpDir, '-p', 'claude-code', '-t', 'web-app', '-m', 'interactive', '--team']);
541
+ const settings = JSON.parse(await fs.readFile(path.join(tmpDir, '.claude/settings.json'), 'utf-8'));
542
+ expect(settings.teammateMode).toBe('tmux');
543
+ }, 30000);
544
+ });
401
545
  //# sourceMappingURL=e2e.test.js.map