# 云效迭代 → 需求清单(AutoVUL 取数) 测试人员只提供**迭代名称**;Agent 负责在云效定位迭代、拉取关联需求、抽出更新素材。 ## 安全边界(强制) - **禁止**在对话、Skill、日志、成稿中写入 Token、密码、Cookie、私钥。 - 优先复用**已登录浏览器会话**操作云效 Projex(与 `yunxiao-requirement-lifecycle` 一致)。 - 若团队已配置本机环境变量访问 OpenAPI,可走 API;Token 只读自环境,永不回显。 建议环境变量(可选,名称可按团队调整): | 变量 | 用途 | |------|------| | `YUNXIAO_TOKEN` | 个人访问令牌(`x-yunxiao-token`) | | `YUNXIAO_DOMAIN` | 服务接入点域名 | | `YUNXIAO_ORG_ID` | 组织 ID(中心版) | | `YUNXIAO_PROJECT_ID` | 默认项目 ID(或运行时按项目名解析) | ## 默认项目 口令未指定时:`统一运营管理平台PC端`。项目名不精确时先问清再查迭代。 ## 判定顺序:解析迭代 | 顺序 | 条件 | 结果 | |------|------|------| | 1 | 用户未给迭代名称 | 询问:「请输入云效迭代名称(可复制标题)」;不继续 | | 2 | 项目未确定 | 询问精确项目名;不继续 | | 3 | 云效不可访问 | `❌ 无法访问云效…`;不继续 | | 4 | 名称精确匹配 1 条迭代 | `✅ 已找到迭代…`;进入拉需求 | | 5 | 0 条 | `❌ 未找到迭代…请重新输入`;不继续 | | 6 | >1 条相似 | `⚠️ 多个相似…请回复序号或精确名称`;等用户选定 | | 7 | 命中但关联需求 0 | `⚠️ …暂无关联需求`;不生成对外正文 | 匹配规则:先**全等**(去首尾空格);全等失败再做包含/去空格模糊;模糊多条必须让用户确认,禁止擅自挑一个。 ## 拉取关联需求 只收集工作项类型为**需求(Req)**且正式关联到该迭代的项。 - **浏览器路径**:打开项目 → 迭代 → 该迭代规划/工作项列表 → 筛选类型=需求 → 导出或逐条打开描述。 - **OpenAPI 路径(示意)**: 1. `ListSprints`:按项目列迭代,用 `name` 匹配用户输入,得到 `sprintId` 2. `SearchWorkitems`:`category=Req`,`spaceId=项目Id`,`conditions` 中按字段 `sprint` CONTAINS `[sprintId]`(以租户实际 fieldIdentifier 为准;可先在需求列表页过滤后复制 `workitem/list` 的 conditions) 3. 分页直到收齐(关注响应头 `x-total`) 4. 需要正文时再 `GetWorkitem` 取 description 每条需求最少记录: | 字段 | 说明 | |------|------| | serialNumber | 如 ONEOSP-123(仅用于核对清单,**不进对外成稿**) | | subject | 标题 | | status | 状态展示名 | | description | 用于抽取「更新内容」 | | category / type / labels | 辅助判断新功能 vs 修复 | ## 从描述抽「更新内容」 1. 定位标题「更新内容」或「## 更新内容」段落 2. **不要**把「更新内容·历史」并入本版素材(历史仅备查) 3. 若无「更新内容」:用标题 + 需求说明摘要;仍无有效产品语义则跳过并在内部备注 ## 成功反馈后的核对清单(推荐短表) 在生成成稿前输出,例如: ```text ✅ 已找到迭代「V1.1.5发版迭代」(进行中),关联需求 5 条: 1. ONEOSP-101 保险采购比价分车提交 2. ONEOSP-102 交还车签章预览 … 正在按 AutoVUL 格式生成更新日志… ``` 用户若立刻纠正「某条不要进日志」,从素材中剔除后再出成稿。 ## 与发版任务关系 本 Skill **只读**迭代与需求,**不创建**【发版】任务、不改云效状态。发版挂链仍用 `yunxiao-requirement-lifecycle`(如「准备发布」口令 / A08)。