Follow the user's primary languageGenerate the copy; do not write the same paragraph once in English and once in Chinese.
Bootstrap
cawplan skill check
Read discipline (lazy-load)
Context determination: The modelcannot reliably perceivesilent truncation. Whenever crossing auser message(new invoke) and about to enter P4 / P1b / P2′ / P5 / P6,always presume the required reference is not in context, and must Read;it is prohibitedto skip reading on the grounds of "read earlier in this session". The only case where reading may be skipped: this agent within the same responsehas just loaded the full text of that file via the Read tool, and that response has not yet ended. If unsurewhether it is still in context → treat it asnot in contextand Read. Behaviorally, step 6 always Re-run steps 3–5 (422 lines); skipping the read only saves the Read tool,notthe re-run behavior.
Prohibitedto batch-read before determining the work path references/。
Read conditions(consistent with the above default, with refined paths):
- New invoke and the path is P3/P4/P1b/P2′/P5/P6 → Read the files listed in the path table (P4 etc.must be read by default analysis + rules, unless the previous paragraph's "just Read within the same response" is satisfied).
- Within the same session, within the same agent responseif it was just Read and the full text is still in that response's context → Read need not be repeated; steps 3–5 must still be Re-run and the first wording reused (159 lines).
- "The full text is still definitely in the current context" is determined by the Agent itself → delete; use the above "default safe side" instead.
| Path | Condition | Read (when crossing user messages, required by default; only "just Read within the same response" may be exempt) |
|---|---|---|
| P0 · Zero-material early stop | step 1 determines there is no material of any kind | do not read;stop |
| P1 · Cold handoff (load only) | continuation already archived, this item does not change fields | workflow-archive.md |
| P1b · Edit after cold handoff | SQA changes fields after P1 | analysis + rules + revise + Output; Re-run 3–5 |
| P2 · Relay direct archive | resume_intent, this item does not change the draft |
save + archive + rules + confirmation |
| P2′ · Change draft after relay | resume_intent + change fields |
Same as P4(new invoke must read analysis + rules) |
| P3 · New analysis | has material, not a cold handoff | step1-material → analysis → rules → Output |
| P4 · Revision | change fields/summary, save gate not triggered | new invoke must read analysis + rules + revise + Output; repeated Read within the same response may be skipped |
| P5 · Save | save intent gate / resume_intent |
save + archive + rules + confirmation |
| P6 · UNKNOWN | pending_write / UNKNOWN |
archive + rules + confirmation;always Read |
Path re-determination: re-determine the path at the start of each user message.
Hot handoff for test points after archiving (takes precedence over step 1) — this item is "generate test points immediately" (or synonymous, see cawplan-testpoint-generate P2), and the session already has a valid binding (product_id + requirement_id / bound_requirement_id)?
- Yes → read
cawplan-testpoint-generateskill, continue via P2 hot handoff (stop subsequent steps of this skill). - No → continue with the Workflow below.
Workflow
1. Collect requirement material
Entry routing pre-check (evaluate this item first, then collect materials) — SQA's intent isContinue / modify an already-archived Requirement(given a requirement id、REQ- display ID, Requirement link, or saying "continue with the one from last time")?
- Yes → go to step 10 Cold handoff load the server-side five fields as the draft baseline,do not re-analyze from scratch. Reason: archive comparison (
reconcilestrong match andrequirements updatesnapshot diff) is byte-for-byte exact comparison after trim, re-analyzing from scratch will inevitably produce wording drift, causing reconcile to misjudgeno_match(risk of duplicate ticket creation) or PATCH to falsely report changed keys. - No(new requirement analysis) → continue with this step to collect materials.
Bare REQ- + digits and /browse/product/{product_key}/qa/requirement/{display_id} are references to an already-archived Requirement; prefer Cold handoff; do not treat it as a step 1 Ticket display ID. Ticket numbers with other prefixes are still handled as Ticket material.
Zero-material early stop (new) — determine whether this message carriesanymaterial: user text, ticket (URL / display ID / unique ID), screenshot. (Product info does not count as material — if there is only an overview and none of the above three types → still go to zero-material early stop.)
- None at all → onlyoutput the guidance text below, then
stop;forbiddento enter steps 2–5 (otherwise it will produce an entirely "(not mentioned in materials)" junk draft). - Any one → continue with
Accept any mix ofbelow, without popping up a dialog.
Output discipline (zero-material branch) — internal scaffolding,notpresented to SQA:
- Onlyoutput the guidance text block itself —forbiddento add any explanation, transitional sentence, or restatement of the decision process before or after it.
- Forbiddento have wording such as: "According to the entry routing check…", "The current session has no materials…", "According to the process rules, I need to request materials first…", "zero-material early stop", etc.
- Do not explain what you are checking or why you stopped; SQA only sees the guidance text, consistent with the example below.
Guidance text (this block onlyoutput verbatim to the user, preserving the numbered list format):
Want to analyze a requirement? Give me any one of the following to start:
- Requirement text description
- Ticket link / ticket number
- Related screenshots / design mockups (multiple allowed)
Give all three, and the information will be more complete; I will first organize it into a complete requirement for you to confirm.
Want a requirement analyzed? Give me any one of these to start:
- Requirement text description
- Ticket link / ticket number
- Related screenshots / mockups (multiple OK)
Providing all three gives more complete information — I'll draft a full requirement for you to confirm first.
(Do not mention archiving/saving at the end. Plain text, do not use AskUserQuestion.Follow the session languageoutput only one version, Chinese or English, do not output both versions at the same time.)
Boundary: Pasting only the ticket link = has material, parse per the ticket below; a bare issue URL with no analysis intent → still goes through Rules Trigger boundary(cawplan-ticket-context), does not take the zero-material branch.
Workflow index + Read hooks
Before step N: on each new user message, read references/<file>.md unless you loaded it via Read in this same agent response already; then apply step N rules.
| Step | Summary | Read hook |
|---|---|---|
| 1 (has material) | Collect material | New invoke: read references/workflow-step1-material.md |
| 1 cold handoff | Load archived | New invoke: read references/workflow-archive.md; then edit → P1b |
| 2–5b | Drafting pipeline | New invoke: read references/workflow-analysis.md + references/rules-global.md |
| 6 | Revision | Re-run 3–5 mandatory. New invoke: read analysis + rules + revise |
| 7–8 | Save preparation | New invoke: read references/workflow-save.md |
| 10–11 | Bind/archive | New invoke: read references/workflow-archive.md;P6 always read |
| Output | Presentation format | New invoke: read references/output-confirmation.md corresponding section |
Step → File location table (cross-reference completion, does not change original wording)
| In-text reference | Reference it is in |
|---|---|
| step 2 / Numeric cross-source check | references/workflow-analysis.md |
| step 3 / fixed-wording table / non-table sentence patterns | references/workflow-analysis.md |
| step 4 / display summary | references/workflow-analysis.md |
| step 4b / missed-test self-check | references/workflow-analysis.md |
| step 5 / criterion 1 / numeric-limit uncertain / walkthrough | references/workflow-analysis.md |
| step 5b / presentation tail | references/workflow-analysis.md |
| step 6 revised body | references/workflow-revise.md; save-intent gate → main file |
| step 7–8 / §8 module tree | references/workflow-save.md |
| step 10–11 / Table A/B / Command outcomes | references/workflow-archive.md |
| Rules General rules / Red line 0 / Enumeration completeness / Failures / API scope | references/rules-global.md |
| Rules Trigger boundary / Cross-skill handoff | main file(hot path) |
| Output / Confirmation | references/output-confirmation.md |
Before step 1 (has material branch): on each new user message, read references/workflow-step1-material.md unless you loaded it via Read in this same agent response already; then apply step 1 material rules.
Before step 1 (cold handoff branch): on each new user message, read references/workflow-archive.md unless you loaded it via Read in this same agent response already; then apply step 10 Cold handoff rules.
2–5b. Analysis pipeline (steps 2–5b)
Before steps 2–5b: on each new user message, read references/workflow-analysis.md and references/rules-global.md unless you loaded them via Read in this same agent response already; then apply steps 2–5b rules.
Detail: references/workflow-analysis.md — Tag sources (step 2), five-field draft (step 3), display summary (step 4), missed-test self-check (step 4b), open-questions list (step 5), five-field presentation tail (step 5b).
Before analysis Output: on each new user message, read references/output-confirmation.md (Output section) unless you loaded it via Read in this same agent response already. Mandatory — call the Read tool on this file before emitting any Output text; a similar-looking format seen elsewhere (e.g. workflow-analysis.md) does not substitute for this Read.
6. Revise from SQA feedback
Before step 6: on each new user message, read references/workflow-analysis.md, references/rules-global.md, and references/workflow-revise.md unless you loaded them via Read in this same agent response already; then apply step 6 rules. Re-run steps 3–5 + step 5b tail after each revision round.
Detail: references/workflow-revise.md.
Save-intent gate — enter steps 7+ only when one of these holds:
| Path | Condition |
|---|---|
| Verbal | SQA says 「保存到 CawPlan」or synonymous 「存到 CawPlan」「保存需求」 |
| Recognition compatibility(recognize, not prompt SQA to say) | 可以了、存吧、提交、归档 |
| Handoff inbound | Session has resume_intent (testpoint | testcase) — Rules Cross-skill handoff; not an A1 verbal trigger |
Do not list 马上保存 as an A1 verbal trigger — that is A2/A3 box 2 option label; it routes via resume_intent relay, not standalone A1 speech.
Until save intent is triggered: do not call products list, do not qa-insights module-tree get, do not recommend a mount node.
Display layer: five-field tail and guidance use 「保存到 CawPlan」; recognition layer may accept legacy phrases.
7–8. Save preparation (steps 7–8)
Before steps 7–8: on each new user message, read references/workflow-save.md unless you loaded it via Read in this same agent response already; then apply steps 7–8 rules.
Detail: references/workflow-save.md — Resolve product (step 7), choose mount position from existing module tree (step 8).
10–11. Bind and archive (steps 10–11)
Before steps 10–11: on each new user message, read references/workflow-archive.md unless you loaded it via Read in this same agent response already; then apply steps 10–11 rules. P6 UNKNOWN: always read references/workflow-archive.md.
Detail: references/workflow-archive.md — Bind requirement context (step 10), Reconcile (step 10b), Archive or update (step 11), Command outcomes, Write body rules.
Before archive Confirmation: on each new user message, read references/output-confirmation.md (Confirmation section) unless you loaded it via Read in this same agent response already. Mandatory — call the Read tool on this file before emitting any Confirmation text; do not compose the success/failure receipt from memory or improvisation.
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-contextinstead. Ticket links are material here only when the user also wants five-field analysis or archive. - Cross-skill handoff (inbound / outbound):
- Inbound(from 「生成测试点」or 「生成用例」box, and the session already has a five-field draft):Skip steps 1–6, continue directly from step 7 (Resolve product) / archive gate step 11;must notre-analyze from scratch (wording drift would break reconcile / snapshot diff). Inbound (
resume_intent) itself is save intent;not before inboundRepeat the save guidance in the five-field tail to SQA. - Inbound mounted node: if the relay already carries
module_tree_node_id, per the plan “if a mounted node is already determined, use it directly, do not re-ask” — skip the §8 location selection loop, and go directly to step 11 (retain step 11 Type-B confirmation gate, because there is no §8 confirmation). - Inbound cold start(no five-field draft): collect materials normally from step 1.
- Outbound: after archiving or updating
outcome: SUCCESS, if the session hasresume_intent(testpoint|testcase), write backproduct_id+requirement_id(=bound_requirement_id),read and clearresume_intent, return to the initiating party skill and resume from its §2 refresh ;do not append §6 test point guidance (already automatically returned); do not stay in this skill waiting for the next instruction. - Post-archive test point guidance: at the end of the §6 success receipt, optionally append one sentence (see
output-confirmation.md§6 end guidance); if the user replies “generate test points immediately” → read thecawplan-testpoint-generateskill (P2 hot handoff); if they do not follow up, do not repeat the prompt. - After §8 location selection confirmation (
location_confirmed)→ step 11 skipType-B save/update confirmation and write directly; for paths where §8 was skipped (relay already carries the node, cold handoff did not reselect the location) → retain step 11 Type-B confirmation gate.
- Inbound(from 「生成测试点」or 「生成用例」box, and the session already has a five-field draft):Skip steps 1–6, continue directly from step 7 (Resolve product) / archive gate step 11;must notre-analyze from scratch (wording drift would break reconcile / snapshot diff). Inbound (
Scope of inbound “skip steps 1–6”: it only means that after inbound relay,the first round is automatically routedto step 7 / step 11 (save),notprohibiting step 6. If SQA proposes five-field/summary/discrepancy modifications before save confirmation → still follow step 6(P2′ / P1b),
Re-run steps 3–5;notre-analyze from the materials (compare step 1 line 27, Rules 920 “must not re-analyze from the beginning”).
References
Skill references (Mandatory read — see Read discipline)
references/workflow-step1-material.md— step 1 materials: ticket lookup, screenshots, Product inforeferences/workflow-analysis.md— steps 2–5b: five fields, display summary, missed-test self-check, discrepancy list, presentation tail, fixed wording tablereferences/workflow-revise.md— step 6: SQA revision round (must be read together with analysis + rules)references/workflow-save.md— steps 7–8: product parsing, existing module tree selection loopreferences/workflow-archive.md— steps 10–11、Command outcomes、Write body rules;Cold handoff;P6 reconcilereferences/rules-global.md— general principles, red line 0, enumeration completeness, Failures, API scope, etc. (full text 889–924)references/output-confirmation.md— analysis Output format; archived Confirmation copy
Repository references
references/CAWPLAN_OPEN_API.md— §15 QA Insights APIs (field/schema reference only — invoke viacawplan qa-insightsCLI); §2 Product APIs (Get Product Overview →cawplan products overview; product resolution at save) and §4 Ticket APIs for ticket material.