fix(sdlc): 根治任务名继承 bug(design 任务名不再跟需求名一样)
根因:_create_next_task 用 new_title=f'{title}({next_role}阶段)' 直接继承上一任务
title + 追加角色后缀。导致 design 任务名变成「需求规格说明书(agent.design阶段)」
跟需求名混同;回退重做后更叠加成「...(回退重做)(agent.develop阶段)
(agent.deploy_test阶段)」越叠越长。
修:title 改按 next_role 的声明式 task_title 生成语义标题(项目名 + 阶段语义),
阶段模板由 RoleSpec.task_title 声明(design=应用架构与模块设计 / develop=应用脚手架开发 /
deploy_test=部署测试 / test=功能测试),代码不硬编码。
This commit is contained in:
parent
9bb1c5ce65
commit
8862d72a60
@ -947,7 +947,27 @@ async def _create_next_task(sor, project_id, task, next_role, pm_comment=''):
|
|||||||
params = json.loads(params_str) if isinstance(params_str, str) else params_str
|
params = json.loads(params_str) if isinstance(params_str, str) else params_str
|
||||||
except (json.JSONDecodeError, TypeError):
|
except (json.JSONDecodeError, TypeError):
|
||||||
params = {}
|
params = {}
|
||||||
new_title = f"{title}({next_role}阶段)"
|
# 标题:不再继承上一任务 title + 追加「({next_role}阶段)」——那是 title 继承 bug 的根源,
|
||||||
|
# 导致 design 任务名变成「需求规格说明书(agent.design阶段)」跟需求名混同,回退重做后更叠加成
|
||||||
|
# 「...(回退重做)(agent.develop阶段)(agent.deploy_test阶段)」。改为按 next_role 的声明式
|
||||||
|
# task_title 生成语义标题(项目名 + 阶段语义),阶段标题模板由 RoleSpec.task_title 声明。
|
||||||
|
stage = next_role
|
||||||
|
try:
|
||||||
|
pid = await _resolve_pipeline_id(project_id)
|
||||||
|
from pipeline_core import get_role_spec
|
||||||
|
spec = get_role_spec(pid, next_role)
|
||||||
|
if spec and getattr(spec, 'task_title', ''):
|
||||||
|
stage = spec.task_title
|
||||||
|
except Exception:
|
||||||
|
pass
|
||||||
|
pname = ''
|
||||||
|
try:
|
||||||
|
_p = await sor.sqlExe("SELECT name FROM sd_projects WHERE id=${pid}$", {"pid": project_id})
|
||||||
|
await sor.sqlExe("COMMIT", {})
|
||||||
|
pname = getattr(_p[0], 'name', '') if _p else ''
|
||||||
|
except Exception:
|
||||||
|
pname = ''
|
||||||
|
new_title = f"{pname} {stage}" if pname else stage
|
||||||
new_params = {**params, 'previous_role': _normalize_role(getattr(task, 'role', '')),
|
new_params = {**params, 'previous_role': _normalize_role(getattr(task, 'role', '')),
|
||||||
'previous_task_id': getattr(task, 'id', ''), 'pm_comment': pm_comment}
|
'previous_task_id': getattr(task, 'id', ''), 'pm_comment': pm_comment}
|
||||||
# 任务来源标记:系统自动派生(design→develop→deploy_test→test)都是「新开发」链,
|
# 任务来源标记:系统自动派生(design→develop→deploy_test→test)都是「新开发」链,
|
||||||
|
|||||||
@ -271,6 +271,7 @@ SDL_ROLES = [
|
|||||||
aliases=["requirements", "requirement_analysis"],
|
aliases=["requirements", "requirement_analysis"],
|
||||||
system_prompt="""你是需求分析师。先 load_skill 加载 role 技能,按其中的职责与应遵守规范执行任务。""",
|
system_prompt="""你是需求分析师。先 load_skill 加载 role 技能,按其中的职责与应遵守规范执行任务。""",
|
||||||
next_role="agent.design",
|
next_role="agent.design",
|
||||||
|
task_title="应用架构与模块设计",
|
||||||
),
|
),
|
||||||
RoleSpec(
|
RoleSpec(
|
||||||
name="agent.design",
|
name="agent.design",
|
||||||
@ -278,6 +279,7 @@ SDL_ROLES = [
|
|||||||
aliases=["designer", "ui", "ux"],
|
aliases=["designer", "ui", "ux"],
|
||||||
system_prompt="""你是系统设计师。先 load_skill 加载 role 技能,按其中的职责与应遵守规范执行任务。""",
|
system_prompt="""你是系统设计师。先 load_skill 加载 role 技能,按其中的职责与应遵守规范执行任务。""",
|
||||||
next_role="agent.develop",
|
next_role="agent.develop",
|
||||||
|
task_title="应用脚手架开发",
|
||||||
),
|
),
|
||||||
RoleSpec(
|
RoleSpec(
|
||||||
name="agent.develop",
|
name="agent.develop",
|
||||||
@ -285,6 +287,7 @@ SDL_ROLES = [
|
|||||||
aliases=["developer", "dev", "development", "coding"],
|
aliases=["developer", "dev", "development", "coding"],
|
||||||
system_prompt="""你是开发工程师。先 load_skill 加载 role 技能,按其中的职责与应遵守规范执行任务。""",
|
system_prompt="""你是开发工程师。先 load_skill 加载 role 技能,按其中的职责与应遵守规范执行任务。""",
|
||||||
next_role="agent.deploy_test",
|
next_role="agent.deploy_test",
|
||||||
|
task_title="部署测试",
|
||||||
),
|
),
|
||||||
RoleSpec(
|
RoleSpec(
|
||||||
name="agent.deploy_test",
|
name="agent.deploy_test",
|
||||||
@ -292,6 +295,7 @@ SDL_ROLES = [
|
|||||||
aliases=["deploy_staging", "staging"],
|
aliases=["deploy_staging", "staging"],
|
||||||
system_prompt="""你是测试环境部署工程师。先 load_skill 加载 role 技能,按其中的职责与应遵守规范执行任务。""",
|
system_prompt="""你是测试环境部署工程师。先 load_skill 加载 role 技能,按其中的职责与应遵守规范执行任务。""",
|
||||||
next_role="agent.test",
|
next_role="agent.test",
|
||||||
|
task_title="功能测试",
|
||||||
),
|
),
|
||||||
RoleSpec(
|
RoleSpec(
|
||||||
name="agent.test",
|
name="agent.test",
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user