fix(skill): 技能优先级顺序改为 role>project>pipeline>org>global,目录层描述精简
This commit is contained in:
parent
127474de6f
commit
a40afccca3
@ -20,7 +20,7 @@ pipeline-core: Skill Loader — 六级可插拔技能隔离
|
|||||||
users/{user_id}/ ← 用户个人技能
|
users/{user_id}/ ← 用户个人技能
|
||||||
|
|
||||||
加载优先级(低 → 高,同名后者覆盖前者):
|
加载优先级(低 → 高,同名后者覆盖前者):
|
||||||
global → org → pipeline(common) → role → project → user
|
global → org → pipeline(common) → project → role → user
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import logging
|
import logging
|
||||||
@ -36,8 +36,8 @@ SCOPE_PRIORITY = {
|
|||||||
"global": 0,
|
"global": 0,
|
||||||
"org": 1,
|
"org": 1,
|
||||||
"pipeline": 2,
|
"pipeline": 2,
|
||||||
"role": 3,
|
"project": 3,
|
||||||
"project": 4,
|
"role": 4,
|
||||||
"user": 5,
|
"user": 5,
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -156,7 +156,7 @@ def _parse_frontmatter(content: str) -> Optional[dict]:
|
|||||||
# ── 六级技能加载器 ──
|
# ── 六级技能加载器 ──
|
||||||
|
|
||||||
class SkillLoader:
|
class SkillLoader:
|
||||||
"""六级技能加载器:global → org → pipeline → role → project → user"""
|
"""六级技能加载器:global → org → pipeline → project → role → user"""
|
||||||
|
|
||||||
def __init__(self, base_dir: str = ""):
|
def __init__(self, base_dir: str = ""):
|
||||||
self.base_dir = base_dir
|
self.base_dir = base_dir
|
||||||
@ -270,7 +270,7 @@ class SkillLoader:
|
|||||||
user_id: str = "") -> Dict[str, Skill]:
|
user_id: str = "") -> Dict[str, Skill]:
|
||||||
"""按优先级合并六级技能。同名技能高优先级覆盖低优先级。
|
"""按优先级合并六级技能。同名技能高优先级覆盖低优先级。
|
||||||
|
|
||||||
优先级(低→高):global → org → pipeline → role → project → user
|
优先级(低→高):global → org → pipeline → project → role → user
|
||||||
"""
|
"""
|
||||||
merged = dict(self._global)
|
merged = dict(self._global)
|
||||||
|
|
||||||
@ -280,14 +280,14 @@ class SkillLoader:
|
|||||||
if pipeline_id and pipeline_id in self._pipelines:
|
if pipeline_id and pipeline_id in self._pipelines:
|
||||||
merged.update(self._pipelines[pipeline_id])
|
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:
|
if pipeline_id and role:
|
||||||
role_key = f"{pipeline_id}:{role}"
|
role_key = f"{pipeline_id}:{role}"
|
||||||
if role_key in self._roles:
|
if role_key in self._roles:
|
||||||
merged.update(self._roles[role_key])
|
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:
|
if user_id and user_id in self._users:
|
||||||
merged.update(self._users[user_id])
|
merged.update(self._users[user_id])
|
||||||
|
|
||||||
@ -312,7 +312,7 @@ class SkillLoader:
|
|||||||
return ""
|
return ""
|
||||||
blocks = ["## 可用技能\n"]
|
blocks = ["## 可用技能\n"]
|
||||||
for s in skills:
|
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("")
|
blocks.append("")
|
||||||
return "\n".join(blocks)
|
return "\n".join(blocks)
|
||||||
|
|
||||||
@ -390,7 +390,7 @@ class SkillLoader:
|
|||||||
|
|
||||||
blocks = ["## 可用技能\n"]
|
blocks = ["## 可用技能\n"]
|
||||||
for s in skills:
|
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("")
|
blocks.append("")
|
||||||
return "\n".join(blocks)
|
return "\n".join(blocks)
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user