fix: add no-hooks minimal install path

This commit is contained in:
Affaan Mustafa
2026-04-30 01:48:31 -04:00
committed by Affaan Mustafa
parent d26d66fd3b
commit 5881554a1c
5 changed files with 96 additions and 0 deletions

View File

@@ -271,6 +271,24 @@ function runTests() {
}
})) passed++; else failed++;
if (test('supports minimal profile dry-runs without hooks through the installer', () => {
const homeDir = createTempDir('install-apply-home-');
const projectDir = createTempDir('install-apply-project-');
try {
const result = run(['--profile', 'minimal', '--dry-run'], { cwd: projectDir, homeDir });
assert.strictEqual(result.code, 0, result.stderr);
assert.ok(result.stdout.includes('Mode: manifest'));
assert.ok(result.stdout.includes('Profile: minimal'));
assert.ok(result.stdout.includes('Selected modules: rules-core, agents-core, commands-core, platform-configs, workflow-quality'));
assert.ok(!result.stdout.includes('hooks-runtime'));
assert.ok(!fs.existsSync(path.join(homeDir, '.claude', 'ecc', 'install-state.json')));
} finally {
cleanup(homeDir);
cleanup(projectDir);
}
})) passed++; else failed++;
if (test('installs manifest profiles and writes non-legacy install-state', () => {
const homeDir = createTempDir('install-apply-home-');
const projectDir = createTempDir('install-apply-project-');

View File

@@ -70,6 +70,29 @@ function runTests() {
);
})) passed++; else failed++;
if (test('README documents low-context no-hooks install path', () => {
assert.ok(
readme.includes('### Low-context / no-hooks path'),
'README should surface a low-context no-hooks install option near Quick Start'
);
assert.ok(
readme.includes('./install.sh --profile minimal --target claude'),
'README should document the shell minimal profile command'
);
assert.ok(
readme.includes('npx ecc-install --profile minimal --target claude'),
'README should document the npx minimal profile command'
);
assert.ok(
readme.includes('--profile core --without baseline:hooks --target claude'),
'README should document the hook opt-out path for the core profile'
);
assert.ok(
readme.includes('This profile intentionally excludes `hooks-runtime`.'),
'README should state that the minimal profile excludes hooks'
);
})) passed++; else failed++;
if (test('README explains plugin-path cleanup and rules scoping', () => {
assert.ok(
readme.includes('remove the plugin from Claude Code'),