From 0c5413624415520a1bc5655a836b8c5f6737ceee Mon Sep 17 00:00:00 2001 From: "N. Taylor Mullen" Date: Tue, 6 Jan 2026 11:24:37 -0800 Subject: [PATCH] Agent Skills: Add skill directory to WorkspaceContext upon activation (#15870) --- packages/core/src/tools/activate-skill.test.ts | 6 ++++++ packages/core/src/tools/activate-skill.ts | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/packages/core/src/tools/activate-skill.test.ts b/packages/core/src/tools/activate-skill.test.ts index 3e7fe4a6e8..4843a534e9 100644 --- a/packages/core/src/tools/activate-skill.test.ts +++ b/packages/core/src/tools/activate-skill.test.ts @@ -29,6 +29,9 @@ describe('ActivateSkillTool', () => { }, ]; mockConfig = { + getWorkspaceContext: vi.fn().mockReturnValue({ + addDirectory: vi.fn(), + }), getSkillManager: vi.fn().mockReturnValue({ getSkills: vi.fn().mockReturnValue(skills), getAllSkills: vi.fn().mockReturnValue(skills), @@ -81,6 +84,9 @@ describe('ActivateSkillTool', () => { expect(mockConfig.getSkillManager().activateSkill).toHaveBeenCalledWith( 'test-skill', ); + expect(mockConfig.getWorkspaceContext().addDirectory).toHaveBeenCalledWith( + '/path/to/test-skill', + ); expect(result.llmContent).toContain(''); expect(result.llmContent).toContain(''); expect(result.llmContent).toContain('Skill instructions content.'); diff --git a/packages/core/src/tools/activate-skill.ts b/packages/core/src/tools/activate-skill.ts index 31ee4d0c24..517c3e1a17 100644 --- a/packages/core/src/tools/activate-skill.ts +++ b/packages/core/src/tools/activate-skill.ts @@ -115,6 +115,12 @@ ${folderStructure}`, skillManager.activateSkill(skillName); + // Add the skill's directory to the workspace context so the agent has permission + // to read its bundled resources. + this.config + .getWorkspaceContext() + .addDirectory(path.dirname(skill.location)); + const folderStructure = await this.getOrFetchFolderStructure( skill.location, );