diff --git a/packages/mosaic/src/commands/skill.spec.ts b/packages/mosaic/src/commands/skill.spec.ts index 8d31765b..17ec47f7 100644 --- a/packages/mosaic/src/commands/skill.spec.ts +++ b/packages/mosaic/src/commands/skill.spec.ts @@ -332,9 +332,11 @@ describe('Claude skill bridge', () => { expect(result.status, result.stderr).toBe(0); expect(readlinkSync(liveForeignLink)).toBe(liveForeignTarget); expect(readlinkSync(danglingForeignLink)).toBe(join(mosaicHome, 'foreign-missing')); - expect(readlinkSync(join(paths.claudeSkillsDir, 'missing'))).toBe( + // Skills now link into the mosaic-owned harness home, never the base install. + expect(readlinkSync(join(mosaicHome, '.claude', 'skills', 'missing'))).toBe( join(paths.mosaicSkillsDir, 'missing'), ); + expect(existsSync(join(paths.claudeSkillsDir, 'missing'))).toBe(false); }); it('preserves live and dangling foreign Claude symlinks while linking missing skills', () => { @@ -349,17 +351,20 @@ describe('Claude skill bridge', () => { symlinkSync(external, liveLink); symlinkSync(join(root, 'external-missing'), danglingLink); + const mosaicHome = join(root, '.config', 'mosaic'); const result = spawnSync('bash', [LEGACY_SYNC_SCRIPT, '--link-only'], { encoding: 'utf8', - env: { ...process.env, HOME: root, MOSAIC_HOME: join(root, '.config', 'mosaic') }, + env: { ...process.env, HOME: root, MOSAIC_HOME: mosaicHome }, }); expect(result.status, result.stderr).toBe(0); expect(readlinkSync(liveLink)).toBe(external); expect(readlinkSync(danglingLink)).toBe(join(root, 'external-missing')); - expect(readlinkSync(join(paths.claudeSkillsDir, 'missing'))).toBe( + // Skills now link into the mosaic-owned harness home, never the base install. + expect(readlinkSync(join(mosaicHome, '.claude', 'skills', 'missing'))).toBe( join(paths.mosaicSkillsDir, 'missing'), ); + expect(existsSync(join(paths.claudeSkillsDir, 'missing'))).toBe(false); }); });