通过GraphQL操作工作项、项目、周期、标签与评论,覆盖创建查询转换全流程。
项目管理API集成是一项面向实际任务的技能,主要用于通过项目管理工具的 GraphQL API 操作工作项全生命周期,从创建到状态推进,覆盖项目、周期、标签、评论与关联管理;Agent平台 : 支持SKILL.md的任意AI Agent(Claude Code / Cursor / Codex / Gemini CLI等);
实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;
涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。
通过项目管理工具的 GraphQL API 操作工作项全生命周期,从创建到状态推进,覆盖项目、周期、标签、评论与关联管理。
| 依赖项 | 类型 | 是否必需 | 获取方式 |
|---|---|---|---|
| LLM API | API | 必需 | 由Agent内置LLM提供 |
需要配置对应API Key,详见上文环境配置章节
API Key配置方式:
export API_KEY="your_api_key_here"
配置后需重启会话或开启新终端生效。API Key应妥善保管,避免泄露到版本控制系统。
createIssue 创建工作项:含 title、description、teamId、priorityupdateIssue 更新工作项:状态、指派、估算、标签archiveIssue 归档工作项,保留历史但不显示在默认视图输入: 用户提供工作项管理所需的指令和必要参数。 处理: 按照skill规范执行工作项管理操作,遵循单一意图原则。
createProject 创建项目:含 name、description、teamIdsupdateProject 更新项目状态:planned、started、paused、completed、canceledprojectIssues 查询项目下所有工作项输入: 用户提供项目管理所需的指令和必要参数。 处理: 按照skill规范执行项目管理操作,遵循单一意图原则。
teams 查询所有团队:含 id、name、keyteam 查询单个团队详情:含 workflow、states、labels输入: 用户提供团队管理所需的指令和必要参数。 处理: 按照skill规范执行团队管理操作,遵循单一意图原则。
createCycle 创建周期:含 name、startsAt、endsAt、teamIdcycleIssues 查询周期内工作项updateIssue 的 cycleId 字段将工作项加入周期输入: 用户提供周期管理所需的指令和必要参数。 处理: 按照skill规范执行周期管理操作,遵循单一意图原则。
createLabel 创建标签:含 name、color、teamIdupdateIssue 的 labelIds 字段为工作项添加标签#E5484D 表示红色)处理: 按照skill规范执行标签管理操作,遵循单一意图原则。
createComment 创建评论:含 body、issueIdupdateComment 编辑评论,deleteComment 删除评论issueComments 查询工作项所有评论输入: 用户提供评论管理所需的指令和必要参数。 处理: 按照skill规范执行评论管理操作,遵循单一意图原则。
issueRelation 建立关联:type=blocks、is blocked by、relates to、duplicateissueRelations 查询工作项的所有关联输入: 用户提供工作项关联所需的指令和必要参数。 处理: 按照skill规范执行工作项关联操作,遵循单一意图原则。 输出: 返回工作项关联的执行结果,包含操作状态和输出数据。
teamWorkflow 查询团队工作流:含 states 与 transitionsupdateIssue 的 stateId 字段转换状态输入: 用户提供工作流状态所需的指令和必要参数。 输出: 返回工作流状态的执行结果,包含操作状态和输出数据。
createView 创建视图:含 name、query、filtersstatus = "In Progress" AND priority = 1views 查询所有视图,viewIssues 获取视图内工作项输入: 用户提供自定义视图所需的指令和必要参数。 处理: 按照skill规范执行自定义视图操作,遵循单一意图原则。
query 关键字,变更用 mutationfirst、after 参数,默认 first 50$variable 参数化,避免字符串拼接处理: 按照skill规范执行GraphQL查询构造操作,遵循单一意图原则。 输出: 返回GraphQL查询构造的执行结果,包含操作状态和输出数据。
本skill还覆盖以下能力场景: 操作工作项、标签与评论、覆盖创建查询转换、全流程、通过项目管理工具、API、操作工作项全生命、CRUD、评论与关联、工作流状态转换与、适用于独立开发者、企业团队、和自动化工作流场。这些能力在上述核心功能中均有对应处理逻辑。
本skill覆盖源skill的以下能力点:
| 源能力点 | 支持状态 | 实现方式 |
|---|---|---|
| Cycles | 支持 | 通过核心功能实现对应能力 |
| Organization | 支持 | 通过核心功能实现对应能力 |
输入: 用户提供源能力映射所需的指令和必要参数。 处理: 按照skill规范执行源能力映射操作,遵循单一意图原则。 输出: 返回源能力映射的执行结果,包含操作状态和输出数据。
本skill涉及以下领域术语: before, list, oauth, permissions, 系统连接时使用, post, 不适用于逆向工程, uuids, authorization, getting, 接口对接, verify, content, homebrew, correct
处理: 按照skill规范执行领域术语操作,遵循单一意图原则。 输出: 返回领域术语的执行结果,包含操作状态和输出数据。
| 场景 | 输入 | 输出 |
|---|---|---|
| 创建工作项 | title+teamId+priority | 工作项对象(含 id、identifier) |
| 周期规划 | 工作项列表+周期名 | 周期 ID + 工作项更新结果 |
| GraphQL查询 | 查询语句 | 匹配工作项列表(first 50) |
| 状态转换 | issueId + stateId | 更新后工作项状态 |
| 项目进度 | projectId | 项目工作项完成率 |
不适用于:项目管理工具配置(工作流设计、团队设置)、SSO配置、账单管理。
createIssue 创建工作项,填 title、teamId、priorityupdateIssue 关联项目、周期、标签createCycle 规划周期,将工作项加入query 配合筛选跟踪进度updateIssue 的 stateId 推进工作流状态-uuid-in-progress: 命令参数,用于指定操作选项-W30: 命令参数,用于指定操作选项-uuid-feature: 命令参数,用于指定操作选项-uuid-789: 命令参数,用于指定操作选项-uuid-456: 命令参数,用于指定操作选项结果处理: 执行完成后,查看输出结果确认操作状态。成功时输出包含处理摘要和结果数据;失败时根据错误信息排查问题,参考错误处理章节获取恢复步骤。
-W30: 命令参数,用于指定操作选项-W30: 命令参数,用于指定操作选项-W30: 命令参数,用于指定操作选项-W30: 命令参数,用于指定操作选项-W30: 命令参数,用于指定操作选项-W30: 命令参数,用于指定操作选项-W30: 命令参数,用于指定操作选项-W30: 命令参数,用于指定操作选项mutation {
issueCreate(input: {
title: "实现用户登录接口"
description: "支持邮箱+密码登录,返回JWT"
teamId: "team-uuid-123"
priority: 1
estimate: 5
labelIds: ["label-uuid-feature"]
}) {
success
issue {
id
identifier
title
state { name }
}
}
}
// 返回: {"success": true, "issue": {"id": "issue-uuid-456", "identifier": "ENG-101", "title": "实现用户登录接口", "state": {"name": "Triage"}}}
query {
team(id: "team-uuid-123") {
issues(first: 50, filter: {
state: { type: { eq: "started" } }
priority: { lte: 1 }
}) {
nodes {
identifier
title
priority
estimate
assignee { name }
state { name }
}
}
}
}
mutation {
cycleCreate(input: {
name: "Cycle 2026-W30"
startsAt: "2026-07-21"
endsAt: "2026-08-04"
teamId: "team-uuid-123"
}) {
success
cycle { id number }
}
}
// 返回: {"success": true, "cycle": {"id": "cycle-uuid-789", "number": 30}}
// 将工作项加入周期
mutation {
issueUpdate(input: {
id: "issue-uuid-456"
cycleId: "cycle-uuid-789"
}) { success }
}
mutation {
issueUpdate(input: {
id: "issue-uuid-456"
stateId: "state-uuid-in-progress"
}) {
success
issue { state { name type } }
}
}
// 返回: {"success": true, "issue": {"state": {"name": "In Progress", "type": "started"}}}
| 错误场景 | 原因 | 处理方式 |
|---|---|---|
| API Key 无效(401 Unauthorized) | key 过期或权限不足 | 重新生成 API Key,确认 key 对目标团队有读写权限 |
| GraphQL 语法错误(400 Bad Request) | 字段名拼写错误或类型不匹配 | 检查 mutation/query 结构,确认字段名与枚举值合法 |
| teamId 不存在(404 Not Found) | 团队 ID 拼写错误或已删除 | 用 query { teams { id name key } } 验证 teamId |
| 周期已关闭无法添加工作项 | 周期状态为 past | 创建新周期或将工作项移到下个 upcoming 周期 |
| 优先级值越界 | priority 取值非 0-4 | 确认 priority 为整数 0-4,0=紧急、4=无;不要传字符串 |
| 自定义字段 ID 错误 | 不同团队字段配置不同 | 用 query { team(id: ...) { workflow { states } } } 反查 stateId |
| 关联循环引用 | A blocks B 且 B blocks A | 检查关联方向,blocks 与 is blocked by 不可同时存在形成环 |
A: 0=priorityUrgent(紧急)、1=priorityHigh(高)、2=priorityMedium(中)、3=priorityLow(低)、4=priorityNone(无)。创建工作项时传整数,查询时返回对应枚举标签。
A: 默认 first: 50。需要更多时显式传 first: 100(上限250),并用 after 游标分页:issues(first: 50, after: "cursor-xyz")。
A: 与故事点一致,用斐波那契数列:1、2、3、5、8、13。也可配置为任意整数,但建议团队统一数列便于速率对比。
updateIssue 的 stateId 与 state name 有何区别?A: stateId 是状态的唯一标识(如 state-uuid-123),state name 是显示名(如 "In Progress")。updateIssue 必须用 stateId,不能用 name。用 teamWorkflow 查询获取所有 stateId。
issueRelation 的 blocks 与 is blocked by 有何区别?A: 方向相反。A blocks B 表示 A 阻塞 B(B 等 A 完成);A is blocked by B 表示 A 被 B 阻塞(A 等 B 完成)。建立关联时需明确方向,否则依赖图会反,且不可形成循环。
A: createCycle 时指定 startsAt 与 endsAt,可设为7天或30天。建议团队统一周期长度,避免不同周期影响速率(burndown)对比。过去周期不可修改,只能创建新周期。
相关专题
热门下载
相关下载
精品课程
共6课时 | 54.7万人学习
共89课时 | 134.3万人学习
共49课时 | 82.7万人学习
最新文章