fix(skill): 技能优先级顺序改为 role>project>pipeline>org>global,目录层描述精简

This commit is contained in:
yumoqing 2026-08-21 12:05:27 +08:00
parent 127474de6f
commit a40afccca3

View File

@ -20,7 +20,7 @@ pipeline-core: Skill Loader — 六级可插拔技能隔离
users/{user_id}/ 用户个人技能
加载优先级 同名后者覆盖前者
global org pipeline(common) role project user
global org pipeline(common) project role user
"""
import logging
@ -36,8 +36,8 @@ SCOPE_PRIORITY = {
"global": 0,
"org": 1,
"pipeline": 2,
"role": 3,
"project": 4,
"project": 3,
"role": 4,
"user": 5,
}
@ -156,7 +156,7 @@ def _parse_frontmatter(content: str) -> Optional[dict]:
# ── 六级技能加载器 ──
class SkillLoader:
"""六级技能加载器global → org → pipeline → role → project → user"""
"""六级技能加载器global → org → pipeline → project → role → user"""
def __init__(self, base_dir: str = ""):
self.base_dir = base_dir
@ -270,7 +270,7 @@ class SkillLoader:
user_id: str = "") -> Dict[str, Skill]:
"""按优先级合并六级技能。同名技能高优先级覆盖低优先级。
优先级global org pipeline role project user
优先级global org pipeline project role user
"""
merged = dict(self._global)
@ -280,14 +280,14 @@ class SkillLoader:
if pipeline_id and pipeline_id in self._pipelines:
merged.update(self._pipelines[pipeline_id])
if project_id and project_id in self._projects:
merged.update(self._projects[project_id])
if pipeline_id and role:
role_key = f"{pipeline_id}:{role}"
if role_key in self._roles:
merged.update(self._roles[role_key])
if project_id and project_id in self._projects:
merged.update(self._projects[project_id])
if user_id and user_id in self._users:
merged.update(self._users[user_id])
@ -312,7 +312,7 @@ class SkillLoader:
return ""
blocks = ["## 可用技能\n"]
for s in skills:
blocks.append(f"- **[{SCOPE_TAG.get(s.scope, s.scope)}] {s.name}**: {s.description[:200]}")
blocks.append(f"- **[{SCOPE_TAG.get(s.scope, s.scope)}] {s.name}**: {s.description[:80]}")
blocks.append("")
return "\n".join(blocks)
@ -390,7 +390,7 @@ class SkillLoader:
blocks = ["## 可用技能\n"]
for s in skills:
blocks.append(f"- **[{SCOPE_TAG.get(s.scope, s.scope)}] {s.name}**: {s.description[:200]}")
blocks.append(f"- **[{SCOPE_TAG.get(s.scope, s.scope)}] {s.name}**: {s.description[:80]}")
blocks.append("")
return "\n".join(blocks)