@@ -79,6 +79,29 @@ describe("compactSkillPaths", () => {
7979 expect ( prompt ) . not . toContain ( "~/.openclaw/skills/world-cup-soccer-openclaw-skill/SKILL.md" ) ;
8080 } ) ;
8181
82+ it ( "does not compact AlphaClaw state-root plugin skill paths to OS-home tilde paths" , ( ) => {
83+ const root = path . parse ( os . homedir ( ) ) . root ;
84+ const osHome = path . join ( root , "data" ) ;
85+ const stateDir = path . join ( osHome , ".openclaw" ) ;
86+ const skillDir = path . join ( stateDir , "plugin-skills" , "calendar-plugin-skill" ) ;
87+ const skillFile = path . join ( skillDir , "SKILL.md" ) ;
88+
89+ vi . stubEnv ( "HOME" , osHome ) ;
90+ vi . stubEnv ( "OPENCLAW_HOME" , osHome ) ;
91+ vi . stubEnv ( "OPENCLAW_STATE_DIR" , stateDir ) ;
92+ vi . stubEnv ( "OPENCLAW_CONFIG_PATH" , path . join ( stateDir , "openclaw.json" ) ) ;
93+
94+ const prompt = buildPromptForFixtureSkill ( {
95+ workspaceRoot : path . join ( root , "workspace" ) ,
96+ skillDir,
97+ name : "calendar-plugin-skill" ,
98+ description : "Calendar plugin skill" ,
99+ } ) ;
100+
101+ expect ( prompt ) . toContain ( `<location>${ skillFile } </location>` ) ;
102+ expect ( prompt ) . not . toContain ( "~/.openclaw/plugin-skills/calendar-plugin-skill/SKILL.md" ) ;
103+ } ) ;
104+
82105 it ( "compacts managed skill paths when OS-home tilde reaches the same path" , ( ) => {
83106 const home = os . homedir ( ) ;
84107 const stateDir = path . join ( home , ".openclaw" ) ;
0 commit comments