mcpField
C
cawplan-requirement-analyze

cawplan-requirement-analyze

github.com/cawcut测试与质量1141 次安装2 天前更新
代码仓库

关于 cawplan-requirement-analyze

cawplan-requirement-analyze 是面向 SQA 需求分析的 Agent skill,可将工单、文字和截图整理为结构化需求,并提供修订及归档流程。

主要功能

  1. 01收集需求素材
  2. 02五字段需求分析
  3. 03跟踪待确认问题
  4. 04按反馈修订草稿
  5. 05衔接 CawPlan 归档

适用场景

  1. 01将工单内容整理为结构化需求
  2. 02分析需求文字和截图
  3. 03根据 SQA 反馈修订草稿
  4. 04准备将需求归档到 CawPlan

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/cawcut/skill-cawplan --skill cawplan-requirement-analyze

安装后在 Claude Code 中输入/cawplan-requirement-analyze确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
output-confirmation.md
rules-global.md
terminology-en.md
workflow-analysis.md
workflow-archive.md
workflow-revise.md
workflow-save.md
workflow-step1-material.md

详细介绍

CawPlan Requirement Analyze

输出语言

按以下优先顺序确定本轮输出语言;下文「用户主语言 / 会话语言」均指此结果:

  1. 用户明确指定输出语言 → 按指定语言。
  2. 用户提供自然语言要求 → 跟随该要求的主语言。
  3. 用户仅提供链接 / 工单号、没有自然语言要求 → 读取工单后,按 description 与去除 HTML 后的 remarks 的主语言输出。
  4. 以上仍无法确定 → 沿用已有会话语言;无历史会话语言时默认英文。

Skill 说明与示例的语言、命令名、URL、工单号、Product info 均不参与语言判断。五字段标题与正文、推断标记、展示摘要、存疑清单、确认框及引导 / 回执统一使用选定语言;禁止同一段中英各写一遍。英文出稿前须按 references/workflow-analysis.md step 3 读取英文术语表。

Bootstrap

cawplan skill check

Read discipline (lazy-load)

上下文判定:模型无法可靠感知静默裁剪。凡跨用户消息(新 invoke)且将进入 P4 / P1b / P2′ / P5 / P6,一律 presume 所需 reference 不在上下文,须 Read;禁止凭「本会话 earlier 读过」免读。 唯一可免读:本 agent 同一响应内刚通过 Read 工具载入该文件全文,且尚未结束该响应。 拿不准是否仍在上下文 → 按不在处理,Read。 行为上 step 6(仅未绑定草稿)始终 Re-run steps 3–5(422 行);免读只省 Read 工具,不省重跑行为。已绑定(有 bound_requirement_id)的修改不走 step 6,见 P1b。

禁止在判定工作路径之前批量读取 references/。

Read 条件(与上默认一致,细化路径):

  1. 新 invoke 且路径为 P3/P4/P1b/P2′/P5/P6 → Read 路径表所列文件(P4 等默认必读 analysis + rules,除非满足上段「同一响应内刚 Read」)。
  2. 同一会话、同一 agent 响应内刚 Read 过且全文仍在该响应上下文 → 可不重复 Read;仍须 Re-run 3–5 与复用首次措辞(159 行)。
  3. 「全文仍确定在当前上下文」由 Agent 自行认定 → 删除;改用上「默认安全侧」。
路径条件Read(跨用户消息时 默认必读;仅「同一响应内刚 Read」可免)
P0 · 零素材早停step 1 判定无任一素材不读;stop
P1 · 冷交接(仅载入)延续已归档,本条不改字段workflow-archive.md
P1b · 已绑定后编辑(冷交接绑定后,或 create 成功后)有 bound_requirement_id,SQA 改需求内容 / 摘要 / 工单archive + rules + confirmation;需求内容走 11b-MD,摘要/工单走 11b-PATCH;不重跑 3–5
P2 · 接力直归档resume_intent,本条不改草稿save + archive + rules + confirmation
P2′ · 接力后改草稿resume_intent + 改字段同 P4(新 invoke 必读 analysis + rules)
P3 · 新分析有素材、非冷交接step1-material → analysis → rules → Output
P4 · 修订未绑定草稿:改字段/摘要,未触发保存闸新 invoke 必读 analysis + rules + revise + Output;同响应内可免重复 Read
P5 · 保存保存意图闸 / resume_intentsave + archive + rules + confirmation
P6 · UNKNOWNpending_write / UNKNOWNarchive + rules + confirmation;始终 Read

路径重判:每条用户消息开始时重判路径。

归档后测试点热交接(优先于 step 1) — 本条为「马上生成测试点」(或同义,见 cawplan-testpoint-generate P2),且会话已有有效 binding(product_id + requirement_id / bound_requirement_id)?

  • 是 → 读 cawplan-testpoint-generate skill,按 P2 热交接续跑(stop 本 skill 后续步骤)。
  • 否 → 继续下方 Workflow。

Workflow

1. Collect requirement material

入口路由前置检查(先判此项,再收素材) — SQA 的意图是延续 / 修改一条已归档的 Requirement(给出 requirement id、REQ- display ID、Requirement 链接,或说「接着上次那条改」)?

  • 是 → 走 step 10 Cold handoff 只做绑定(不载入五字段草稿),不要从头重分析。理由:需求内容以服务端的需求 Markdown 为准,修改是全文覆盖,从头重分析会丢掉用户在 Markdown 里手改的内容;修改走 workflow-archive.md 的 11b-MD。
  • 否(新需求分析)→ 继续本步收集素材。

裸 REQ- + 数字及 /browse/product/{product_key}/qa/requirement/{display_id} 是已归档 Requirement 引用,优先走 Cold handoff;不要把它当成 step 1 的 Ticket display ID。其他前缀的工单号仍按 Ticket material 处理。

零素材早停(新增) — 判定本条消息是否带有任一素材:用户文字、工单(URL / display ID / unique ID)、截图。(Product info 不计入素材 — 仅有 overview、无任何上述三类 → 仍走零素材早停。)

  • 全无 → 只输出下方引导文案,然后 stop;禁止进入 step 2–5(否则会产出全「(素材未提及)」废稿)。
  • 有任一 → 继续下方 Accept any mix of,不弹窗。

输出纪律(零素材分支) — 内部脚手架,不呈现给 SQA:

  • 只输出引导文案块本身——禁止在其前或其后加任何说明、过渡句或复述判定过程。
  • 禁止出现类似:「根据入口路由检查…」「当前会话没有素材…」「按照流程规则,我需要先请求素材…」「零素材早停」等字样。
  • 不要解释你在检查什么、为什么停下;SQA 只看到引导文案,与下方示例一致。

引导文案(仅此块逐字输出给用户,保留编号列表格式):

想分析需求?给我下面任一样就能开始:

  1. 需求文字描述
  2. 工单链接 / 工单号
  3. 相关截图 / 设计稿(可多张)

三样都给,信息会更完整,我会先整理成一份完整需求给你确认。

Want a requirement analyzed? Give me any one of these to start:

  1. Requirement text description
  2. Ticket link / ticket number
  3. Related screenshots / mockups (multiple OK)

Providing all three gives more complete information — I'll draft a full requirement for you to confirm first.

(结尾不提归档/保存。纯文字,不用 AskUserQuestion。跟随会话语言只输出中文或英文其中一版,不要两版同时输出。)

边界:只贴工单链接 = 有素材,按下方 ticket 解析;裸 issue URL 且无分析意图 → 仍走 Rules Trigger boundary(cawplan-ticket-context),不走零素材分支。

工作流索引 + Read 钩子

步骤 N 前:每条新用户消息到来时,读取 references/<file>.md,除非你已在本次 Agent 响应中通过 Read 加载该文件;然后应用步骤 N 规则。

步骤摘要Read 钩子
1(有素材)收集素材新 invoke:read references/workflow-step1-material.md
1 冷交接绑定已归档(不载入草稿)新 invoke:read references/workflow-archive.md;随后编辑 → P1b
2–5b出稿管线新 invoke:read references/workflow-analysis.md + references/rules-global.md
6修订(仅未绑定草稿;已绑定走 11b)必须重新运行 3–5。新 invoke:read analysis + rules + revise
7–8保存准备新 invoke:read references/workflow-save.md
10–11绑定/归档新 invoke:read references/workflow-archive.md;P6 始终 read
输出呈现格式新 invoke:read references/output-confirmation.md 对应节
步骤 → 文件定位表(补全交叉引用,不改原文指称)
文内指称所在 reference
step 2 / Numeric cross-source checkreferences/workflow-analysis.md
step 3 / 固定措辞表 / 表外句式references/workflow-analysis.md
step 4 / 展示摘要references/workflow-analysis.md
step 4b / 漏测自检references/workflow-analysis.md
step 5 / 判据 1 / 数值限制型存疑 / walkthroughreferences/workflow-analysis.md
step 5b / 呈现尾巴references/workflow-analysis.md
step 6 修订正文references/workflow-revise.md;保存意图闸 → 主文件
step 7–8 / §8 模块树references/workflow-save.md
step 10–11 / Table A/B / Command outcomesreferences/workflow-archive.md
Rules 总则 / 红线 0 / 枚举完整性 / Failures / API scopereferences/rules-global.md
Rules Trigger boundary / 跨 skill 接力主文件(热路径)
Output / Confirmationreferences/output-confirmation.md

步骤 1 前(有素材分支):每条新用户消息到来时,读取 references/workflow-step1-material.md,除非你已在本次 Agent 响应中通过 Read 加载该文件;然后应用步骤 1 素材规则。

步骤 1 前(冷交接分支):每条新用户消息到来时,读取 references/workflow-archive.md,除非你已在本次 Agent 响应中通过 Read 加载该文件;然后应用步骤 10 冷交接规则。

2–5b. 分析管线(步骤 2–5b)

步骤 2–5b 前:每条新用户消息到来时,读取 references/workflow-analysis.md 和 references/rules-global.md,除非你已在本次 Agent 响应中通过 Read 加载这些文件;然后应用步骤 2–5b 规则。

详情:references/workflow-analysis.md — 标记来源(步骤 2)、五字段草稿(步骤 3)、展示摘要(步骤 4)、漏测自检(步骤 4b)、待解决问题列表(步骤 5)、五字段呈现尾巴(步骤 5b)。

分析输出前:每条新用户消息到来时,读取 references/output-confirmation.md(Output 节),除非你已在本次 Agent 响应中通过 Read 加载该文件。强制要求——在输出任何 Output 文本前,必须调用该文件的 Read 工具;在其他位置看到类似格式(例如 workflow-analysis.md)不能替代此次 Read。

6. 根据 SQA 反馈修订

先判断会话是否有 bound_requirement_id:

  • 已绑定 → 跳过 steps 3–5b,执行 references/workflow-archive.md 中的 11b-MD(修改需求内容)/ 11b-PATCH(修改 summary / ticket_id);读取 archive + rules + confirmation,不读取 analysis。
  • 未绑定(新需求、接力入站的未保存草稿)→ 沿用现有五字段草稿路径,不变:

在 step 6 前:每收到一条新用户消息,都要读取 references/workflow-analysis.md、references/rules-global.md 和 references/workflow-revise.md,除非已在本次 Agent 响应中通过 Read 读取过这些文件;然后应用 step 6 规则。每轮修订后都要重新运行 steps 3–5 + step 5b tail。

详情:references/workflow-revise.md。

保存意图闸门 — 仅当满足以下任一条件时,才进入 steps 7+:

路径条件
口头SQA 表示「保存到 CawPlan」或同义说法,如「存到 CawPlan」「保存需求」
识别兼容(用于识别,不要提示 SQA 这样说)可以了、存吧、提交、归档
接力入站会话有 resume_intent(testpoint | testcase)——Rules 跨 skill 接力;不是 A1 口头触发词

不要将 马上保存 列为 A1 口头触发词——它是 A2/A3 框2的选项标签,会通过 resume_intent 接力路由,而不是独立的 A1 口头触发词。

在触发保存意图前:不要调用 products list,不要调用 qa-insights module-tree get,不要推荐挂载节点。

展示层:五字段尾部和引导语使用「保存到 CawPlan」;识别层可以接受旧版说法。

7–8. 保存准备(steps 7–8)

在 steps 7–8 前:每收到一条新用户消息,都要读取 references/workflow-save.md,除非已在本次 Agent 响应中通过 Read 读取过该文件;然后应用 steps 7–8 规则。

详情:references/workflow-save.md — 解析产品(step 7),从已有 module-tree 中选择挂载位置(step 8)。

10–11. 绑定并归档(steps 10–11)

在 steps 10–11 前:每收到一条新用户消息,都要读取 references/workflow-archive.md,除非已在本次 Agent 响应中通过 Read 读取过该文件;然后应用 steps 10–11 规则。P6 UNKNOWN:务必读取 references/workflow-archive.md。

详情:references/workflow-archive.md — 绑定需求上下文(step 10)、协调(step 10b)、归档或更新(step 11)、命令执行结果、正文编写规则。

归档 Confirmation 前:每收到一条新用户消息,都要读取 references/output-confirmation.md 的 Confirmation 部分,除非已在本次 Agent 响应中通过 Read 读取过该部分。强制要求 — 输出任何 Confirmation 文本前,必须调用 Read 工具读取此文件;不要凭记忆或临时编写成功/失败回执。

Rules (hot path — full rules in references/rules-global.md)

  • Trigger boundary: this skill is for SQA requirement analysis and QA Insights archiving — not for loading a ticket into a coding session. If the user only pasted a CawPlan issue URL with no analysis intent, stop and use cawplan-ticket-context instead. Ticket links are material here only when the user also wants five-field analysis or archive.
  • 跨 skill 接力(入站 / 出站):
    • 入站(来自「生成测试点」或「生成用例」框,且会话已有五字段草稿):跳过 step 1–6,直接从 step 7(Resolve product)/ 归档闸 step 11 继续;不得从头重分析(措辞漂移会破坏 reconcile / snapshot diff)。入站(resume_intent)本身即保存意图;不在入站前向 SQA 重复五字段尾巴里的保存引导。
    • 入站挂载节点:若接力已带 module_tree_node_id,按方案「已确定挂载节点直接用,不重问」— 跳过 §8 选位置闭环,直接进入 step 11(保留 step 11 乙式确认闸,因无 §8 确认)。
    • 入站冷启动(无五字段草稿):从 step 1 正常收素材。
    • 出站:归档或更新 outcome: SUCCESS 后,若会话存在 resume_intent(testpoint | testcase),回写 product_id + requirement_id(= bound_requirement_id),读取并清除 resume_intent,回到发起方 skill 从其 §2 refresh 续跑;不追加 §6 测试点引导(已自动回流);不停在本 skill 等下一条指令。
    • 归档后测试点引导:§6 成功回执末尾可选追加一句(见 output-confirmation.md §6 末尾引导);用户回「马上生成测试点」→ 读 cawplan-testpoint-generate skill(P2 热交接);不接茬则不重复提示。
    • §8 选位置确认后(location_confirmed)→ step 11 跳过乙式保存/更新确认,直接写入;§8 被跳过的路径(接力已带节点、冷交接未重选位置)→ 保留 step 11 乙式确认闸。

入站「跳过 step 1–6」的范围:仅指接力入站后首轮自动路由至 step 7 / step 11(保存),不是禁止 step 6。若 SQA 在保存确认前(未绑定草稿)提出五字段/摘要/存疑修改 → 仍走 step 6(P2′),Re-run steps 3–5;不是从素材重分析(对照 step 1 第 27 行、Rules 920「不得从头重分析」)。

References

Skill references(Mandatory read — 见 Read discipline)
  • references/workflow-step1-material.md — step 1 素材:ticket lookup、截图、Product info
  • references/workflow-analysis.md — steps 2–5b:五字段、展示摘要、漏测自检、存疑清单、呈现尾巴、固定措辞表
  • references/workflow-revise.md — step 6:SQA 修订轮(须与 analysis + rules 同读)
  • references/workflow-save.md — steps 7–8:产品解析、已有模块树选择闭环
  • references/workflow-archive.md — steps 10–11、Command outcomes、Write body rules;Cold handoff;P6 reconcile
  • references/rules-global.md — 总则、红线 0、枚举完整性、Failures、API scope 等(全文 889–924)
  • references/output-confirmation.md — 分析 Output 格式;归档 Confirmation 文案
Repository references
  • references/CAWPLAN_OPEN_API.md — §15 QA Insights APIs (field/schema reference only — invoke via cawplan qa-insights CLI); §2 Product APIs (Get Product Overview → cawplan products overview; product resolution at save) and §4 Ticket APIs for ticket material.

评论

支持 Markdown