fix: load_skill 工具归一化 role(裸名 qc/pm → agent.qc/agent.pm)

根因:qc_review_run/pm_review_run 调用 _load_skill_by_name 传裸名 'qc'/'pm',
get_merged(role='qc') 加载不到 roles/agent.qc/ 目录,导致 QC 审查 design 时
load_skill(review-design) 失败 → 退回 3 次达上限 → 任务 waiting → 项目 paused。

修复:_load_skill_by_name 内部 _normalize_role(role),覆盖所有调用点。
This commit is contained in:
ymq 2026-08-22 08:16:28 +08:00
parent be1fd06ef7
commit c50a5b9914

View File

@ -1096,6 +1096,7 @@ async def _load_skill_by_name(sor, project_id, role, org_id, name, file_path=Non
- 不带 file_path返回技能 SKILL.md 全文 + 关联文件清单references/scripts/templates/assets
- file_path返回 skill 目录下对应子文件内容仅限 references/scripts/templates/assets
"""
role = _normalize_role(role) # 归一化:裸名 'qc'/'pm' → 'agent.qc'/'agent.pm',否则加载不到角色技能目录
name = (name or '').strip()
if not name:
return 'FAIL: 需要技能名称'