diff --git a/pipeline_core/skill_loader.py b/pipeline_core/skill_loader.py index 697b48d..6dc77d8 100644 --- a/pipeline_core/skill_loader.py +++ b/pipeline_core/skill_loader.py @@ -321,7 +321,9 @@ class SkillLoader: """按优先级合并七级技能。同名技能高优先级覆盖低优先级。 优先级(低→高):global → project_common → pipeline → org → project → role → user - """ + org scope 缺省继承:org_id='0' 是 ocai 组织(缺省机构),其机构技能是所有组织共享的 + 缺省内容;其他组织(org_id≠'0')先继承 ocai 的机构技能,再用自己 org scope 的同名技能覆盖 + (很多组织有自己的开发规范)。""" merged = dict(self._global) # 项目通用(projects/,所有项目共享) @@ -330,7 +332,12 @@ class SkillLoader: if pipeline_id and pipeline_id in self._pipelines: merged.update(self._pipelines[pipeline_id]) - if org_id and org_id in self._orgs: + # 缺省机构技能:ocai(org_id='0')的机构技能,所有组织缺省共享 + if '0' in self._orgs: + merged.update(self._orgs['0']) + + # 组织自有机构技能覆盖 ocai 缺省(org_id='0' 已在上一步加载,跳过重复) + if org_id and org_id != '0' and org_id in self._orgs: merged.update(self._orgs[org_id]) # 项目私有(orgs/{org_id}/{project_id}/)