From 9926eb04cb5f92102036c8912eb7d95c82389f22 Mon Sep 17 00:00:00 2001 From: chendelian <116870791@qq.com> Date: Tue, 7 Apr 2026 10:37:36 +0800 Subject: [PATCH] chore: get_sibling_skills_root prefer co-located inference over env Made-with: Cursor --- sdk/jiangchang_skill_core/runtime_env.py | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/sdk/jiangchang_skill_core/runtime_env.py b/sdk/jiangchang_skill_core/runtime_env.py index 129be8d..47d08be 100644 --- a/sdk/jiangchang_skill_core/runtime_env.py +++ b/sdk/jiangchang_skill_core/runtime_env.py @@ -92,20 +92,22 @@ def get_skills_root() -> str: def get_sibling_skills_root(skill_scripts_dir: str | None = None) -> str: """ - 编排子进程调用兄弟技能时用:优先环境变量;否则从本技能 scripts 目录推断并列根 - (OpenClaw 开发仓与网关 skills//scripts 均满足「技能根之上一级 = 并列根」)。 + 编排子进程调用兄弟技能时用:先根据本技能 scripts 目录推断并列根;若目录下能识别出兄弟技能 + 则用之(开发仓 D:\\OpenClaw 与安装目录 ~/.openclaw/skills 均满足「技能根之上一级 = 并列根」), + 避免全局 JIANGCHANG_SKILLS_ROOT / CLAW_SKILLS_ROOT 指向与当前检出不一致时错调兄弟进程。 + 推断失败时再读上述环境变量,最后回落 get_skills_root()。 """ - for key in ("JIANGCHANG_SKILLS_ROOT", "CLAW_SKILLS_ROOT"): - v = (os.getenv(key) or "").strip() - if v: - return os.path.normpath(v) - if skill_scripts_dir: scripts = os.path.abspath(skill_scripts_dir) skill_root = os.path.dirname(scripts) inferred = os.path.dirname(skill_root) if _looks_like_skills_root(inferred): - return inferred + return os.path.normpath(inferred) + + for key in ("JIANGCHANG_SKILLS_ROOT", "CLAW_SKILLS_ROOT"): + v = (os.getenv(key) or "").strip() + if v: + return os.path.normpath(v) return get_skills_root()