Files
Agent-System/internal/workflowdef/manifests/software_delivery.v2.json
T
weichenandCursor dba8139d56 feat(workflow): namespace task keys without breaking old instances
Published manifests now use bd_/pm_/tm_/sw_ prefixes so workflows cannot share a doc id. Frozen instances keep the old keys; lookup, templates, and duty checks treat the two names as the same task.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-19 10:50:25 +00:00

170 lines
5.0 KiB
JSON

{
"schema_version": 2,
"workflow_key": "software_delivery",
"product_domains": [
"non_medical_software"
],
"required_upstream_workflow": "",
"stages": [
{
"key": "D0_change_definition",
"name": "D0 变更定义",
"position": 10,
"optional": false,
"manual_gate": true,
"doc_tasks": [
{
"key": "sw_change_brief",
"title": "变更简报",
"default_enabled": true,
"creator_configurable": false,
"blocking_when_enabled": true,
"executor_key": "software.doc.v1",
"quality_gate_key": "quality.generic.v1",
"output_doc_type": "sw_change_brief",
"output_doc_title": "变更简报"
},
{
"key": "sw_implementation_plan",
"title": "实施计划",
"default_enabled": true,
"creator_configurable": false,
"blocking_when_enabled": true,
"executor_key": "software.doc.v1",
"quality_gate_key": "quality.generic.v1",
"output_doc_type": "sw_implementation_plan",
"output_doc_title": "实施计划"
}
]
},
{
"key": "D1_implementation_evidence",
"name": "D1 实施证据",
"position": 20,
"optional": false,
"manual_gate": true,
"doc_tasks": [
{
"key": "sw_change_manifest",
"title": "变更清单",
"default_enabled": true,
"creator_configurable": false,
"blocking_when_enabled": true,
"executor_key": "software.doc.v1",
"quality_gate_key": "quality.generic.v1",
"output_doc_type": "sw_change_manifest",
"output_doc_title": "变更清单"
},
{
"key": "sw_adr_delta",
"title": "架构决策增量",
"default_enabled": false,
"creator_configurable": true,
"blocking_when_enabled": true,
"executor_key": "software.doc.v1",
"quality_gate_key": "quality.generic.v1",
"output_doc_type": "sw_adr_delta",
"output_doc_title": "架构决策增量"
}
]
},
{
"key": "D2_verification",
"name": "D2 验证",
"position": 30,
"optional": false,
"manual_gate": true,
"doc_tasks": [
{
"key": "sw_test_report",
"title": "测试报告",
"default_enabled": true,
"creator_configurable": false,
"blocking_when_enabled": true,
"executor_key": "software.doc.v1",
"quality_gate_key": "quality.generic.v1",
"output_doc_type": "sw_test_report",
"output_doc_title": "测试报告"
},
{
"key": "sw_security_review",
"title": "安全审查",
"default_enabled": true,
"creator_configurable": true,
"blocking_when_enabled": true,
"executor_key": "software.doc.v1",
"quality_gate_key": "quality.generic.v1",
"output_doc_type": "sw_security_review",
"output_doc_title": "安全审查"
}
]
},
{
"key": "D3_release",
"name": "D3 发布",
"position": 40,
"optional": false,
"manual_gate": true,
"doc_tasks": [
{
"key": "sw_release_plan",
"title": "发布计划",
"default_enabled": true,
"creator_configurable": false,
"blocking_when_enabled": true,
"executor_key": "software.doc.v1",
"quality_gate_key": "quality.generic.v1",
"output_doc_type": "sw_release_plan",
"output_doc_title": "发布计划"
},
{
"key": "sw_release_notes",
"title": "发布说明",
"default_enabled": true,
"creator_configurable": false,
"blocking_when_enabled": true,
"executor_key": "software.doc.v1",
"quality_gate_key": "quality.generic.v1",
"output_doc_type": "sw_release_notes",
"output_doc_title": "发布说明"
}
]
},
{
"key": "D4_learning",
"name": "D4 学习",
"position": 50,
"optional": false,
"manual_gate": true,
"doc_tasks": [
{
"key": "sw_retrospective",
"title": "复盘",
"default_enabled": true,
"creator_configurable": false,
"blocking_when_enabled": true,
"executor_key": "software.doc.v1",
"quality_gate_key": "quality.generic.v1",
"output_doc_type": "sw_retrospective",
"output_doc_title": "复盘"
},
{
"key": "sw_backlog_delta",
"title": "Backlog 增量",
"default_enabled": true,
"creator_configurable": true,
"blocking_when_enabled": true,
"executor_key": "software.doc.v1",
"quality_gate_key": "quality.generic.v1",
"output_doc_type": "sw_backlog_delta",
"output_doc_title": "Backlog 增量"
}
]
}
],
"completion_policy": {
"repeatable": true,
"auto_start_next": false
}
}