Files
yixiong-claude-marketplace/plugins/zentao/skills/zentao-project/SKILL.md
T
SkyJourneyandClaude Sonnet 5 9d9e31c98e [feat] Add zentao plugin (Claude Code + Codex dual scaffold)
新增禅道项目管理系统插件,含项目集/产品/项目/执行、需求
(story/epic/requirement)、Bug、任务、测试、计划与发布、反馈工单
八个工作流技能,自动配置 MCP 连接(禅道「个人中心 → 获取凭证」
自助生成 14 天 Token)。

MCP Server 是团队自建的 zentao-mcp 网桥(部署在
pm.ops.yixiong-tech.com/mcp),基于开源 openapi-mcp-server 二次开发。
Claude 侧走 userConfig 钥匙链 + 自定义 token 头;Codex 侧受限于官方
插件格式只支持 bearer_token_env_var,走 Authorization: Bearer——网桥
那边已经加了 preferred_header/bearer_mode 配置项统一归一化处理,两条
路径都验证过连通。

三轮审查(静态字段对照 openapi.json、跨文件一致性、真实端点实测)
修正过程中发现的问题,技能文档里引用的工具名全部跟服务器真实注册
的 118 个工具核对过。

同步更新:.claude-plugin/marketplace.json、.agents/plugins/marketplace.json、
README.md、CLAUDE.md 的插件索引与说明;README 补充「获取凭证」操作
截图(已脱敏)。

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016pFx6jnym6kRWRQ5JyDUNv
2026-08-25 13:50:41 +08:00

4.3 KiB
Raw Blame History

name, description
name description
zentao-project 禅道项目集/产品/项目/执行管理:建项目集、建产品、建项目、建执行(迭代)、查层级关系。当用户说「建个产品」「开个新迭代」「这个项目集下有哪些产品」「项目状态」时使用。

禅道项目集 / 产品 / 项目 / 执行

前置:先读 zentao-shared(尤其"路径参数不出现在 inputSchema 里"和"ID 层级关系"两节)。


层级与挂靠关系

program 项目集(可选层)
 └─ product 产品(program 可选,可以不挂任何项目集独立存在)
     └─ project 项目(products 关联字段可选,parent 挂项目集也可选)
         └─ execution 执行/迭代(project 必填,execution 必须先有 project

只有 execution 是强制要有上级的project 字段必填);product 和 project 的上级 关联都是可选字段,不要假设"没传 program 就建不了产品"。


get_programs()                                  项目集列表
get_programs_programID_products(programID)      某项目集下的产品
get_programs_programID_projects(programID)      某项目集下的项目
get_products()                                  产品列表(全量)
get_products_productID(productID)               产品详情
get_projects()                                  项目列表(全量,无单条详情接口)
get_projects_projectID_executions(projectID)    某项目下的执行/迭代
get_executions()                                执行列表(全量)
get_executions_executionID(executionID)         执行详情

没有 get_projects_projectID(项目详情接口不存在,见 zentao-shared),要看单个 项目信息从 get_projects() 列表里按 ID 过滤。


建项目集

post_programs({ payload: { name, begin, end, PM?, desc? } })

name/begin/end 必填,日期格式以字段说明为准(一般是 YYYY-MM-DD)。


建产品

post_products({ payload: { name, program?, line?, type?, PO?, QD?, RD?, reviewer?,
                            acl?, desc? } })

只有 name 必填。type 取值受限:normal 正常 | branch 多分支 | platform 多平台; aclopen 公开 | private 私有——这两个字段写错值会被后端拒绝,不要凭直觉编。


建项目

post_projects({ payload: { name, model, begin, end, workflowGroup, products?, parent?, PM? } })

必填字段比产品多:name/model/begin/end/workflowGroup

model(项目管理方式)取值受限,创建前跟用户确认清楚要哪种: scrum 敏捷 | waterfall 瀑布 | kanban 看板 | agileplus 融合敏捷 | waterfallplus 融合瀑布

workflowGroup(项目流程)是付费版功能,开源版可以不传/传空。

parent 是挂靠到哪个项目集(可选);products 是关联的产品(可选,接受多个)。


建执行(迭代)

post_executions({ payload: { project, name, begin, end, lifetime?, days?, products?,
                              plans?, PO?, QD?, PM?, RD?, acl? } })

project/name/begin/end 必填——project 必填意味着建执行前必须先有一个项目 ID,用 get_projects() 查出来给用户确认要挂在哪个项目下。

lifetime(执行类型)取值:short 短期 | long 长期 | ops 运维。

plans(关联计划)如果要传,格式是"产品 ID + 计划 ID"的二维数组,不是单纯的 ID 列表, 具体结构以工具 inputSchema 为准。


改 / 删

put_programs_programID({ programID, payload: {...} })
put_products_productID({ productID, payload: {...} })
put_projects_projectID({ projectID, payload: {...} })
put_executions_executionID({ executionID, payload: {...} })

delete_programs_programID({ programID })     # 删除前必须确认,不可逆
delete_products_productID({ productID })
delete_projects_projectID({ projectID })
delete_executions_executionID({ executionID })

删除任意一层,其下挂靠的产品/项目/执行/需求/任务等大概率会受影响(具体级联行为以 禅道后端实际处理为准,MCP 这层不做二次拦截)——删除前跟用户明确说清楚删的是哪一层、 可能影响下面挂了什么,参考 zentao-shared 的"删除是不可逆操作"约定。